%%Page: 1 1 1 0 bop 2652 7428 a FH(T)-150 b(ra)-50 b(v)g(ersals)580 b(of)e(Ob)100 b(ject)579 b(Structures:)780 b(Sp)50 b(eci\014cation)579 b(and)g(E\016cien)-50 b(t)19160 10107 y(Implemen)g(tation)31240 9412 y FG(\003)10028 14190 y FF(Karl)435 b(Lieb)36 b(erherr)8311 15894 y FE(lieber@ccs.neu.edu)6316 17599 y FF(College)435 b(of)f(Computer)f(Science)7628 19304 y(Northeastern)g(Univ)-36 b(ersit)g(y)8941 21008 y(Boston,)434 b(MA)867 b(02115)13127 22713 y(USA)30166 14190 y(Boaz)434 b(P)-36 b(att-Shamir)29126 15894 y FE(boaz@eng.tau.ac.il)26472 17599 y FF(Dept.)434 b(of)g(Electrical)g(Engineering)29693 19304 y(T)-108 b(el-Aviv)435 b(Univ)-36 b(ersit)g(y)30979 21008 y(T)-108 b(el-Aviv)435 b(69978)32867 22713 y(ISRAEL)21304 25068 y(Doug)f(Orleans)19390 26773 y FE(dougo@ccs.neu.edu)17053 28478 y FF(College)h(of)f(Computer)f(Science)18365 30182 y(Northeastern)g(Univ)-36 b(ersit)g(y)19678 31887 y(Boston,)434 b(MA)867 b(02115)23864 33592 y(USA)21154 36909 y(Marc)-36 b(h)433 b(7,)h(2004)22765 41412 y FD(Abstract)3091 43793 y FC(Separation)428 b(of)e(concerns)g(and)g(lo)31 b(ose)427 b(coupling)g(of)g(concerns)e(are)h(imp)31 b(ortan)-31 b(t)429 b(issues)c(in)h(soft)-31 b(w)g(are)428 b(engin-)1430 45254 y(nering.)485 b(In)345 b(this)h(pap)31 b(er)345 b(w)-31 b(e)346 b(sho)-31 b(w)346 b(ho)-31 b(w)346 b(to)h(separate)e (tra)-31 b(v)g(ersal-related)348 b(concerns)d(from)h(other)f(concerns,) 351 b(ho)-31 b(w)1430 46716 y(to)381 b(lo)31 b(osely)381 b(couple)g(tra)-31 b(v)g(ersal-related)382 b(concerns)d(to)i(the)f (structural)h(concern)e(and)i(ho)-31 b(w)380 b(to)h(e\016cien)-31 b(tly)382 b(imple-)1430 48177 y(men)-31 b(t)330 b(tra)-31 b(v)g(ersal-related)332 b(concerns.)479 b(The)329 b(stress)f(is)h(on)g (the)h(detailed)h(description)f(of)f(our)g(algorithms)j(and)d(the)1430 49638 y(tra)-31 b(v)g(ersal)371 b(sp)31 b(eci\014cations)370 b(they)g(op)31 b(erate)369 b(on.)3091 51099 y(T)-92 b(ra)-31 b(v)g(ersal)409 b(of)g(ob)61 b(ject)410 b(structures)d(is)h(a)h (ubiquitous)h(routine)f(in)f(most)i(t)-31 b(yp)31 b(es)408 b(of)h(information)i(pro)31 b(cessing.)1430 52560 y(Ad-ho)g(c)249 b(implemen)-31 b(tations)253 b(of)d(tra)-31 b(v)g(ersals)250 b(lead)f(to)h(scattered)f(and)h(tangled)g(co)31 b(de)249 b(and)g(in)h(this)f(pap)31 b(er)248 b(w)-31 b(e)250 b(presen)-31 b(t)1430 54022 y(a)448 b(new)f(approac)-31 b(h,)469 b(called)448 b FB(tr)-57 b(aversal)467 b(str)-57 b(ate)g(gies,)468 b FC(to)448 b(succinctly)g(mo)31 b(dularize)449 b(tra)-31 b(v)g(ersals.)728 b(In)446 b(our)i(approac)-31 b(h)1430 55483 y(tra)g(v)g(ersals)264 b(are)f(de\014ned)g(using)h(a)f(high-lev) -31 b(el)266 b(directed)d(graph)h(description,)286 b(whic)-31 b(h)264 b(is)f(compiled)i(in)-31 b(to)265 b(a)e(dynamic)1430 56944 y(road)343 b(map)h(to)f(assist)g(run-time)g(tra)-31 b(v)g(ersals.)485 b(The)343 b(complexit)-31 b(y)345 b(of)e(the)g (compilation)j(algorithm)g(is)c(p)31 b(olynomial)1430 58405 y(in)283 b(the)f(size)g(of)h(the)f(tra)-31 b(v)g(ersal)283 b(strategy)h(graph)e(and)g(the)h(class)f(graph)g(of)h(the)f(giv)-31 b(en)284 b(application.)466 b(Protot)-31 b(yp)31 b(es)284 b(of)1430 59866 y(the)266 b(system)g(ha)-31 b(v)g(e)267 b(b)31 b(een)265 b(dev)-31 b(elop)31 b(ed)267 b(and)f(are)g(b)31 b(eing)266 b(successfully)g(used)f(to)h(implemen)-31 b(t)268 b(tra)-31 b(v)g(ersals)267 b(for)f(Ja)-31 b(v)-61 b(a)266 b(and)1430 61328 y(Asp)31 b(ectJ)385 b([KHH)8539 60926 y FA(+)9275 61328 y FC(01)q(])h(and)f(for)h(generating)h (adapters)f(for)f(soft)-31 b(w)g(are)387 b(comp)31 b(onen)-31 b(ts.)543 b(Our)385 b(previous)g(approac)-31 b(h,)1430 62789 y(called)455 b FB(tr)-57 b(aversal)472 b(sp)-57 b(e)g(ci\014c)g(ations)454 b FC([Lie92)r(,)g(PXL95)q(],)475 b(w)-31 b(as)453 b(less)g(general,)475 b(less)452 b(succinct,)475 b(and)453 b(its)h(compilation)1430 64250 y(algorithm)400 b(w)-31 b(as)398 b(of)g(exp)31 b(onen)-31 b(tial)399 b(complexit)-31 b(y)400 b(in)d(some)h(cases.)576 b(In)397 b(an)g(additional)j(result)d(w)-31 b(e)398 b(sho)-31 b(w)398 b(that)g(this)1430 65711 y(bad)337 b(b)31 b(eha)-31 b(vior)337 b(is)g(inheren)-31 b(t)337 b(to)g(the)f(static)i(tra)-31 b(v)g(ersal)338 b(co)31 b(de)336 b(generated)h(b)-31 b(y)337 b(previous)f(implemen)-31 b(tations,)348 b(where)1430 67172 y(tra)-31 b(v)g(ersals)370 b(are)f(carried)g(out)h(b)-31 b(y)370 b(in)-31 b(v)g(oking)372 b(metho)31 b(ds)369 b(without)j(parameters.)p -1600 69827 21440 45 v -237 70544 a Fz(\003)243 70967 y Fy(Researc)-28 b(h)514 b(supp)28 b(orted)514 b(b)-28 b(y)514 b(Defense)i(Adv)-57 b(anced)514 b(Pro)57 b(jects)514 b(Agency)h(\(D)-28 b(ARP)-85 b(A\))513 b(and)h(Rome)h(Lab)28 b(oratory)514 b(under)f(agreemen)-28 b(ts)-1600 72307 y(F30602-96-0239)342 b(and)f(F33615-00-C-1694)h(and)f (NSF)g(Gran)-28 b(t)341 b(CCR)f(0098643.)p eop %%Page: 1 2 1 1 bop -1600 2325 a Fx(1)1793 b(In)-50 b(tro)50 b(duction)-1600 5790 y Fw(1.1)1495 b(The)498 b(Idea)h(of)f(Adaptiv)-42 b(e)499 b(T)-125 b(ra)-42 b(v)g(ersals)-1600 8789 y Fv(The)475 b(run-time)h(state)g(of)f(application)g(programs,)493 b(particularly)474 b(of)i(ob)67 b(ject-orien)-34 b(ted)476 b(programs,)493 b(can)475 b(b)34 b(e)475 b(repre-)-1600 10445 y(sen)-34 b(ted)358 b(as)f(a)g(directed)f(graph,)367 b(where)357 b(ob)67 b(jects)357 b(are)g(represen)-34 b(ted)357 b(as)g(no)34 b(des)357 b(and)h(\014eld)f(references)e(are)i (represen)-34 b(ted)-1600 12101 y(as)421 b(edges.)587 b(T)-101 b(o)421 b(a)f(large)g(exten)-34 b(t,)425 b(program)420 b(execution)g(can)h(b)34 b(e)420 b(view)-34 b(ed)421 b(as)f(tra)-34 b(v)g(ersing)421 b(that)g(graph.)588 b(Examples)421 b(of)-1600 13757 y(tra)-34 b(v)g(ersals)488 b(are)f(that)j(sub-ob)67 b(jects)490 b(with)e(certain)g(prop)34 b(erties)488 b(are)f(sough)-34 b(t;)531 b(or)488 b(it)g(ma)-34 b(y)488 b(b)34 b(e)488 b(desired)g(to)g(compute)-1600 15413 y(a)442 b(function)i(of)e(certain) g(sub-ob)67 b(jects)444 b(of)f(a)f(giv)-34 b(en)442 b(ob)67 b(ject.)653 b(In)442 b(standard)i(programming)e(tec)-34 b(hniques,)452 b(expressing)-1600 17069 y(tra)-34 b(v)g(ersals)401 b(in)-34 b(v)g(olv)g(es)400 b(a)h(strong)g(commitmen)-34 b(t)402 b(to)e(the)h(whole)g(class)f(structure)i(tra)-34 b(v)g(ersed)400 b(\(since)h(eac)-34 b(h)401 b(hop)g(in)g(the)-1600 18725 y(tra)-34 b(v)g(ersal)483 b(is)g(explicitly)f(co)34 b(ded)484 b(as)f(in)h(\\)p Fu(a:b)p Fv("\),)503 b(ev)-34 b(en)483 b(if)g(the)h(task)g(to)g(b)34 b(e)483 b(p)34 b(erformed)483 b(b)-34 b(y)484 b(the)g(tra)-34 b(v)g(ersal)483 b(dep)34 b(ends)-1600 20381 y(only)404 b(on)g(the)h(start)g(and)g(the)f (target)h(ob)67 b(jects.)282 22597 y(W)-101 b(e)559 b(call)f(a)h (concern)g(that)i(deals)e(with)h(tra)-34 b(v)g(ersing)560 b(ob)67 b(jects)560 b(for)f(implemen)-34 b(ting)560 b(some)g(b)34 b(eha)-34 b(vior)559 b(of)g(those)-1600 24253 y(ob)67 b(jects)312 b(a)e(tra)-34 b(v)g(ersal-related)310 b(concern.)507 b(A)311 b(t)-34 b(ypical)310 b(program)h(op)34 b(erating)310 b(on)h(large)f(sets)g(of)h(ob)67 b(jects)312 b(con)-34 b(tains)311 b(man)-34 b(y)-1600 25909 y(tra)g(v)g(ersal-related)340 b(concerns.)517 b(Those)341 b(tra)-34 b(v)g(ersal)340 b(concerns)g(already)g(exist)g(at)g(the)h(design)g(lev)-34 b(el)339 b(and)i(b)34 b(ecome)339 b(more)-1600 27565 y(re\014ned)532 b(as)f(w)-34 b(e)532 b(mo)-34 b(v)g(e)532 b(from)g(the)f(design)h(ob)67 b(ject)533 b(structure)f(to)g(the)f (implemen)-34 b(tation)533 b(ob)67 b(ject)532 b(structure.)921 b(The)-1600 29221 y(ad-ho)34 b(c)416 b(w)-34 b(a)g(y)417 b(for)f(an)h(exp)34 b(erienced)414 b(programmer)i(to)h(implemen)-34 b(t)416 b(a)g(tra)-34 b(v)g(ersal)416 b(concern)g(is)g(to)g(write)g (metho)34 b(ds)417 b(for)-1600 30877 y(eac)-34 b(h)443 b(of)f(the)h(classes)f(whose)h(ob)67 b(jects)444 b(are)d(tra)-34 b(v)g(ersed.)654 b(Unfortunately)-101 b(,)453 b(this)443 b(leads)f(to)h(a)f(scattered)h(and)g(tangled)-1600 32533 y(implemen)-34 b(tation)464 b(b)34 b(ecause)462 b(the)i(metho)34 b(ds)463 b(that)h(implemen)-34 b(t)464 b(the)f(concern)f(are)h(spread)g (across)f(m)-34 b(ultiple)463 b(classes)-1600 34189 y(and)405 b(tangled)g(with)g(metho)34 b(ds)405 b(from)f(other)g(concerns.)282 36405 y(In)394 b(this)g(pap)34 b(er)394 b(w)-34 b(e)394 b(prop)34 b(ose)395 b(a)e(new)i(paradigm,)h(called)d Ft(tr)-62 b(aversal)422 b(str)-62 b(ate)g(gies)p Fv(,)392 b(or)i Ft(str)-62 b(ate)g(gies)391 b Fv(for)j(short,)i(whic)-34 b(h)-1600 38061 y(helps)485 b(us)g(to)g(not)g(only)f(cleanly)g(mo)34 b(dularize)483 b(tra)-34 b(v)g(ersal-related)484 b(concerns)h(but)g (also)g(to)f(minimally)g(bind)h(them)-1600 39717 y(to)536 b(the)h(structural)g(concern;)601 b(i.e.,)568 b(strategies)536 b(allo)-34 b(w)536 b(the)h(programmer)e(to)i(sp)34 b(ecify)535 b(tra)-34 b(v)g(ersals)536 b(in)g(a)h(lo)34 b(calized)-1600 41373 y(manner)443 b(with)g(minimal)f(binding)h(to)f(the)h(class)f (structure.)653 b(Informally)-101 b(,)451 b(the)443 b(idea)f(is)g(to)g (sp)34 b(ecify)442 b(the)g(high-lev)-34 b(el)-1600 43029 y(top)34 b(ology)327 b(of)h(the)f(tra)-34 b(v)g(ersal,)342 b(in)327 b(whic)-34 b(h)328 b(only)f(the)h(k)-34 b(ey)327 b(\\milestones")g(are)f(explicitly)g(men)-34 b(tioned;)353 b(giv)-34 b(en)327 b(a)h(concrete)-1600 44685 y(class)442 b(structure,)451 b(executable)442 b(tra)-34 b(v)g(ersal)442 b(co)34 b(de)441 b(is)h(compiled,)451 b(with)443 b(all)f(details)g (\014lled)g(in.)652 b(Since)442 b(the)g(tra)-34 b(v)g(ersal)442 b(is)-1600 46341 y(minimally)462 b(b)34 b(ound)465 b(to)f(the)g(class)e (structure,)479 b(c)-34 b(hanges)464 b(to)g(the)f(class)g(structure)h (will)f(often)h(require)e(minimal)h(or)-1600 47997 y(no)405 b(c)-34 b(hanges)404 b(to)h(the)f(tra)-34 b(v)g(ersal)404 b(strategy)-101 b(.)282 50213 y(Strategies)334 b(are)f(a)h(generalized) f(form)h(of)h Ft(tr)-62 b(aversal)366 b(sp)-62 b(e)g(ci\014c)g(ations)p Fv(,)345 b(whic)-34 b(h)335 b(w)-34 b(ere)333 b(in)-34 b(tro)34 b(duced)335 b(in)f(a)g(simple)g(form)-1600 51869 y(in)343 b([Lie92)o(])f(and)i(formally)e(treated)h(in)g(a)g(more)f (general)h(form)g(in)f([PXL95].)518 b(Succinct)343 b(sp)34 b(eci\014cations)343 b(of)g(tra)-34 b(v)g(ersals)-1600 53525 y(are)404 b(an)g(in)-34 b(tegral)404 b(part)h(of)f(Adaptiv)-34 b(e)405 b(Programming)f(\(AP\))h([Lie96)o(].)-1600 57486 y Fw(1.2)1495 b(Example)-1600 60485 y Fv(T)-101 b(o)444 b(giv)-34 b(e)443 b(a)g(more)g(concrete)f(\015a)-34 b(v)g(or)444 b(for)g(the)f(usefulness)i(of)e(strategies,)453 b(let)443 b(us)h(demonstrate)g(with)g(the)g(follo)-34 b(wing)-1600 62141 y(simple)404 b(example.)282 64357 y(Consider)283 b(a)g(program)f(sim)-34 b(ulating)284 b(bus)g(route)e(managemen)-34 b(t.)500 b(F)-101 b(or)282 b(expressing)h(class)f(graphs,)307 b(w)-34 b(e)283 b(use)g(the)g(class)-1600 66013 y(dictionary)510 b(graph)g(graphical)g(represen)-34 b(tation)511 b(from)f(the)g(Demeter) g(metho)34 b(d)510 b([Lie96)o(].)856 b(Alternativ)-34 b(e)509 b(notations)-1600 67669 y(w)-34 b(ould)360 b(b)34 b(e)358 b(the)g(UML)g(class)g(diagram)h(notation)h([BRJ99)o(])e(or)g (an)h(XML)f(sc)-34 b(hema)359 b(notation)h([Con].)523 b(F)-101 b(or)358 b(expressing)-1600 69325 y(b)34 b(eha)-34 b(vior,)473 b(w)-34 b(e)460 b(use)g(standard)i(Ja)-34 b(v)-67 b(a)459 b(and)i(the)f(DJ)f(library)g([OL01)o(,)h(LOO01)o(,)f (Lieb],)473 b(a)459 b(Ja)-34 b(v)-67 b(a)460 b(implemen)-34 b(tation)461 b(of)-1600 70981 y(the)514 b(algorithms)h(in)f(this)g(pap) 34 b(er)514 b(\(see)g(Section)g(7.2.2)g(for)g(more)g(details)g(ab)34 b(out)515 b(DJ)e(and)i(our)f(other)g(soft)-34 b(w)g(are\).)24897 75628 y(1)p eop %%Page: 2 3 2 2 bop -1600 1107 a 31733106 15866550 2302361 25062850 38350766 43152834 startTexFig -1600 1107 a%%BeginDocument: busstop1.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Helvetica Times-Italic %%Pages: 1 %%BoundingBox: 35 381 583 656 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica reencodeISO def /Times-Italic reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.796717 0 0 0.796717 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 1 -0 -0 1 -173 121 ] concat %I 4 653 576 789 576 787 596 653 596 4 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 276.5 337.5 ] concat %I 457 289 553 329 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 171.5 360.5 ] concat %I 601 337 849 377 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 476 544 ] concat %I [ (NonEmptyPersonList) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 183.5 260.5 ] concat %I 6 617 705 729 705 761 673 729 641 617 641 585 673 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 492 600 ] concat %I [ (PersonList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 195.5 400.5 ] concat %I 601 497 713 537 Rect End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 187.5 428.5 ] concat %I 6 617 705 729 705 761 673 729 641 617 641 585 673 6 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 195.5 472.5 ] concat %I 297 657 425 697 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 348 816 ] concat %I [ (BusRoute) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 545 464 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -132 -107 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 184 851 ] concat %I [ (EmptyBusList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 73 529 241 569 Rect End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -140 -131 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 296 835 ] concat %I [ (NonEmptyBusList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 297 497 513 537 Rect End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -108 -131 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 296 795 ] concat %I [ (Bus) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 297 417 361 457 Rect End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 500 664 ] concat %I [ (BusStop) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 44 -195 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 576 779 ] concat %I [ (EmptyPersonList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 857 385 1057 425 Rect End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 509 497 ] concat %I [ (Person) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 492 768 ] concat %I [ (BusStopList) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -116 -115 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 296 879 ] concat %I [ (BusList) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 -16.5 539.5 ] concat %I 6 617 705 729 705 761 673 729 641 617 641 585 673 6 Poly End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 538 574 626 555 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 473 575 361 551 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 654 522 654 492 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 656 471 656 444 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 334 462 334 444 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 657 422 657 389 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 660 302 660 277 Line %I 1 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 486 434 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 164 429 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 94 464 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 490 268 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 539 301 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 269 811 ] concat %I [ (buses) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 445 811 ] concat %I [ (busStops) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 221 683 ] concat %I [ (first) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 541 691 ] concat %I [ (first) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 6 609 470 596 464 577 478 572 510 576 534 608 539 6 BSpl %I 1 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -128.5 226.5 ] concat %I 6 602 303 590 293 566 297 566 332 565 365 605 372 6 BSpl %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 541 527 ] concat %I [ (first) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 269 683 ] concat %I [ (rest) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 453 691 ] concat %I [ (rest) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 405 539 ] concat %I [ (rest) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 534 636 ] concat %I [ (waiting) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 484 712 ] concat %I [ (NonEmptyBusStopList) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 116 341 ] concat %I 7 275 696 283 675 325 691 361 777 343 833 313 849 267 841 7 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 116 341 ] concat %I 200 616 753 545 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 27 581 ] concat %I 266 359 221 339 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 27 581 ] concat %I 355 327 355 263 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 161 581 ] concat %I 814 367 898 338 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 161 478 ] concat %I 739 205 739 151 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 161 478 ] concat %I 807 238 904 222 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 253 635 ] concat %I [ (passengers) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 620 744 ] concat %I [ (EmptyBusStopList) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.599539 -0 -0 0.599539 25.1806 591.145 ] concat %I 4 979 230 1174 230 1174 263 979 263 4 Poly End End %I eop showpage %%Trailer end %%EndDocument endTexFig -1600 30670 a Fv(Figure)494 b(1:)718 b Ft(Bus)515 b(simulation)f (class)h(gr)-62 b(aph.)803 b(Squar)-62 b(es)515 b(and)h(hexagons)e (denote)h(classes)e(\(c)-62 b(oncr)g(ete)514 b(and)i(abstr)-62 b(act,)-1600 32326 y(r)g(esp)g(e)g(ctively\),)406 b(r)-62 b(e)g(gular)403 b(arr)-62 b(ows)404 b(denote)f(\014eld)h(r)-62 b(efer)g(enc)g(e)403 b(and)h(ar)-62 b(e)404 b(lab)-62 b(ele)g(d)402 b(by)i(the)g(\014eld)g(name,)410 b(and)404 b(he)-62 b(avy)403 b(arr)-62 b(ows)-1600 33982 y(\(lab)g(ele)g(d)431 b(with)i Fs(\005)p Ft(\))g(denote)f(the)g(sub)-62 b(class)431 b(r)-62 b(elation)432 b(\(for)h(the)f(shading,)g(se)-62 b(e)432 b(text\).)-1600 37560 y Fv(Consider)420 b(the)g(class)e(graph)i (depicted)g(in)f(Figure)g(1,)k(whic)-34 b(h)420 b(de\014nes)g(a)g(data) g(structure)f(describing)h(a)f(bus)h(route.)-1600 39216 y(A)335 b(bus)h(route)f(ob)67 b(ject)336 b(consists)g(of)f(t)-34 b(w)g(o)337 b(lists:)504 b(a)335 b(list)g(of)g(bus)h(ob)67 b(jects,)350 b(eac)-34 b(h)335 b(con)-34 b(taining)336 b(a)f(list)g(of)h(passengers;)358 b(and)336 b(a)-1600 40872 y(list)323 b(of)g(bus)h(stop)f(ob)67 b(jects,)340 b(eac)-34 b(h)323 b(con)-34 b(taining)324 b(a)f(list)f(of)i(p)34 b(eople)322 b(w)-34 b(aiting.)512 b(Supp)34 b(ose)324 b(that)g(as)f(a)g(part)g(of)h(a)e(sim)-34 b(ulation,)-1600 42528 y(w)g(e)401 b(w)-34 b(ould)402 b(lik)-34 b(e)400 b(to)h(determine)g(the)g(set)g(of)g(p)34 b(erson)401 b(ob)67 b(jects)402 b(corresp)34 b(onding)401 b(to)g(p)34 b(eople)400 b(w)-34 b(aiting)402 b(at)f(an)-34 b(y)401 b(bus)h(stop)-1600 44184 y(on)483 b(a)g(giv)-34 b(en)483 b(bus)g(route.)775 b(The)483 b(group)g(of)h(collab)34 b(orating)482 b(classes)g(whic)-34 b(h)484 b(is)e(needed)h(for)g(this)h (task)f(is)f(shaded)i(in)-1600 45840 y(Figure)352 b(1.)521 b(T)-101 b(o)352 b(carry)f(out)h(the)h(sim)-34 b(ulation,)363 b(an)352 b(ob)67 b(ject-orien)-34 b(ted)353 b(program)f(w)-34 b(ould)353 b(con)-34 b(tain)353 b(a)f(metho)34 b(d)353 b(for)f(eac)-34 b(h)352 b(of)-1600 47496 y(these)k(shaded)i(classes.) 522 b(These)356 b(metho)34 b(ds)357 b(that)g(are)f(scattered)g(across)g (sev)-34 b(eral)356 b(classes)f(w)-34 b(ould)358 b(tra)-34 b(v)g(erse)356 b(bus)h(route)-1600 49153 y(ob)67 b(jects.)523 b(Ho)-34 b(w)g(ev)g(er,)366 b(using)356 b(the)g(tec)-34 b(hnique)356 b(of)g(strategies,)365 b(one)356 b(can)g(solv)-34 b(e)355 b(the)h(problem)g(in)g(a)g(m)-34 b(uc)g(h)356 b(more)g(elegan)-34 b(t)-1600 50809 y(w)g(a)g(y)-101 b(,)581 b(b)-34 b(y)545 b(mo)34 b(dularizing)545 b(the)h(co)34 b(de)544 b(and)i(k)-34 b(eeping)545 b(it)h(in)f(one)g(place,)580 b(rather)545 b(than)h(scattered)f(through)i(sev)-34 b(eral)-1600 52465 y(classes)466 b(and)i(tangled)f(with)g(other)g(metho)34 b(ds.)727 b(W)-101 b(e)466 b(de\014ne)h(a)g(strategy)g(graph)g(with)g (no)34 b(des)467 b Fr(BusRoute)p Fv(,)482 b Fr(BusStop)-1600 54121 y Fv(and)h Fr(P)-34 b(erson)484 b Fv(that)g(are)e(connected)h(b) -34 b(y)483 b(an)g(edge)f(from)h Fr(BusRoute)f Fv(to)i Fr(BusStop)f Fv(and)g(an)g(edge)g(from)g Fr(BusStop)g Fv(to)-1600 55777 y Fr(P)-34 b(erson)p Fv(.)539 b(In)404 b(our)g(textual)h(syn)-34 b(tax,)404 b(the)h(strategy)f(can)g(b)34 b(e)404 b(expressed)g(as:)1430 58794 y Fq(from)638 b(BusRoute)h(via)f (BusStop)h(to)e(Person)282 62371 y Fv(The)330 b(b)34 b(ene\014t)331 b(of)f(strategies)g(is)f(apparen)-34 b(t)332 b(when)e(considering)g(the)g(follo)-34 b(wing)331 b(scenario:)501 b(Supp)34 b(ose)331 b(that)g(the)f(bus)-1600 64027 y(route)362 b(class)f(has)h(b)34 b(een)361 b(mo)34 b(di\014ed)362 b(so)f(that)i(the)f(bus)g(stops)g(are)f(group)34 b(ed)362 b(b)-34 b(y)362 b(villages.)523 b(The)362 b(revised)e(class)h(graph)h (is)-1600 65683 y(depicted)432 b(in)f(Figure)h(2.)620 b(T)-101 b(o)432 b(implemen)-34 b(t)432 b(the)g(same)f(requiremen)-34 b(t)431 b(of)h(\014nding)h(all)d(p)34 b(eople)431 b(w)-34 b(aiting)433 b(for)e(a)h(bus,)439 b(an)-1600 67339 y(ob)67 b(ject-orien)-34 b(ted)371 b(program)f(m)-34 b(ust)371 b(no)-34 b(w)371 b(con)-34 b(tain)371 b(one)f(metho)34 b(d)371 b(for)f(eac)-34 b(h)370 b(of)g(the)g(classes)f(shaded)i(in)f (Figure)g(2,)376 b(and)-1600 68995 y(th)-34 b(us)475 b(the)f(previous)g(ob)67 b(ject-orien)-34 b(ted)475 b(implemen)-34 b(tation)475 b(b)34 b(ecomes)473 b(in)-34 b(v)-67 b(alid.)747 b(The)474 b(tra)-34 b(v)g(ersal)474 b(strategy)-101 b(,)491 b(ho)-34 b(w)g(ev)g(er,)-1600 70651 y(is)510 b(up-to-date)i(and)g(do)34 b(es)510 b(not)h(require)e(an)-34 b(y)511 b(rewriting.)857 b(In)511 b(fairness,)537 b(the)510 b(revision)g(to)h(the)g(class)f (graph)h(m)-34 b(ust)-1600 72307 y(preserv)g(e)347 b(the)h(class)g (names)g(referred)e(to)j(in)e(the)i(tra)-34 b(v)g(ersal)347 b(strategy)h(and)h(the)f(meaning)g(of)g(the)g(tra)-34 b(v)g(ersal)348 b(strategy)24897 75628 y(2)p eop %%Page: 3 4 3 3 bop -1600 1107 a 31733106 15549219 1710325 24997068 38350766 43087052 startTexFig -1600 1107 a%%BeginDocument: busstop2.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Helvetica Times-Italic %%Pages: 1 %%BoundingBox: 26 380 583 655 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica reencodeISO def /Times-Italic reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.796717 0 0 0.796717 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 21 498.5 ] concat %I 8 716 396 709 377 606 365 476 429 469 456 470 504 574 577 687 564 8 BSpl %I 2 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 -0 -0 0.5 222 498.5 ] concat %I 4 622 395 888 396 888 435 622 435 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 21 498.5 ] concat %I 4 484 450 686 450 686 490 484 490 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 -0 -0 0.5 21 498.5 ] concat %I 4 657 396 911 396 911 436 657 436 4 Poly End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -131.5 225.5 ] concat %I 8 291 422 288 407 304 387 375 379 469 382 580 382 626 411 631 389 8 BSpl %I 1 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 273.5 336.5 ] concat %I 457 289 553 329 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 168.5 359.5 ] concat %I 601 337 849 377 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 473 543 ] concat %I [ (NonEmptyPersonList) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 180.5 259.5 ] concat %I 6 617 705 729 705 761 673 729 641 617 641 585 673 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 489 599 ] concat %I [ (PersonList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 192.5 471.5 ] concat %I 297 657 425 697 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 345 815 ] concat %I [ (BusRoute) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 41 -196 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 576 779 ] concat %I [ (EmptyPersonList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 857 385 1057 425 Rect End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 506 496 ] concat %I [ (Person) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -131.5 225.5 ] concat %I 660 302 660 277 Line %I 1 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 487.5 267.5 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 536 300 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 266 810 ] concat %I [ (buses) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -131.5 225.5 ] concat %I 6 602 303 590 293 566 297 566 332 565 365 605 372 6 BSpl %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 538 526 ] concat %I [ (first) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 248.5 399.5 ] concat %I 601 497 713 537 Rect End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 240.5 427.5 ] concat %I 6 617 705 729 705 761 673 729 641 617 641 585 673 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 586 458 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 553 663 ] concat %I [ (BusStop) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 545 767 ] concat %I [ (BusStopList) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -75.5 225.5 ] concat %I 656 471 656 444 Line %I 1 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 539 433 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 594 690 ] concat %I [ (first) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 509.5 686.5 ] concat %I [ (rest) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 402 538 ] concat %I [ (rest) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 547 634 ] concat %I [ (waiting) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -144 -119 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 184 851 ] concat %I [ (EmptyBusList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 73 529 241 569 Rect End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -183 -132 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 296 835 ] concat %I [ (NonEmptyBusList) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 297 497 513 537 Rect End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -151 -132 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 296 795 ] concat %I [ (Bus) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 143.5 571.5 ] concat %I 297 417 361 457 Rect End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -159 -116 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 296 879 ] concat %I [ (BusList) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 -16.5 539.5 ] concat %I 6 617 705 729 705 761 673 729 641 617 641 585 673 6 Poly End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 -171.5 225.5 ] concat %I 334 462 334 444 Line %I 1 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 121 428 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 45 457 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 178 682 ] concat %I [ (first) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 221 679 ] concat %I [ (rest) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 64.5 399.5 ] concat %I 601 497 713 537 Rect End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 56.5 427.5 ] concat %I 6 617 705 729 705 761 673 729 641 617 641 585 673 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 -259.5 225.5 ] concat %I 656 471 656 444 Line %I 1 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 355 433 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 410 690 ] concat %I [ (first) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 302 683.5 ] concat %I [ (rest) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 362 768 ] concat %I [ (VillageList) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 354 712 ] concat %I [ (NonEmptyVillageList) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 370 664 ] concat %I [ (Village) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 399 798 ] concat %I [ (villages) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -131.5 225.5 ] concat %I 473 575 321 551 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 410 645 ] concat %I [ (busStops) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -131.5 225.5 ] concat %I 5 716 422 715 413 664 414 664 410 664 389 5 BSpl %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 537 711 ] concat %I [ (NonEmptyBusStopList) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 88 498.5 ] concat %I 597 604 597 568 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 88 498.5 ] concat %I 7 243 379 253 358 295 374 331 460 313 516 283 532 237 524 7 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 222 498.5 ] concat %I 798 530 825 498 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 222 498.5 ] concat %I 713 498 713 441 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 21 498.5 ] concat %I 281 491 281 428 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 267.5 739 ] concat %I [ (EmptyVillageList) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 222 498.5 ] concat %I 6 656 395 651 354 559 410 549 474 557 522 621 532 6 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -46 292 ] concat %I 8 439 356 443 337 471 334 522 340 537 377 533 504 589 520 596 490 8 BSpl %I 1 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 285 463 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 29 477.5 ] concat %I 176 565 118 526 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 29 477.5 ] concat %I 731 540 731 492 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 29 477.5 ] concat %I 640 572 619 542 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 29 477.5 ] concat %I 997 204 997 151 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 230 477.5 ] concat %I 662 236 754 221 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 209 624 ] concat %I [ (passengers) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 620 744 ] concat %I [ (EmptyBusStopList) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.599539 -0 -0 0.599539 25.1806 591.145 ] concat %I 4 979 230 1174 230 1174 263 979 263 4 Poly End End %I eop showpage %%Trailer end %%EndDocument endTexFig 13222 30134 a Fv(Figure)404 b(2:)539 b Ft(Evolve)-62 b(d)431 b(bus)i(simulation)e(class)h(gr)-62 b(aph.)-1600 33801 y Fv(m)-34 b(ust)408 b(b)34 b(e)407 b(correct)f(for)i(the)f(new)h (class)f(graph.)548 b(When)407 b(a)g(class)g(graph)h(is)f(c)-34 b(hanged,)409 b(it)e(is)g(imp)34 b(ortan)-34 b(t)408 b(to)f(c)-34 b(hec)g(k)407 b(the)-1600 35457 y(correctness)469 b(of)h(all)f(tra)-34 b(v)g(ersal)469 b(strategies)g(that)i(dep)34 b(end)470 b(on)g(that)h(class)e(graph.)735 b(Sometimes)470 b(it)g(is)f(necessary)g(to)-1600 37113 y(re\014ne)402 b(the)h(strategies)f(to)g(mak)-34 b(e)402 b(them)g(correct)g(in)g(the)g (new)h(class)e(graph,)i(but)g(this)g(is)f(easier)f(than)i(up)34 b(dating)404 b(all)-1600 38769 y(tra)-34 b(v)g(ersal)404 b(metho)34 b(ds)405 b(man)-34 b(ually)404 b([Lie96)o(].)282 40985 y(The)339 b(actual)g(w)-34 b(ork)339 b(on)g(the)h(ob)67 b(jects)339 b(is)g(done)g(b)-34 b(y)340 b(metho)34 b(ds)339 b(on)g(a)g Ft(visitor)467 b Fv(ob)67 b(ject:)507 b(these)339 b(are)f(metho)34 b(ds)340 b(that)g(can)-1600 42641 y(b)34 b(e)354 b(asso)34 b(ciated)354 b(with)h(classes)f(or)g(edges)g(in)g (the)h(class)f(graph,)364 b(sp)34 b(ecifying)354 b(what)i(to)e(do)h (when)g(the)g(tra)-34 b(v)g(ersal)354 b(arriv)-34 b(es)-1600 44297 y(at)370 b(an)g(ob)67 b(ject)371 b(of)f(a)g(particular)f(t)-34 b(yp)34 b(e)370 b(or)g(dereferences)e(a)i(particular)g(\014eld.)527 b(Visitor)369 b(ob)67 b(jects)371 b(are)e(named)i(after)e(the)-1600 45953 y(Visitor)452 b(design)h(pattern)g([GHJV95])f(but)i(are)e(m)-34 b(uc)g(h)453 b(simpler)f(than)i(visitor)d(ob)67 b(jects)454 b(describ)34 b(ed)452 b(b)-34 b(y)452 b(the)h(Visitor)-1600 47609 y(design)476 b(pattern,)495 b(since)476 b(none)g(of)g(the)h (sca\013olding)f(is)g(needed|b)-34 b(y)477 b(sca\013olding)f(w)-34 b(e)476 b(mean)g(writing)h(an)f(abstract)-1600 49265 y(visitor)404 b(class)f(that)j(duplicates)e(m)-34 b(uc)g(h)405 b(information)h(from)e(the)g(class)g(graph.)282 51482 y(Strategies)493 b(e\013ectiv)-34 b(ely)491 b(\014lter)i(out)h(the)f (noise)g(in)f(the)i(class)e(graph)i(whic)-34 b(h)493 b(is)g(irrelev)-67 b(an)-34 b(t)492 b(to)h(the)g(implemen-)-1600 53138 y(tation)447 b(of)g(the)f(curren)-34 b(t)447 b(task.)664 b(F)-101 b(or)446 b(the)h(class)f(graph)g(in)g(Figure)g(2,)457 b(the)446 b(ab)34 b(o)-34 b(v)g(e)446 b(strategy)-101 b(,)457 b(whic)-34 b(h)447 b(men)-34 b(tions)447 b(only)-1600 54794 y(three)556 b(classes,)594 b(replaces)555 b(metho)34 b(ds)558 b(for)e(ten)h(classes:)842 b Fr(BusRoute,)594 b(VillageList,)e(NonEmpt)-34 b(yVillageList,)591 b(Village,)-1600 56450 y(BusStopList,)403 b(NonEmpt)-34 b(yBusStopList,)402 b(BusStop,)j(P)-34 b(ersonList,)402 b(NonEmpt)-34 b(yP)g(ersonList,)403 b(P)-34 b(erson)p Fv(.)282 58666 y(T)-101 b(o)396 b(sho)-34 b(w)397 b(ho)-34 b(w)397 b(to)f(program)f(with)i(strategies,)g(w)-34 b(e)396 b(complete)f(the)h(Ja)-34 b(v)-67 b(a)396 b(program)f(\(using)i (the)f(DJ)g(library\))f(of)-1600 60322 y(\014nding)405 b(all)f(p)34 b(eople)404 b(w)-34 b(aiting)405 b(at)f(an)-34 b(y)405 b(bus)g(stop)g(on)f(a)g(particular)g(bus)h(route:)1430 63534 y Fq(//)637 b(in)g(class)i(BusRoute:)1430 65190 y(static)g(ClassGraph)h(cg)d(=)g(new)g(ClassGraph\(\);)1430 66846 y(static)i(Strategy)g(waiting)g(=)e(new)g(Strategy\("from)k (BusRoute)f(via)d(BusStop)i(to)e(Person"\);)1430 68502 y(void)h(printWaitingPersons\(\))644 b({)2703 70158 y (cg.traverse\(this,)e(waiting,)e(new)d(PrintVisitor\(\)\);)1430 71814 y(})24897 75628 y Fv(3)p eop %%Page: 4 5 4 4 bop -1600 2325 a Fv(The)411 b(program)g(ab)34 b(o)-34 b(v)g(e)410 b(de\014nes)i(a)e(metho)34 b(d)411 b(called)f Fr(p)-34 b(rintW)g(aitingP)g(ersons)411 b Fv(for)g(the)g(class)f Fr(BusRoute)p Fv(.)557 b(This)411 b(metho)34 b(d)-1600 3981 y(will)471 b(execute)g(the)h(tra)-34 b(v)g(ersal)471 b(sp)34 b(eci\014ed)472 b(b)-34 b(y)472 b(the)g(strategy)g(and)g(prin) -34 b(t)472 b(the)g(ob)67 b(ject)473 b(of)f(class)f Fr(BusRoute)g Fv(using)h(the)-1600 5637 y(visitor)374 b(class)h Fr(PrintVisito)-34 b(r)p Fv(.)528 b(Note)375 b(that)h(the)f(de\014nition)h(of)g Fr(p)-34 b(rintW)g(aitingP)g(ersons)375 b Fv(w)-34 b(orks)375 b(without)i(an)-34 b(y)375 b(c)-34 b(hange)376 b(for)-1600 7293 y(b)34 b(oth)405 b(class)f(graphs,)g(whic)-34 b(h)405 b(is)f(the)h(reason)f(for)g(calling)f(it)i(an)f Ft(adaptive)430 b(metho)-62 b(d)403 b Fv([LOO01)n(].)282 9509 y(Notice)316 b(that)i(the)f(adaptiv)-34 b(e)317 b(metho)34 b(d)318 b(is)e(expressed)g(in)h(plain)g(Ja)-34 b(v)-67 b(a)316 b(using)h(the)g(DJ)g(library)e(of)i(whic)-34 b(h)318 b(w)-34 b(e)317 b(use)f(the)-1600 11165 y(classes)377 b Fr(ClassGraph)h Fv(and)h Fr(Visito)-34 b(r)p Fv(,)381 b(the)d(sup)34 b(erclass)377 b(of)h(all)f(visitor)g(classes)g(\(suc)-34 b(h)379 b(as)e Fr(PrintVisito)-34 b(r)p Fv(\).)529 b(A)378 b Fr(ClassGraph)p Fv(-)-1600 12821 y(ob)67 b(ject)454 b(is)e(a)h(graph)h(whose)f(no)34 b(des)453 b(are)g(classes)f(and)i (whose)f(edges)g(are)f Ft(is-a)544 b Fv(and)454 b Ft(has-a)544 b Fv(relationships)453 b(b)34 b(et)-34 b(w)g(een)-1600 14477 y(classes.)679 b(Class)451 b Fr(ClassGraph)h Fv(pro)-34 b(vides)452 b(metho)34 b(ds)452 b(to)f(create)f(and)i(main)-34 b(tain)452 b(a)g(class)e(graph.)680 b(The)452 b(simplest)f(w)-34 b(a)g(y)-1600 16133 y(to)532 b(create)f(a)h Fr(ClassGraph)p Fv(-ob)67 b(ject)534 b(is)e(to)g(call)f(the)h(constructor)h Fr(ClassGraph\(\))g Fv(without)h(argumen)-34 b(ts)533 b(whic)-34 b(h)532 b(will)-1600 17789 y(create)462 b(the)i(class)f (graph)g(using)h(Ja)-34 b(v)-67 b(a)463 b(re\015ection)g(b)-34 b(y)463 b(taking)g(all)g(classes)f(in)h(the)h(default)g(pac)-34 b(k)-67 b(age.)715 b(A)463 b(tra)-34 b(v)g(ersal)-1600 19445 y(strategy)427 b(ma)-34 b(y)426 b(b)34 b(e)426 b(applied)h(to)g(b)34 b(oth)427 b(a)f Fr(ClassGraph)p Fv(-ob)67 b(ject)428 b(and)g(a)e(Ja)-34 b(v)-67 b(a)426 b(ob)67 b(ject.)606 b(F)-101 b(rom)427 b(the)f(p)34 b(oin)-34 b(t)428 b(of)e(view)g(of)h(a)-1600 21101 y Fr(ClassGraph)p Fv(-ob)67 b(ject,)367 b(a)355 b(tra)-34 b(v)g(ersal)356 b(strategy)f(is)h(a)f(subgraph)i(of)f(the)g(transitiv)-34 b(e)356 b(closure)e(of)i(the)g Fr(ClassGraph)p Fv(-ob)67 b(ject.)-1600 22757 y(When)418 b(it)g(is)f(applied)h(to)g(a)g(class)g (graph)g(it)g(selects)f(a)h(subset)g(of)g(the)h(paths)g(in)e(the)i (class)e(graph.)580 b(If)418 b(applied)g(to)g(a)-1600 24413 y(Ja)-34 b(v)-67 b(a)404 b(ob)67 b(ject,)405 b(a)f(tra)-34 b(v)g(ersal)404 b(strategy)g(de\014nes)h(a)f(subgraph)h(of)g(the)f(ob) 67 b(ject)405 b(graph)g(represen)-34 b(ting)405 b(the)f(Ja)-34 b(v)-67 b(a)404 b(ob)67 b(ject.)282 26629 y(In)463 b(this)g(implemen) -34 b(tation)464 b(of)f(adaptiv)-34 b(e)464 b(programming)f(with)h(DJ)e (the)i(class)e(graph)i(and)f(the)h(tra)-34 b(v)g(ersals)462 b(are)-1600 28285 y(computed)566 b(dynamically)-101 b(.)1020 b(In)564 b(other)h(implemen)-34 b(tations)566 b(of)f(adaptiv)-34 b(e)566 b(programming)f(\(see)g(Section)g(7.2\),)604 b(the)-1600 29941 y(tra)-34 b(v)g(ersals)404 b(are)g(computed)h (statically)-101 b(.)282 32157 y(T)g(o)431 b(sho)-34 b(w)433 b(the)e(details)g(of)h(visitors,)437 b(w)-34 b(e)431 b(write)g(a)g(Ja)-34 b(v)-67 b(a)431 b(metho)34 b(d)432 b(that)g(coun)-34 b(ts)433 b(\(instead)f(of)f(prin)-34 b(ts\))433 b(all)d(p)34 b(eople)-1600 33813 y(w)-34 b(aiting)405 b(at)f(an)-34 b(y)405 b(bus)f(stop)h(on)f(a)g(particular)g(bus)h (route.)539 b(Because)403 b(the)h(tra)-34 b(v)g(ersals)404 b(for)g Fr(p)-34 b(rintW)g(aitingP)g(ersons)404 b Fv(and)-1600 35469 y Fr(countW)-34 b(aitingP)g(ersons)335 b Fv(are)g(iden)-34 b(tical,)349 b(w)-34 b(e)336 b(reuse)f(the)h(same)f Fr(w)-34 b(aiting)336 b Fv(tra)-34 b(v)g(ersal)335 b(strategy)-101 b(.)516 b(W)-101 b(e)335 b(also)g(reuse)g(the)h(class)-1600 37125 y(graph)405 b Fr(cg)p Fv(:)2703 40338 y Fq(//)637 b(in)g(class)h(BusRoute:)2703 41994 y(int)f(countWaitingPersons\(\))644 b({)3976 43650 y(Integer)639 b(result)f(=)f(\(Integer\))i (cg.traverse\(this,)k(waiting,)c(new)e(CountVisitor\(\)\);)3976 45306 y(return)h(result.intValue\(\);)2703 46962 y(})1430 50274 y(class)g(CountVisitor)j(extends)e(Visitor)g({)2703 51930 y(int)e(c;)2703 53586 y(public)i(void)e(start\(\))i({)e(c)g(=)f (0;)h(})2703 55242 y(public)i(void)e(before\(Person)k(p\))c({)g(c++;)h (})2703 56898 y(public)h(Object)f(getReturnValue\(\))k({)637 b(return)h(new)g(Integer\(c\);)i(})1430 58554 y(})-1600 61766 y Fv(Class)450 b Fr(Visito)-34 b(r)449 b Fv(has)h(a)g(simple)g (in)-34 b(terface:)630 b(with)451 b(the)f Fr(sta)-34 b(rt)450 b Fv(metho)34 b(d)450 b(w)-34 b(e)451 b(sa)-34 b(y)450 b(what)h(needs)f(to)g(b)34 b(e)450 b(done)g(b)34 b(efore)449 b(the)-1600 63422 y(tra)-34 b(v)g(ersal)509 b(starts.)854 b(With)509 b(the)h Fr(getReturnV)-34 b(alue)509 b Fv(metho)34 b(d)509 b(w)-34 b(e)510 b(express)e(what)j(needs)e(to)g (b)34 b(e)509 b(returned)h(when)f(the)-1600 65078 y(tra)-34 b(v)g(ersal)349 b(completes.)520 b(With)350 b(a)f Fr(b)34 b(efo)-34 b(re)350 b Fv(metho)34 b(d)350 b(w)-34 b(e)349 b(express)g(what)i(needs)e(to)h(b)34 b(e)349 b(done)h(b)34 b(efore)349 b(w)-34 b(e)349 b(visit)g(an)h(ob)67 b(ject)-1600 66734 y(of)376 b(a)g(sp)34 b(eci\014c)375 b(class,)380 b(sp)34 b(eci\014ed)376 b(b)-34 b(y)376 b(the)g(metho)34 b(d's)376 b(argumen)-34 b(t)377 b(t)-34 b(yp)34 b(e.)529 b(There)376 b(are)f(also)h Fr(after)g Fv(and)g Fr(a)-34 b(round)377 b Fv(metho)34 b(ds;)-1600 68390 y(the)415 b(complete)f(API)f(is)h(do)34 b(cumen)-34 b(ted)416 b(in)e([Lieb)o(].) 568 b(The)415 b Fr(b)34 b(efo)-34 b(re)p Fv(,)416 b Fr(after)p Fv(,)h(and)e Fr(a)-34 b(round)416 b Fv(metho)34 b(ds)415 b(that)g(are)f(de\014ned)h(in)-1600 70046 y(a)404 b(visitor)g(class)f (are)h(in)-34 b(v)g(ok)g(ed)405 b(using)f(the)h(Ja)-34 b(v)-67 b(a)404 b(Re\015ection)g(API.)24897 75628 y(4)p eop %%Page: 5 6 5 5 bop -1600 2325 a Fw(1.3)1495 b(New)499 b(Con)-42 b(tributions)-1600 5324 y Fv(The)485 b(con)-34 b(tributions)486 b(of)e(this)h(pap)34 b(er)484 b(are)g(three-fold:)699 b(an)485 b(extension)f(to)h(the)g(tra)-34 b(v)g(ersal)484 b(sp)34 b(eci\014cation)484 b(language,)-1600 6980 y(a)474 b(p)34 b(olynomial-time)473 b(compilation)h(algorithm)g(for)g(the)g (extended)h(language)f(that)h(is)e(simpler)h(than)h(our)f(earlier)-1600 8636 y(algorithm,)342 b(and)329 b(a)e(lo)-34 b(w)g(er)327 b(b)34 b(ound)329 b(result)e(whic)-34 b(h)328 b(explains)f(the)h (shortcomings)g(of)f(the)h(previous)f(algorithms.)513 b(More)-1600 10292 y(sp)34 b(eci\014cally)-101 b(,)390 b(w)-34 b(e)390 b(allo)-34 b(w)389 b(the)h(underlying)f(sp)34 b(eci\014cation)389 b(of)g(a)g(tra)-34 b(v)g(ersal)389 b(to)h(ha)-34 b(v)g(e)389 b(an)-34 b(y)390 b(top)34 b(ology)-101 b(,)392 b(generalizing)387 b(the)-1600 11948 y(series-parallel)371 b(and)j(tree)e(top)34 b(ologies)372 b(considered)h(previously)-101 b(,)378 b(and)c(w)-34 b(e)373 b(allo)-34 b(w)373 b(the)g(use)g(of)g(a)g (name)g(map)g(b)34 b(et)-34 b(w)g(een)-1600 13604 y(no)34 b(des)500 b(in)f(the)h(strategy)g(graph)g(and)g(those)g(in)g(the)g (class)f(graph.)825 b(This)500 b(name)g(map)g(supp)34 b(orts)500 b(the)g(option)h(for)-1600 15260 y(di\013eren)-34 b(t)474 b(no)34 b(des)475 b(in)f(the)g(strategy)g(graph)h(to)f(b)34 b(e)474 b(mapp)34 b(ed)475 b(to)f(the)h(same)f(no)34 b(de)474 b(in)g(the)g(class)g(graph.)749 b(Section)474 b(9)-1600 16916 y(pro)-34 b(vides)404 b(a)g(more)g(detailed)g (comparison)h(of)f(tra)-34 b(v)g(ersal)404 b(strategies)g(and)h(tra)-34 b(v)g(ersal)404 b(sp)34 b(eci\014cations.)282 19132 y(The)411 b(generalization)f(of)h(our)f(previous)g(algorithm)h(to)g(a)f(larger)g (class)g(of)h(graphs)g(w)-34 b(as)411 b(not)h(our)e(primary)g(goal) -1600 20788 y(for)419 b(coming)g(up)h(with)g(a)e(b)34 b(etter)419 b(algorithm.)584 b(It)419 b(happ)34 b(ened)420 b(as)f(a)g(side-e\013ect:)567 b(as)419 b(w)-34 b(e)420 b(made)f(the)g(algorithm)g(more)-1600 22444 y(e\016cien)-34 b(t)453 b(and)h(usable)g(for)f(a)g(larger)f(class)h(of)h (series-parallel)d(graph/class)j(graph)g(com)-34 b(binations,)466 b(the)454 b(resulting)-1600 24100 y(algorithm)404 b(also)g(naturally)g (w)-34 b(ork)g(ed)405 b(for)f(an)-34 b(y)405 b(kind)f(of)h(graph.)282 26316 y(Our)466 b(new)h(p)34 b(olynomial-time)466 b(algorithm)h(presen) -34 b(ted)467 b(in)f(Section)h(5)g(has)g(the)g(b)34 b(ene\014cial)465 b(prop)34 b(ert)-34 b(y)467 b(that)h(it)e(is)-1600 27972 y(simpler)446 b(and)h(easier)e(to)i(understand.)666 b(Our)446 b(earlier)f(algorithm)h(required)g(an)g(unin)-34 b(tuitiv)g(e)448 b(c)-34 b(hec)g(k)446 b(for)h(the)f(short-)-1600 29628 y(cut)503 b(and)h(zig-zag)e(conditions.)836 b(Those)504 b(t)-34 b(w)g(o)504 b(conditions)g(had)f(to)h(b)34 b(e)502 b(c)-34 b(hec)g(k)g(ed)504 b(to)f(mak)-34 b(e)503 b(sure)g(that)h(the)f (tra)-34 b(v)g(er-)-1600 31284 y(sal)470 b(is)g(correct.)735 b(The)471 b(short-cut)g(and)g(zig-zag)e(conditions)i(also)f(prohibited) h(man)-34 b(y)470 b(series-parallel)f(graph/class)-1600 32940 y(graph)539 b(com)-34 b(binations.)943 b(W)-101 b(e)538 b(notice)g(that)i(this)e(pap)34 b(er)539 b(is)f(related)g(to)h (t)-34 b(w)g(o)540 b(applications)f(of)f(P)-34 b(oly)g(a's)539 b(in)-34 b(v)g(en)g(tors)-1600 34596 y(parado)g(x[P)g(ol49)q(]:)-118 37808 y(1.)605 b(Although)396 b(w)-34 b(e)395 b(solv)-34 b(e)395 b(a)f(more)g(general)g(algorithmic)h(problem)f(at)h(the)g (programming)g(to)34 b(ol)395 b(lev)-34 b(el,)395 b(the)g(algo-)1430 39464 y(rithm)405 b(b)34 b(ecomes)403 b(simpler.)-118 42117 y(2.)605 b(The)377 b(algorithm)g(supp)34 b(orts)377 b(b)34 b(etter)377 b(adaptiv)-34 b(e)377 b(programming)g(whic)-34 b(h)377 b(is)f(ab)34 b(out)377 b(solving)f(problems)h(for)f(more)1430 43773 y(general)599 b(data)h(structures)f(than)h(the)g(one)f (originally)f(giv)-34 b(en,)647 b(leading)599 b(to)h(simpler)e (programs)h(\([Lie96],)1430 45429 y(Section)405 b(4.1.1\).)282 48641 y(The)539 b(compilation)f(algorithm)h(generates)f(co)34 b(de)538 b(whose)h(running)g(time)f(ma)-34 b(y)539 b(b)34 b(e)538 b(sligh)-34 b(tly)538 b(w)-34 b(orse)539 b(than)h(the)-1600 50297 y(running)424 b(time)f(of)g(the)g(co)34 b(de)422 b(generated)h(b)-34 b(y)423 b(previous)g(compilation)g(algorithms)g (\(when)h(they)f(apply\),)428 b(since)422 b(the)-1600 51953 y(previous)457 b(algorithm)f(generated)h(tra)-34 b(v)g(ersal)457 b(metho)34 b(ds)457 b(whic)-34 b(h)458 b(did)f(not)g(pass)h(argumen)-34 b(ts)458 b(at)f(all.)695 b(Ho)-34 b(w)g(ev)g(er,)470 b(this)-1600 53609 y(minor)344 b(p)34 b(enalt)-34 b(y)343 b(in)h(running)h(time)e(is)g(una)-34 b(v)g(oidable)345 b(if)e(w)-34 b(e)344 b(w)-34 b(an)g(t)346 b(the)e(size)f(of)g(the)h(tra)-34 b(v)g(ersal)344 b(co)34 b(de)343 b(to)h(b)34 b(e)343 b(reasonably)-1600 55265 y(b)34 b(ounded:)535 b(w)-34 b(e)395 b(pro)-34 b(v)g(e)395 b(in)f(Section)h(6)f(that)i(if)e(no)h(argumen)-34 b(ts)396 b(are)e(passed)h(b)-34 b(y)395 b(the)g(tra)-34 b(v)g(ersal)394 b(metho)34 b(ds,)397 b(then)e(there)-1600 56921 y(are)298 b(cases)g(where)h(the)g(n)-34 b(um)g(b)34 b(er)299 b(of)g(distinct)h (tra)-34 b(v)g(ersal)298 b(metho)34 b(ds)300 b(m)-34 b(ust)299 b(b)34 b(e)299 b(exp)34 b(onen)-34 b(tial)298 b(in)h(the)g(size)f(of)h(the)g(strategy)-1600 58577 y(sp)34 b(eci\014cation.)-1600 62538 y Fw(1.4)1495 b(Algorithm)500 b(Ov)-42 b(erview)-1600 65537 y Fv(F)-101 b(or)422 b(those)g(readers)f (who)h(don't)h(need)e(to)h(understand)i(all)d(the)h(details)f(b)34 b(ehind)423 b(the)f(algorithms)f(w)-34 b(e)422 b(giv)-34 b(e)422 b(a)f(brief)-1600 67193 y(o)-34 b(v)g(erview.)905 b(Giv)-34 b(en)526 b(a)h(strategy)f Fu(S)597 b Fv(and)527 b(a)f(class)g(graph)h Fu(G)p Fv(,)557 b(w)-34 b(e)527 b(need)f(to)h(pro)-34 b(vide)526 b(an)h(algorithm)g(that)g(decides) -1600 68849 y(whic)-34 b(h)437 b(ob)67 b(jects)436 b(to)h(visit)e(from) h(a)f(no)34 b(de)436 b Fu(o)g Fv(in)f(an)h(ob)67 b(ject)437 b(graph,)444 b(i.e.,)e(w)-34 b(e)436 b(need)g(to)g(compute)h Ft(\014rst)114 b Fv(\()p Ft(o)77 b Fv(\),)444 b(the)436 b(set)g(of)-1600 70505 y(edges)451 b(that)i(w)-34 b(e)452 b(need)f(to)h(tra)-34 b(v)g(erse)451 b(from)h(no)34 b(de)451 b Fu(o)p Fv(.)680 b(The)452 b(function)h Ft(\014rst)115 b Fv(\()p Ft(o)77 b Fv(\))451 b(is)g(computed)i(based)f(on)f(answ)-34 b(ers)453 b(to)-1600 72161 y(reac)-34 b(habilit)g(y)431 b(questions)g(in)g(the)g(class)g(graph;)444 b(it)431 b(con)-34 b(tains)432 b(all)e(edges)h(that)h Ft(c)-62 b(ould)428 b Fv(lead)j(\(according)g(to)g(the)g(rules)24897 75628 y(5)p eop %%Page: 6 7 6 6 bop -1600 2325 a Fv(of)502 b(the)g(class)f(graph\))h(to)g(target)g (ob)67 b(jects.)831 b(The)502 b Ft(\\c)-62 b(ould")499 b Fv(represen)-34 b(ts)502 b(our)f(lac)-34 b(k)501 b(of)h(kno)-34 b(wledge)502 b(ab)34 b(out)502 b(the)g(rest)-1600 4130 y(of)451 b(the)g(ob)67 b(ject)452 b(graph)f([L)-135 b(W01].)678 b(More)450 b(precisely)-101 b(,)461 b Ft(\014rst)115 b Fv(\()p Ft(o)77 b Fv(\))450 b(con)-34 b(tains)452 b(all)e(edges)h Fu(o)37941 3464 y Fp(l)37481 4130 y Fs(!)414 b Fu(o)39695 3690 y Fo(0)40456 4130 y Fv(suc)-34 b(h)452 b(that)g(there)e(exists) -1600 5786 y(an)413 b(ob)67 b(ject)413 b(graph)g(ro)34 b(oted)413 b(at)f Fu(o)13110 5346 y Fo(0)13833 5786 y Fv(that)h(con)-34 b(tains)414 b(a)e(target)h(ob)67 b(ject)413 b(and)h(that)f(satis\014es)g(a)g(\014xed)f(set)h(of)g(constrain)-34 b(ts)-1600 7442 y(\(expressed)404 b(b)-34 b(y)405 b Fu(S)474 b Fv(and)405 b Fu(G)p Fv(\).)282 9658 y(Our)493 b(goal)f(is)h(to)g(mak) -34 b(e)493 b(the)g(tra)-34 b(v)g(ersal)493 b(e\016cien)-34 b(t;)537 b(therefore)492 b(w)-34 b(e)494 b(don't)f(w)-34 b(an)g(t)495 b(to)e(lo)34 b(ok)492 b(ahead)i(in)f(the)g(ob)67 b(ject)-1600 11314 y(graph)437 b(to)f(decide)g(whether)h(going)f (through)h(an)g(edge)f(in)g Ft(\014rst)115 b Fv(\()p Ft(o)77 b Fv(\))435 b(will)h(ev)-34 b(en)g(tually)436 b(lead)g(us)g(to)h(a)f(target)g(ob)67 b(ject.)-1600 12970 y(W)-101 b(e)327 b(only)g(lo)34 b(ok)327 b(ahead)h(in)g(the)f(class)h (graph)g(b)34 b(ecause)327 b(it)g(giv)-34 b(es)328 b(us)f (meta-information)i(ab)34 b(out)329 b(the)f(shap)34 b(e)327 b(of)h(ob)67 b(jects.)-1600 14626 y(So)417 b Ft(\014rst)115 b Fv(\()p Ft(o)77 b Fv(\))417 b(will)f(con)-34 b(tain)418 b(all)e(those)h(edges)g(after)g(whic)-34 b(h,)421 b(according)416 b(to)i(the)f(class)f(graph)i(information,)i(there)d(is)-1600 16282 y(still)355 b(a)h(p)34 b(ossibilit)-34 b(y)355 b(of)h(reac)-34 b(hing)356 b(a)f(target)h(ob)67 b(ject.)523 b(T)-101 b(o)356 b(quic)-34 b(kly)355 b(answ)-34 b(er)356 b(the)g(reac)-34 b(habilit)g(y)355 b(questions)h(w)-34 b(e)356 b(compute)-1600 17938 y(a)387 b(new)h(graph,)j(called)c(a)g (tra)-34 b(v)g(ersal)387 b(graph,)k(whic)-34 b(h)388 b(is)g(basically)e(the)i(pro)34 b(duct)388 b(of)f(the)h(t)-34 b(w)g(o)389 b(graphs)f Fu(S)457 b Fv(and)389 b Fu(G)p Fv(.)532 b(The)-1600 19594 y(tra)-34 b(v)g(ersal)518 b(graph)g(stores)g(the)g(answ)-34 b(ers)518 b(to)h(the)f(reac)-34 b(habilit)g(y)517 b(questions)i(that)g(w)-34 b(e)518 b(will)f(ask)g(during)i(the)f(ob)67 b(ject)-1600 21250 y(tra)-34 b(v)g(ersal.)282 23466 y(The)352 b(T)-101 b(ra)-34 b(v)g(ersal)352 b(Graph)g(Algorithm)g(\(TGA\))h(is)e(based)i(on)f(the)g (follo)-34 b(wing)352 b(idea)g(of)g(a)g(reduction:)512 b(F)-101 b(or)352 b(tra)-34 b(v)g(ersal)-1600 25122 y(strategies)495 b(of)g(the)h(form)f(\\)p Fr(from)h(A)f(to)g(B)p Fv(",)f(the)i(paths)g (de\014ned)g(in)f(the)h(class)e(graph)i(can)f(b)34 b(e)495 b(represen)-34 b(ted)495 b(b)-34 b(y)496 b(a)-1600 26778 y(subgraph)507 b(of)f(the)g(class)f(graph:)742 b(Compute)507 b(all)e(edges)h(reac)-34 b(hable)505 b(from)h Fr(A)g Fv(\(called)f(forw)-34 b(ard)506 b(edges\))g(and)h(from)-1600 28435 y(whic)-34 b(h)505 b Fr(B)g Fv(can)g(b)34 b(e)504 b(reac)-34 b(hed)504 b(\(called)h(bac)-34 b(kw)g(ard)505 b(edges\).)840 b(This)505 b(computation)i(is)d(called)g Ft(fr)-62 b(om-to)524 b(c)-62 b(omputation)p Fv(.)-1600 30091 y(Edges)529 b(in)g(the)g(in)-34 b(tersection)530 b(of)f(the)g(forw)-34 b(ard)530 b(and)g(bac)-34 b(kw)g(ard)530 b(edges)f(form)g(the)h(graph)f(whic)-34 b(h)530 b(represen)-34 b(ts)529 b(the)-1600 31747 y(tra)-34 b(v)g(ersal.)928 b(An)-34 b(y)535 b(strategy)f(can)h(b)34 b(e)534 b(reduced)g(to)g(a)g (from-to)h(computation)h(on)f(a)f(graph)g(that)i(is)e(m)-34 b(uc)g(h)535 b(larger)-1600 33403 y(than)540 b(the)g(original)e(class)h (graph.)944 b(This)539 b(larger)f(graph,)573 b(called)538 b(the)i(tra)-34 b(v)g(ersal)539 b(graph,)573 b(will)538 b(con)-34 b(tain)540 b(as)f(man)-34 b(y)-1600 35059 y(copies)482 b(of)h(the)f(class)g(graph)h(as)g(the)f(tra)-34 b(v)g(ersal)482 b(strategy)h(graph)g(has)g(edges.)773 b(The)482 b(size)g(of)g(the)h (tra)-34 b(v)g(ersal)482 b(graph)-1600 36715 y(will)470 b(b)34 b(e)471 b(reduced)g(b)-34 b(y)471 b(a)g(from-to)h(computation.) 740 b(In)471 b(other)g(w)-34 b(ords,)489 b(the)471 b(from-to)h (computation)g(\(whic)-34 b(h)472 b(can)f(b)34 b(e)-1600 38371 y(implemen)-34 b(ted,)510 b(e.g.,)e(with)490 b(a)e(forw)-34 b(ard)489 b(and)h(a)e(bac)-34 b(kw)g(ard)490 b(depth-\014rst)g(searc) -34 b(h\))489 b(is)f(fundamen)-34 b(tal)491 b(to)e(computing)-1600 40027 y(the)360 b(tra)-34 b(v)g(ersal)359 b(graph.)524 b(The)360 b(size)e(of)i(the)g(tra)-34 b(v)g(ersal)359 b(graph)h(is)f(a)g(small)g(p)34 b(olynomial)359 b(in)h(the)f(size)g(of) h(the)f(class)g(graph)-1600 41683 y(and)405 b(the)f(strategy)h(graph.) 282 43899 y(The)343 b(tra)-34 b(v)g(ersal)342 b(graph)i(is)e (non-deterministic)h(in)g(nature:)508 b(from)343 b(a)g(no)34 b(de)343 b(there)f(migh)-34 b(t)344 b(b)34 b(e)342 b(t)-34 b(w)g(o)344 b(outgoing)g(edges)-1600 45555 y(with)451 b(the)f(same)g(lab)34 b(el)449 b(\(leading)h(to)h(di\013eren)-34 b(t)450 b(no)34 b(des|there)450 b(are)g(no)g(parallel)f(edges\).)676 b(This)451 b(non-determinism)-1600 47211 y(needs)346 b(to)g(b)34 b(e)345 b(handled)i(carefully)e(in)h(order)f(to)h(a)-34 b(v)g(oid)346 b(an)g(exp)34 b(onen)-34 b(tial)346 b(blo)-34 b(w-up)347 b(in)f(algorithm)g(p)34 b(erformance.)518 b(The)-1600 48867 y(T)-101 b(ra)-34 b(v)g(ersal)381 b(Metho)34 b(ds)382 b(Algorithm)f(\(TMA\))i(tra)-34 b(v)g(erses)381 b(an)g(ob)67 b(ject)382 b(graph,)k(guided)c(b)-34 b(y)381 b(a)g(tra)-34 b(v)g(ersal)381 b(graph.)532 b(T)-101 b(o)381 b(deal)-1600 50523 y(with)327 b(the)f(non-determinism,)342 b(w)-34 b(e)326 b(allo)-34 b(w)326 b(m)-34 b(ultiple)326 b(tok)-34 b(ens)326 b(sim)-34 b(ultaneously)326 b(to)g(b)34 b(e)326 b(put)h(on)f(the)g(tra)-34 b(v)g(ersal)325 b(graph)i(to)-1600 52179 y(k)-34 b(eep)395 b(trac)-34 b(k)396 b(of)g(the)g(legal)f(tra)-34 b(v)g(ersal)395 b(p)34 b(ossibilities.)535 b(As)396 b(the)g(tra)-34 b(v)g(ersal)395 b(progresses)h(the)g(n)-34 b(um)g(b)34 b(er)396 b(of)g(tok)-34 b(ens)397 b(on)e(the)-1600 53835 y(tra)-34 b(v)g(ersal)364 b(graph)h(\015uctuates.)527 b(F)-101 b(ortunately)g(,)372 b(the)365 b(n)-34 b(um)g(b)34 b(er)365 b(of)g(sim)-34 b(ultaneous)365 b(tok)-34 b(ens)365 b(is)f(b)34 b(ounded)366 b(b)-34 b(y)364 b(the)h(n)-34 b(um)g(b)34 b(er)-1600 55491 y(of)404 b(edges)h(in)f(the)g(strategy)g (graph.)282 57707 y(As)517 b(suggested)h(b)-34 b(y)517 b([PPL97,)f(Sma)q(],)544 b(these)518 b(t)-34 b(w)g(o)518 b(algorithms)f(are)g(ab)34 b(out)518 b(computing)g(in)-34 b(tersections)517 b(of)h(sets)-1600 59363 y(of)449 b(paths.)673 b(TGA)450 b(is)e(a)h(v)-67 b(ariation)448 b(on)h(an)g(algorithm)g(to)g (compute)g(the)g(cross)g(pro)34 b(duct)449 b(of)g(t)-34 b(w)g(o)450 b(automata,)461 b(while)-1600 61019 y(TMA)487 b(is)f(inspired)h(b)-34 b(y)487 b(the)f(NF)-135 b(A)487 b(sim)-34 b(ulation)488 b(tec)-34 b(hnique)487 b(describ)34 b(ed)486 b(in)g([ASU86].)786 b(The)487 b(complications)f(are)g(in)-1600 62675 y(the)364 b(constrain)-34 b(t)365 b(maps,)373 b(the)364 b(name)g(maps)h(and)f(the)h(more)e(complex)g(structure)i(of)f(the)g (graphs:)519 b(class)364 b(graphs)g(ha)-34 b(v)g(e)-1600 64331 y(t)g(w)g(o)406 b(kinds)e(of)g(no)34 b(des)405 b(and)g(t)-34 b(w)g(o)405 b(kinds)g(of)f(edges.)24897 75628 y(6)p eop %%Page: 7 8 7 7 bop -1600 2325 a Fw(1.5)1495 b(P)-42 b(ap)42 b(er)499 b(Organization)-1600 5324 y Fv(The)g(remainder)e(of)i(this)f(pap)34 b(er)498 b(is)g(organized)g(as)g(follo)-34 b(ws.)821 b(In)498 b(Section)g(2)g(w)-34 b(e)499 b(in)-34 b(tro)34 b(duce)498 b(the)h(basic)f(concepts,)-1600 6980 y(terminology)545 b(and)g(notation)i(w)-34 b(e)545 b(use)g(throughout)j(the)d(pap)34 b(er.)961 b(In)545 b(Section)g(3)g(w)-34 b(e)546 b(giv)-34 b(e)544 b(a)h(de\014nition)h(for)g(the)-1600 8636 y(concept)519 b(of)h(tra)-34 b(v)g(ersals,)547 b(based)520 b(on)f([PPL97].)882 b(In)520 b(Section)f(4)g(w)-34 b(e)519 b(de\014ne)h(the)f(new)h (concept)f(of)h(strategies.)883 b(In)-1600 10292 y(Section)531 b(5)g(w)-34 b(e)531 b(sp)34 b(ecify)530 b(and)i(analyze)e(the)h (algorithm)g(whic)-34 b(h)532 b(translates)g(strategies)e(in)-34 b(to)532 b(tra)-34 b(v)g(ersal)531 b(co)34 b(de.)918 b(In)-1600 11948 y(Section)407 b(6)f(w)-34 b(e)407 b(pro)-34 b(v)g(e)406 b(a)h(lo)-34 b(w)g(er)406 b(b)34 b(ound)408 b(for)e(tra)-34 b(v)g(ersal)406 b(metho)34 b(ds)408 b(that)f(do)g(not)g (pass)g(argumen)-34 b(ts.)546 b(In)407 b(Section)f(7)h(w)-34 b(e)-1600 13604 y(commen)g(t)447 b(ab)34 b(out)446 b(some)g(practical)g (asp)34 b(ects)446 b(of)g(the)g(implemen)-34 b(tation)447 b(of)g(the)f(strategies)g(approac)-34 b(h.)665 b(In)446 b(Section)-1600 15260 y(8)459 b(w)-34 b(e)459 b(surv)-34 b(ey)458 b(related)g(w)-34 b(ork.)702 b(In)459 b(Section)g(9)f(w)-34 b(e)459 b(compare)g(strategies)f(with)i(the)f(earlier)d(approac)-34 b(h)460 b(of)f(tra)-34 b(v)g(ersal)-1600 16916 y(sp)34 b(eci\014cations.)520 b(In)350 b(Section)g(10)g(w)-34 b(e)350 b(describ)34 b(e)349 b(some)h(applications)g(of)g(strategies.) 520 b(In)350 b(Section)g(11)g(w)-34 b(e)350 b(describ)34 b(e)349 b(our)-1600 18572 y(exp)34 b(eriences)376 b(using)j(strategies) e(and)i(presen)-34 b(t)378 b(some)g(empirical)f(evidence)g(of)h(ho)-34 b(w)379 b(they)f(are)f(used.)530 b(W)-101 b(e)377 b(giv)-34 b(e)378 b(a)f(few)-1600 20228 y(concluding)405 b(though)-34 b(ts)406 b(in)e(Section)h(12.)-1600 24806 y Fx(2)1793 b(Preliminaries)-1600 28223 y Fv(In)346 b(this)g(section)g(w)-34 b(e)347 b(formally)e(de\014ne)h(the)h(basic)f(concepts,)357 b(terminology)346 b(and)h(notation)g(w)-34 b(e)346 b(use)g(throughout)i (this)-1600 29879 y(pap)34 b(er.)538 b(All)404 b(notions)h(in)f(this)h (section)f(are)g(standard,)h(with)g(the)f(exception)g(of)h(Subsection)g (2.3.)-1600 33839 y Fw(2.1)1495 b(Graphs)499 b(and)g(paths)-1600 36838 y Fv(A)512 b(directed)g(graph)h(is)g(a)f(pair)g(\()p Fu(V)67 b(;)202 b(E)70 b Fv(\))513 b(where)f Fu(V)782 b Fv(is)512 b(a)h(set)f(of)h Ft(no)-62 b(des)p Fv(,)538 b(and)513 b Fu(E)587 b Fs(\022)517 b Fu(V)611 b Fs(\002)341 b Fu(V)782 b Fv(is)512 b(a)g(set)h(of)g Ft(e)-62 b(dges)p Fv(.)861 b(A)-1600 38494 y(directed)492 b(lab)34 b(eled)491 b(graph)i(is)f(a)g(triple)g Fu(G)483 b Fv(=)g(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))492 b(where)g Fu(V)762 b Fv(is)492 b(a)g(set)g(of)g Ft(no)-62 b(des)p Fv(,)513 b Fu(L)492 b Fv(is)g(a)g(set)g(of)h Ft(lab)-62 b(els)p Fv(,)511 b(and)-1600 40150 y Fu(E)406 b Fs(\022)337 b Fu(V)502 b Fs(\002)232 b Fu(L)h Fs(\002)f Fu(V)655 b Fv(is)386 b(a)g(set)g(of)g Ft(e)-62 b(dges)p Fv(.)530 b(If)386 b Fu(e)337 b Fv(=)f(\()p Fu(u;)202 b(l)24 b(;)202 b(v)43 b Fv(\))336 b Fs(2)h Fu(E)70 b Fv(,)389 b(then)e Fu(u)e Fv(is)h(the)g Ft(sour)-62 b(c)g(e)383 b Fv(of)k Fu(e)p Fv(,)i Fu(l)409 b Fv(is)386 b(the)g Ft(lab)-62 b(el)384 b Fv(of)i Fu(e)p Fv(,)j(and)e Fu(v)-1600 41956 y Fv(is)404 b(the)g Ft(tar)-62 b(get)403 b Fv(of)h Fu(e)p Fv(.)539 b(W)-101 b(e)403 b(denote)i(an)g(edge)f(\()p Fu(u;)202 b(l)24 b(;)202 b(v)43 b Fv(\))403 b(b)-34 b(y)405 b Fu(u)25667 41290 y Fp(l)25206 41956 y Fs(!)337 b Fu(v)43 b Fv(.)282 44172 y(Giv)-34 b(en)461 b(a)g(directed)f(lab)34 b(eled)461 b(graph)g Fu(G)432 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\),)475 b(a)461 b Ft(no)-62 b(de-p)g(ath)458 b Fv(is)j(a)g(sequence)f Fu(p)431 b Fv(=)h Fs(h)p Fu(v)42945 44354 y Fn(0)43470 44172 y Fu(v)44058 44354 y Fn(1)44786 44172 y Fu(:)202 b(:)g(:)f(v)46990 44354 y Fp(n)47616 44172 y Fs(i)p Fv(,)475 b(where)-1600 46014 y Fu(v)-1012 46196 y Fp(i)-133 46014 y Fs(2)504 b Fu(V)773 b Fv(for)505 b(0)e Fs(\024)h Fu(i)f Fs(\024)h Fu(n)p Fv(,)528 b(and)505 b Fu(v)14177 46196 y Fp(i)p Fo(\000)p Fn(1)16548 45311 y Fp(l)16829 45446 y Fm(i)16258 46014 y Fs(!)f Fu(v)18562 46196 y Fp(i)19441 46014 y Fs(2)g Fu(E)574 b Fv(for)504 b(some)g Fu(l)27676 46196 y Fp(i)28555 46014 y Fs(2)g Fu(L)g Fv(for)h(all)e(0)h Fu(<)f(i)h Fs(\024)f Fu(n)p Fv(.)839 b(Similarly)-101 b(,)527 b(a)505 b Ft(p)-62 b(ath)595 b Fv(is)-1600 47827 y(a)474 b(sequence)g Fs(h)q Fu(v)5634 48009 y Fn(0)6159 47827 y Fu(l)6521 48009 y Fn(1)7046 47827 y Fu(v)7634 48009 y Fn(1)8160 47827 y Fu(l)8522 48009 y Fn(2)9249 47827 y Fu(:)202 b(:)g(:)f(l)11227 48009 y Fp(n)11853 47827 y Fu(v)12441 48009 y Fp(n)13067 47827 y Fs(i)475 b Fv(where)f Fs(h)q Fu(v)18648 48009 y Fn(0)19375 47827 y Fu(:)202 b(:)g(:)f(v)21579 48009 y Fp(n)22205 47827 y Fs(i)475 b Fv(is)f(a)g(no)34 b(de-path,)493 b(and)475 b Fu(v)34717 48009 y Fp(i)p Fo(\000)p Fn(1)37039 47125 y Fp(l)37320 47260 y Fm(i)36749 47827 y Fs(!)453 b Fu(v)39002 48009 y Fp(i)39831 47827 y Fs(2)h Fu(E)544 b Fv(for)475 b(all)e(0)454 b Fu(<)g(i)f Fs(\024)h Fu(n)p Fv(.)-1600 49483 y(Unlab)34 b(eled)462 b(graphs)i(ha)-34 b(v)g(e)463 b(only)f(no)34 b(de-paths.)716 b(P)-34 b(aths)463 b(of)g(the)g(form)g Fs(h)q Fu(v)31662 49665 y Fn(0)32187 49483 y Fs(i)g Fv(are)f(called)g Ft(trivial.)712 b Fv(The)463 b(\014rst)g(no)34 b(de)463 b(of)-1600 51139 y(a)484 b(path)h(\(or)e(a)h (no)34 b(de-path\))485 b Fu(p)f Fv(is)f(called)g(the)h Ft(sour)-62 b(c)g(e)482 b Fv(of)i Fu(p)p Fv(,)503 b(and)484 b(the)g(last)g(no)34 b(de)484 b(in)g Fu(p)f Fv(is)h(called)f(the)h Ft(tar)-62 b(get)481 b Fv(of)j Fu(p)p Fv(,)-1600 52795 y(denoted)438 b Fr(Source)p Fv(\()p Fu(p)p Fv(\))f(and)h Fr(T)-101 b(a)-34 b(rget)p Fv(\()p Fu(p)p Fv(\),)445 b(resp)34 b(ectiv)-34 b(ely)-101 b(.)634 b(The)437 b(elemen)-34 b(ts)437 b(other)g(than)h(the)f(source)f(and)i(the)f(target)g(of)-1600 54451 y(a)414 b(path)i(\(no)34 b(des)415 b(for)f(a)g(no)34 b(de-path,)418 b(no)34 b(des)415 b(and)g(edges)f(for)h(a)f(path\))i (are)d(the)i Ft(interior)e Fv(of)i(the)g(path.)570 b(F)-101 b(or)414 b(a)g(graph)-1600 56107 y Fu(G)p Fv(,)397 b(no)34 b(des)396 b Fu(u;)202 b(v)43 b Fv(,)396 b(and)g(sets)g(of)g(no)34 b(des)395 b Fu(U)m(;)202 b(V)269 b Fv(,)397 b(w)-34 b(e)396 b(de\014ne)g Fu(P)24684 56295 y Fp(G)25473 56107 y Fv(\()p Fu(u;)202 b(v)43 b Fv(\))395 b(to)h(b)34 b(e)395 b(the)h(set)g(of)g (all)e(paths)j(in)e Fu(G)h Fv(with)g(source)f Fu(u)-1600 57763 y Fv(and)405 b(target)f Fu(v)447 b Fv(and)405 b Fu(P)8499 57951 y Fp(G)9288 57763 y Fv(\()p Fu(U)m(;)202 b(V)270 b Fv(\))404 b(to)h(b)34 b(e)403 b(the)i(set)f(of)h(all)e(paths) j(in)e Fu(G)g Fv(with)h(source)f(in)g Fu(U)535 b Fv(and)405 b(with)g(target)g(in)f Fu(V)269 b Fv(.)282 59979 y(If)450 b Fu(p)2150 60161 y Fn(1)3089 59979 y Fv(=)414 b Fs(h)p Fu(v)5505 60161 y Fn(0)6232 59979 y Fu(:)202 b(:)g(:)f(l)8210 60161 y Fp(i)8586 59979 y Fu(v)9174 60161 y Fp(i)9549 59979 y Fs(i)451 b Fv(and)g Fu(p)13484 60161 y Fn(2)14423 59979 y Fv(=)413 b Fs(h)q Fu(v)16839 60161 y Fp(i)17214 59979 y Fu(l)17576 60161 y Fp(i)p Fn(+1)19355 59979 y Fu(:)202 b(:)g(:)g(v)21560 60161 y Fp(n)22185 59979 y Fs(i)451 b Fv(are)f(paths)h(with)g(the)g(target)f(of)h Fu(p)39125 60161 y Fn(1)40101 59979 y Fv(iden)-34 b(tical)450 b(to)h(the)f(source)-1600 61635 y(of)425 b Fu(p)411 61817 y Fn(2)937 61635 y Fv(,)k(w)-34 b(e)426 b(de\014ne)f(the)g (concatenation)h Fu(p)17514 61817 y Fn(1)18323 61635 y Fs(\001)283 b Fu(p)19553 61817 y Fn(2)20449 61635 y Fv(=)371 b Fs(h)q Fu(v)22823 61817 y Fn(0)23550 61635 y Fu(:)202 b(:)g(:)f(v)25754 61817 y Fp(i)p Fo(\000)p Fn(1)27332 61635 y Fu(l)27694 61817 y Fp(i)28069 61635 y Fu(v)28657 61817 y Fp(i)29032 61635 y Fu(l)29394 61817 y Fp(i)p Fn(+1)30972 61635 y Fu(v)31560 61817 y Fp(i)p Fn(+1)33340 61635 y Fu(:)h(:)g(:)f(v)35544 61817 y Fp(n)36170 61635 y Fs(i)p Fv(.)600 b(Notice)425 b(that)h Fu(p)44661 61817 y Fn(1)45470 61635 y Fs(\001)282 b Fu(p)46699 61817 y Fn(2)47650 61635 y Fv(con)-34 b(tains)-1600 63291 y(only)432 b(one)g(cop)-34 b(y)432 b(of)g(the)h(meeting)f(p)34 b(oin)-34 b(t)433 b Fu(v)18106 63473 y Fp(i)18481 63291 y Fv(.)622 b(Concatenation)434 b(of)e(no)34 b(de)432 b(paths)h(is)f(de\014ned)h (similarly)-101 b(.)621 b(Let)431 b Fu(P)49089 63473 y Fn(1)50047 63291 y Fv(and)-1600 64948 y Fu(P)-822 65130 y Fn(2)126 64948 y Fv(b)34 b(e)422 b(sets)g(of)h(paths)g(suc)-34 b(h)424 b(that)f(for)f(some)g(no)34 b(de)423 b Fu(v)43 b Fv(,)426 b Fr(T)-101 b(a)-34 b(rget)p Fv(\()p Fu(p)27922 65130 y Fn(1)28448 64948 y Fv(\))367 b(=)g Fu(v)465 b Fv(for)422 b(all)g Fu(p)35834 65130 y Fn(1)36726 64948 y Fs(2)367 b Fu(P)38679 65130 y Fn(1)39205 64948 y Fv(,)427 b(and)c Fr(Source)p Fv(\()p Fu(p)46822 65130 y Fn(2)47348 64948 y Fv(\))367 b(=)g Fu(v)465 b Fv(for)-1600 66604 y(all)404 b Fu(p)694 66786 y Fn(2)1556 66604 y Fs(2)337 b Fu(P)3479 66786 y Fn(2)4005 66604 y Fv(.)538 b(Then)405 b(w)-34 b(e)405 b(de\014ne)14193 69477 y Fu(P)14971 69659 y Fn(1)15766 69477 y Fs(\001)269 b Fu(P)17150 69659 y Fn(2)18013 69477 y Fv(=)336 b Fs(f)p Fu(p)20508 69659 y Fn(1)21303 69477 y Fs(\001)269 b Fu(p)22519 69659 y Fn(2)23382 69477 y Fs(j)336 b Fu(p)24665 69659 y Fn(1)25528 69477 y Fs(2)g Fu(P)27450 69659 y Fn(1)28380 69477 y Fv(and)405 b Fu(p)31347 69659 y Fn(2)32210 69477 y Fs(2)336 b Fu(P)34132 69659 y Fn(2)34658 69477 y Fs(g)607 b Fu(:)24897 75628 y Fv(7)p eop %%Page: 8 9 8 8 bop -1600 2325 a Fw(2.2)1495 b(Class)500 b(graphs)g(and)f(ob)83 b(ject)498 b(graphs)-1600 5324 y Fv(In)448 b(this)h(pap)34 b(er)448 b(w)-34 b(e)449 b(will)f(b)34 b(e)448 b(in)-34 b(terested)448 b(in)h(sp)34 b(ecial)447 b(kinds)i(of)f(graphs,)460 b(called)447 b(class)h(graphs)h(and)g(ob)67 b(ject)450 b(graphs,)-1600 6980 y(de\014ned)405 b(as)f(follo)-34 b(ws.)282 9196 y(Fix)402 b(a)h(\014nite)h(set)f Fs(C)474 b Fv(of)403 b Ft(class)431 b(names)p Fv(.)537 b(Eac)-34 b(h)404 b(class)e(name)h(is)g(either)g Ft(abstr)-62 b(act)400 b Fv(or)j Ft(c)-62 b(oncr)g(ete)p Fv(.)536 b(Fix)402 b(a)h(\014nite)h(set)f Fs(L)-1600 10852 y Fv(of)461 b Ft(\014eld)485 b(names)p Fv(.)708 b(W)-101 b(e)461 b(sometimes)g(call)f (\014eld)h(names)g Ft(lab)-62 b(els)p Fv(.)706 b(W)-101 b(e)460 b(assume)i(the)f(existence)f(of)h(t)-34 b(w)g(o)463 b(distinguished)-1600 12508 y(sym)-34 b(b)34 b(ols:)654 b Fq(this)435 b Fs(2)e(L)462 b Fv(and)h Fs(\005)568 b Fu(=)-741 b Fs(2)434 b(L)p Fv(.)712 b(Class)462 b(graphs)h(mo)34 b(del)462 b(the)g(class)g(structure)g(of)h(ob)67 b(ject-orien)-34 b(ted)463 b(programs.)-1600 14164 y(F)-101 b(ormally)g(,)403 b Ft(class)432 b(gr)-62 b(aphs)402 b Fv(are)h(graphs)i Fu(G)337 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))405 b(suc)-34 b(h)405 b(that)218 17376 y Fs(\017)606 b Fu(V)g Fs(\022)337 b(C)71 b Fv(,)404 b(i.e.,)e(the)j(no) 34 b(des)404 b(are)g(class)f(names.)218 20028 y Fs(\017)606 b Fu(L)456 b Fs(\022)g(L)317 b([)g(f\005g)p Fv(,)493 b(i.e.,)f(edges)476 b(are)f(lab)34 b(eled)475 b(b)-34 b(y)476 b(\014eld)f(names)h(or)g(\\)p Fs(\005)p Fv(".)753 b(Edges)475 b(lab)34 b(eled)475 b(b)-34 b(y)476 b(a)g(\014eld)g(name)f (are)1430 21684 y(called)404 b Ft(r)-62 b(efer)g(enc)g(e)402 b Fv(edges,)i(and)h(edges)f(lab)34 b(eled)403 b(b)-34 b(y)405 b Fs(\005)f Fv(are)f(called)h Ft(sub)-62 b(class)401 b Fv(edges.)218 24337 y Fs(\017)606 b Fv(F)-101 b(or)485 b(eac)-34 b(h)486 b Fu(v)514 b Fs(2)472 b Fu(V)270 b Fv(,)505 b(the)485 b(\014eld)h(names)f(of)h(all)e(edges)h(going)g(out)h (from)g Fu(v)528 b Fv(are)484 b(distinct)i(\(but)h(there)e(ma)-34 b(y)485 b(b)34 b(e)1430 25993 y(man)-34 b(y)405 b(edges)f(lab)34 b(eled)403 b(b)-34 b(y)405 b Fs(\005)f Fv(going)g(out)h(from)g Fu(v)43 b Fv(\).)218 28645 y Fs(\017)606 b Fv(F)-101 b(or)404 b(eac)-34 b(h)405 b Fu(v)379 b Fs(2)337 b Fu(V)674 b Fv(suc)-34 b(h)405 b(that)g Fu(v)447 b Fv(is)404 b(concrete,)f Fu(v)23529 27979 y Fl(this)23864 28645 y Fs(!)671 b Fu(v)380 b Fs(2)337 b Fu(E)70 b Fv(.)218 31297 y Fs(\017)606 b Fv(The)405 b(set)f(of)h(sub)34 b(class)404 b(edges)g(is)g(acyclic.) -1600 34510 y(W)-101 b(e)502 b(shall)h(use)f(the)h(\(re\015exiv)-34 b(e\))502 b(notion)i(of)f(a)g Ft(sup)-62 b(er)g(class)99 b Fv(:)732 b(giv)-34 b(en)502 b(a)h(class)f(graph)h Fu(G)e Fv(=)g(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\),)527 b(w)-34 b(e)503 b(sa)-34 b(y)503 b(that)-1600 36166 y Fu(v)397 b Fs(2)354 b Fu(V)683 b Fv(is)414 b(a)h(sup)34 b(erclass)414 b(of)h Fu(u)353 b Fs(2)h Fu(V)684 b Fv(if)414 b(there)g(is)g(a)h(\(p)34 b(ossibly)414 b(empt)-34 b(y\))416 b(path)f(of)g(sub)34 b(class)415 b(edges)f(from)g Fu(v)458 b Fv(to)414 b Fu(u)p Fv(.)569 b(The)-1600 37822 y(collection)396 b(of)g(all)g(sup)34 b(er-classes)396 b(of)h(a)f(class)g Fu(v)440 b Fv(is)396 b(called)g(the)h Ft(anc)-62 b(estry)394 b Fv(of)j Fu(v)43 b Fv(.)536 b(Multiple)396 b(inheritance)h (con\015icts)f(are)-1600 39478 y(disallo)-34 b(w)g(ed:)539 b(w)-34 b(e)405 b(require)e(that)i(the)g(follo)-34 b(wing)404 b(condition)h(holds)g(true.)1430 42690 y Fk(Single)464 b(Inheritance)e(Condition:)540 b Fv(F)-101 b(or)402 b(all)g(no)34 b(des)402 b Fu(v)43 b Fv(,)402 b(if)h Fu(v)445 b Fv(has)403 b(t)-34 b(w)g(o)403 b(sup)34 b(erclasses)402 b Fu(u)g Fv(and)h Fu(w)435 b Fv(with)1430 44346 y(outgoing)f(edges)f(lab)34 b(eled)433 b(b)-34 b(y)433 b(the)h(same)f(lab)34 b(el,)439 b(then)433 b(either)g Fu(u)g Fv(is)g(in)g(the)g(ancestry)g(of)g Fu(w)466 b Fv(or)432 b Fu(w)466 b Fv(is)433 b(in)1430 46002 y(the)405 b(ancestry)f(of)g Fu(u)p Fv(.)-1600 49214 y(The)521 b(set)h(of)f Ft(induc)-62 b(e)g(d)539 b(r)-62 b(efer)g(enc)g(es)519 b Fv(of)i(a)g(giv)-34 b(en)521 b(class)f Fu(v)564 b Fv(is)521 b(the)g(set)h(of)f(all)f(reference)g (edges)h(going)g(out)h(from)f(its)-1600 50870 y(ancestry)-101 b(,)408 b(with)g(the)f(usual)h(o)-34 b(v)g(erriding)407 b(rule:)544 b(for)408 b(eac)-34 b(h)407 b(lab)34 b(el)406 b Fu(l)431 b Fv(used)408 b(in)f(edges)g(going)h(out)g(from)f(the)h (ancestry)f(of)-1600 52526 y Fu(v)43 b Fv(,)394 b(only)e(the)g(edge)f (lab)34 b(eled)392 b Fu(l)415 b Fv(closest)391 b(to)i Fu(v)434 b Fv(is)392 b(in)g(the)g(induced)g(references)f(of)h Fu(v)43 b Fv(.)535 b(The)392 b(notion)h(of)f(\\closest")g(is)f(w)-34 b(ell)-1600 54182 y(de\014ned)374 b(b)-34 b(y)373 b(the)h(Single)f (Inheritance)g(Condition)h(ab)34 b(o)-34 b(v)g(e.)529 b(Note)373 b(that)h(since)f(a)g(class)g(is)f(a)h(sup)34 b(erclass)373 b(of)h(itself,)k(the)-1600 55838 y(induced)405 b(edges)f(include)g(b)34 b(oth)405 b(the)f(direct)g(references)f(and)i (the)g(inherited)f(references.)282 58055 y(Next,)367 b(w)-34 b(e)358 b(de\014ne)h Ft(obje)-62 b(ct)389 b(gr)-62 b(aphs)p Fv(,)365 b(whic)-34 b(h)359 b(mo)34 b(del)357 b(the)i(instan)-34 b(tiations)360 b(of)e(class)g(graphs.)524 b(An)358 b(ob)67 b(ject)359 b(graph)g(is)f(a)-1600 59711 y(lab)34 b(eled)417 b(directed)g(graph)h(\012)360 b(=)f(\()p Fu(V)14654 59271 y Fo(0)14964 59711 y Fu(;)202 b(E)16468 59271 y Fo(0)16778 59711 y Fu(;)g(L)18142 59271 y Fo(0)18453 59711 y Fv(\),)421 b(where)c(no)34 b(des)418 b(are)f(called)g Ft(obje)-62 b(cts)p Fv(,)418 b(and)g Fu(L)39559 59271 y Fo(0)40229 59711 y Fs(\022)359 b(L)p Fv(.)579 b(An)418 b(ob)67 b(ject)418 b(graph)-1600 61367 y(\012)436 b(=)g(\()p Fu(V)2537 60927 y Fo(0)2848 61367 y Fu(;)202 b(E)4352 60927 y Fo(0)4662 61367 y Fu(;)g(L)6026 60927 y Fo(0)6336 61367 y Fv(\))464 b(is)f(an)h Ft(instanc)-62 b(e)462 b Fv(of)i(a)g(class)f(graph)h Fu(G)436 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))464 b(under)g(a)f(giv)-34 b(en)464 b(function)h Fr(Class)e Fv(mapping)-1600 63023 y(ob)67 b(jects)405 b(to)g(classes,)e(if)h(the)h(follo)-34 b(wing)404 b(conditions)h(are)f(satis\014ed.)218 66235 y Fs(\017)606 b Fv(F)-101 b(or)404 b(all)g(ob)67 b(jects)405 b Fu(o)336 b Fs(2)h Fu(V)12483 65795 y Fo(0)12793 66235 y Fv(,)404 b Fr(Class)p Fv(\()p Fu(o)p Fv(\))g(is)g(concrete.)218 68887 y Fs(\017)606 b Fv(F)-101 b(or)463 b(eac)-34 b(h)462 b(ob)67 b(ject)464 b Fu(o)433 b Fs(2)h Fu(V)13417 68447 y Fo(0)13728 68887 y Fv(,)476 b(the)463 b(lab)34 b(els)462 b(of)h(edges)f(going)h(out)g(from)g Fu(o)e Fv(is)i(exactly)e(the)i(set) f(of)h(lab)34 b(els)462 b(of)g(the)1430 70543 y(induced)437 b(references)d(of)j Fr(Class)o Fv(\()p Fu(o)p Fv(\).)634 b(\(In)436 b(particular,)443 b(this)437 b(means)f(that)h(the)f(edges)g (going)g(out)g(from)g Fu(o)f Fv(ha)-34 b(v)g(e)1430 72199 y(distinct)405 b(lab)34 b(els.\))24897 75628 y(8)p eop %%Page: 9 10 9 9 bop 218 2499 a Fs(\017)606 b Fv(F)-101 b(or)542 b(eac)-34 b(h)543 b(edge)f Fu(o)11122 1833 y Fp(l)10662 2499 y Fs(!)567 b Fu(o)13029 2059 y Fo(0)13905 2499 y Fs(2)g Fu(E)16245 2059 y Fo(0)16555 2499 y Fv(,)577 b Fr(Class)o Fv(\()p Fu(o)p Fv(\))543 b(has)f(an)h(induced)g(reference)d(edge)i Fu(v)40673 1833 y Fp(l)40213 2499 y Fs(!)567 b Fu(u)542 b Fv(suc)-34 b(h)543 b(that)g Fu(v)585 b Fv(is)542 b(a)1430 4155 y(sup)34 b(erclass)404 b(of)h Fr(Class)o Fv(\()p Fu(o)p Fv(\))g(and)g Fu(u)f Fv(is)f(a)i(sup)34 b(erclass)403 b(of)i Fr(Class)p Fv(\()p Fu(o)29448 3715 y Fo(0)29758 4155 y Fv(\).)-1600 7367 y(F)-101 b(or)520 b(the)g(greater)f(part)h(of) g(this)h(pap)34 b(er,)548 b(w)-34 b(e)520 b(shall)g(assume)g(that)h(ob) 67 b(ject)521 b(graphs)f(are)f(acyclic.)884 b(W)-101 b(e)519 b(discuss)i(an)-1600 9023 y(extension)404 b(to)h(cyclic)d(ob)67 b(ject)405 b(graphs)g(in)f(Section)h(5.4.)-1600 12984 y Fw(2.3)1495 b(Non-standard)502 b(notions)-1600 15983 y Fv(In)404 b(this)h(pap)34 b(er,)404 b(w)-34 b(e)404 b(assume)h(that)g(class)f(graphs)g(are)g Ft(simple)p Fv(,)e(formally)i(de\014ned)h(as)f(follo)-34 b(ws.)-1600 18531 y Fk(De\014nition)466 b(2.1)606 b Ft(A)434 b(class)e(gr)-62 b(aph)432 b Fu(G)337 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))434 b Ft(is)f Fr(simple)f Ft(if)-167 21893 y(1.)605 b(for)433 b(al)62 b(l)433 b(e)-62 b(dges)432 b Fu(u)9752 21227 y Fp(l)9291 21893 y Fs(!)337 b Fu(v)380 b Fs(2)336 b Fu(E)70 b Ft(,)434 b(we)f(have)f(that)g Fu(l)360 b Fv(=)337 b Fs(\005)433 b Ft(if)h(and)f(only)g(if)g Fu(u)g Ft(is)g(abstr)-62 b(act,)431 b(and)-167 24545 y(2.)605 b(for)433 b(al)62 b(l)433 b(e)-62 b(dges)432 b Fu(u)9662 23879 y Fo(\005)9291 24545 y Fs(!)337 b Fu(v)380 b Fs(2)336 b Fu(E)70 b Ft(,)434 b(we)f(have)f(that)g Fu(v)477 b Ft(is)433 b(c)-62 b(oncr)g(ete.)-1600 27758 y Fv(The)487 b(\014rst)f(requiremen)-34 b(t)486 b(sa)-34 b(ys)486 b(that)h(all)f(edges)g(going)g(out)h(from)f(abstract)h (classes)e(are)h(sub)34 b(class)486 b(edges)g(and)h(all)-1600 29414 y(edges)462 b(going)h(out)g(from)g(concrete)f(classes)f(are)h (reference)f(edges.)714 b(This)463 b(prop)34 b(ert)-34 b(y)462 b(is)g(called)g Ft(\015atness)p Fv(.)712 b(Flatness)-1600 31070 y(helps)470 b(us)f(map)h(paths)h(in)e(a)g(class)g(graph)h Fu(G)f Fv(to)h(paths)g(in)g(an)f(ob)67 b(ject)471 b(graph)e(whic)-34 b(h)471 b(is)e(an)g(instance)h(of)g Fu(G)p Fv(.)733 b(The)-1600 32726 y(second)389 b(requiremen)-34 b(t)389 b(sa)-34 b(ys)389 b(that)h(all)e(sub)34 b(class)389 b(edges)g(are)g(coming)f(in) -34 b(to)390 b(concrete)e(classes;)394 b(this)389 b(helps)g(us)h (\014nd)g(all)-1600 34382 y(sub)34 b(classes)369 b(of)h(a)f(giv)-34 b(en)370 b(class)f(quic)-34 b(kly)-101 b(.)525 b(Note)370 b(that)g(no)g(generalit)-34 b(y)369 b(is)g(lost)g(b)-34 b(y)370 b(the)g(assumption)h(that)f(class)f(graphs)-1600 36038 y(are)404 b(simple,)f(as)h(the)h(follo)-34 b(wing)405 b(prop)34 b(osition)404 b(asserts.)-1600 38254 y Fk(Prop)39 b(osition)465 b(2.1)607 b Ft(L)-62 b(et)557 b Fu(G)563 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))558 b Ft(b)-62 b(e)558 b(an)g(arbitr)-62 b(ary)556 b(class)g(gr)-62 b(aph.)930 b(Then)558 b(ther)-62 b(e)557 b(exists)f(a)i(simple)f(class) -1600 39910 y(gr)-62 b(aph)433 b Fr(Simplify)p Fv(\()p Fu(G)p Fv(\))340 b(=)f(\()p Fu(V)10726 39470 y Fo(0)11037 39910 y Fu(;)202 b(E)12541 39470 y Fo(0)12850 39910 y Fu(;)g(L)p Fv(\))436 b Ft(such)d(that)g(an)j(obje)-62 b(ct)432 b(gr)-62 b(aph)434 b Fv(\012)h Ft(is)g(an)g(instanc)-62 b(e)434 b(of)g Fu(G)h Ft(if)f(and)h(only)g(if)f Fv(\012)i Ft(is)e(an)-1600 41566 y(instanc)-62 b(e)432 b(of)h Fr(Simplify)p Fv(\()p Fu(G)p Fv(\))p Ft(.)558 b(Mor)-62 b(e)g(over,)431 b Fs(j)p Fu(V)18465 41126 y Fo(0)18776 41566 y Fs(j)336 b Fv(=)h Fu(O)34 b Fv(\()p Fs(j)p Fu(V)269 b Fs(j)p Fv(\))433 b Ft(and)h Fs(j)p Fu(E)28370 41126 y Fo(0)28679 41566 y Fs(j)337 b Fv(=)f Fu(O)34 b Fv(\()p Fs(j)p Fu(E)70 b Fs(j)33701 41126 y Fn(2)34226 41566 y Fv(\))p Ft(.)-1600 43782 y Fv(The)551 b Fr(Simplify)f Fv(transformation)i(is)f(outlined)g (in)g(App)34 b(endix)551 b(A.)978 b(Note)551 b(that)g(the)g(output)i (of)e(our)g(compilation)-1600 45438 y(algorithm)381 b(is)g(a)g(set)h (of)f(metho)34 b(ds)382 b(on)f(an)h(arbitrary)f(class)f(graph,)386 b(i.e.)380 b(it)h(need)h(not)g(b)34 b(e)380 b(simple.)531 b(An)381 b(existing)g(class)-1600 47094 y(structure)279 b(do)34 b(es)279 b(not)g(need)g(to)g(b)34 b(e)279 b(mo)34 b(di\014ed)279 b(to)g(b)34 b(e)279 b(used)g(with)h(our)e(algorithm;)321 b(it)279 b(is)f(only)h(the)g(graph)g(represen)-34 b(tation)-1600 48750 y(of)404 b(the)h(class)f(structure)g(that)i(ma)-34 b(y)404 b(need)g(to)h(b)34 b(e)404 b(pre-pro)34 b(cessed)403 b(b)-34 b(y)405 b(the)f Fr(Simplify)g Fv(transformation.)282 50966 y(De\014ne)377 b(a)f Ft(c)-62 b(oncr)g(ete)407 b(p)-62 b(ath)374 b Fv(to)j(b)34 b(e)377 b(an)f(alternating)i(sequence) e(of)h(concrete)e(class)i(names)g(and)g(lab)34 b(els)376 b(\(excluding)-1600 52622 y Fs(\005)p Fv(\).)730 b(W)-101 b(e)467 b(shall)h(map)g(paths)h(in)f(class)f(graphs)i(to)f(concrete)f (paths)i(b)-34 b(y)468 b(omitting)g(abstract)h(classes)e(and)i(sub)34 b(class)-1600 54278 y(edges.)670 b(W)-101 b(e)447 b(refer)h(to)g(this)h (mapping)g(as)f(the)g Ft(natur)-62 b(al)473 b(c)-62 b(orr)g(esp)g (ondenc)g(e)p Fv(,)455 b(and)449 b(denote)g(it)f(b)-34 b(y)448 b Fu(X)95 b Fv(\()p Fu(p)p Fv(\),)460 b(where)447 b Fu(p)h Fv(is)g(a)-1600 55934 y(path)317 b(in)e(a)g(class)g(graph)h Fu(G)f Fv(and)h Fu(X)95 b Fv(\()p Fu(p)p Fv(\))317 b(is)e(the)g (corresp)34 b(onding)316 b(concrete)f(path.)510 b(Similarly)-101 b(,)331 b(w)-34 b(e)316 b(denote)g(the)g(concrete)-1600 57590 y(path)404 b(resulting)e(from)h(taking)f(the)h(sequence)f(of)h (class)f(names)h(and)g(edge)f(lab)34 b(els)402 b(in)g(an)h(ob)67 b(ject)403 b(graph)g(path)h Fu(p)50008 57150 y Fo(0)50721 57590 y Fv(b)-34 b(y)-1600 59246 y Fu(Y)269 b Fv(\()p Fu(p)454 58806 y Fo(0)765 59246 y Fv(\),)366 b(and)358 b(\(o)-34 b(v)g(erloading)358 b(the)f(term\))h(w)-34 b(e)357 b(call)f(this)i(mapping)g(also)f(a)g Ft(natur)-62 b(al)389 b(c)-62 b(orr)g(esp)g(ondenc)g(e)p Fv(.)519 b(The)358 b(motiv)-67 b(ation)-1600 60902 y(for)394 b(these)h (de\014nitions)g(is)f(that)h(if)f Fu(p)g Fv(is)g(a)g(path)h(in)f(a)g (class)g(graph)g Fu(G)p Fv(,)i(then)f(there)f(is)g(some)g(ob)67 b(ject)395 b(graph)g(\012)f(whic)-34 b(h)-1600 62558 y(is)404 b(an)g(instance)h(of)f Fu(G)p Fv(,)g(and)h(a)f(path)h Fu(p)15902 62118 y Fo(0)16617 62558 y Fv(in)f(\012,)g(suc)-34 b(h)405 b(that)g Fu(X)95 b Fv(\()p Fu(p)p Fv(\))338 b(=)f Fu(Y)269 b Fv(\()p Fu(p)31330 62118 y Fo(0)31640 62558 y Fv(\).)282 64924 y(F)-101 b(or)404 b(a)g(class)g(graph)h(path)g(set)f Fu(P)168 b Fv(,)404 b(de\014ne)h Fu(X)95 b Fv(\()p Fu(P)168 b Fv(\))22981 64258 y Fn(def)23159 64924 y Fv(=)514 b Fs(f)q Fu(X)95 b Fv(\()p Fu(p)p Fv(\))337 b Fs(j)g Fu(p)f Fs(2)h Fu(P)168 b Fs(g)p Fv(.)24897 75628 y(9)p eop %%Page: 10 11 10 10 bop -1600 2325 a Fx(3)1793 b(De\014nition)599 b(of)f(tra)-50 b(v)g(ersals)-1600 5741 y Fv(W)-101 b(e)373 b(no)-34 b(w)374 b(arriv)-34 b(e)373 b(at)g(the)h(cen)-34 b(tral)373 b(topic)h(of)g(this)g(pap)34 b(er:)523 b(tra)-34 b(v)g(ersals)373 b(of)h(ob)67 b(ject)374 b(graphs.)529 b(Informally)-101 b(,)379 b(a)373 b(tra)-34 b(v)g(ersal)373 b(is)-1600 7397 y(a)447 b(\(p)34 b(ossibly)447 b(in\014nite\))h(set)e(of)i (concrete)e(paths;)469 b(when)447 b(used)h(in)f(conjunction)h(with)f (an)h(ob)67 b(ject)447 b(graph,)458 b(it)447 b(results)-1600 9053 y(in)383 b(a)g(sequence)f(of)i(ob)67 b(jects,)388 b(called)382 b(the)h Ft(tr)-62 b(aversal)412 b(history)p Fv(.)529 b(The)383 b(tra)-34 b(v)g(ersal)383 b(history)g(is)g(a)g (depth-\014rst)i(tra)-34 b(v)g(ersal)383 b(of)-1600 10709 y(the)393 b(ob)67 b(ject)394 b(graph)f(along)g(ob)67 b(ject)394 b(paths)g(agreeing)e(with)i(the)f(giv)-34 b(en)392 b(concrete)g(path)i(set.)535 b(T)-101 b(o)393 b(mak)-34 b(e)393 b(the)g(tra)-34 b(v)g(ersal)-1600 12365 y(useful,)397 b(eac)-34 b(h)396 b(ob)67 b(ject)396 b(has)g(a)f(sp)34 b(ecial)394 b Ft(visit)g Fv(metho)34 b(d)396 b(attac)-34 b(hed)396 b(to)g(it;)i(when)e(an)f(ob)67 b(ject)397 b(is)e(added)h(to)f (the)h(tra)-34 b(v)g(ersal)-1600 14021 y(history)-101 b(,)431 b(this)c(metho)34 b(d)427 b(is)f(in)-34 b(v)g(ok)g(ed.)605 b(\(A)426 b(more)g(comprehensiv)-34 b(e)426 b(discussion)h(of)f(the)h (Visitor)f(design)g(pattern)h(and)-1600 15677 y(visitor)404 b(metho)34 b(ds)404 b(can)h(b)34 b(e)403 b(found)j(in)e([GHJV95,)g (SPL96,)g(SPL98].\))282 17893 y(But)365 b(\014rst,)373 b(w)-34 b(e)366 b(de\014ne)f(tra)-34 b(v)g(ersals)365 b(formally)-101 b(.)525 b(The)365 b(de\014nition)h(here)f(is)f(adapted) j(from)e(the)g(\\simpli\014ed)h(seman-)-1600 19549 y(tics")372 b(from)g([PPL97].)527 b(W)-101 b(e)372 b(use)g(a)g(few)h(tec)-34 b(hnical)372 b(notions.)529 b(F)-101 b(or)372 b(a)g(set)h(of)f (sequences)g Fu(R)346 b Fs(\022)337 b Fv(\006)41430 19109 y Fo(\003)42328 19549 y Fv(for)372 b(an)h(alphab)34 b(et)373 b(\006,)-1600 21205 y(de\014ne)13741 24073 y Fr(head)q Fv(\()p Fu(R)9 b Fv(\))1108 b(=)f Fs(f)p Fu(x)336 b Fs(2)h Fv(\006)g Fs(j)f(9)p Fu(\013)t(:)p Fv(\()p Fu(x\013)343 b Fs(2)337 b Fu(R)9 b Fv(\))p Fs(g)13284 26061 y Fr(tail)o Fv(\()p Fu(R)g(;)202 b(x)p Fv(\))1108 b(=)f Fs(f)p Fu(\013)341 b Fs(j)c Fu(x\013)k Fs(2)c Fu(R)414 b Fv(for)404 b(some)g Fu(x)336 b Fs(2)h Fv(\006)p Fs(g)405 b Fu(:)-1600 28928 y Fv(In)-34 b(tuitiv)g(ely)-101 b(,)322 b Fr(head)q Fv(\()p Fu(R)9 b Fv(\))304 b(is)d(the)i(set)f(of)h(all)e(\014rst)i(elemen)-34 b(ts)302 b(of)g Fu(R)9 b Fv(,)323 b(and)303 b Fr(tail)o Fv(\()p Fu(R)9 b(;)202 b(x)p Fv(\))303 b(is)f(the)h(set)f(of)g(all)g (\\tails")g(of)g(sequences)-1600 30584 y(of)404 b Fu(R)414 b Fv(that)406 b(start)e(with)h Fu(x)f Fv(\(where)g(a)h(tail)e(of)i(a)f (sequence)g(is)f(the)i(whole)f(sequence)g(except)g(its)g(\014rst)h (elemen)-34 b(t\).)282 32800 y(In)470 b(the)g(de\014nition)i(b)34 b(elo)-34 b(w,)486 b(w)-34 b(e)470 b(assume)h(that)g(there)f(exists)g (a)g(total)g(order)g Fs(\036)g Fv(on)g(the)h(set)f(of)g(\014eld)h (names)f Fs(L)-1600 34456 y Fv(\(this)414 b(assumption)h(ma)-34 b(y)414 b(b)34 b(e)413 b(w)-34 b(eak)g(ened)414 b(somewhat\).)568 b(W)-101 b(e)412 b(\014rst)i(giv)-34 b(e)413 b(the)h(formal)f (de\014nition,)j(then)f(explain)e(it)g(in)-1600 36112 y(w)-34 b(ords.)-1600 38660 y Fk(De\014nition)466 b(3.1)f(\(from)f ([PPL97)q(]\))606 b Ft(Fix)512 b(a)g(class)e(gr)-62 b(aph)510 b Fu(G)p Ft(.)793 b(If)512 b Fv(\012)g Ft(is)f(an)i(acyclic)c(obje)-62 b(ct)510 b(gr)-62 b(aph)510 b(which)h(is)g(an)-1600 40316 y(instanc)-62 b(e)560 b(of)g Fu(G)p Ft(,)592 b Fu(o)561 b Ft(an)g(obje)-62 b(ct)558 b(in)k Fv(\012)p Ft(,)593 b Fu(R)570 b Ft(a)561 b(set)f(of)g(c)-62 b(oncr)g(ete)559 b(p)-62 b(aths)559 b(c)-62 b(orr)g(esp)g(onding)558 b(to)i(p)-62 b(aths)559 b(of)h Fu(G)p Ft(,)593 b(and)560 b Fu(H)659 b Ft(a)-1600 41972 y(se)-62 b(quenc)g(e)431 b(of)i(obje)-62 b(cts,)431 b(then)i(the)f(judgment)21253 43628 y Fv(\012)337 b Fs(`)23206 43810 y Fp(s)24033 43628 y Fu(o)f Fv(:)g Fu(R)279 b Fj(\003)269 b Fu(H)-1600 46000 y Ft(me)-62 b(ans)424 b(that)f(when)h(tr)-62 b(aversing)422 b(the)h(obje)-62 b(ct)422 b(gr)-62 b(aph)423 b Fv(\012)h Ft(starting)f(with)h Fu(o)p Ft(,)h(and)f(guide)-62 b(d)422 b(by)h(the)g(c)-62 b(oncr)g(ete)423 b(p)-62 b(ath)422 b(set)i Fu(R)9 b Ft(,)-1600 47656 y(then)433 b Fu(H)532 b Ft(is)433 b(the)f Fr(traversal)404 b(histo)-34 b(ry)p Ft(.)14372 47216 y Fn(1)15455 47656 y Ft(This)433 b(judgment)f(holds)f(when)j(it)f(is)g(derivable)d(using)j (the)f(fol)62 b(lowing)433 b(rules:)p 8259 50243 7281 45 v 8259 51355 a Fv(\012)337 b Fs(`)10212 51537 y Fp(s)11039 51355 y Fu(o)f Fv(:)g Fu(R)279 b Fj(\003)269 b Fu(\017)18140 50523 y Ft(if)433 b Fr(tail)o Fv(\()p Fu(R)9 b(;)202 b Fr(Class)q Fv(\()p Fu(o)p Fv(\)\))337 b(=)f Fs(;)p Ft(,)20424 b Fv(\(1\))-1600 53754 y Ft(wher)-62 b(e)433 b Fu(\017)h Ft(denotes)d(the)i(empty)f(history,)f(and)-1427 57176 y Fv(\012)337 b Fs(`)526 57358 y Fp(s)1353 57176 y Fu(o)1941 57358 y Fp(i)2653 57176 y Fv(:)f Fr(tail)p Fv(\()p Fr(tail)o Fv(\()p Fu(R)9 b(;)202 b Fr(Class)q Fv(\()p Fu(o)p Fv(\)\))p Fu(;)g(l)14414 57358 y Fp(i)14790 57176 y Fv(\))269 b Fj(\003)h Fu(H)17751 57358 y Fp(i)20646 57176 y Fs(8)p Fu(i)336 b Fs(2)h Fv(1)p Fu(::n)p -1427 57715 26653 45 v 4809 58827 a Fv(\012)g Fs(`)6762 59009 y Fp(s)7589 58827 y Fu(o)f Fv(:)h Fu(R)279 b Fj(\003)269 b Fu(o)g Fs(\001)g Fu(H)14069 59009 y Fn(1)14864 58827 y Fs(\001)g Fu(:::)f Fs(\001)h Fu(H)18363 59009 y Fp(n)27825 56221 y Ft(if)433 b Fr(head)q Fv(\()p Fr(tail)p Fv(\()p Fu(R)9 b(;)202 b Fr(Class)p Fv(\()p Fu(o)p Fv(\)\)\))338 b(=)f Fs(f)p Fu(l)43020 56403 y Fp(i)43732 56221 y Fs(j)f Fu(i)g Fs(2)h Fv(1)p Fu(::n)p Fs(g)p Ft(,)27825 58063 y Fu(o)29039 57361 y Fp(l)29320 57496 y Fm(i)28749 58063 y Fs(!)g Fu(o)30886 58245 y Fp(i)31695 58063 y Ft(is)433 b(in)h Fv(\012)p Fu(;)202 b(i)336 b Fs(2)h Fv(1)p Fu(::n)p Ft(,)433 b(and)27825 59719 y Fu(l)28187 59901 y Fp(j)29010 59719 y Fs(\036)337 b Fu(l)30652 59916 y Fp(k)31654 59719 y Ft(for)433 b Fv(1)337 b Fs(\024)f Fu(j)407 b(<)336 b(k)375 b Fs(\024)336 b Fu(n)p Ft(.)50451 61093 y Fv(\(2\))-1600 63640 y(In)416 b(other)f(w)-34 b(ords,)419 b(a)d(tra)-34 b(v)g(ersal)415 b(of)h(an)g(ob)67 b(ject)416 b(graph)g(\012)g(starting) g(with)h(an)e(ob)67 b(ject)417 b Fu(o)e Fv(guided)h(b)-34 b(y)416 b(a)f(path)i(set)f Fu(R)9 b Fv(,)418 b(is)-1600 65296 y(done)464 b(as)f(follo)-34 b(ws.)715 b(First,)478 b(the)463 b(\014rst)h(elemen)-34 b(ts)463 b(of)g(the)h(sequences)e(of)i Fu(R)472 b Fv(are)463 b(compared)g(to)g Fr(Class)p Fv(\()p Fu(o)p Fv(\):)656 b(sequences)-1600 66952 y(b)34 b(eginning)437 b(with)f(another)h(elemen)-34 b(t)436 b(are)g(immediately)f(thro)-34 b(wn)438 b(out)e(of)h(consideration.)634 b(If)436 b(the)h(remaining)f (path)-1600 68608 y(set)328 b(is)g(not)h(empt)-34 b(y)-101 b(,)343 b(then)329 b Fu(o)f Fv(b)34 b(ecomes)327 b(the)i(\014rst)f (elemen)-34 b(t)328 b(of)h(the)f(history;)353 b(it)328 b(is)g(follo)-34 b(w)g(ed)329 b(b)-34 b(y)328 b(the)h(histories)f (resulting)-1600 70264 y(from)504 b(starting)g(a)f(tra)-34 b(v)g(ersal)503 b(from)h(eac)-34 b(h)504 b(descenden)-34 b(t)504 b(of)g Fu(o)p Fv(,)527 b(guided)504 b(b)-34 b(y)504 b(the)g(remainder)f(of)h(the)g(path)g(set)g(after)p -1600 71081 21440 45 v -218 71884 a Fi(1)243 72307 y Fy(The)341 b(lab)28 b(el)343 b Fh(s)e Fy(of)h(the)f(turnstile)h(indicates)h (\\seman)-28 b(tics.")24594 75628 y Fv(10)p eop %%Page: 11 12 11 11 bop -1600 2325 a Fv(\\p)34 b(eeling)474 b(o\013)94 b(")475 b(the)g(\014rst)h(t)-34 b(w)g(o)476 b(elemen)-34 b(ts)475 b(\(corresp)34 b(onding)475 b(to)g Fu(o)f Fv(and)i(the)f(edge) g(going)g(out)g(to)g(the)h(descenden)-34 b(t\).)-1600 3981 y(In)g(tuitiv)g(ely)-101 b(,)334 b(this)317 b(pro)34 b(cedure)317 b(is)f(depth-\014rst)j(searc)-34 b(h)317 b(on)g(\012)g(with)g Fu(R)327 b Fv(used)317 b(to)g(determine)g(ho)-34 b(w)318 b(to)f(prune)g(the)g(searc)-34 b(h.)-1600 5637 y(Please)356 b(note)i(that)h(concatenation)f(of)f(tra)-34 b(v)g(ersal)358 b(histories)f(do)34 b(es)357 b(not)h(use)f(the)h(same)f (de\014nition)i(as)e(concatenation)-1600 7293 y(of)404 b(paths;)i(it)e(is)g(the)g(usual)h(concatenation)g(of)f(sequences.) -1600 11205 y Fk(Remarks.)1211 b Fv(Note)409 b(that)g(the)f(guaran)-34 b(tee)409 b(made)f(b)-34 b(y)408 b(a)g(tra)-34 b(v)g(ersal)408 b(guided)g(b)-34 b(y)409 b(a)e(path)j(set)e Fu(R)417 b Fv(is)408 b(the)g(follo)-34 b(wing:)547 b(A)-1600 12861 y(path)409 b Fu(p)f Fv(in)g(the)h(ob)67 b(ject)409 b(graph)f(is)g (follo)-34 b(w)g(ed)409 b(so)f(long)h(as)f(there)g(is)f(a)i(path)g Fu(q)387 b Fs(2)343 b Fu(R)418 b Fv(suc)-34 b(h)409 b(that)g Fu(q)451 b Fv(has)409 b(a)f(pre\014x)g(whic)-34 b(h)-1600 14517 y(is)408 b(equal)h(to)g(the)g(curren)-34 b(t)409 b(pre\014x)f(of)h Fu(p)g Fv(\(taking)g(the)g Fr(Class)p Fv(\()p Fu(o)p Fv(\))g(instead)g(of)g Fu(o)f Fv(in)h Fu(p)p Fv(\).)552 b(In)409 b(other)g(w)-34 b(ords,)410 b(the)f(decision)-1600 16173 y(whether)444 b(the)f(tra)-34 b(v)g(ersal)443 b(tak)-34 b(es)443 b(a)g(certain)g(branc)-34 b(h)444 b(in)f(the)g(ob)67 b(ject)444 b(graph)g(dep)34 b(ends)443 b(only)g(on)g(the)h(p)34 b(ortion)443 b(of)g(the)-1600 17829 y(graph)g(visited)e(so)i(far)f(and)h(on)f(the)h(curren)-34 b(t)442 b(branc)-34 b(h,)452 b(and)443 b(not)g(on)g(the)f(links)g (further)h(ahead.)653 b(This)442 b(means,)452 b(for)-1600 19485 y(example,)423 b(that)e(ev)-34 b(en)420 b(if)g(all)g(paths)h(in)f Fu(R)430 b Fv(end)420 b(with)h(the)g(same)f(class)f Fu(A)p Fv(,)424 b(some)c(of)h(the)f(tra)-34 b(v)g(ersal)420 b(paths)h(ma)-34 b(y)420 b(end)-1600 21141 y(with)391 b(a)f(no)34 b(de)390 b Fu(o)f Fv(with)i Fr(Class)p Fv(\()p Fu(o)p Fv(\))337 b Fs(6)p Fv(=)f Fu(A)390 b Fv(just)i(b)34 b(ecause)389 b(the)i(path)g(to)f Fu(o)g Fv(is)f(a)h(pre\014x)g(of)g(a)g (path)h(in)f Fu(R)9 b Fv(.)535 b(This)390 b(relaxation)-1600 22797 y(is)427 b(necessary)f(to)h(enable)g(e\016cien)-34 b(t)426 b(implemen)-34 b(tation)428 b(of)g(tra)-34 b(v)g(ersals)426 b(b)-34 b(y)428 b(lo)34 b(oking)426 b(only)g(ahead)i(in)f(the)g(class)f (graph)-1600 24453 y(and)405 b(not)g(in)f(the)h(ob)67 b(ject)405 b(graph)f(as)g(discussed)h(earlier.)-1600 29031 y Fx(4)1793 b(Strategies:)799 b(Sp)50 b(eci\014cation)599 b(of)e(tra)-50 b(v)g(ersals)-1600 32448 y Fv(In)500 b(this)h(section)f (w)-34 b(e)501 b(de\014ne)g(strategies,)524 b(whic)-34 b(h)501 b(are)f(a)g(graph-based)i(language)f(for)f(expressing)g(tra)-34 b(v)g(ersals.)827 b(In)-1600 34104 y(Section)347 b(4.1)g(w)-34 b(e)347 b(giv)-34 b(e)346 b(a)h(basic)g(de\014nition)h(of)f(strategies) g(and)g(explain)g(ho)-34 b(w)348 b(strategies)f(express)f(tra)-34 b(v)g(ersals.)519 b(Then,)-1600 35760 y(in)336 b(Section)g(4.2,)349 b(w)-34 b(e)336 b(giv)-34 b(e)335 b(the)i(full)f(de\014nition)g(of)h (strategies)e(using)i(the)f(additional)h(concept)f(of)g(a)g(constrain) -34 b(t)337 b(map.)-1600 37416 y(This)449 b(extended)f(notion)i(is)d (the)i(one)f(w)-34 b(e)449 b(shall)f(b)34 b(e)448 b(using)h(in)f(the)h (remainder)e(of)i(the)f(pap)34 b(er.)671 b(In)448 b(Section)h(4.3,)459 b(w)-34 b(e)-1600 39072 y(discuss)405 b(a)f(few)g(p)34 b(ossible)404 b(additional)h(re\014nemen)-34 b(ts)405 b(of)g(the)f(concept)h(of)f(strategies.)-1600 43033 y Fw(4.1)1495 b(Strategies)-1600 46032 y Fv(T)-101 b(ra)-34 b(v)g(ersals)402 b(are)f(de\014ned)i(in)f(terms)g(of)h(sets)f(of)g (concrete)f(paths.)540 b(Strategies)402 b(select)f(class)h(graph)g (paths)h(and)g(then)-1600 47688 y(deriv)-34 b(e)543 b(concrete)f(paths) j(b)-34 b(y)544 b(applying)f(the)h(natural)g(corresp)34 b(ondence.)956 b(In)-34 b(tuitiv)g(ely)-101 b(,)578 b(a)543 b(strategy)h(selects)e(class)-1600 49344 y(graph)464 b(paths)g(b)-34 b(y)464 b(sp)34 b(ecifying)463 b(a)g(high-lev)-34 b(el)462 b(top)34 b(ology)464 b(whic)-34 b(h)464 b(spans)g(all)e(paths) j(in)e(the)h(selected)e(set.)716 b(F)-101 b(ormally)g(,)-1600 51000 y(strategies)404 b(are)g(de\014ned)h(as)f(follo)-34 b(ws.)-1600 53548 y Fk(De\014nition)466 b(4.1)606 b Ft(A)460 b Fr(strategy)f Fs(S)550 b Ft(is)459 b(a)g(triple)f Fs(S)475 b Fv(=)383 b(\()p Fu(S)s(;)202 b(s;)g(t)p Fv(\))p Ft(,)465 b(wher)-62 b(e)459 b Fu(S)454 b Fv(=)383 b(\()p Fu(C)19 b(;)202 b(D)34 b Fv(\))460 b Ft(is)f(a)g(dir)-62 b(e)g(cte)g(d)457 b(unlab)-62 b(ele)g(d)457 b(gr)-62 b(aph)-1600 55204 y(c)g(al)62 b(le)-62 b(d)427 b(the)h Fr(strategy)399 b(graph)p Ft(,)431 b(wher)-62 b(e)428 b Fu(C)516 b Ft(is)429 b(the)f(set)g(of)h Fr(strategy)398 b(graph)j(no)34 b(des)429 b Ft(and)f Fu(D)463 b Ft(is)428 b(the)h(set)f(of)g Fr(strategy)399 b(graph)-1600 56860 y(edges)p Ft(,)433 b(and)g Fu(s;)202 b(t)336 b Fs(2)h Fu(C)521 b Ft(ar)-62 b(e)433 b(the)f Fr(source)h Ft(and)h Fr(ta)-34 b(rget)433 b Ft(of)g Fs(S)91 b Ft(,)434 b(r)-62 b(esp)g(e)g(ctively.)-1600 59408 y Fv(The)405 b(connection)f(b)34 b(et)-34 b(w)g(een)405 b(strategies)f(and)h(class)f(graphs)h(is)f(done)g(b)-34 b(y)405 b(a)f(name)g(map,)h(de\014ned)g(as)f(follo)-34 b(ws.)-1600 61956 y Fk(De\014nition)466 b(4.2)606 b Ft(L)-62 b(et)482 b Fu(S)494 b Fv(=)424 b(\()p Fu(C)19 b(;)202 b(D)34 b Fv(\))483 b Ft(b)-62 b(e)481 b(a)g(str)-62 b(ate)g(gy)480 b(gr)-62 b(aph)480 b(and)i(let)f Fu(G)424 b Fv(=)g(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))482 b Ft(b)-62 b(e)481 b(a)h(class)e(gr)-62 b(aph.)701 b(A)482 b Fr(name)-1600 63612 y(map)462 b Ft(for)f Fu(S)531 b Ft(and)461 b Fu(G)g Ft(is)g(a)g(function)f Fs(N)565 b Fv(:)386 b Fu(C)474 b Fs(!)387 b Fu(V)269 b Ft(.)641 b(If)461 b Fu(p)g Ft(is)g(a)g(se)-62 b(quenc)g(e)458 b(of)j(str)-62 b(ate)g(gy)459 b(gr)-62 b(aph)459 b(no)-62 b(des,)467 b(then)461 b Fs(N)179 b Fv(\()p Fu(p)p Fv(\))461 b Ft(is)-1600 65268 y(the)432 b(se)-62 b(quenc)g(e)432 b(of)h(class)e(no)-62 b(des)433 b(obtaine)-62 b(d)431 b(by)i(applying)e Fs(N)612 b Ft(to)433 b(e)-62 b(ach)432 b(element)g(of)h Fu(p)p Ft(.)282 67817 y Fv(The)297 b(basic)g(idea)g(of)g(strategies)g(is)f(that)i(under)g(a)f (name)g(map,)318 b(a)297 b(path)h(in)f(the)h(strategy)f(graph)g(is)g (an)g(abstraction)-1600 69473 y(of)538 b(a)g(set)g(of)g(paths)h(in)e (the)h(class)g(graph.)940 b(This)538 b(is)f(done)i(b)-34 b(y)538 b(viewing)f(eac)-34 b(h)538 b(strategy)g(graph)g(edge)g Fu(a)559 b Fs(!)g Fu(b)538 b Fv(as)-1600 71129 y(represen)-34 b(ting)480 b(the)g(set)g(of)g(paths)h(in)f(the)g(class)f(graph)h (starting)h(with)f(no)34 b(de)480 b Fs(N)179 b Fv(\()p Fu(a)p Fv(\))480 b(and)g(ending)g(at)g(no)34 b(de)480 b Fs(N)179 b Fv(\()p Fu(b)p Fv(\).)24594 75628 y(11)p eop %%Page: 12 13 12 12 bop -1600 2325 a Fv(This)468 b(represen)-34 b(tation)468 b(naturally)f(extends)h(to)g(paths)g(in)g(the)f(strategy)h(graph:)665 b(A)467 b(path)i(in)e(the)h(strategy)f(graph)-1600 3981 y(represen)-34 b(ts)468 b(a)h(set)f(of)g(paths)i(in)e(the)g(class)g (graph)h(obtained)g(b)-34 b(y)469 b(concatenating)g(the)f(sets)h(of)f (class)g(graph)h(paths)-1600 5637 y(obtained)405 b(from)g(eac)-34 b(h)404 b(strategy)g(graph)h(edge.)282 7853 y(W)-101 b(e)403 b(no)-34 b(w)406 b(mak)-34 b(e)404 b(this)g(in)-34 b(tuition)406 b(formal)e(using)h(the)f(concept)h(of)f(path)h (expansion,)g(de\014ned)g(as)f(follo)-34 b(ws.)-1600 10401 y Fk(De\014nition)466 b(4.3)606 b Ft(Given)578 b(a)h(nontrivial)e(se)-62 b(quenc)g(e)577 b Fu(p)p Ft(,)615 b(a)578 b(se)-62 b(quenc)g(e)577 b(is)h(c)-62 b(al)62 b(le)-62 b(d)577 b(an)h Fr(expansion)i Ft(of)e Fu(p)h Ft(if)f(it)g(c)-62 b(an)579 b(b)-62 b(e)-1600 12057 y(obtaine)g(d)404 b(by)h(inserting)g(one)h(or)g(mor)-62 b(e)406 b(elements)e(b)-62 b(etwe)g(en)405 b(the)g(elements)g(of)h Fu(p)p Ft(.)548 b(The)405 b(only)h(exp)-62 b(ansion)405 b(of)g(a)h(trivial)-1600 13713 y(se)-62 b(quenc)g(e)431 b(is)i(itself.)-1600 16261 y Fv(Note)471 b(that)h(if)f Fu(p)5877 15821 y Fo(0)6658 16261 y Fv(is)g(a)g(path)h(whic)-34 b(h)471 b(is)g(an)g(expansion)h(of) f(another)h(path)g Fu(p)e Fv(\(p)34 b(ossibly)471 b(in)g(another)h (graph\),)488 b(then)-1600 17917 y Fr(Source)p Fv(\()p Fu(p)p Fv(\))338 b(=)e Fr(Source)p Fv(\()p Fu(p)9444 17477 y Fo(0)9755 17917 y Fv(\))405 b(and)g Fr(T)-101 b(a)-34 b(rget)p Fv(\()p Fu(p)p Fv(\))337 b(=)g Fr(T)-101 b(a)-34 b(rget)p Fv(\()p Fu(p)23776 17477 y Fo(0)24087 17917 y Fv(\).)282 20133 y(W)-101 b(e)298 b(no)-34 b(w)301 b(formally)d(de\014ne)i(the)g(basic)f(w)-34 b(a)g(y)300 b(strategies)f(express)f(paths)j(in)e(ob)67 b(ject)300 b(graphs.)504 b(Recall)299 b(that)h Fu(P)48724 20321 y Fp(G)49513 20133 y Fv(\()p Fu(s;)202 b(t)p Fv(\))-1600 21789 y(denotes)431 b(that)g(set)g(of)f(all)g(paths)h(in)f Fu(G)h Fv(starting)g(at)f Fu(s)g Fv(and)h(ending)g(at)g Fu(t)f Fv(and)h Fu(X)525 b Fv(is)430 b(the)h(natural)f(corresp)34 b(ondence)-1600 23445 y(mapping)405 b(class)f(graph)h(paths)g(to)g (concrete)e(paths.)-1600 25993 y Fk(De\014nition)466 b(4.4)606 b Ft(L)-62 b(et)379 b Fs(S)427 b Fv(=)337 b(\()p Fu(S)s(;)202 b(s;)g(t)p Fv(\))378 b Ft(b)-62 b(e)378 b(a)g(str)-62 b(ate)g(gy,)387 b(let)377 b Fu(G)337 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))379 b Ft(b)-62 b(e)378 b(a)g(class)e(gr)-62 b(aph,)388 b(and)378 b(let)g Fs(N)556 b Ft(b)-62 b(e)378 b(a)g(name)-1600 27649 y(map)433 b(for)g Fs(S)525 b Ft(and)433 b Fu(G)p Ft(.)557 b(Then)-785 30523 y Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fv(])335 b(=)4994 29268 y Fg(n)5732 30523 y Fu(X)95 b Fv(\()p Fu(p)7912 30023 y Fo(0)8223 30523 y Fv(\))337 b Fs(j)g Fu(p)10315 30023 y Fo(0)10962 30523 y Fs(2)f Fu(P)12884 30711 y Fp(G)13673 30523 y Fv(\()p Fs(N)179 b Fv(\()p Fu(s)p Fv(\))p Fu(;)202 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\)\))434 b Ft(and)f Fs(9)p Fu(p)337 b Fs(2)g Fu(P)26723 30711 y Fp(S)27400 30523 y Fv(\()p Fu(s;)202 b(t)p Fv(\))434 b Ft(such)e(that)g Fu(p)36166 30023 y Fo(0)36910 30523 y Ft(is)h(an)h(exp)-62 b(ansion)432 b(of)h Fs(N)179 b Fv(\()p Fu(p)p Fv(\))49677 29268 y Fg(o)50849 30523 y Fu(:)-1600 33957 y Fv(Note)474 b(that)h Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fv(])473 b(is)g(a)h(set)h(of)f (concrete)f(paths:)680 b(in)-34 b(tuitiv)g(ely)-101 b(,)491 b(\014rst)475 b(a)f(set)g(of)g(class)g(graph)h(paths)g(is)f(selected,) -1600 35613 y(and)467 b(then)g(the)f(natural)h(corresp)34 b(ondence)465 b(is)h(applied)h(to)f(obtain)h(concrete)e(paths.)726 b(These)466 b(concrete)g(paths)h(can)-1600 37269 y(b)34 b(e)404 b(used)h(\(pla)-34 b(ying)404 b(the)h(role)e(of)i(\\)p Fu(R)9 b Fv("\))405 b(in)f(De\014nition)h(3.1.)-1600 41230 y Fw(4.2)1495 b(Using)500 b(a)e(constrain)-42 b(t)501 b(map)-1600 44229 y Fv(Strategies)458 b(imp)34 b(ose)458 b(p)34 b(ositiv)-34 b(e)458 b(constrain)-34 b(ts)460 b(on)f(paths,)472 b(in)459 b(the)f(sense)h(that)g(they)f(sp)34 b(ecify)458 b(whic)-34 b(h)459 b(no)34 b(des)459 b(m)-34 b(ust)459 b(b)34 b(e)-1600 45885 y(tra)-34 b(v)g(ersed)446 b(in)g(whic)-34 b(h)447 b(order.)664 b(It)446 b(turns)h(out)g(that)g (it)g(is)e(quite)h(useful)h(to)f(also)g(ha)-34 b(v)g(e)447 b(negativ)-34 b(e)446 b(constrain)-34 b(ts:)624 b(what)-1600 47541 y(no)34 b(des)494 b(and)h(edges)f(cannot)h(b)34 b(e)494 b(used)h(b)34 b(et)-34 b(w)g(een)495 b(the)f(sp)34 b(eci\014ed)494 b(milestones.)808 b(W)-101 b(e)494 b(formalize)f(this)i (idea)f(with)g(the)-1600 49197 y(concepts)405 b(of)f(elemen)-34 b(t)404 b(predicates)g(and)h(constrain)-34 b(t)405 b(maps.)-1600 51745 y Fk(De\014nition)466 b(4.5)606 b Ft(Given)400 b(a)h(class)e(gr)-62 b(aph)399 b Fu(G)337 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))p Ft(,)408 b(an)400 b Fr(element)368 b(p)-34 b(redicate)400 b Fu(E)70 b(P)570 b Ft(for)400 b Fu(G)h Ft(is)f(a)g(pr)-62 b(e)g(dic)g(ate)398 b(over)-1600 53401 y Fu(V)514 b Fs([)245 b Fu(E)70 b Ft(.)553 b(Given)422 b(a)f(str)-62 b(ate)g(gy)420 b(gr)-62 b(aph)421 b Fu(S)70 b Ft(,)424 b(a)e(function)f Fs(B)460 b Ft(mapping)421 b(e)-62 b(ach)420 b(e)-62 b(dge)421 b(of)g Fu(S)493 b Ft(to)421 b(an)i(element)e(pr)-62 b(e)g(dic)g(ate)419 b(for)j Fu(G)-1600 55057 y Ft(is)433 b(c)-62 b(al)62 b(le)-62 b(d)431 b(a)j Fr(constraint)403 b(map)435 b Ft(for)e Fu(S)503 b Ft(and)434 b Fu(G)p Ft(.)-1600 57605 y Fv(\(Of)418 b(course,)i(some)e(predicate)f(sp)34 b(eci\014cation)418 b(languages)g(ma)-34 b(y)418 b(b)34 b(e)417 b(v)-34 b(ery)417 b(hard)h(to)g(compute.)580 b(F)-101 b(or)418 b(computational)-1600 59261 y(complexit)-34 b(y)376 b(purp)34 b(oses,)383 b(w)-34 b(e)377 b(assume)g(that)h(there)f(exists)f(a)h(parameter,)382 b(denoted)c Fu(\034)137 b Fv(,)382 b(suc)-34 b(h)377 b(that)h(giv)-34 b(en)377 b(an)g(elemen)-34 b(t)-1600 60917 y(of)416 b Fu(G)p Fv(,)i(determining)d(whether)i(it)e (satis\014es)h(an)g(elemen)-34 b(t)415 b(predicate)h(can)f(b)34 b(e)415 b(computed)i(in)e(no)h(more)f(than)i Fu(\034)552 b Fv(time)-1600 62573 y(units.\))282 64789 y(The)423 b(constrain)-34 b(t)423 b(map)g(is)f(used)h(to)f(sp)34 b(ecify)-101 b(,)426 b(for)c(eac)-34 b(h)423 b(edge)f(in)g(the)h (strategy)f(graph,)427 b(whic)-34 b(h)424 b(elemen)-34 b(ts)422 b(of)h(the)-1600 66445 y(class)401 b(graph)h(ma)-34 b(y)402 b(b)34 b(e)401 b(used)h(in)g(the)g(tra)-34 b(v)g(ersal)401 b(corresp)34 b(onding)402 b(to)f(that)i(edge.)537 b(F)-101 b(ormally)g(,)401 b(w)-34 b(e)402 b(ha)-34 b(v)g(e)402 b(the)g(follo)-34 b(wing)-1600 68101 y(de\014nition.)-1600 70650 y Fk(De\014nition)466 b(4.6)606 b Ft(L)-62 b(et)426 b Fu(S)496 b Ft(b)-62 b(e)424 b(a)i(str)-62 b(ate)g(gy)423 b(gr)-62 b(aph,)425 b(let)g Fu(G)h Ft(b)-62 b(e)425 b(a)g(class)f(gr) -62 b(aph,)425 b(let)g Fs(N)603 b Ft(b)-62 b(e)425 b(a)h(name)f(map)g (for)g Fu(S)496 b Ft(and)425 b Fu(G)p Ft(,)-1600 72306 y(and)493 b(let)f Fs(B)531 b Ft(b)-62 b(e)492 b(a)h(c)-62 b(onstr)g(aint)492 b(map)g(for)h Fu(S)563 b Ft(and)493 b Fu(G)p Ft(.)736 b(Given)493 b(a)g(str)-62 b(ate)g(gy)490 b(gr)-62 b(aph)492 b(no)-62 b(de)492 b(p)-62 b(ath)492 b Fu(p)445 b Fv(=)f Fs(h)q Fu(a)44509 72488 y Fn(0)45034 72306 y Fu(a)45675 72488 y Fn(1)46403 72306 y Fu(:)202 b(:)g(:)f(a)48660 72488 y Fp(n)49286 72306 y Fs(i)p Ft(,)508 b(we)24594 75628 y Fv(12)p eop %%Page: 13 14 13 13 bop -1600 2325 a Ft(say)504 b(that)g(a)h(class)e(gr)-62 b(aph)504 b(p)-62 b(ath)503 b Fu(p)13952 1885 y Fo(0)14768 2325 y Ft(is)i(a)g Fr(satisfying)481 b(expansion)505 b Ft(of)g Fu(p)g Ft(with)g(r)-62 b(esp)g(e)g(ct)503 b(to)h Fs(B)543 b Ft(under)504 b Fs(N)684 b Ft(if)504 b(ther)-62 b(e)504 b(exist)-1600 3981 y(nontrivial)432 b(p)-62 b(aths)432 b Fu(p)7699 4163 y Fn(1)8225 3981 y Fu(;)202 b(:)g(:)g(:)e(;)i(p)11528 4163 y Fp(n)12588 3981 y Ft(such)432 b(that)g Fu(p)18433 3541 y Fo(0)19080 3981 y Fv(=)336 b Fs(h)q(N)179 b Fv(\()p Fu(a)23117 4163 y Fn(0)23642 3981 y Fv(\))p Fs(i)270 b(\001)f Fu(p)26070 4163 y Fn(1)26865 3981 y Fs(\001)g Fu(p)28081 4163 y Fn(2)28809 3981 y Fs(\001)202 b(\001)g(\001)f Fu(p)31035 4163 y Fp(n)32095 3981 y Ft(and:)-167 7193 y(1.)605 b(F)-93 b(or)434 b(al)62 b(l)433 b Fv(1)336 b Fs(\024)h Fu(i)f Fs(\024)h Fu(n)p Ft(,)433 b Fr(Source)p Fv(\()p Fu(p)15695 7375 y Fp(i)16071 7193 y Fv(\))337 b(=)f Fs(N)179 b Fv(\()p Fu(a)20444 7375 y Fp(i)p Fo(\000)p Fn(1)22022 7193 y Fv(\))434 b Ft(and)f Fr(T)-101 b(a)-34 b(rget)p Fv(\()p Fu(p)29631 7375 y Fp(i)30007 7193 y Fv(\))337 b(=)g Fs(N)179 b Fv(\()p Fu(a)34381 7375 y Fp(i)34756 7193 y Fv(\))p Ft(.)-167 9845 y(2.)605 b(F)-93 b(or)434 b(al)62 b(l)433 b Fv(1)336 b Fs(\024)h Fu(i)f Fs(\024)h Fu(n)p Ft(,)433 b(the)f(interior)h(elements)f(of)h Fu(p)24713 10027 y Fp(i)25522 9845 y Ft(satisfy)e(the)h(element)h(pr) -62 b(e)g(dic)g(ate)431 b Fs(B)37 b Fv(\()p Fu(a)42816 10027 y Fp(i)p Fo(\000)p Fn(1)44730 9845 y Fs(!)337 b Fu(a)46920 10027 y Fp(i)47296 9845 y Fv(\))p Ft(.)-1600 13058 y(If)434 b Fu(n)336 b Fv(=)g(0)p Ft(,)434 b(i.e.,)e Fu(p)i Ft(is)f(a)g(trivial)e(p)-62 b(ath)432 b Fs(h)q Fu(a)16627 13240 y Fn(0)17152 13058 y Fs(i)q Ft(,)h(then)g(its)g(only)g (satisfying)e(exp)-62 b(ansion)432 b(is)h Fs(hN)179 b Fv(\()p Fu(a)40489 13240 y Fn(0)41014 13058 y Fv(\))p Fs(i)q Ft(.)-1600 15606 y Fv(Note)573 b(that)i(there)e(ma)-34 b(y)573 b(b)34 b(e)573 b(man)-34 b(y)573 b(w)-34 b(a)g(ys)574 b(to)g(decomp)34 b(ose)573 b(a)g(path)h(in)f(accordance)g(with)h (Condition)g(1)f(in)g(the)-1600 17262 y(de\014nition)498 b(ab)34 b(o)-34 b(v)g(e;)543 b(a)497 b(path)h Fu(p)12424 16822 y Fo(0)13231 17262 y Fv(is)f(a)g(satisfying)g(expansion)h(of)f(a) g(path)h Fu(p)e Fv(if)h(for)g(one)g(of)h(these)f(decomp)34 b(ositions,)-1600 18918 y(Condition)359 b(2)e(holds)g(as)h(w)-34 b(ell.)11930 18478 y Fn(2)12978 18918 y Fv(Note)357 b(also)g(that)i (the)e(elemen)-34 b(t)357 b(constrain)-34 b(ts)359 b(are)d(nev)-34 b(er)357 b(applied)g(to)h(the)f(ends)h(of)g(the)-1600 20574 y(sub-paths.)282 22790 y(One)419 b(consequence)h(of)g(our)g (de\014nition)h(is)e(that)i(ev)-34 b(ery)419 b(edge)g(in)h(a)g (strategy)g(graph)g(path)h(corresp)34 b(onds)420 b(to)g(one)-1600 24446 y(or)d(more)g(class)g(graph)g(edges)g(in)h(a)f(satisfying)h (expansion:)565 b(if)417 b Fs(N)179 b Fv(\()p Fu(a)29904 24628 y Fp(i)p Fo(\000)p Fn(1)31481 24446 y Fv(\))359 b(=)f Fs(N)179 b Fv(\()p Fu(a)35898 24628 y Fp(i)36273 24446 y Fv(\),)421 b(the)c(path)i Fu(p)43054 24628 y Fp(i)43846 24446 y Fv(ma)-34 b(y)418 b(not)g(b)34 b(e)417 b(the)-1600 26102 y(trivial)453 b(path)h Fs(h)q(N)179 b Fv(\()p Fu(a)7691 26284 y Fp(i)8066 26102 y Fv(\))p Fs(i)p Fv(.)687 b(A)454 b(further)g(consequence)f(is)h(that)h(ev)-34 b(ery)452 b(class)h(graph)i(edge)e(in)h(a)f(satisfying)h(expansion) -1600 27758 y(satis\014es)405 b(at)f(least)g(one)g(elemen)-34 b(t)405 b(predicate)e(in)i(the)f(constrain)-34 b(t)405 b(map.)282 29974 y(Using)351 b(the)h(constrain)-34 b(t)352 b(map,)362 b(w)-34 b(e)352 b(no)-34 b(w)352 b(de\014ne)f(a)h(more)e (elab)34 b(orate)351 b(w)-34 b(a)g(y)352 b(in)f(whic)-34 b(h)352 b(a)f(strategy)g(expresses)g(paths)-1600 31630 y(in)404 b(ob)67 b(ject)405 b(graphs.)-1600 34178 y Fk(De\014nition)466 b(4.7)606 b Ft(L)-62 b(et)499 b Fs(S)547 b Fv(=)455 b(\()p Fu(S)s(;)202 b(s;)g(t)p Fv(\))500 b Ft(b)-62 b(e)498 b(a)h(str)-62 b(ate)g(gy,)513 b(let)498 b Fu(G)456 b Fv(=)g(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\))499 b Ft(b)-62 b(e)499 b(a)g(class)e(gr)-62 b(aph,)514 b(let)498 b Fs(N)678 b Ft(b)-62 b(e)498 b(a)h(name)-1600 35834 y(map)431 b(for)g Fu(S)502 b Ft(and)432 b Fu(G)p Ft(,)g(and)f(let)g Fs(B)469 b Ft(b)-62 b(e)431 b(a)g(c)-62 b(onstr)g(aint)430 b(map)i(for)f Fu(S)502 b Ft(and)431 b Fu(G)p Ft(.)557 b(Then)431 b Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(])430 b Ft(is)h(the)g(set)g(of)g(c)-62 b(oncr)g(ete)-1600 37490 y(p)g(aths)432 b(de\014ne)-62 b(d)432 b(by)1088 40354 y Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(])334 b(=)8239 39099 y Fg(n)8977 40354 y Fu(X)95 b Fv(\()p Fu(p)11157 39914 y Fo(0)11468 40354 y Fv(\))337 b Fs(j)1106 b Fu(p)14329 39914 y Fo(0)14977 40354 y Fs(2)336 b Fu(P)16899 40542 y Fp(G)17688 40354 y Fv(\()p Fs(N)179 b Fv(\()p Fu(s)p Fv(\))p Fu(;)202 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\)\))434 b Ft(and)13719 42346 y Fs(9)p Fu(p)337 b Fs(2)g Fu(P)17262 42534 y Fp(S)17940 42346 y Fv(\()p Fu(s;)202 b(t)p Fv(\))434 b Ft(such)d(that)i Fu(p)26706 41906 y Fo(0)27450 42346 y Ft(is)g(a)g(satisfying)e(exp)-62 b(ansion)432 b(of)h Fu(p)h Ft(w.r.t.)556 b Fs(B)47804 41091 y Fg(o)48976 42346 y Fu(:)-1600 45837 y Fv(Note)340 b(that)g Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fv(])335 b(=)h Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)14768 46019 y Ff(tr)-20 b(ue)16896 45837 y Fv(])339 b(for)h(the)f(constrain) -34 b(t)341 b(map)f Fu(B)30569 46019 y Ff(tr)-20 b(ue)33038 45837 y Fv(whic)-34 b(h)340 b(maps)g(all)f(strategy)g(graph)h(edges) -1600 47493 y(to)405 b(the)f(trivial)f(elemen)-34 b(t)404 b(predicate)g(that)h(is)f(alw)-34 b(a)g(ys)405 b Fe(tr)-27 b(ue)q Fv(.)-1600 51454 y Fw(4.3)1495 b(Remarks)-1600 54453 y Fk(Encapsulated)443 b(strategies.)1212 b Fv(The)385 b(w)-34 b(a)g(y)386 b(strategies)g(are)e(presen)-34 b(ted)386 b(ab)34 b(o)-34 b(v)g(e,)389 b(a)c(constrain)-34 b(t)387 b(map)e(can)h(b)34 b(e)385 b(sp)34 b(eci-)-1600 56109 y(\014ed)354 b(only)g(when)g(the)g(class)f(graph)i(is)e(giv)-34 b(en,)363 b(as)354 b(the)g(elemen)-34 b(t)354 b(predicates)f(are)g (expressed)h(in)f(terms)h(of)g(class)f(graph)-1600 57765 y(no)34 b(des)446 b(and)g(edges.)663 b(An)446 b(imp)34 b(ortan)-34 b(t)447 b(design)f(consideration,)456 b(ho)-34 b(w)g(ev)g(er,)457 b(is)445 b(to)h(encapsulate)g(the)h(constrain)-34 b(t)446 b(map)-1600 59421 y(with)355 b(the)g(strategy)f(and)h(use)f (the)h(name)f(map)h(as)f(the)h(only)f(in)-34 b(terface)354 b(to)h(the)f(class)g(graph;)371 b(w)-34 b(e)355 b(call)e(this)i (approac)-34 b(h)-1600 61077 y(\\encapsulated)423 b(strategies.")591 b(The)422 b(adv)-67 b(an)-34 b(tage)422 b(of)g(encapsulated)h (strategies)e(is)h(that)h(they)e(allo)-34 b(w)422 b(one)g(to)g(ha)-34 b(v)g(e)422 b(a)-1600 62733 y(clean)404 b(in)-34 b(terface)404 b(b)34 b(et)-34 b(w)g(een)405 b(the)g(strategy)f(and)h(the)f(class)g (graph,)g(captured)h(completely)f(b)-34 b(y)404 b(the)h(name)f(map.)282 64949 y(W)-101 b(e)393 b(only)h(outline)g(the)g(details)g(of)g(the)g (concept)g(here,)h(since)e(it)h(is)g(not)g(cen)-34 b(tral)394 b(to)g(the)g(algorithmic)g(issues)g(w)-34 b(e)-1600 66605 y(fo)34 b(cus)497 b(on)h(in)f(the)h(remainder)f(of)g(this)h(pap)34 b(er.)817 b(The)498 b(idea)f(is)g(that)h(instead)g(of)g(letting)f(the)h (elemen)-34 b(t)497 b(predicates)p -1600 67424 21440 45 v -218 68141 a Fi(2)243 68564 y Fy(Other)333 b(de\014nitions)h(are)e (p)28 b(ossible,)336 b(for)c(example)j(to)e(require)g(that)g(a)g (subpath)f(ends)h(when)f(its)h(target)g(no)28 b(de)334 b(is)f(reac)-28 b(hed.)452 b(W)-85 b(e)333 b(ha)-28 b(v)g(e)-1600 69904 y(found)334 b(the)h(non-deterministic)h(de\014nition)f(ab)28 b(o)-28 b(v)g(e)335 b(to)g(b)28 b(e)335 b(the)g(most)f(useful.)454 b(Constrain)-28 b(t)333 b(maps)i(can)f(b)28 b(e)335 b(used)f(to)h (reduce)g(or)f(eliminate)-1600 71243 y(the)342 b(non-determinism.)24594 75628 y Fv(13)p eop %%Page: 14 15 14 14 bop -1600 2325 a Fv(range)363 b(o)-34 b(v)g(er)364 b(the)f(\(y)-34 b(et)364 b(unsp)34 b(eci\014ed\))365 b(class)e(graph,)372 b(they)363 b(range)h(o)-34 b(v)g(er)363 b(v)-67 b(ariables)362 b(called)h Ft(symb)-62 b(olic)393 b(names)p Fv(.)525 b(Binding)-1600 3981 y(to)426 b(actual)f(class)g (graph)h(elemen)-34 b(ts)425 b(is)g(done)h(only)f(later,)430 b(when)c(the)g(name)f(map)h(is)f(in)-34 b(tro)34 b(duced.)603 b(T)-101 b(ec)-34 b(hnically)-101 b(,)430 b(w)-34 b(e)-1600 5637 y(ha)g(v)g(e)460 b(an)g(additional)h(lev)-34 b(el)458 b(of)i(indirection)f(in)h(the)g(encapsulated)h(strategy:)649 b(instead)461 b(of)e(explicit)g(references)g(to)-1600 7293 y(the)472 b(class)f(graph)h(elemen)-34 b(ts)472 b(in)g(the)g(constrain)-34 b(t)473 b(map,)488 b(the)472 b(elemen)-34 b(t)472 b(predicates)f(are)g(predicates)h(o)-34 b(v)g(er)471 b Ft(symb)-62 b(olic)-1600 8949 y(no)g(des)348 b Fv(and)i Ft(symb)-62 b(olic)380 b(e)-62 b(dges.)518 b Fv(These)350 b(are)e(denoted)i(using)g(a)f(set)g Fs(M)g Fv(of)h(strings,)360 b(whic)-34 b(h)350 b(are)e(used)i(as)f (place-holders)-1600 10605 y(for)452 b(class)f(names)h(and)h(lab)34 b(els)451 b(\(sym)-34 b(b)34 b(olic)451 b(edges)h(are)f(constructed)i (from)f(a)f(pair)h(of)g(sym)-34 b(b)34 b(olic)451 b(no)34 b(de)452 b(names)g(and)-1600 12261 y(a)501 b(sym)-34 b(b)34 b(olic)500 b(lab)34 b(el\).)828 b(More)500 b(formally)-101 b(,)524 b(an)501 b Ft(enc)-62 b(apsulate)g(d)519 b(str)-62 b(ate)g(gy)498 b Fv(is)i(a)h(tuple)g Fs(E)606 b Fv(=)497 b(\()p Fs(S)91 b Fu(;)202 b Fs(M)p Fu(;)g Fs(B)43508 11821 y Fo(0)43818 12261 y Fv(\),)525 b(where)501 b Fs(S)591 b Fv(is)501 b(a)-1600 13917 y(strategy)-101 b(,)434 b Fs(M)427 b Fv(is)h(a)g(set)g(of)g(sym)-34 b(b)34 b(olic)428 b(names,)434 b(and)429 b Fs(B)23175 13477 y Fo(0)23913 13917 y Fv(is)f(a)g(function)h(mapping)g(edges)f(of)g(the)h(strategy)f (graph)h(to)-1600 15573 y(predicates)365 b(o)-34 b(v)g(er)365 b(the)g(sym)-34 b(b)34 b(olic)365 b(elemen)-34 b(ts.)525 b(T)-101 b(o)366 b(supp)34 b(ort)366 b(encapsulated)g(strategies,)372 b(the)366 b(name)f(map)h(is)f(extended)-1600 17229 y(to)405 b(map)f(also)g(sym)-34 b(b)34 b(olic)404 b(names)g(to)h(actual)f(class) g(names)g(and)h(lab)34 b(el)403 b(names)i(in)f(the)g(class)g(graph.) -1600 21141 y Fk(Wildcard)391 b(notation)g(in)g(predicate)f(sp)39 b(eci\014cation.)1213 b Fv(W)-101 b(e)339 b(left)g(the)h(issue)g(of)g (ho)-34 b(w)340 b(to)g(sp)34 b(ecify)339 b(the)h(predicates)-1600 22797 y(op)34 b(en.)522 b(One)355 b(naiv)-34 b(e)355 b(w)-34 b(a)g(y)355 b(of)g(doing)h(it)f(is)f(to)h(en)-34 b(umerate)356 b(all)e(elemen)-34 b(ts)355 b(to)g(b)34 b(e)355 b(used,)365 b(or)354 b(alternativ)-34 b(ely)354 b(to)h(en)-34 b(umerate)-1600 24453 y(all)529 b(elemen)-34 b(ts)530 b(to)g(b)34 b(e)530 b(excluded)f(\(cf.)h(\\only-through")h (and)g(\\b)-34 b(ypassing")531 b(clauses)f(presen)-34 b(ted)530 b(in)g(Section)g(7.1\).)-1600 26109 y(More)361 b(expressiv)-34 b(e)361 b(p)34 b(o)-34 b(w)g(er)362 b(is)f(giv)-34 b(en)361 b(b)-34 b(y)362 b(allo)-34 b(wing)362 b(wildcard)g(sym)-34 b(b)34 b(ols)361 b(to)h(b)34 b(e)361 b(used)h(in)g(the)g(predicate)f (sp)34 b(eci\014cation.)-1600 27765 y(F)-101 b(or)488 b(example,)508 b(an)488 b(elemen)-34 b(t)488 b(predicate)g(ma)-34 b(y)488 b(b)34 b(e)488 b Fe(f)-108 b(alse)489 b Fv(for)f(all)g(elemen) -34 b(ts)488 b(of)g(the)h(form)f Fs(\003)42462 27099 y Fp(l)42001 27765 y Fs(!)477 b(\003)p Fv(,)509 b(whic)-34 b(h)489 b(means)-1600 29421 y(that)510 b(no)f(edges)g(lab)34 b(eled)508 b Fu(l)532 b Fv(can)509 b(b)34 b(e)509 b(tra)-34 b(v)g(ersed.)852 b(The)509 b(unique)g(feature)h(of)f(this)g(notation)h (is)f(that)h(it)e(allo)-34 b(ws)509 b(the)-1600 31077 y(programmer)525 b(to)g(refer)f(to)h(elemen)-34 b(ts)525 b(whose)g(iden)-34 b(tit)g(y)526 b(is)f(not)g(necessarily)f(kno)-34 b(wn)526 b(at)f(predicate-sp)34 b(eci\014cation)-1600 32733 y(time.)604 b(Ev)-34 b(en)426 b(when)h(using)g(encapsulated)g (strategies)f(as)h(ab)34 b(o)-34 b(v)g(e,)431 b(the)c(programmer)e(can) i(only)f(refer)f(to)h(sym)-34 b(b)34 b(olic)-1600 34389 y(names,)455 b(whic)-34 b(h)446 b(are)e(later)h(mapp)34 b(ed)445 b(to)h(only)e(a)h(subset)h(of)g(the)f(elemen)-34 b(ts)445 b(of)g(the)h(actual)f(class)f(graph,)456 b(while)444 b(the)-1600 36045 y(wildcard)404 b(notation)i(is)e(implicitly)e(mapp)34 b(ed)405 b(to)g(all)e(elemen)-34 b(ts)404 b(in)h(the)f(class)g(graph)h (as)f(appropriate.)282 38261 y(There)393 b(is)h(a)f(di\013erence)g(b)34 b(et)-34 b(w)g(een)395 b(the)f(strategies)f(used)i(b)-34 b(y)394 b(the)g(algorithm,)h(on)f(the)g(one)g(hand,)j(and)d(the)g(data) -1600 39917 y(structures)290 b(a)-34 b(v)-67 b(ailable)288 b(in)h(our)g(implemen)-34 b(tation)290 b(\(describ)34 b(ed)289 b(in)g(Section)h(7\).)500 b(In)289 b(the)h(former,)311 b(strategy)289 b(graph)h(edges)-1600 41573 y(are)369 b(general,)375 b(with)370 b(a)f(restriction)g(only)g(on)h(the)g(cost)f (of)h(v)-34 b(erifying)369 b(the)g(go)-34 b(v)g(erning)370 b(condition)g(p)34 b(er)369 b(v)-34 b(ertex)368 b(and)i(p)34 b(er)-1600 43229 y(edge.)539 b(In)405 b(the)g(latter,)f(only)g(a)h (small)f(set)h(of)f(prede\014ned)i(predicates)e(are)g(used)h(\(b)-34 b(ypassing,)406 b(only-through\).)541 b(The)-1600 44885 y(reason)481 b(for)f(this)i(di\013erence)d(is)i(that)h(w)-34 b(e)481 b(w)-34 b(an)g(ted)482 b(the)f(abstract)h(mo)34 b(del)480 b(to)h(b)34 b(e)480 b(easy)h(to)g(express)f(and)h(it)g (turned)-1600 46541 y(out)508 b(that)h(a)f(more)f(general)g(form)-34 b(ulation)509 b(is)e(easier)g(to)g(express.)849 b(The)508 b(general)f(mo)34 b(del)507 b(can)h(easily)e(handle)i(the)-1600 48197 y(particular)528 b(edge)g(predicates)g(actually)g(in)g(use)g(in)g (the)g(implemen)-34 b(tation.)912 b(F)-101 b(or)528 b(the)g(curren)-34 b(t)529 b(applications)f(the)-1600 49853 y(expressiv)-34 b(e)391 b(p)34 b(o)-34 b(w)g(er)394 b(of)e(the)h(mo)34 b(del)392 b(used)h(b)-34 b(y)393 b(our)g(implemen)-34 b(tation)393 b(is)g(su\016cien)-34 b(t.)535 b(Indeed,)395 b(when)e(the)g(class)f(graph)-1600 51509 y(is)449 b(kno)-34 b(wn,)461 b(all)448 b(strategies)g(can)h(b)34 b(e)449 b(sim)-34 b(ulated)450 b(b)-34 b(y)449 b(single)f(edge)h(strategies)g (using)g(b)-34 b(ypassing)450 b(clauses)f(b)-34 b(ypassing)-1600 53165 y(su\016cien)g(tly)404 b(man)-34 b(y)405 b(no)34 b(des)404 b(and)h(edges)f(in)h(the)f(class)g(graph.)-1600 57078 y Fk(Cyclic)395 b(graphs.)1213 b Fv(Strategy)345 b(graphs)g(ma)-34 b(y)345 b(b)34 b(e)344 b(cyclic)f(and)i(so)g(ma)-34 b(y)345 b(class)f(graphs)h(and)h(ob)67 b(ject)345 b(graphs.)520 b(Ho)-34 b(w)g(ev)g(er)-1600 58734 y(for)489 b(the)h(purp)34 b(ose)490 b(of)f(dealing)h(with)g(tra)-34 b(v)g(ersals,)510 b(it)489 b(is)g(su\016cien)-34 b(t)490 b(to)g(consider)f(ob)67 b(ject)490 b(trees.)794 b(Non-ob)67 b(ject)490 b(trees)-1600 60390 y(need)404 b(to)h(b)34 b(e)404 b(addressed)g(b)-34 b(y)405 b(appropriate)g(visitors.)538 b(See)403 b(Section)i(5.4)f(for)g (more)g(discussion.)-1600 64968 y Fx(5)1793 b(Compilation)599 b(algorithm)-1600 68385 y Fv(In)h(this)g(section)g(w)-34 b(e)601 b(sho)-34 b(w)601 b(ho)-34 b(w)601 b(to)f(implemen)-34 b(t)601 b(tra)-34 b(v)g(ersal)599 b(strategies)h(e\016cien)-34 b(tly)600 b(b)-34 b(y)600 b(compiling)g(them)g(in)-34 b(to)-1600 70041 y(executable)404 b(programs.)538 b(F)-101 b(ormally)g(,)403 b(the)i(compilation)f(problem)g(is)g(de\014ned)h(as)g (follo)-34 b(ws.)24594 75628 y(14)p eop %%Page: 15 16 15 15 bop -1600 2325 a Fk(Input:)607 b Fv(A)385 b(strategy)g Fs(S)428 b Fv(=)336 b(\()p Fu(S)s(;)202 b(s;)g(t)p Fv(\),)389 b(a)c(simple)f(class)h(graph)g Fu(G)337 b Fv(=)g(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\),)388 b(a)d(name)g(map)h Fs(N)563 b Fv(for)385 b Fu(S)455 b Fv(and)386 b Fu(G)p Fv(,)i(and)1430 3981 y(a)404 b(constrain)-34 b(t)406 b(map)e Fs(B)441 b Fv(for)405 b Fu(S)474 b Fv(and)405 b Fu(G)p Fv(.)-1600 6633 y Fk(Output:)608 b Fv(A)489 b(set)g(of)g(metho)34 b(ds)490 b(suc)-34 b(h)489 b(that)h(for)f(an)-34 b(y)490 b(ob)67 b(ject)490 b(graph)f(\012,)510 b(in)-34 b(v)g(oking)490 b(the)f(tra)-34 b(v)g(ersal)489 b(metho)34 b(d)489 b(at)h(an)1430 8289 y(ob)67 b(ject)405 b Fu(o)f Fv(in)g(\012)h(yields)e(a)h(tra)-34 b(v)g(ersal)404 b(history)g Fu(H)502 b Fv(satisfying)405 b(the)g(judgmen)-34 b(t)406 b(\012)337 b Fs(`)38589 8471 y Fp(s)39416 8289 y Fu(o)f Fv(:)g Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(])268 b Fj(\003)h Fu(H)98 b Fv(.)-1600 11833 y(Recall)417 b(that)j Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(])416 b(is)i(a)g(path)h(set)g (whic)-34 b(h)419 b(can)f(guide)g(tra)-34 b(v)g(ersals)419 b(of)f(ob)67 b(ject)419 b(graphs)g(directly)-101 b(.)580 b(Our)418 b(compi-)-1600 13489 y(lation)404 b(consists)h(of)f(t)-34 b(w)g(o)406 b(algorithms.)539 b(F)-101 b(or)404 b(an)g(o)-34 b(v)g(erview)404 b(of)g(the)h(algorithms)f(see)g(Section)g(1.4.)-118 17034 y(1.)605 b(W)-101 b(e)509 b(\014rst)g(in)-34 b(v)g(ok)g(e)509 b(an)g(algorithm)g(\(called)f(TGA)i(b)34 b(elo)-34 b(w\))509 b(whic)-34 b(h)510 b(uses)f Fs(S)91 b Fv(,)534 b Fu(G)p Fv(,)h Fs(N)179 b Fv(,)534 b(and)509 b Fs(B)546 b Fv(to)509 b(construct)h(a)1430 18690 y(graph)384 b(whic)-34 b(h)384 b(expresses)f(the)h(tra)-34 b(v)g(ersal)383 b Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(])381 b(in)i(a)h(more)f(con)-34 b(v)g(enien)g(t)384 b(w)-34 b(a)g(y;)391 b(w)-34 b(e)383 b(call)g(this)h(graph)f(the)1430 20346 y Ft(tr)-62 b(aversal)432 b(gr)-62 b(aph)p Fv(,)402 b(and)i(denote)h(it)f(b)-34 b(y)405 b Fd(TG)29 b Fv(\()p Fs(S)91 b Fu(;)202 b(G;)g Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(\).)-118 22998 y(2.)605 b(W)-101 b(e)381 b(then)h(generate)f(tra) -34 b(v)g(ersal)382 b(metho)34 b(ds)382 b(that)g(emplo)-34 b(y)381 b(another)i(algorithm)e(\(called)g(TMA)h(b)34 b(elo)-34 b(w\),)386 b(whic)-34 b(h)1430 24654 y(uses)405 b Fd(TG)29 b Fv(\()p Fs(S)91 b Fu(;)202 b(G;)g Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(\)|the)404 b(result)g(of)g(TGA|at)i(run)-34 b(time.)-1600 28199 y(The)302 b(remainder)f(of)g(this)h(section)f(is)g (organized)h(as)f(follo)-34 b(ws.)505 b(In)301 b(Section)h(5.1)f(w)-34 b(e)302 b(describ)34 b(e)300 b(TGA.)i(In)f(Section)g(5.2)h(w)-34 b(e)-1600 29855 y(describ)34 b(e)295 b(TMA.)i(In)f(Section)h(5.3)f(w) -34 b(e)297 b(analyze)f(the)g(computational)i(complexit)-34 b(y)296 b(of)h(the)f(algorithms.)503 b(W)-101 b(e)296 b(conclude)-1600 31511 y(this)405 b(section)f(with)h(n)-34 b(umerous)405 b(extensions)f(and)h(v)-67 b(arian)-34 b(ts)405 b(for)f(the)g(basic)g(algorithm,)g(listed)g(in)h(Section)f (5.4.)-1600 35472 y Fw(5.1)1495 b(The)498 b(tra)-42 b(v)g(ersal)501 b(graph)-1600 38470 y Fv(In)474 b(this)h(section)f(w)-34 b(e)474 b(explain)g(ho)-34 b(w)475 b(the)f Ft(tr)-62 b(aversal)496 b(gr)-62 b(aph)472 b Fv(is)i(computed,)492 b(based)474 b(on)h(a)f(strategy)g Fs(S)544 b Fv(=)453 b(\()p Fu(S)s(;)202 b(s;)g(t)p Fv(\),)491 b(a)-1600 40126 y(simple)416 b(class)g(graph)h Fu(G)358 b Fv(=)f(\()p Fu(V)67 b(;)202 b(E)70 b(;)202 b(L)p Fv(\),)419 b(a)e(name)g(map)g Fs(N)594 b Fv(for)417 b Fu(S)486 b Fv(and)418 b Fu(G)p Fv(,)h(and)e(a)g(constrain)-34 b(t)417 b(map)g Fs(B)454 b Fv(for)416 b Fu(S)487 b Fv(and)417 b Fu(G)p Fv(.)-1600 41783 y(The)445 b(tra)-34 b(v)g(ersal)444 b(graph,)455 b(denoted)445 b Fd(TG)29 b Fv(\()p Fs(S)91 b Fu(;)202 b(G;)g Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(\),)453 b(is)445 b(created)f(b)-34 b(y)444 b(a)h(series)e(of)i(transformations)h(based)f (on)f(the)-1600 43439 y(class)459 b(graph,)473 b(the)460 b(strategy)-101 b(,)473 b(the)459 b(name)h(map,)473 b(and)460 b(the)f(constrain)-34 b(t)461 b(map.)704 b(The)460 b(basic)f(idea)g(is) g(to)h(replace)e(eac)-34 b(h)-1600 45095 y(strategy)415 b(graph)h(edge)e(b)-34 b(y)416 b(a)e(cop)-34 b(y)415 b(of)h(the)f(class)g(graph)g(appropriately)g(pruned)h(do)-34 b(wn)416 b(to)f(elemen)-34 b(ts)415 b(that)i(satisfy)-1600 46751 y(the)405 b(edge's)e(elemen)-34 b(t)404 b(predicate.)282 48967 y(The)378 b(reader)f(ma)-34 b(y)377 b(follo)-34 b(w)378 b(a)g(running)g(example)f(presen)-34 b(ted)378 b(in)g(Figure)f(3)g(\(DJ)h(co)34 b(de)377 b(for)g(the)h(example)f(is)g (giv)-34 b(en)-1600 50623 y(in)404 b(Section)h(7\).)p -1600 52751 53600 56 v -1600 54495 a Fk(T)-116 b(ra)-39 b(v)g(ersal)488 b(Graph)h(Algorithm)g(\(TGA\):)425 b Fv(Let)f(the)i(strategy)f(graph)h(b)34 b(e)424 b Fu(S)442 b Fv(=)371 b(\()p Fu(C)19 b(;)202 b(D)34 b Fv(\),)431 b(and)426 b(let)e(the)i(strategy)-1600 56151 y(graph)405 b(edges)f(b)34 b(e)404 b Fu(D)370 b Fv(=)336 b Fs(f)p Fu(e)10550 56333 y Fn(1)11076 56151 y Fu(;)202 b(e)12179 56333 y Fn(2)12705 56151 y Fu(;)g(:)g(:)g(:)f(;)h(e)15963 56348 y Fp(k)16532 56151 y Fs(g)p Fv(.)-118 59363 y(1.)605 b(Create)393 b(a)f(graph)h Fu(G)10705 58923 y Fo(0)11352 59363 y Fv(=)337 b(\()p Fu(V)14080 58923 y Fo(0)14390 59363 y Fu(;)202 b(E)15894 58923 y Fo(0)16204 59363 y Fv(\))393 b(b)-34 b(y)392 b(taking)h Fu(k)430 b Fv(copies)392 b(of)h Fu(G)p Fv(,)i(one)d(for)g(eac)-34 b(h)393 b(strategy)f(graph)h (edge.)535 b(Denote)1430 61019 y(the)352 b Fu(i)p Fv(th)f(cop)-34 b(y)351 b(as)g Fu(G)10541 60579 y Fp(i)11253 61019 y Fv(=)336 b(\()p Fu(V)13980 60579 y Fp(i)14356 61019 y Fu(;)202 b(E)15860 60579 y Fp(i)16235 61019 y Fv(\).)521 b(W)-101 b(e)350 b(will)g(use)h(the)h(corresp)34 b(ondence)350 b(b)34 b(et)-34 b(w)g(een)352 b(eac)-34 b(h)351 b(strategy)g(graph)g (edge)1430 62675 y Fu(e)1994 62857 y Fp(i)2748 62675 y Fv(and)378 b Fu(G)6031 62235 y Fp(i)6407 62675 y Fv(.)530 b(The)378 b(no)34 b(des)378 b(in)f Fu(V)15484 62235 y Fp(i)16237 62675 y Fv(and)h(edges)g(in)f Fu(E)24132 62235 y Fp(i)24885 62675 y Fv(will)g(b)34 b(e)378 b(denoted)g(with)h(a)e(sup) 34 b(erscript)378 b Fu(i)p Fv(,)k(as)c(in)f Fu(v)47882 62235 y Fp(i)48258 62675 y Fu(;)202 b(e)49361 62235 y Fp(i)50114 62675 y Fv(etc.)1430 64331 y(Eac)-34 b(h)408 b(class)f(graph)h(no)34 b(de)408 b Fu(v)450 b Fv(corresp)34 b(onds)408 b(to)f Fu(k)446 b Fv(no)34 b(des)408 b(in)f Fu(V)29726 63891 y Fo(0)30037 64331 y Fv(,)h(denoted)g Fu(v)35995 63891 y Fn(1)36521 64331 y Fu(;)202 b(:)g(:)g(:)f(;)h(v) 39846 63891 y Fp(k)40415 64331 y Fv(.)548 b(W)-101 b(e)407 b(extend)g(the)h Fr(Class)1430 65987 y Fv(mapping)e(to)e(apply)g(to)h (the)f(no)34 b(des)405 b(of)f Fu(G)20538 65547 y Fo(0)21253 65987 y Fv(b)-34 b(y)404 b(setting)h Fr(Class)p Fv(\()p Fu(v)30594 65547 y Fp(i)30970 65987 y Fv(\))31778 65321 y Fn(def)31956 65987 y Fv(=)514 b Fu(v)43 b Fv(,)404 b(where)g Fu(v)38921 65547 y Fp(i)39633 65987 y Fs(2)337 b Fu(V)41755 65547 y Fo(0)42469 65987 y Fv(and)405 b Fu(v)380 b Fs(2)337 b Fu(V)269 b Fv(.)-118 68640 y(2.)605 b(F)-101 b(or)462 b(eac)-34 b(h)462 b(strategy)h(graph)f(edge)g Fu(e)18075 68822 y Fp(i)18884 68640 y Fv(=)433 b Fu(a)g Fs(!)h Fu(b)p Fv(:)654 b(Let)462 b Fs(N)179 b Fv(\()p Fu(a)p Fv(\))432 b(=)h Fu(u)462 b Fv(and)h Fs(N)179 b Fv(\()p Fu(b)p Fv(\))433 b(=)g Fu(v)43 b Fv(.)712 b(Remo)-34 b(v)g(e)463 b(from)f Fu(G)49479 68200 y Fp(i)50316 68640 y Fv(the)24594 75628 y(15)p eop %%Page: 16 17 16 16 bop -4320 5270 a 34953795 28417720 328908 15919185 39863746 47823339 startTexFig -4320 5270 a%%BeginDocument: comp.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Helvetica Times-Italic Courier Helvetica-Bold Times-Bold %%Pages: 1 %%BoundingBox: 5 242 606 727 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 55 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica reencodeISO def /Times-Italic reencodeISO def /Courier reencodeISO def /Helvetica-Bold reencodeISO def /Times-Bold reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 4 4 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.796717 0 0 0.796717 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 21.6188 -6.00525 ] concat Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.958802 0 0 0.958802 336.346 441.861 ] concat %I 97 408 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.958802 0 0 0.958802 370.863 453.367 ] concat %I 97 408 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.958802 0 0 0.958802 370.863 430.355 ] concat %I 97 408 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.958802 0 0 0.958802 405.38 441.861 ] concat %I 97 408 4 4 Elli End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 194.923 619.239 ] concat %I 2 497 446 553 470 2 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 194.923 619.239 ] concat %I 497 446 553 422 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 194.923 619.239 ] concat %I 569 470 625 446 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 194.923 619.239 ] concat %I 569 422 625 446 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-* Helvetica 14 SetF %I t [ 0.958802 0 0 0.958802 507.013 833.531 ] concat %I [ (target) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-* Helvetica 14 SetF %I t [ 0.958802 0 0 0.958802 373.739 836.887 ] concat %I [ (source) ] Text End Begin %I Poly %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.92846 0 0 0.917827 174.193 437.796 ] concat %I 4 211 376 407 376 407 520 211 520 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 415.926 848.872 ] concat %I [ (A) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 504.136 849.352 ] concat %I [ (E) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.958802 0 0 0.958802 20.4208 -20.2812 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 432 914 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 437.5 907 ] concat %I [ (1) ] Text End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.958802 0 0 0.958802 53.4995 -28.431 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 440 922 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 445.5 915 ] concat %I [ (2) ] Text End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.958802 0 0 0.958802 5.55941 -62.9479 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 448 930 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 453.5 923 ] concat %I [ (3) ] Text End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.958802 0 0 0.958802 40.0763 -72.5359 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 456 938 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 461.5 931 ] concat %I [ (4) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 0.958802 0 0 0.958802 376.616 907.839 ] concat %I [ (2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 460.031 864.693 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 459.073 813.876 ] concat %I [ (Z) ] Text End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 37.2324 -4.8042 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 189.17 870.925 ] concat %I [ (A) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.479401 0 0 0.479401 173.829 561.711 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -41.4219 326.326 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -41.4219 326.326 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 235.672 870.925 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -41.4219 284.138 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 50.6231 326.326 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 73.6343 284.138 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 303.267 827.779 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 189.17 828.737 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 234.713 828.737 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 215.537 697.382 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 246.219 697.382 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 265.395 828.737 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 87.0575 598.385 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 87.0575 598.385 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 87.0575 598.385 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 87.0575 598.385 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 280.735 870.925 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 81.3047 514.97 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 81.3047 514.97 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 81.3047 514.97 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Poly %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.918125 0 0 0.918125 -33.6468 437.073 ] concat %I 4 211 376 407 376 407 520 211 520 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 0.958802 0 0 0.958802 168.556 907.839 ] concat %I [ (1) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.479401 0 0 0.479401 196.361 552.123 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.479401 0 0 0.479401 195.882 508.498 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.479401 0 0 0.479401 236.631 525.756 ] concat %I 4 102 610 94 602 102 594 110 602 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 231.357 896.812 ] concat %I [ (c) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 212.181 876.678 ] concat %I [ (b) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -1.1522 747.239 ] concat %I 4 421 261 454 282 514 285 576 264 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 181.979 852.228 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 298.953 859.419 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 257.245 860.378 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 207.387 836.887 ] concat %I [ (y) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -1.1522 514.251 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 30.0089 523.359 ] concat %I 434 644 434 689 Line %I 2 End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 0.958802 0 0 0.958802 23.2311 747.961 ] concat %I [ (3) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 58.7729 718.475 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -171.819 173.876 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -171.819 173.876 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 105.275 718.475 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -171.819 131.689 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -79.7739 173.876 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -56.7627 131.689 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 172.87 675.329 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 58.7729 676.288 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 104.316 676.288 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 85.1399 544.932 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 115.822 544.932 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 134.998 676.288 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 445.936 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 445.936 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 445.936 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 445.936 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 445.936 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 150.338 718.475 ] concat %I [ (C) ] Text End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -49.0923 362.52 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -49.0923 362.52 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 212.181 718.475 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -18.4106 173.876 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -18.4106 173.876 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 258.683 718.475 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -18.4106 131.689 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 73.6343 173.876 ] concat %I 236 554 252 570 Rect End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t u Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 96.6456 131.689 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 326.279 675.329 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 212.181 676.288 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 257.724 676.288 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 238.548 544.932 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 269.23 544.932 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 288.406 676.288 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 110.069 445.936 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 110.069 445.936 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 110.069 445.936 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 110.069 445.936 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 110.069 445.936 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 303.747 718.475 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 104.316 362.52 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 104.316 362.52 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 104.316 362.52 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 58.7729 626.43 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -171.819 81.831 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -171.819 81.831 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 105.275 626.43 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -171.819 39.6438 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -79.7739 81.831 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -56.7627 39.6438 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 172.87 583.284 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 58.7729 584.243 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 104.316 584.243 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 85.1399 452.887 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 115.822 452.887 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 134.998 584.243 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 353.891 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 353.891 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 353.891 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -43.3395 353.891 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 150.338 626.43 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -49.0923 270.475 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -49.0923 270.475 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -49.0923 270.475 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -18.4106 81.831 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 258.683 626.43 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -18.4106 39.6438 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 73.6343 81.831 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 96.6456 39.6438 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 326.279 583.284 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 212.181 584.243 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 257.724 584.243 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 238.548 452.887 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 269.23 452.887 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 288.406 584.243 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 110.069 353.891 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 303.747 626.43 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 104.316 270.475 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 104.316 270.475 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 104.316 270.475 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Poly %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.16602 0 0 0.953533 -365.558 261.946 ] concat %I 4 322 292 638 292 638 517 322 517 4 Poly End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -132.029 361.801 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -132.029 269.756 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 21.3796 361.801 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 21.3796 269.756 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -100.868 372.348 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 52.5407 372.348 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -100.868 280.303 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 52.5407 280.303 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 55.2445 486.06 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -175.347 -58.5395 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -175.347 -58.5395 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 101.746 486.06 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -175.347 -100.727 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -83.3023 -58.5395 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -60.291 -100.727 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 169.342 442.914 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 55.2445 443.873 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 100.788 443.873 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 81.6116 312.517 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 112.293 312.517 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 131.469 443.873 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 213.521 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 213.521 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 213.521 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 213.521 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 213.521 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 146.81 486.06 ] concat %I [ (C) ] Text End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -52.6206 130.105 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -52.6206 130.105 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 208.653 486.06 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -21.939 -58.5395 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -21.939 -58.5395 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 255.155 486.06 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -21.939 -100.727 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 70.106 -58.5395 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 93.1172 -100.727 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 322.75 442.914 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 208.653 443.873 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 254.196 443.873 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 235.02 312.517 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 265.701 312.517 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 284.878 443.873 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 106.54 213.521 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 106.54 213.521 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 106.54 213.521 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 106.54 213.521 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 106.54 213.521 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 300.218 486.06 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 100.788 130.105 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 100.788 130.105 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 100.788 130.105 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 55.2445 394.015 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -175.347 -150.584 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -175.347 -150.584 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 101.746 394.015 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -175.347 -192.772 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -83.3023 -150.584 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -60.291 -192.772 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 169.342 350.869 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 55.2445 351.828 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 100.788 351.828 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 81.6116 220.472 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 112.293 220.472 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 131.469 351.828 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 121.476 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 121.476 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 121.476 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -46.8678 121.476 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 146.81 394.015 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -52.6206 38.0598 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -52.6206 38.0598 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -52.6206 38.0598 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -21.939 -150.584 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 255.155 394.015 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -21.939 -192.772 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 70.106 -150.584 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 93.1172 -192.772 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 322.75 350.869 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 208.653 351.828 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 254.196 351.828 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 235.02 220.472 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 265.701 220.472 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 284.878 351.828 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 106.54 121.476 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 300.218 394.015 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 100.788 38.0598 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 100.788 38.0598 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 100.788 38.0598 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 -599.138 70.1797 ] concat %I 636 249 1020 473 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -135.557 129.386 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 17.8513 129.386 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -135.557 37.3407 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 17.8513 37.3407 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -103.917 47.4081 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -103.917 139.453 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 49.4917 139.453 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 49.4917 47.4081 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.958802 0 0 0.958802 -40.156 -46.7941 ] concat %I 68 481 8 8 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 18.3309 434.764 ] concat %I [ (s) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 0.958802 0 0 0.958802 21.9264 435.723 ] concat %I [ (*) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -106.313 332.172 ] concat %I 291 167 328 135 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 -106.313 332.172 ] concat %I 291 168 328 289 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.958802 0 0 0.958802 -124.531 15.2883 ] concat %I 7 247 380 251 360 262 321 280 311 413 312 427 315 431 334 7 BSpl %I 1 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.958802 0 0 0.958802 203.826 -151.635 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.958802 0 0 0.958802 203.826 -59.5896 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 434.418 485.01 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 203.826 -101.777 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 434.418 442.822 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 479.961 442.822 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 460.785 311.467 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 332.305 212.47 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 332.305 212.47 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 332.305 212.47 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 587.826 485.01 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 357.234 -59.5896 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 357.234 -59.5896 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 634.328 485.01 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 357.234 -101.777 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 449.279 -59.5896 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 587.826 442.822 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 633.369 442.822 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 614.193 311.467 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 644.875 311.467 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 664.051 442.822 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 485.714 212.47 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 485.714 212.47 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 485.714 212.47 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 485.714 212.47 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 485.714 212.47 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 679.392 485.01 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 479.961 129.055 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 479.961 129.055 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 434.418 392.965 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 203.826 -151.635 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 480.92 392.965 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 203.826 -193.822 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 434.418 350.777 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 479.961 350.777 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 460.785 219.422 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 491.466 219.422 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 510.642 350.777 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 332.305 120.425 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 332.305 120.425 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 332.305 120.425 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 326.553 37.0097 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 326.553 37.0097 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.94635 0 0 0.958802 -207.263 69.1295 ] concat %I 636 249 1020 473 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 428.665 138.403 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 275.257 46.358 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.958802 0 0 0.958802 254.642 14.2381 ] concat %I 7 247 380 251 360 262 321 280 311 413 312 427 315 431 334 7 BSpl %I 1 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 357.234 -151.635 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 634.328 392.965 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 357.234 -193.822 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 587.826 350.777 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 633.369 350.777 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 614.193 219.422 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 644.875 219.422 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 664.051 350.777 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 485.714 120.425 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 479.961 37.0097 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 479.961 37.0097 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 428.665 46.358 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 0.958802 0 0 0.958802 403.281 747.77 ] concat %I [ (4) ] Text End Begin %I Poly %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.15418 0 0 0.958998 -399.759 62.6217 ] concat %I 4 686 498 1002 498 1002 723 686 723 4 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 436.004 717.182 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 205.413 172.583 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 205.413 172.583 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 482.506 717.182 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 205.413 130.396 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 297.458 172.583 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 320.469 130.396 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 550.102 674.036 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 436.004 674.995 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 481.548 674.995 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 462.371 543.639 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 493.053 543.639 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 444.643 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 444.643 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 444.643 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 444.643 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 444.643 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 527.57 717.182 ] concat %I [ (C) ] Text End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 328.139 361.227 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 328.139 361.227 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 589.413 717.182 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 358.821 172.583 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 358.821 172.583 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 635.915 717.182 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 358.821 130.396 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 450.866 172.583 ] concat %I 236 554 252 570 Rect End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t u Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 473.877 130.396 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 703.51 674.036 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 589.413 674.995 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 634.956 674.995 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 615.78 543.639 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 646.461 543.639 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 665.637 674.995 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 487.3 444.643 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 487.3 444.643 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 487.3 444.643 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 487.3 444.643 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 487.3 444.643 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 680.978 717.182 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 481.548 361.227 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 481.548 361.227 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 481.548 361.227 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 436.004 625.137 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 205.413 80.5381 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 205.413 80.5381 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 482.506 625.137 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 205.413 38.3508 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 297.458 80.5381 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 320.469 38.3508 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 550.102 581.991 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 436.004 582.95 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 481.548 582.95 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 462.371 451.594 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 493.053 451.594 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 512.229 582.95 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 352.598 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 352.598 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 352.598 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 333.892 352.598 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 527.57 625.137 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 328.139 269.182 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 328.139 269.182 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 328.139 269.182 ] concat %I 441 713 464 662 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 358.821 80.5381 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 635.915 625.137 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 358.821 38.3508 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 450.866 80.5381 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 473.877 38.3508 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 703.51 581.991 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 589.413 582.95 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 634.956 582.95 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 615.78 451.594 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.2397 0 0 0.2397 646.461 451.594 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 665.637 582.95 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 487.3 352.598 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 680.978 625.137 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 481.548 269.182 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 481.548 269.182 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 481.548 269.182 ] concat %I 441 713 464 662 Line %I 2 End Begin %I BSpl %I b 65520 1 0 1 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.958802 0 0 0.958802 -235.636 263.909 ] concat %I 5 705 413 709 402 756 394 809 398 855 414 5 BSpl %I 1 End Begin %I BSpl %I b 65520 1 0 1 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.958802 0 0 0.958802 -235.636 263.909 ] concat %I 6 790 315 794 309 886 296 940 295 950 297 948 316 6 BSpl %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 245.203 360.508 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 245.203 268.463 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 398.611 360.508 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 398.611 268.463 ] concat %I 585 644 617 644 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 276.843 369.617 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 430.252 369.617 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 276.843 277.572 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.479401 0 0 0.479401 430.252 277.572 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 0.958802 0 0 0.958802 24.0835 514.345 ] concat %I [ (5) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 0.958802 0 0 0.958802 403.257 513.294 ] concat %I [ (6) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 512.422 675.023 ] concat %I [ (Z) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 1.20007 -9.60071 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 25.802 -31.8025 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 473.877 130.396 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 703.51 674.036 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-* Times-Bold 14 SetF %I t [ 1 0 0 1 741.8 652 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65520 1 0 1 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 -47.4037 316.224 ] concat %I 1271 573 1290 533 Line %I 2 End Begin %I Line %I b 65520 1 0 1 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 -47.4037 316.224 ] concat %I 1272 447 1290 503 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -379.829 -240.019 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 25.802 -31.8025 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.958802 0 0 0.958802 473.877 130.396 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 703.51 674.036 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-* Times-Bold 14 SetF %I t [ 1 0 0 1 741.8 652 ] concat %I [ (*) ] Text End End %I eop Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 -47.4037 316.224 ] concat %I 3 601 272 667 212 670 152 3 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 -47.4037 316.224 ] concat %I 601 107 655 135 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.958802 0 0 0.958802 497.879 -143.226 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.958802 0 0 0.958802 727.512 400.415 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-* Times-Bold 14 SetF %I t [ 1 0 0 1 740 410.181 ] concat %I [ (*) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 330.626 314.424 ] concat %I 3 601 272 667 212 670 152 3 BSpl %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.20009 -0 -0 1.20009 140.411 176.414 ] concat %I 2 128 210 167 192 2 BSpl %I 1 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.20009 -0 -0 1.20009 520.84 175.214 ] concat %I 2 128 210 167 192 2 BSpl %I 1 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 1.80014 181.214 ] concat %I 3 231 412 282 397 332 420 3 BSpl %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 201.616 181.214 ] concat %I 3 154 259 252 216 252 336 3 BSpl %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 201.616 181.214 ] concat %I 3 784 257 886 214 886 334 3 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 -3.00023 193.815 ] concat %I 8 103 463 89 442 81 417 80 391 84 382 181 366 349 343 360 391 8 BSpl %I 2 End Begin %I BSpl %I b 65535 0 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 -73.2057 196.215 ] concat %I 0 0 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 375.629 193.215 ] concat %I 8 103 463 89 442 81 417 80 391 84 382 181 366 349 343 360 391 8 BSpl %I 2 End End %I eop showpage %%Trailer end %%EndDocument endTexFig -1600 56033 a Fv(Figure)574 b(3:)878 b Ft(A)-31 b(n)590 b(example)e(of)i(tr)-62 b(aversal)587 b(gr)-62 b(aph)588 b(c)-62 b(omputation.)1023 b Fr(1)p Ft(:)870 b(the)588 b(input)h(class)f(gr)-62 b(aph.)1024 b(Edge)589 b(lab)-62 b(els)588 b(ar)-62 b(e)-1600 57689 y(omitte)g(d)440 b(fr)-62 b(om)441 b(subse)-62 b(quent)438 b(gr)-62 b(aphs.)579 b Fr(2)p Ft(:)573 b(The)441 b(input)f(str)-62 b(ate)g(gy)439 b(\(the)h(name)h(map)g(is)g(indic)-62 b(ate)g(d\).)577 b(In)443 b(this)d(example,)-1600 59345 y(the)474 b(c)-62 b(onstr)g(aint)473 b(map)i(is)f(as)g(fol)62 b(lows:)638 b Fs(B)37 b Fv(\()p Fu(e)18260 59527 y Fn(1)18787 59345 y Fv(\)\()p Fu(B)21490 58679 y Fp(z)21121 59345 y Fs(!)412 b Fu(Z)87 b Fv(\))412 b(=)g Fe(f)-108 b(alse)476 b Ft(and)e Fs(B)37 b Fv(\()p Fu(e)33773 59527 y Fn(1)34300 59345 y Fv(\)\()p Fu(x)p Fv(\))412 b(=)g Fe(tr)-27 b(ue)476 b Ft(for)e(al)62 b(l)474 b Fu(x)411 b Fs(6)p Fv(=)h Fu(B)49459 58679 y Fp(z)49090 59345 y Fs(!)g Fu(Z)87 b Ft(;)-1600 61150 y Fs(B)37 b Fv(\()p Fu(e)268 61332 y Fn(2)795 61150 y Fv(\)\()p Fu(x)p Fv(\))444 b(=)f Fe(tr)-27 b(ue)494 b Ft(for)e(al)62 b(l)492 b Fu(x)p Ft(;)521 b Fs(B)37 b Fv(\()p Fu(e)15306 61332 y Fn(3)15833 61150 y Fv(\)\()p Fu(A)18492 60484 y Fp(d)18128 61150 y Fs(!)444 b Fu(D)34 b Fv(\))443 b(=)g Fe(f)-108 b(alse)494 b Ft(and)e Fs(B)37 b Fv(\()p Fu(e)31034 61332 y Fn(3)31561 61150 y Fv(\)\()p Fu(x)p Fv(\))444 b(=)f Fe(tr)-27 b(ue)494 b Ft(for)e(al)62 b(l)492 b Fu(x)443 b Fs(6)p Fv(=)g Fu(A)46857 60484 y Fp(d)46493 61150 y Fs(!)g Fu(D)34 b Ft(;)521 b(and)-1600 62806 y Fs(B)37 b Fv(\()p Fu(e)268 62988 y Fn(4)795 62806 y Fv(\)\()p Fu(x)p Fv(\))413 b(=)e Fe(f)-108 b(alse)477 b Ft(if)d Fu(x)412 b Fv(=)g Fu(A)475 b Ft(or)g(if)g Fu(x)g Ft(is)g(an)g(e)-62 b(dge)474 b(incident)g(to)g Fu(A)p Ft(,)486 b(and)474 b Fs(B)37 b Fv(\()p Fu(e)35408 62988 y Fn(4)35935 62806 y Fv(\)\()p Fu(x)p Fv(\))413 b(=)f Fe(tr)-27 b(ue)476 b Ft(otherwise.)680 b Fr(3)p Ft(:)640 b Fu(G)51689 62366 y Fo(0)-1600 64462 y Ft(after)391 b(Steps)g(1)h(and)g(2.)543 b Fr(4)p Ft(:)537 b Fu(G)11732 64022 y Fo(0)12435 64462 y Ft(after)391 b(Steps)h(3a)f(and)h(3b.)543 b(Inter)-62 b(c)g(opy)391 b(e)-62 b(dges)390 b(ar)-62 b(e)392 b(dashe)-62 b(d.)541 b Fr(5)p Ft(:)536 b Fu(G)41740 64022 y Fo(0)42444 64462 y Ft(after)391 b(Steps)g(3c,)g(3d,)-1600 66118 y(and)464 b(4.)650 b Fr(6)p Ft(:)619 b(The)464 b(\014nal)h(tr)-62 b(aversal)462 b(gr)-62 b(aph,)471 b(as)463 b(r)-62 b(eturne)g(d)464 b(in)h(Step)e(6.)650 b(The)464 b(shade)-62 b(d)462 b Fu(A)j Ft(no)-62 b(des)463 b(ar)-62 b(e)464 b(the)g(start)f(set)g Fu(T)51137 66300 y Fp(s)51628 66118 y Ft(,)-1600 67774 y(and)433 b(the)g(shade)-62 b(d)431 b(no)-62 b(de)432 b Fu(E)10485 67335 y Fo(\003)11445 67774 y Ft(is)h(the)f(\014nish)i(set)e Fu(T)20640 67971 y Fp(f)21245 67774 y Ft(.)24594 75628 y Fv(16)p eop %%Page: 17 18 17 17 bop 1430 2325 a Fv(elemen)-34 b(ts)405 b(whic)-34 b(h)405 b(do)f(not)h(satisfy)f Fs(B)37 b Fv(\()p Fu(e)19345 2507 y Fp(i)19722 2325 y Fv(\).)539 b(More)403 b(precisely)-101 b(,)403 b(set)8712 4822 y Fu(V)9688 4382 y Fp(i)11171 4822 y Fs( )13490 3899 y Fg(\010)14135 4822 y Fu(u)14829 4382 y Fp(i)15205 4822 y Fu(;)202 b(v)16375 4382 y Fp(i)16750 3899 y Fg(\011)17666 4822 y Fs([)18743 3899 y Fg(\010)19389 4822 y Fu(w)20290 4382 y Fp(i)21002 4822 y Fs(j)336 b(B)37 b Fv(\()p Fu(e)23543 5004 y Fp(i)23919 4822 y Fv(\)\()p Fu(w)c Fv(\))338 b(=)e Fe(tr)-27 b(ue)30689 3899 y Fg(\011)31941 4822 y Fv(,)404 b(and)8712 6711 y Fu(E)9677 6271 y Fp(i)11171 6711 y Fs( )13490 5456 y Fg(n)14228 6711 y Fu(u)14922 6271 y Fp(i)16094 6045 y(l)15634 6711 y Fs(!)337 b Fu(v)17814 6271 y Fp(i)18526 6711 y Fs(j)g(B)37 b Fv(\()p Fu(e)21068 6893 y Fp(i)21444 6711 y Fv(\)\()p Fu(u)23878 6045 y Fp(l)23417 6711 y Fs(!)337 b Fu(v)43 b Fv(\))337 b(=)g Fe(tr)-27 b(ue)30524 5456 y Fg(o)31464 6711 y Fs([)13490 7541 y Fg(n)14228 8796 y Fu(u)14922 8356 y Fp(i)16094 8130 y(l)15634 8796 y Fs(!)337 b Fu(y)17820 8356 y Fp(i)18533 8796 y Fs(j)f(B)37 b Fv(\()p Fu(e)21074 8978 y Fp(i)21451 8796 y Fv(\)\()p Fu(u)23885 8130 y Fp(l)23424 8796 y Fs(!)337 b Fu(y)43 b Fv(\))338 b(=)e Fs(B)37 b Fv(\()p Fu(e)29566 8978 y Fp(i)29943 8796 y Fv(\)\()p Fu(y)43 b Fv(\))338 b(=)f Fe(tr)-27 b(ue)36450 7541 y Fg(o)37390 8796 y Fs([)13490 9626 y Fg(n)14228 10881 y Fu(w)15129 10441 y Fp(i)16301 10215 y(l)15840 10881 y Fs(!)337 b Fu(v)18020 10441 y Fp(i)18733 10881 y Fs(j)f(B)37 b Fv(\()p Fu(e)21274 11063 y Fp(i)21651 10881 y Fv(\)\()p Fu(w)24291 10215 y Fp(l)23830 10881 y Fs(!)337 b Fu(v)43 b Fv(\))337 b(=)g Fs(B)37 b Fv(\()p Fu(e)29966 11063 y Fp(i)30342 10881 y Fv(\)\()p Fu(w)c Fv(\))338 b(=)e Fe(tr)-27 b(ue)37112 9626 y Fg(o)38052 10881 y Fs([)13490 11711 y Fg(n)14228 12966 y Fu(w)15129 12526 y Fp(i)16301 12300 y(l)15840 12966 y Fs(!)337 b Fu(y)18026 12526 y Fp(i)18739 12966 y Fs(j)g(B)37 b Fv(\()p Fu(e)21281 13148 y Fp(i)21657 12966 y Fv(\)\()p Fu(w)24298 12300 y Fp(l)23837 12966 y Fs(!)337 b Fu(y)43 b Fv(\))338 b(=)e Fs(B)37 b Fv(\()p Fu(e)29979 13148 y Fp(i)30356 12966 y Fv(\)\()p Fu(w)c Fv(\))337 b(=)f Fs(B)37 b Fv(\()p Fu(e)36154 13148 y Fp(i)36531 12966 y Fv(\)\()p Fu(y)43 b Fv(\))339 b(=)d Fe(tr)-27 b(ue)43038 11711 y Fg(o)44382 12966 y Fu(:)-118 16052 y Fv(3.)1117 b(\(a\))607 b(F)-101 b(or)483 b(eac)-34 b(h)483 b(strategy)g(graph)g(no)34 b(de)483 b Fu(a)467 b Fs(2)h Fu(C)87 b Fv(:)696 b(Let)482 b Fu(I)563 b Fv(=)467 b Fs(f)p Fu(e)30746 16234 y Fp(i)31066 16357 y Fi(1)31584 16052 y Fu(;)202 b(:)g(:)g(:)f(;)h(e)34842 16234 y Fp(i)35162 16345 y Fm(n)35784 16052 y Fs(g)483 b Fv(b)34 b(e)482 b(the)h(set)g(of)g(strategy)g(graph)4097 17709 y(edges)464 b(coming)h(in)-34 b(to)465 b Fu(a)p Fv(,)479 b(and)465 b(let)f Fu(O)471 b Fv(=)436 b Fs(f)q Fu(e)23781 17891 y Fp(o)24236 18014 y Fi(1)24752 17709 y Fu(;)202 b(:)g(:)g(:)f(;)h(e) 28010 17891 y Fp(o)28465 18002 y Fm(m)29302 17709 y Fs(g)465 b Fv(b)34 b(e)464 b(the)h(set)f(of)h(strategy)f(graph)h(edges)g(going) 4097 19365 y(out)503 b(from)g Fu(a)p Fv(.)834 b(Let)502 b Fs(N)179 b Fv(\()p Fu(a)p Fv(\))501 b(=)g Fu(v)544 b Fs(2)501 b Fu(V)269 b Fv(.)834 b(Add)504 b(to)f Fu(G)27978 18925 y Fo(0)28791 19365 y Fu(n)335 b Fs(\001)g Fu(m)502 b Fv(edges)h Fu(v)36061 18925 y Fp(i)36381 19060 y Fm(j)37371 19365 y Fs(!)e Fu(v)39715 18925 y Fp(o)40170 19081 y Fm(l)41050 19365 y Fv(for)i Fu(j)571 b Fv(=)500 b(1)p Fu(;)202 b(:)g(:)g(:)f(;)h(n)502 b Fv(and)4097 21021 y Fu(l)360 b Fv(=)337 b(1)p Fu(;)202 b(:)g(:)g(:)f(;)h(m)p Fv(.)538 b(Call)404 b(these)g(edges)g Ft(inter)-62 b(c)g(opy)432 b(e)-62 b(dges.)1875 23022 y Fv(\(b\))607 b(Add)558 b(to)f Fu(G)9497 22582 y Fo(0)10364 23022 y Fv(a)g(no)34 b(de)557 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\))17163 22582 y Fo(\003)18245 23022 y Fv(and,)596 b(for)557 b(eac)-34 b(h)557 b(edge)g Fu(e)29496 23204 y Fp(i)30428 23022 y Fv(coming)g(in)-34 b(to)558 b(the)f(target)g(no)34 b(de)557 b Fu(t)g Fv(in)g Fu(S)70 b Fv(,)595 b(an)4097 24678 y(in)-34 b(tercop)g(y)405 b(edge)f Fs(N)179 b Fv(\()p Fu(t)p Fv(\))14702 24238 y Fp(i)15414 24678 y Fs(!)336 b(N)179 b Fv(\()p Fu(t)p Fv(\))19516 24238 y Fo(\003)20042 24678 y Fv(.)2009 26828 y(\(c\))607 b(F)-101 b(or)375 b(eac)-34 b(h)376 b(no)34 b(de)375 b Fu(v)12473 26388 y Fp(i)13224 26828 y Fv(in)h Fu(G)15563 26388 y Fo(0)16248 26828 y Fv(with)g(an)g(outgoing)h(in)-34 b(tercop)g(y)375 b(edge:)524 b(Add)376 b(to)g Fu(G)39105 26388 y Fo(0)39791 26828 y Fv(edges)f Fu(u)43695 26388 y Fp(i)44868 26162 y(l)44407 26828 y Fs(!)337 b Fu(v)46587 26388 y Fp(j)47449 26828 y Fv(for)376 b(all)e Fu(u)51624 26388 y Fp(i)4097 28634 y Fv(and)405 b Fu(v)7085 28194 y Fp(j)7976 28634 y Fv(suc)-34 b(h)405 b(that)g Fu(u)14030 28194 y Fp(i)15203 27968 y(l)14742 28634 y Fs(!)337 b Fu(v)16922 28194 y Fp(i)17635 28634 y Fs(2)f Fu(E)19744 28194 y Fp(i)20524 28634 y Fv(and)405 b Fu(v)23512 28194 y Fp(i)24224 28634 y Fs(!)337 b Fu(v)26404 28194 y Fp(j)27295 28634 y Fv(is)404 b(an)g(in)-34 b(tercop)g(y)405 b(edge.)1875 30635 y(\(d\))607 b(Remo)-34 b(v)g(e)404 b(all)g(the)g(in)-34 b(tercop)g(y)405 b(edges)f(added)h(in)f(Steps)h(3a)f(and)h(3b.)-118 33189 y(4.)605 b(Add)544 b(to)f Fu(G)6802 32750 y Fo(0)7655 33189 y Fv(a)g(no)34 b(de)542 b Fu(s)12439 32750 y Fo(\003)13508 33189 y Fv(and,)578 b(for)542 b(eac)-34 b(h)543 b(edge)g Fu(e)24698 33371 y Fp(i)25616 33189 y Fv(going)g(out)h(from)e(the)i (source)e(no)34 b(de)543 b Fu(s)f Fv(in)h Fu(S)70 b Fv(,)577 b(an)543 b(edge)1430 34845 y Fu(s)1998 34406 y Fo(\003)2861 34845 y Fs(!)337 b(N)179 b Fv(\()p Fu(s)p Fv(\))7094 34406 y Fp(i)7470 34845 y Fv(.)538 b(If)404 b Fu(s)337 b Fv(=)g Fu(t)p Fv(,)403 b(add)i(to)f Fu(G)17711 34406 y Fo(0)18426 34845 y Fv(an)g(edge)g Fu(s)23438 34406 y Fo(\003)24301 34845 y Fs(!)337 b(N)179 b Fv(\()p Fu(t)p Fv(\))28404 34406 y Fo(\003)28929 34845 y Fv(.)-118 37400 y(5.)605 b(Mark)551 b(all)g(no)34 b(des)552 b(and)g(edges)f(in)g Fu(G)18603 36960 y Fo(0)19465 37400 y Fv(whic)-34 b(h)553 b(are)d(b)34 b(oth)553 b(reac)-34 b(hable)551 b(from)g Fu(s)37345 36960 y Fo(\003)38423 37400 y Fv(and)h(from)f(whic)-34 b(h)552 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\))50108 36960 y Fo(\003)51185 37400 y Fv(is)1430 39056 y(reac)-34 b(hable,)613 b(and)572 b(remo)-34 b(v)g(e)572 b(unmark)-34 b(ed)572 b(no)34 b(des)572 b(and)g(edges)f(from)h Fu(G)33488 38616 y Fo(0)33798 39056 y Fv(.)1041 b(Call)571 b(the)h(resulting)g(graph)g Fu(G)49876 38616 y Fo(00)51057 39056 y Fv(=)1430 40712 y(\()p Fu(V)2878 40272 y Fo(00)3444 40712 y Fu(;)202 b(E)4948 40272 y Fo(00)5513 40712 y Fv(\).)-118 43267 y(6.)605 b(Return)405 b(the)g(follo)-34 b(wing)405 b(ob)67 b(jects:)2885 45821 y Fs(\017)606 b Fv(The)400 b(set)g(of)g(all)f(no)34 b(des)400 b Fu(v)443 b Fv(suc)-34 b(h)400 b(that)h Fu(s)21880 45381 y Fo(\003)22743 45821 y Fs(!)337 b Fu(v)442 b Fv(is)400 b(an)g(edge)f(in)h Fu(G)33335 45381 y Fo(00)33901 45821 y Fv(.)537 b(This)400 b(is)f(the)i Ft(start)428 b(set)p Fv(,)399 b(denoted)i Fu(T)51173 46003 y Fp(s)51663 45821 y Fv(.)2885 47822 y Fs(\017)606 b Fv(The)573 b(graph)g(obtained)g(from) g Fu(G)19501 47382 y Fo(00)20639 47822 y Fv(after)f(remo)-34 b(ving)572 b Fu(s)29664 47382 y Fo(\003)30762 47822 y Fv(and)h(all)f(its)h(inciden)-34 b(t)573 b(edges.)1043 b(This)572 b(is)h(the)4097 49478 y Ft(tr)-62 b(aversal)431 b(gr)-62 b(aph)p Fv(,)402 b(denoted)j Fd(TG)30 b Fv(\()p Fs(S)91 b Fu(;)202 b(G;)g Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(\).)p -1600 50941 53600 56 v -1600 54102 a(F)-101 b(or)399 b(the)g(purp)34 b(ose)400 b(of)f(analysis,)g(w)-34 b(e)399 b(also)g(de\014ne)h(the)f Ft(\014nish)429 b(set)397 b Fv(of)j(the)f(tra)-34 b(v)g(ersal)399 b(graph,)h(denoted)g Fu(T)45854 54299 y Fp(f)46459 54102 y Fv(,)g(to)f(b)34 b(e)399 b(the)-1600 55758 y(singleton)405 b(set)f(con)-34 b(taining)405 b(the)g(no)34 b(de)404 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\))18880 55319 y Fo(\003)19405 55758 y Fv(.)-1600 59625 y Fk(Correctness)-1600 62623 y Fv(W)-101 b(e)379 b(no)-34 b(w)381 b(pro)-34 b(v)g(e)381 b(that)g(TGA)f(is)g(correct,)j (in)d(the)h(sense)e(that)j(the)e(set)g(of)g(paths)h(in)f(the)h(tra)-34 b(v)g(ersal)379 b(graph)i(\(from)f(the)-1600 64279 y(start)363 b(set)g(to)g(the)g(\014nish)h(set\))f(is)f(exactly)g(the)h(set)g(of)g (paths)h(de\014ned)f(b)-34 b(y)363 b(the)g(strategy)-101 b(.)525 b(This)363 b(prop)34 b(ert)-34 b(y)363 b(is)g(formally)-1600 65935 y(stated)405 b(in)f(Lemma)g(5.2.)282 68152 y(First,)g(w)-34 b(e)404 b(sho)-34 b(w)406 b(a)e(basic)g(prop)34 b(ert)-34 b(y)404 b(of)h(paths)g(in)f(the)h(tra)-34 b(v)g(ersal)404 b(graph.)-1600 70651 y Fk(Lemma)464 b(5.1)606 b Ft(If)427 b Fu(p)f Ft(is)g(a)g(p)-62 b(ath)425 b(in)i(the)e(tr)-62 b(aversal)424 b(gr)-62 b(aph,)426 b(then)g(under)g(the)f(extende)-62 b(d)425 b Fr(Class)h Ft(mapping,)g Fu(p)h Ft(is)f(a)g(p)-62 b(ath)-1600 72307 y(in)434 b(the)e(class)g(gr)-62 b(aph.)24594 75628 y Fv(17)p eop %%Page: 18 19 18 18 bop -1600 2499 a Fk(Pro)39 b(of:)508 b Fv(Note)442 b(that)h(for)f(an)-34 b(y)442 b(edge)g Fu(u)16025 2059 y Fp(i)17260 1833 y(l)16800 2499 y Fs(!)399 b Fu(v)19042 2059 y Fp(j)19971 2499 y Fv(in)442 b(the)g(tra)-34 b(v)g(ersal)442 b(graph,)451 b(w)-34 b(e)443 b(ha)-34 b(v)g(e)442 b(that)h(the)f (corresp)34 b(onding)442 b(edge)-1600 4155 y Fu(u)-3 3489 y Fp(l)-463 4155 y Fs(!)h Fu(v)511 b Fv(is)467 b(in)h(the)g(class) g(graph.)730 b(This)469 b(can)f(b)34 b(e)467 b(v)-34 b(eri\014ed)468 b(b)-34 b(y)468 b(insp)34 b(ection:)666 b(the)469 b(only)e(edges)h(added)h(to)f(the)g(graph)-1600 5811 y(whic)-34 b(h)405 b(remain)f(after)g(Step)h(6)f(are)g(added)h(in) f(Step)h(3c.)p 25659 5977 443 1052 v 282 8264 a(By)285 b(Lemma)h(5.1,)309 b(w)-34 b(e)287 b(can)f(apply)h(the)f(natural)h (corresp)34 b(ondence)286 b Fu(X)381 b Fv(to)287 b(paths)h(in)e(the)g (tra)-34 b(v)g(ersal)287 b(graph)f(to)h(obtain)-1600 9920 y(concrete)297 b(paths.)504 b(This)297 b(allo)-34 b(ws)298 b(us)g(to)f(state)h(the)f(main)h(prop)34 b(ert)-34 b(y)297 b(of)h(the)f(tra)-34 b(v)g(ersal)297 b(graph)h(in)f(the)h (follo)-34 b(wing)298 b(lemma.)-1600 12136 y Fk(Lemma)464 b(5.2)606 b Ft(L)-62 b(et)344 b Fs(S)436 b Ft(b)-62 b(e)344 b(a)g(str)-62 b(ate)g(gy,)359 b(let)344 b Fu(G)h Ft(b)-62 b(e)344 b(a)g(class)f(gr)-62 b(aph,)360 b(let)344 b Fs(N)523 b Ft(b)-62 b(e)344 b(a)g(name)g(map,)362 b(and)344 b(let)g Fs(B)381 b Ft(b)-62 b(e)344 b(a)h(c)-62 b(onstr)g(aint)-1600 13792 y(map.)553 b(L)-62 b(et)421 b Fu(T)168 b(G)337 b Fv(=)g Fd(TG)29 b Fv(\()p Fs(S)91 b Fu(;)202 b(G;)g Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(\))p Ft(,)423 b(let)e Fu(T)18476 13974 y Fp(s)19389 13792 y Ft(b)-62 b(e)421 b(the)f(start)h(set)f(and)i(let)f Fu(T)32339 13989 y Fp(f)33366 13792 y Ft(b)-62 b(e)421 b(the)f(\014nish)i(set)f(gener)-62 b(ate)g(d)419 b(by)i(TGA.)-1600 15448 y(Then)434 b Fu(X)95 b Fv(\()p Fu(P)3908 15636 y Fp(T)131 b(G)5376 15448 y Fv(\()p Fu(T)6555 15630 y Fp(s)7046 15448 y Fu(;)202 b(T)8293 15645 y Fp(f)8898 15448 y Fv(\)\))337 b(=)g Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(])p Ft(.)-1600 17664 y Fk(Pro)i(of:)586 b Fv(Let)509 b Fu(p)k Fs(2)f Fu(P)8257 17852 y Fp(T)131 b(G)9724 17664 y Fv(\()p Fu(T)10903 17846 y Fp(s)11395 17664 y Fu(;)202 b(T)12642 17861 y Fp(f)13247 17664 y Fv(\))510 b(b)34 b(e)509 b(a)h(path)h(in)e(the)h(tra)-34 b(v)g(ersal)510 b(graph.)856 b(T)-101 b(o)510 b(see)f(that)i Fu(X)95 b Fv(\()p Fu(p)p Fv(\))513 b Fs(2)g(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(],)534 b(w)-34 b(e)-1600 19320 y(decomp)34 b(ose)356 b Fu(p)f Fv(according)g(to)h(the)g (di\013eren)-34 b(t)356 b(copies)g(of)g Fu(G)f Fv(it)h(passes)g (through.)524 b(In)-34 b(tuitiv)g(ely)-101 b(,)365 b(w)-34 b(e)356 b(tak)-34 b(e)355 b(the)i(maximal)-1600 20976 y(segmen)-34 b(ts)504 b(of)f Fu(p)g Fv(whic)-34 b(h)504 b(are)e(con)-34 b(tained)504 b(in)f(the)g(same)g(cop)-34 b(y)503 b(of)h Fu(G)p Fv(,)527 b(and)504 b(the)f(next)g(no)34 b(de)503 b(\(whic)-34 b(h)505 b(is)d(in)h(another)-1600 22632 y(cop)-34 b(y\).)539 b(F)-101 b(ormally)g(,)403 b(w)-34 b(e)405 b(decomp)34 b(ose)404 b Fu(p)336 b Fv(=)h Fs(h)p Fu(v)18682 22814 y Fp(s)19172 22632 y Fs(i)270 b(\001)f Fu(p)21129 22814 y Fn(1)21924 22632 y Fs(\001)g Fu(p)23140 22814 y Fn(2)23868 22632 y Fs(\001)202 b(\001)g(\001)f Fu(p)26094 22814 y Fp(n)27124 22632 y Fv(inductiv)-34 b(ely)404 b(b)-34 b(y)404 b(the)h(follo)-34 b(wing)405 b(algorithm:)3249 25181 y Fu(i)336 b Fs( )h Fv(0;)403 b Fu(v)380 b Fs( )337 b Fr(head)q Fv(\()p Fu(p)p Fv(\))3249 26837 y(output)406 b Fu(v)3249 28493 y Fv(while)e Fu(v)379 b Fs(62)337 b Fu(T)9234 28690 y Fp(f)5067 30149 y Fu(i)f Fs( )h Fu(i)269 b Fv(+)g(1)5067 31805 y(let)404 b Fu(j)69 b Fv(\()p Fu(i)p Fv(\))404 b(b)34 b(e)404 b(suc)-34 b(h)405 b(that)h Fu(v)379 b Fs(2)337 b Fu(G)19226 31365 y Fp(j)51 b Fn(\()p Fp(i)p Fn(\))5067 33461 y Fv(//)404 b Ft(ac)-62 b(cumulate)430 b(pr)-62 b(e\014x)434 b(of)f Fu(p)g Ft(until)g(exiting)g Fu(G)26485 33021 y Fp(j)51 b Fn(\()p Fp(i)p Fn(\))5067 35117 y Fu(p)5677 35299 y Fp(i)6389 35117 y Fs( )337 b(h)p Fu(v)43 b Fs(i)5067 36773 y Fv(rep)34 b(eat)6885 38429 y Fu(p)336 b Fs( )h Fr(tail)p Fv(\()p Fu(p)p Fv(\);)404 b Fu(l)360 b Fs( )337 b Fr(head)q Fv(\()p Fu(p)p Fv(\))6885 40085 y Fu(p)f Fs( )h Fr(tail)p Fv(\()p Fu(p)p Fv(\);)404 b Fu(v)13904 39645 y Fo(0)14551 40085 y Fs( )337 b Fr(head)q Fv(\()p Fu(p)p Fv(\))6885 41741 y Fu(p)7495 41923 y Fp(i)8207 41741 y Fs( )g Fu(p)10366 41923 y Fp(i)11011 41741 y Fs(\001)269 b(h)p Fu(v)43 b(l)24 b(v)13736 41301 y Fo(0)14046 41741 y Fs(i)6885 43397 y Fu(v)380 b Fs( )336 b Fu(v)10032 42957 y Fo(0)5067 45053 y Fv(un)-34 b(til)405 b Fu(v)514 b(=)-741 b Fs(2)337 b Fu(G)10994 44613 y Fp(j)51 b Fn(\()p Fp(i)p Fn(\))5067 46709 y Fv(output)406 b Fu(p)9650 46891 y Fp(i)282 50913 y Fv(Supp)34 b(ose)516 b(that)h(the)f(algorithm)g(ab) 34 b(o)-34 b(v)g(e)515 b(outputs)j Fu(v)24417 51095 y Fp(s)25422 50913 y Fv(and)e Fu(n)f Fv(sub-paths)j Fu(p)35390 51095 y Fn(1)35916 50913 y Fu(;)202 b(:)g(:)g(:)f(;)h(p)39220 51095 y Fp(n)39845 50913 y Fv(.)873 b(F)-101 b(or)515 b Fu(i)522 b Fv(=)g(1)p Fu(;)202 b(:)g(:)g(:)f(;)h(n)p Fv(,)542 b(let)-1600 52569 y Fu(v)-1012 52751 y Fp(i)p Fo(\000)p Fn(1)1024 52569 y Fs(!)459 b Fu(v)3283 52751 y Fp(i)4117 52569 y Fv(=)f Fu(e)6082 52816 y Fp(j)51 b Fn(\()p Fp(i)p Fn(\))8099 52569 y Fv(with)478 b Fu(j)69 b Fv(\()p Fu(i)p Fv(\))478 b(as)g(de\014ned)g(b)-34 b(y)478 b(the)g(algorithm,)495 b(i.e.,)f Fu(e)31965 52816 y Fp(j)51 b Fn(\()p Fp(i)p Fn(\))33982 52569 y Fv(is)477 b(the)g(edge)h(in)f Fs(S)568 b Fv(corresp)34 b(onding)478 b(to)-1600 54225 y(the)494 b(index)f(of)g(the)h(cop)-34 b(y)493 b(of)h Fu(G)f Fv(through)i(whic)-34 b(h)494 b Fu(p)22250 54407 y Fp(i)23119 54225 y Fv(is)e(passing.)807 b(With)493 b(this)h(notation,)517 b(consider)493 b(the)g(sequence)-1600 55881 y(of)512 b(strategy)g(graph)g(no)34 b(des)512 b Fu(q)560 b Fv(=)516 b Fs(h)p Fu(v)15365 56063 y Fn(0)15890 55881 y Fu(v)16478 56063 y Fn(1)17206 55881 y Fu(:)202 b(:)g(:)f(v)19410 56063 y Fp(n)20036 55881 y Fs(i)p Fv(.)861 b(\(If)512 b Fu(n)k Fv(=)g(0,)538 b(let)511 b Fu(q)560 b Fv(=)516 b Fs(h)p Fu(s)p Fs(i)q Fv(,)538 b(where)511 b Fu(s)h Fv(is)g(the)g(source)f(of)h Fs(S)91 b Fv(.\))862 b(By)-1600 57537 y(construction,)445 b Fu(q)480 b Fv(is)436 b(a)g(path)h(in)g(the)f(strategy)h(graph:)603 b(this)437 b(is)f(b)34 b(ecause)435 b(the)i(only)f(edges)g(in)h(the)f(tra)-34 b(v)g(ersal)436 b(graph)-1600 59193 y(whic)-34 b(h)505 b(go)g(from)f(one)h(cop)-34 b(y)504 b(of)h Fu(G)f Fv(to)h(another)g (are)f(created)g(in)h(Step)g(3c)f(of)h(TGA,)f(where)h(an)g(edge)f(go)34 b(es)504 b(from)-1600 60849 y Fu(G)-647 60409 y Fp(i)237 60849 y Fv(to)k Fu(G)2775 60409 y Fp(j)3770 60849 y Fv(only)f(if)h Fr(T)-101 b(a)-34 b(rget)q Fv(\()p Fu(e)12053 61031 y Fp(i)12429 60849 y Fv(\))510 b(=)g Fr(Source)p Fv(\()p Fu(e)19295 61031 y Fp(j)19783 60849 y Fv(\).)850 b(Next,)533 b(note)509 b(that)g(since)e Fr(Source)p Fv(\()p Fu(p)p Fv(\))k Fs(2)f Fu(T)40957 61031 y Fp(s)41955 60849 y Fv(w)-34 b(e)508 b(ha)-34 b(v)g(e)509 b(b)-34 b(y)508 b(Step)h(4)-1600 62505 y(and)567 b(the)g(de\014nition)h(of)f Fu(T)10970 62687 y Fp(s)12027 62505 y Fv(that)g Fr(Class)p Fv(\()p Fr(Source)q Fv(\()p Fu(p)p Fv(\)\))608 b(=)f Fs(N)179 b Fv(\()p Fu(s)p Fv(\),)607 b(where)566 b Fu(s)h Fv(is)f(the)h(source)f(of)h Fs(S)91 b Fv(,)606 b(and)568 b(similarly)-101 b(,)-1600 64161 y Fr(Class)p Fv(\()p Fr(T)g(a)-34 b(rget)q Fv(\()p Fu(p)p Fv(\)\))371 b(=)g Fs(N)179 b Fv(\()p Fu(t)p Fv(\))424 b(where)g Fu(t)g Fv(is)h(the)g(target)f(of)h Fs(S)91 b Fv(.)600 b(Finally)-101 b(,)429 b(note)c(that)g Fu(p)g Fv(is)f(a)g(satisfying)h(expansion)h(of) e Fu(q)-1600 65817 y Fv(with)405 b(resp)34 b(ect)403 b(to)i Fs(B)37 b Fv(.)538 b(It)405 b(therefore)e(follo)-34 b(ws)405 b(that)h Fu(X)95 b Fv(\()p Fu(p)p Fv(\))337 b Fs(2)g(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(].)282 68033 y(Supp)d(ose)436 b(no)-34 b(w)437 b(that)f Fu(p)389 b Fs(2)g(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(].)630 b(By)434 b(De\014nition)i(4.7,)443 b(there)435 b(exists)g(a)g(path)i Fu(p)39935 67594 y Fo(0)40681 68033 y Fv(in)e(the)h(strategy)f(graph) -1600 69689 y(and)389 b(a)e(path)i Fu(p)5156 69250 y Fo(00)6110 69689 y Fv(in)f(the)g(class)g(graph)g(suc)-34 b(h)389 b(that)g Fu(p)336 b Fv(=)h Fu(X)95 b Fv(\()p Fu(p)25560 69250 y Fo(00)26126 69689 y Fv(\))388 b(and)h Fu(p)29936 69250 y Fo(00)30889 69689 y Fv(is)f(a)g(satisfying)g (expansion)g(of)h Fu(p)46058 69250 y Fo(0)46368 69689 y Fv(.)533 b(Hence)387 b Fu(p)51434 69250 y Fo(00)-1600 71345 y Fv(can)375 b(b)34 b(e)374 b(decomp)34 b(osed)375 b(in)-34 b(to)376 b(sub-paths)h Fu(p)17503 70906 y Fo(00)18405 71345 y Fv(=)337 b Fs(hN)179 b Fv(\()p Fu(s)p Fv(\))p Fs(i)211 b(\001)f Fu(p)24679 71527 y Fn(1)25415 71345 y Fs(\001)h Fu(p)26573 71527 y Fn(2)27300 71345 y Fs(\001)202 b(\001)g(\001)f Fu(p)29526 71527 y Fp(n)30527 71345 y Fv(as)375 b(in)g(De\014nition)g(4.6.)528 b(It)375 b(is)g(straigh)-34 b(tforw)g(ard)24594 75628 y(18)p eop %%Page: 19 20 19 19 bop -1600 2325 a Fv(to)405 b(v)-34 b(erify)403 b(from)h(De\014nition)h(4.6)f(and)h(the)f(sp)34 b(eci\014cation)404 b(of)h(the)f(tra)-34 b(v)g(ersal)404 b(graph)h(that)g Fu(p)40168 1885 y Fo(00)41071 2325 y Fs(2)336 b Fu(P)42993 2513 y Fp(T)131 b(G)44461 2325 y Fv(\()p Fu(T)45640 2507 y Fp(s)46131 2325 y Fu(;)202 b(T)47378 2522 y Fp(f)47983 2325 y Fv(\).)p 50652 2491 443 1052 v -1600 6552 a Fw(5.2)1495 b(T)-125 b(ra)-42 b(v)g(ersal)502 b(metho)42 b(ds)499 b(algorithm)-1600 9551 y Fv(T)-101 b(o)380 b(carry)e(out)i(tra)-34 b(v)g(ersals,)384 b(w)-34 b(e)379 b(attac)-34 b(h)381 b(a)e(tra)-34 b(v)g(ersal)379 b(metho)34 b(d)380 b(de\014nition)g(to)g (eac)-34 b(h)379 b(concrete)g(class.)530 b(In)379 b(this)h(section) -1600 11207 y(w)-34 b(e)405 b(describ)34 b(e)403 b(the)h(algorithm)h (of)f(these)g(metho)34 b(ds.)282 13423 y(In)-34 b(tuitiv)g(ely)-101 b(,)412 b(the)f(idea)f(is)h(to)g(tra)-34 b(v)g(erse)410 b(the)h(ob)67 b(ject)412 b(graph)f(while)f(using)i(the)f(tra)-34 b(v)g(ersal)410 b(graph)h(as)g(a)g(road)f(map)-1600 15079 y(that)463 b(tells)f(the)g(tra)-34 b(v)g(ersal)462 b(whic)-34 b(h)462 b(of)h(the)f(p)34 b(ossible)462 b(branc)-34 b(hes)462 b(to)h(tak)-34 b(e.)712 b(T)-101 b(o)462 b(do)g(that,)477 b(the)463 b(algorithm)f(main)-34 b(tains)-1600 16735 y(a)483 b(set)g(of)g(tok)-34 b(ens)484 b(placed)f(on)g(the)h(tra)-34 b(v)g(ersal)482 b(graph.)776 b(When)483 b(a)g(tra)-34 b(v)g(ersal)483 b(metho)34 b(d)484 b(is)e(in)-34 b(v)g(ok)g(ed)484 b(at)f(an)h(ob)67 b(ject,)503 b(it)-1600 18391 y(gets)371 b(the)g(set)g(of)h(tok)-34 b(ens)371 b(as)g(a)g(parameter;)381 b(the)372 b(in)-34 b(terpretation)372 b(of)f(a)g(tok)-34 b(en)371 b(placed)g(on)g(a)g(no)34 b(de)371 b Fu(v)414 b Fv(in)371 b(the)g(tra)-34 b(v)g(ersal)-1600 20047 y(graph)352 b(is)g(roughly)f(\\the)h(tra)-34 b(v)g(ersal)352 b(made)g(so)g(far)f (ma)-34 b(y)352 b(ha)-34 b(v)g(e)352 b(led)g(to)g Fu(v)43 b Fv(.")521 b(The)352 b(fact)g(that)h(there)e(ma)-34 b(y)352 b(b)34 b(e)352 b(more)f(than)-1600 21703 y(one)470 b(tok)-34 b(en)471 b(sim)-34 b(ultaneously)471 b(is)e(a)h(re\015ection) g(of)g(the)h(fact)f(that)h(the)g(path)g(leading)f(to)g(an)h(ob)67 b(ject)471 b(in)f(the)g(ob)67 b(ject)-1600 23359 y(graph)443 b(ma)-34 b(y)443 b(b)34 b(e)442 b(\(under)i(the)f(natural)g(corresp)34 b(ondence)442 b Fu(Y)269 b Fv(\))443 b(a)g(pre\014x)f(of)h(sev)-34 b(eral)442 b(distinct)h(paths)h(in)e Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(].)-1600 25015 y(This)480 b(matters,)498 b(b)34 b(ecause)478 b(if)i(there)f(are) f(sev)-34 b(eral)478 b(tok)-34 b(ens,)499 b(w)-34 b(e)479 b(migh)-34 b(t)480 b(ha)-34 b(v)g(e)480 b(more)e(p)34 b(ossibilities)479 b(for)g(selecting)f(the)-1600 26671 y(next)404 b(tra)-34 b(v)g(ersal)404 b(step.)282 28887 y(The)431 b(tra)-34 b(v)g(ersal)430 b(metho)34 b(d)431 b(is)f(denoted)i(b)34 b(elo)-34 b(w)430 b(b)-34 b(y)431 b Fr(T)-101 b(raverse)p Fv(\()p Fu(T)168 b Fv(\),)438 b(where)430 b Fu(T)599 b Fv(is)431 b(the)f(set)h(of)g(tok)-34 b(ens,)437 b(i.e.,)f(a)430 b(set)h(of)-1600 30543 y(no)34 b(des)419 b(in)g(the)h(tra)-34 b(v)g(ersal)418 b(graph.)584 b(When)419 b(the)g(tra)-34 b(v)g(ersal)419 b(metho)34 b(d)420 b(in)-34 b(v)g(ok)g(es)419 b(the)g Fr(visit)e Fv(metho)34 b(d)420 b(at)f(an)h(ob)67 b(ject,)423 b(that)-1600 32199 y(ob)67 b(ject)444 b(is)e(added)i(to)f(the)g(tra)-34 b(v)g(ersal)443 b(history)-101 b(.)654 b(The)444 b(description)f(b)34 b(elo)-34 b(w)443 b(is)f(generic)g(in)h(the)g(sense)g(that)h(the)f (same)-1600 33855 y(metho)34 b(d)405 b(is)f(used)g(for)h(all)e(ob)67 b(jects;)405 b(it)f(can)g(b)34 b(e)404 b(used)h(for)f(di\013eren)-34 b(t)405 b(tra)-34 b(v)g(ersals,)403 b(using)i(di\013eren)-34 b(t)405 b(tra)-34 b(v)g(ersal)403 b(graphs.)282 36071 y(W)-101 b(e)323 b(assume)g(that)i(eac)-34 b(h)323 b(ob)67 b(ject)325 b(can)e(\014nd)i(its)e(class)g(name)h(and)g(can)f(iterate)g (through)i(all)e(its)g(constituen)-34 b(t)326 b(\014elds)-1600 37727 y(at)405 b(run)f(time.)538 b(This)405 b(assumption)h(can)e(b)34 b(e)404 b(ful\014lled)g(either)g(b)-34 b(y)405 b(some)f(minor)g(prepro) 34 b(cessing)403 b(or)h(b)-34 b(y)405 b(re\015ection.)p -1600 39856 53600 56 v -1600 41599 a Fk(T)-116 b(ra)-39 b(v)g(ersal)464 b(Metho)39 b(ds)465 b(Algorithm)g(\(TMA\):)404 b Fr(T)-101 b(raverse)p Fv(\()p Fu(T)168 b Fv(\),)405 b(guided)g(b)-34 b(y)404 b(a)g(tra)-34 b(v)g(ersal)404 b(graph)h Fu(T)168 b(G)p Fv(.)-118 44794 y(1.)605 b(De\014ne)405 b(a)f(set)g(of)g(tra)-34 b(v)g(ersal)404 b(graph)h(no)34 b(des)404 b Fu(T)22151 44355 y Fo(0)22867 44794 y Fv(b)-34 b(y)2433 47648 y Fu(T)3309 47147 y Fo(0)3957 47648 y Fs( )5506 46393 y Fg(n)6244 47648 y Fu(v)379 b Fs(j)337 b Fr(Class)p Fv(\()p Fu(v)43 b Fv(\))337 b(=)f Fr(Class)p Fv(\()p Fq(this)r Fv(\))404 b(and)h Fs(9)p Fu(u)337 b Fs(2)g Fu(T)573 b Fv(suc)-34 b(h)405 b(that)g Fu(u)337 b Fv(=)f Fu(v)447 b Fv(or)404 b Fu(u)38196 46982 y Fo(\005)37826 47648 y Fs(!)336 b Fu(v)448 b Fv(is)403 b(an)i(edge)f(in)g Fu(T)168 b(G)49317 46393 y Fg(o)50661 47648 y Fu(:)-118 50996 y Fv(2.)605 b(If)404 b Fu(T)3518 50556 y Fo(0)4166 50996 y Fv(=)337 b Fs(;)p Fv(,)404 b(return.)-118 53641 y(3.)605 b(Call)404 b Fq(this)r Fu(:)p Fq(visit\(\))r Fv(.)-118 56286 y(4.)605 b(Let)431 b Fu(Q)f Fv(b)34 b(e)431 b(the)g(set)g(of)g(lab)34 b(els)430 b(whic)-34 b(h)431 b(app)34 b(ear)431 b(b)34 b(oth)431 b(on)g(edges)g(going)g(out)g(from)g (a)g(no)34 b(de)431 b(in)f Fu(T)45604 55847 y Fo(0)46346 56286 y Fv(in)h Fu(T)168 b(G)431 b Fv(and)1430 57942 y(on)405 b(edges)f(going)g(out)h(from)f Fq(this)i Fv(in)e(the)h(ob)67 b(ject)405 b(graph.)539 b(F)-101 b(or)404 b(eac)-34 b(h)404 b(lab)34 b(el)403 b Fu(l)361 b Fs(2)336 b Fu(Q)p Fv(,)404 b(let)15759 60796 y Fu(T)16467 60993 y Fp(l)17151 60796 y Fv(=)18431 59541 y Fg(n)19169 60796 y Fu(v)379 b Fs(j)337 b Fu(u)22301 60130 y Fp(l)21840 60796 y Fs(!)g Fu(v)380 b Fs(2)337 b Fu(T)168 b(G)404 b Fv(for)h(some)f Fu(u)336 b Fs(2)h Fu(T)35679 60295 y Fo(0)35990 59541 y Fg(o)37334 60796 y Fu(:)-118 64144 y Fv(5.)605 b(Call)404 b Fq(this)r Fu(:l)24 b(:)p Fr(T)-101 b(raverse)n Fv(\()p Fu(T)13008 64341 y Fp(l)13356 64144 y Fv(\))404 b(for)g(all)g Fu(l)360 b Fs(2)337 b Fu(Q)p Fv(,)404 b(ordered)g(b)-34 b(y)404 b(\\)p Fs(\036)p Fv(",)g(the)g(ordering)g(of)h(the)f(lab)34 b(els.)p -1600 65834 V 282 68995 a(Step)435 b(1)g(of)f(TMA)h(mak)-34 b(es)435 b(sure)f(that)i(the)f(tok)-34 b(en)435 b(set)f(corresp)34 b(onds)435 b(to)g(the)g(class)f(of)h(the)g(curren)-34 b(t)434 b(ob)67 b(ject:)600 b(the)-1600 70651 y(tok)-34 b(ens)444 b(in)g Fu(T)612 b Fv(placed)444 b(on)g(concrete)f(classes)g (app)34 b(ear)443 b(in)h Fu(T)25626 70211 y Fo(0)26381 70651 y Fv(only)f(if)h(they)g(are)f(placed)g(on)h(a)g(no)34 b(de)444 b(corresp)34 b(onding)-1600 72307 y(to)375 b Fr(Class)o Fv(\()p Fq(this)r Fv(\).)529 b(And)375 b(the)g(tok)-34 b(ens)375 b(in)f Fu(T)543 b Fv(placed)374 b(on)h(abstract)g(classes)e (are)h(mo)-34 b(v)g(ed)375 b(in)f Fu(T)39798 71867 y Fo(0)40484 72307 y Fv(to)g(their)g(sub)34 b(class)375 b(no)34 b(de)24594 75628 y(19)p eop %%Page: 20 21 20 20 bop -1600 2325 a Fv(whose)495 b(class)f(is)g Fr(Class)o Fv(\()p Fq(this)r Fv(\))h(\(if)f(there)g(is)g(one;)539 b(otherwise,)517 b(they)494 b(are)g(simply)g(discarded\).)809 b(In)494 b(an)-34 b(y)495 b(ev)-34 b(en)g(t,)517 b(all)-1600 3981 y(tok)-34 b(ens)405 b(in)f Fu(T)4468 3541 y Fo(0)5183 3981 y Fv(are)g(placed)g(on)g(no)34 b(des)405 b(corresp)34 b(onding)404 b(to)h Fr(Class)o Fv(\()p Fq(this)r Fv(\).)282 6197 y(An)465 b(example)f(run)h(of)f(the)h(algorithm)g(is)f(giv)-34 b(en)465 b(in)f(Figure)g(4,)480 b(based)465 b(on)g(the)g(tra)-34 b(v)g(ersal)464 b(graph)h(of)g(Figure)f(3.)-1600 7853 y(The)405 b(follo)-34 b(wing)404 b(remarks)g(help)g(to)g(understand)j (Figure)c(4.)218 11065 y Fs(\017)606 b Fv(F)-101 b(or)404 b(simplicit)-34 b(y)-101 b(,)404 b(c)-34 b(hild)404 b(order)g(is)g (assumed)h(alphab)34 b(etical.)218 13717 y Fs(\017)606 b Fv(In)418 b(step)h(3,)h(the)f(tra)-34 b(v)g(ersal)417 b(from)h Fr(B)g Fv(to)g Fr(D)g Fv(passes)h(through)g(the)f(abstract)h (class)e Fr(Z)h Fv(\(and)h(similarly)d(in)i(other)1430 15373 y(steps\).)218 18026 y Fs(\017)606 b Fv(Step)415 b(4)f(could)g(also)g(deriv)-34 b(e)413 b(a)h(step)h(to)f Fr(D)h Fv(if)f(there)f(w)-34 b(ere)414 b(suc)-34 b(h)415 b(a)f(c)-34 b(hild,)416 b(but)g(there)d(is)h(no)g(suc)-34 b(h)415 b(c)-34 b(hild)414 b(in)h(the)1430 19682 y(ob)67 b(ject)405 b(graph.)218 22334 y Fs(\017)606 b Fv(Step)456 b(6)e(represen)-34 b(ts)455 b(the)g(second)g(c)-34 b(hild)455 b(of)f(the)h(original)f(tok)-34 b(en)455 b Fr(A)g Fv(in)f(step)i(1.)689 b(Ho)-34 b(w)g(ev)g(er,)467 b(the)455 b(tok)-34 b(en)456 b(set)e(is)1430 23990 y(empt)-34 b(y)357 b(b)34 b(ecause)355 b(the)h Fr(A)p Fs(!)p Fr(C)h Fv(edge)e(is)h(missing)f(in)h(copies)g(1)f (and)i(3)f(of)g(the)g(class)f(graph.)523 b(Note)356 b(that)h(in)f(step) g(1)1430 25646 y(only)404 b(the)h Fr(A)f Fv(in)g(copies)g(1)g(and)h(3)f (is)g(shaded.)218 28298 y Fs(\017)606 b Fv(The)405 b(pro)34 b(cess)404 b(hits)g(the)h(target)f(no)34 b(de)404 b(in)h(steps)f(5)g (and)h(9.)-1600 33207 y Fk(Correctness)-1600 36206 y Fv(The)g(follo)-34 b(wing)404 b(lemma)g(states)h(the)g(main)f(prop)34 b(ert)-34 b(y)404 b(of)h(the)f(tra)-34 b(v)g(ersal)404 b(algorithm.)-1600 38422 y Fk(Lemma)464 b(5.3)606 b Ft(L)-62 b(et)455 b Fv(\012)h Ft(b)-62 b(e)455 b(an)h(obje)-62 b(ct)454 b(tr)-62 b(e)g(e,)460 b(and)455 b(let)g Fu(o)g Ft(b)-62 b(e)455 b(an)h(obje)-62 b(ct)453 b(in)j Fv(\012)p Ft(.)624 b(Supp)-62 b(ose)454 b(that)g(the)h Fr(T)-101 b(raverse)455 b Ft(metho)-62 b(ds)-1600 40078 y(ar)g(e)496 b(guide)-62 b(d)494 b(by)h(a)h(tr)-62 b(aversal)494 b(gr)-62 b(aph)495 b Fu(T)168 b(G)497 b Ft(with)f(\014nish)g(set)g Fu(T)26502 40275 y Fp(f)27107 40078 y Ft(.)746 b(L)-62 b(et)496 b Fu(H)98 b Fv(\()p Fu(o;)202 b(T)168 b Fv(\))497 b Ft(b)-62 b(e)496 b(the)f(se)-62 b(quenc)g(e)494 b(of)i(obje)-62 b(cts)493 b(which)-1600 41734 y(invoke)432 b Fq(visit)k Ft(while)c Fu(o:)p Fr(T)-101 b(raverse)o Fv(\()p Fu(T)168 b Fv(\))435 b Ft(is)e(active,)e(wher)-62 b(e)433 b Fu(T)602 b Ft(is)433 b(a)h(set)e(of)h(no)-62 b(des)433 b(in)g Fu(T)168 b(G)p Ft(.)558 b(Then)15914 44607 y Fv(\012)337 b Fs(`)17867 44789 y Fp(s)18694 44607 y Fu(o)f Fv(:)g Fu(X)95 b Fv(\()p Fu(P)22639 44795 y Fp(T)131 b(G)24107 44607 y Fv(\()p Fu(T)101 b(;)202 b(T)26634 44804 y Fp(f)27240 44607 y Fv(\)\))270 b Fj(\003)f Fu(H)98 b Fv(\()p Fu(o;)202 b(T)168 b Fv(\))435 b Fu(:)-1600 48041 y Fk(Pro)39 b(of:)531 b Fv(By)461 b(induction)i(on)f Fs(j)p Fu(H)98 b Fv(\()p Fu(o;)202 b(T)168 b Fv(\))p Fs(j)p Fv(.)712 b(F)-101 b(or)462 b(the)g(base)g(case,)476 b(supp)34 b(ose)462 b(that)i Fu(H)98 b Fv(\()p Fu(o;)202 b(T)168 b Fv(\))433 b(=)g Fu(\017)p Fv(.)712 b(By)461 b(the)h(algorithm,)-1600 49697 y(this)411 b(can)f(o)34 b(ccur)409 b(only)h(if)g(after)h(Step)f (1,)i Fu(T)17925 49257 y Fo(0)18583 49697 y Fv(=)346 b Fs(;)p Fv(,)411 b(whic)-34 b(h)411 b(means)g(that)g(for)f(all)g (concrete)f(no)34 b(des)411 b Fu(v)389 b Fs(2)347 b Fu(T)168 b Fv(,)412 b Fr(Class)p Fv(\()p Fu(v)43 b Fv(\))347 b Fs(6)p Fv(=)-1600 51353 y Fr(Class)p Fv(\()p Fu(o)p Fv(\),)301 b(and)277 b(that)g(no)f(abstract)g(no)34 b(de)276 b(in)g Fu(T)445 b Fv(has)276 b(a)g(c)-34 b(hild)276 b(whose)g(class)f(is)h Fr(Class)p Fv(\()p Fu(o)p Fv(\).)496 b(It)275 b(follo)-34 b(ws)277 b(from)f(De\014nition)g(3.1)-1600 53009 y(that)405 b Fr(tail)p Fv(\()p Fu(X)95 b Fv(\()p Fu(P)5445 53197 y Fp(T)131 b(G)6913 53009 y Fv(\()p Fu(T)101 b(;)202 b(T)9440 53206 y Fp(f)10046 53009 y Fv(\)\))p Fu(;)g Fr(Class)p Fv(\()p Fu(o)p Fv(\)\))337 b(=)g Fs(;)404 b Fv(and)h(hence)f(\012)337 b Fs(`)26408 53191 y Fp(s)27235 53009 y Fu(o)f Fv(:)g Fu(X)95 b Fv(\()p Fu(P)31180 53197 y Fp(T)131 b(G)32648 53009 y Fv(\()p Fu(T)101 b(;)202 b(T)35175 53206 y Fp(f)35781 53009 y Fv(\)\))270 b Fj(\003)f Fu(\017)p Fv(,)404 b(as)g(required.)282 55225 y(F)-101 b(or)454 b(the)g(induction)h(step,)467 b(assume)454 b(that)i Fs(j)p Fu(H)98 b Fv(\()p Fu(o;)202 b(T)168 b Fv(\))p Fs(j)420 b Fu(>)f Fv(0.)688 b(Let)454 b Fu(l)30683 55407 y Fn(1)31208 55225 y Fu(;)202 b(:)g(:)g(:)f(;)h(l)34264 55407 y Fp(n)35344 55225 y Fv(b)34 b(e)454 b(the)g(set)g(of)g(lab)34 b(els)454 b(of)g(tra)-34 b(v)g(ersal)-1600 56881 y(graph)508 b(edges)g(whic)-34 b(h)509 b(start)f(with)g(a)g(no)34 b(de)508 b(in)g Fu(T)21270 56442 y Fo(0)21581 56881 y Fv(,)533 b(and)509 b(let)e Fu(o)27354 57063 y Fp(i)28239 56881 y Fv(=)i Fu(o:l)30978 57063 y Fp(i)31860 56881 y Fv(for)f Fu(i)h Fv(=)g(1)p Fu(;)202 b(:)g(:)g(:)f(;)h(n)p Fv(.)849 b(In)507 b(this)i(case,)532 b(b)-34 b(y)509 b(the)-1600 58537 y(algorithm)495 b(w)-34 b(e)496 b(ha)-34 b(v)g(e)495 b(that)i Fu(H)98 b Fv(\()p Fu(o;)202 b(T)168 b Fv(\))489 b(=)f Fu(o)330 b Fs(\001)f Fu(H)98 b Fv(\()p Fu(o)21215 58719 y Fn(1)21741 58537 y Fu(;)202 b(T)22988 58719 y Fn(1)23514 58537 y Fv(\))g Fs(\001)g(\001)g(\001)g Fu(H)98 b Fv(\()p Fu(o)27969 58719 y Fp(n)28595 58537 y Fu(;)202 b(T)29842 58719 y Fp(n)30468 58537 y Fv(\),)518 b(where)495 b Fu(T)36098 58719 y Fp(i)36969 58537 y Fv(is)g(the)h(set)f (of)g(tra)-34 b(v)g(ersal)495 b(graph)-1600 60379 y(no)34 b(des)441 b Fu(v)483 b Fv(suc)-34 b(h)441 b(that)h Fu(u)9729 59677 y Fp(l)10010 59812 y Fm(i)9439 60379 y Fs(!)397 b Fu(v)483 b Fv(for)441 b(some)f Fu(u)397 b Fs(2)g Fu(T)20256 59940 y Fo(0)21008 60379 y Fv(and)441 b(suc)-34 b(h)441 b(that)g Fu(o)30108 59677 y Fp(l)30389 59812 y Fm(i)29818 60379 y Fs(!)397 b Fu(o)32015 59940 y Fo(0)32766 60379 y Fv(is)440 b(an)g(edge)h(in)f(the)h(ob)67 b(ject)441 b(graph.)648 b(It)440 b(is)-1600 62036 y(follo)-34 b(ws)442 b(directly)e(from)h(the)g(de\014nitions)h(that)g Fu(X)95 b Fv(\()p Fu(P)22807 62224 y Fp(T)131 b(G)24275 62036 y Fv(\()p Fu(T)25454 62218 y Fp(i)25830 62036 y Fu(;)202 b(T)27077 62233 y Fp(f)27682 62036 y Fv(\)\))399 b(=)f Fr(tail)o Fv(\()p Fr(tail)p Fv(\()p Fu(X)95 b Fv(\()p Fu(P)36853 62224 y Fp(T)131 b(G)38321 62036 y Fv(\()p Fu(T)101 b(;)202 b(T)40848 62233 y Fp(f)41454 62036 y Fv(\)\))p Fu(;)g Fr(Class)p Fv(\()p Fu(o)p Fv(\)\))p Fu(;)g(l)48413 62218 y Fp(i)48789 62036 y Fv(\),)450 b(and)-1600 63692 y(hence,)404 b(b)-34 b(y)404 b(the)h(induction)g(h) -34 b(yp)34 b(othesis,)405 b(\012)337 b Fs(`)19525 63874 y Fp(s)20352 63692 y Fu(o)f Fv(:)g Fu(X)95 b Fv(\()p Fu(P)24297 63880 y Fp(T)131 b(G)25765 63692 y Fv(\()p Fu(T)26944 63874 y Fp(i)27321 63692 y Fu(;)202 b(T)28568 63889 y Fp(f)29173 63692 y Fv(\)\))270 b Fj(\003)f Fu(H)98 b Fv(\()p Fu(o)33762 63874 y Fp(i)34138 63692 y Fu(;)202 b(T)35385 63874 y Fp(i)35760 63692 y Fv(\))405 b(and)g(w)-34 b(e)404 b(are)g(done.)p 47491 63858 443 1052 v 282 66145 a(W)-101 b(e)403 b(summarize)h(in)g(the)h(follo)-34 b(wing)405 b(theorem.)-1600 68361 y Fk(Theorem)464 b(5.4)606 b Ft(L)-62 b(et)561 b Fs(S)652 b Ft(b)-62 b(e)560 b(a)h(str)-62 b(ate)g(gy,)590 b(let)560 b Fu(G)i Ft(b)-62 b(e)560 b(a)h(class)e(gr) -62 b(aph,)591 b(let)560 b Fs(N)739 b Ft(b)-62 b(e)561 b(a)f(name)h(map,)592 b(and)561 b(let)f Fs(B)598 b Ft(b)-62 b(e)560 b(a)-1600 70017 y(c)-62 b(onstr)g(aint)439 b(map.)575 b(L)-62 b(et)440 b Fu(T)168 b(G)440 b Ft(b)-62 b(e)440 b(the)e(tr)-62 b(aversal)438 b(gr)-62 b(aph)438 b(gener)-62 b(ate)g(d)438 b(by)h(TGA,)h(and)f(let)g Fu(T)38650 70199 y Fp(s)39581 70017 y Ft(and)h Fu(T)42650 70214 y Fp(f)43695 70017 y Ft(b)-62 b(e)439 b(the)g(start)f(and)24594 75628 y Fv(20)p eop %%Page: 21 22 21 21 bop 0 3552 a 29838604 35522150 1052508 7564902 38482329 51704463 startTexFig 0 3552 a%%BeginDocument: run.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Times-Italic Courier Helvetica-Bold %%Pages: 1 %%BoundingBox: 16 115 585 786 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 53 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Times-Italic reencodeISO def /Courier reencodeISO def /Helvetica-Bold reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 4.12506e-34 4.04308e-34 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.796717 0 0 0.796717 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 10.229 550.847 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0659 -203.017 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 298.427 210.423 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0659 -235.044 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.124 178.399 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.699 178.399 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 283.142 78.6787 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 306.434 78.6787 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.991 178.399 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 3.52175 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 -59.8039 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 -59.8039 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 142.295 -52.7066 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 9.46539 45.3724 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 453.046 -34.2714 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 663.407 379.169 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 453.046 -66.298 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 628.104 347.145 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 662.679 347.145 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 648.122 247.425 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 671.414 247.425 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 685.971 347.145 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.583 172.268 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.217 108.942 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.217 108.942 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 507.275 116.039 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 374.445 214.118 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0659 -35.0344 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 298.427 378.406 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0659 -67.061 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.124 346.382 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.699 346.382 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 283.142 246.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 306.434 246.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.991 346.382 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 171.505 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 108.179 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 108.179 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 142.295 115.276 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 9.46539 213.355 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 453.046 132.948 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 663.407 546.388 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 453.046 100.921 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 628.104 514.364 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 662.679 514.364 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 648.122 414.644 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 671.414 414.644 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 685.971 514.364 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.583 339.487 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.217 276.161 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.217 276.161 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 507.275 283.258 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 374.445 381.337 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.3024 133.711 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.663 547.154 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.3024 101.685 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 262.361 515.13 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 296.935 515.13 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 282.378 415.407 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 305.671 415.407 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.228 515.13 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.84 340.25 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.473 276.925 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.473 276.925 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 141.531 284.022 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 8.70184 382.101 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727894 0 0 0.727894 453.81 301.694 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 664.17 715.136 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 453.81 269.667 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 628.868 683.113 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 663.443 683.113 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 648.886 583.39 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 672.178 583.39 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 686.735 683.113 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 551.347 508.233 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.981 444.907 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.981 444.907 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 508.038 452.005 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 375.209 550.084 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.8295 302.457 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 299.19 715.9 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727894 0 0 0.727894 88.8295 270.431 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.888 683.876 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 298.463 683.876 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 283.905 584.154 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 307.198 584.154 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 321.755 683.876 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 186.367 508.997 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 182 445.671 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 182 445.671 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 143.058 452.768 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 453.81 469.676 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 664.17 883.117 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 453.81 437.65 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 628.868 851.093 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 663.443 851.093 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 648.886 751.372 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 672.178 751.372 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 686.735 851.093 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 551.347 676.216 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.981 612.89 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.981 612.89 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 508.038 619.987 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 -253.596 683.706 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.7888 975.24 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -282.45 654.852 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -253.596 654.852 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -224.743 654.852 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -282.45 625.999 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -253.596 625.999 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -224.743 625.999 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -282.45 597.146 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -224.743 597.146 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -282.45 568.293 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 570.096 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 570.096 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 570.096 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 570.096 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -57.0336 570.096 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.1803 570.096 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 541.243 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.1803 541.243 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 512.39 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727894 0 0 0.727894 -28.3971 470.046 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727894 0 0 0.727894 -28.3971 539.924 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 104.807 812.52 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 953.364 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -28.3971 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 921.34 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.237 921.34 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 166.679 821.619 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 746.463 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 746.463 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 746.463 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.124 953.364 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0662 539.924 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0662 539.924 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 298.427 953.364 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0662 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 157.944 539.924 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.124 921.34 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.699 921.34 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 283.142 821.619 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 306.434 821.619 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.991 921.34 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 746.463 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 746.463 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 746.463 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 746.463 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 746.463 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 332.638 953.364 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 683.137 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 683.137 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 883.489 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -28.3971 470.046 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.964 883.489 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -28.3971 438.019 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 851.463 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.237 851.463 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 166.679 751.741 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 189.971 751.741 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 204.529 851.463 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 676.585 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 676.585 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 676.585 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.7737 613.26 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.7737 613.26 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 142.295 690.234 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 25.8306 620.355 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 859.831 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 470.046 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 539.924 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 469.897 812.52 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 953.364 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 921.34 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 546.325 921.34 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.767 821.619 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 746.463 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 746.463 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 746.463 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 628.212 953.364 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 453.155 539.924 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 453.155 539.924 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 663.515 953.364 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 453.155 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 523.032 539.924 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 628.212 921.34 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 662.788 921.34 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 648.23 821.619 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 671.523 821.619 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 686.08 921.34 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 746.463 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 746.463 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 746.463 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 746.463 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 746.463 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 697.726 953.364 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.325 683.137 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.325 683.137 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 883.489 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727892 0 0 0.727892 336.692 470.046 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 547.052 883.489 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 438.019 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 851.463 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 546.325 851.463 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.767 751.741 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 555.06 751.741 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 569.617 851.463 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 676.585 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 676.585 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 676.585 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.862 613.26 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.862 613.26 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 507.383 690.234 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 390.92 620.355 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 946.393 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 917.538 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 888.683 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.7888 946.393 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.7888 917.538 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 92.6417 946.393 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 92.6417 917.538 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 92.6417 888.683 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 111.493 683.706 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.877 975.24 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 82.6384 654.852 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 111.493 654.852 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 140.345 654.852 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 82.6384 625.999 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 111.493 625.999 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 140.345 625.999 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 82.6384 597.146 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 140.345 597.146 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 82.6384 568.293 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 570.096 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 570.096 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 570.096 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 570.096 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 308.054 570.096 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.908 570.096 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 541.243 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.908 541.243 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 512.39 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 859.831 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 946.393 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 917.538 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 888.683 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.877 946.393 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.877 917.538 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 457.73 946.393 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 457.73 917.538 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 457.73 888.683 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -97.3135 522.602 ] concat %I 191 470 727 726 Rect End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -97.3135 522.602 ] concat %I 335 726 335 470 Line %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 269.014 522.602 ] concat %I 191 470 727 726 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -253.596 515.749 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.7888 807.286 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -282.45 486.895 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -253.596 486.895 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -224.743 486.895 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 -282.45 458.042 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -253.596 458.042 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -224.743 458.042 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -282.45 429.189 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -224.743 429.189 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -282.45 400.336 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 402.139 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 402.139 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 402.139 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 402.139 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -57.0336 402.139 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.1803 402.139 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 373.287 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.1803 373.287 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -85.8868 344.433 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -28.3971 302.089 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -28.3971 371.967 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 104.807 644.563 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 785.41 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -28.3971 339.94 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 753.384 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.237 753.384 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 166.679 653.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 578.506 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 578.506 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 578.506 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.124 785.41 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0662 371.967 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0662 371.967 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 298.427 785.41 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.0662 339.94 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 157.944 371.967 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.124 753.384 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.699 753.384 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 283.142 653.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 306.434 653.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.991 753.384 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 578.506 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 578.506 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 578.506 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 578.506 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 185.603 578.506 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 332.638 785.41 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 515.181 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 181.237 515.181 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 715.533 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -28.3971 302.089 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.964 715.533 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727894 0 0 0.727894 -28.3971 270.063 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 146.661 683.506 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.237 683.506 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 166.679 583.785 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 189.971 583.785 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 204.529 683.506 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 508.629 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 508.629 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 69.1405 508.629 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.7737 445.303 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.7737 445.303 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 142.295 522.278 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 25.8306 452.399 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 691.873 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 302.089 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 371.967 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 469.897 644.563 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 785.41 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 339.94 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 753.384 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 546.325 753.384 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.767 653.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 578.506 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 578.506 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 578.506 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 628.212 785.41 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 453.155 371.967 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 453.155 371.967 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 663.515 785.41 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 453.155 339.94 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 523.032 371.967 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 628.212 753.384 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 662.788 753.384 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 648.23 653.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 671.523 653.662 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 686.08 753.384 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 578.506 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 578.506 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 578.506 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 578.506 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 550.693 578.506 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 697.726 785.41 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.325 515.181 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 546.325 515.181 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 715.533 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727892 0 0 0.727892 336.692 302.089 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 547.052 715.533 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 336.692 270.063 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.75 683.506 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 546.325 683.506 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.767 583.785 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 555.06 583.785 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 569.617 683.506 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 508.629 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 508.629 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 434.229 508.629 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.862 445.303 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.862 445.303 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 507.383 522.278 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 390.92 452.399 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 778.434 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 749.579 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.9359 720.726 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.7888 778.434 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.7888 749.579 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 92.6417 778.434 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 92.6417 749.579 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 92.6417 720.726 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 111.493 515.749 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.877 807.286 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 82.6384 486.895 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 111.493 486.895 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 140.345 486.895 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 82.6384 458.042 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 111.493 458.042 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 140.345 458.042 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 82.6384 429.189 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 140.345 429.189 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 82.6384 400.336 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 402.139 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 402.139 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 402.139 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 402.139 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 308.054 402.139 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.908 402.139 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 373.287 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.908 373.287 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 279.201 344.433 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 691.873 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 778.434 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 749.579 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 400.024 720.726 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.877 778.434 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.877 749.579 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 457.73 778.434 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 457.73 749.579 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 457.73 720.726 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -97.3135 354.646 ] concat %I 191 470 727 726 Rect End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -97.3135 354.646 ] concat %I 335 726 335 470 Line %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 269.014 354.646 ] concat %I 191 470 727 726 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 346.52 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 638.058 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 317.666 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 317.666 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -225.475 317.666 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 288.813 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 288.813 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -225.475 288.813 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 259.96 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -225.475 259.96 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 -283.182 231.107 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 232.91 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 232.91 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 232.91 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 232.91 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -57.7658 232.91 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.9125 232.91 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 204.057 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.9125 204.057 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 175.204 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 132.86 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 202.738 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 104.075 475.334 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 616.181 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 170.712 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 584.154 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 180.504 584.154 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 165.946 484.433 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 409.278 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 409.278 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 409.278 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 262.392 616.181 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 202.738 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 202.738 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.694 616.181 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 170.712 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 157.212 202.738 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 262.392 584.154 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 296.967 584.154 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 282.41 484.433 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 305.702 484.433 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.259 584.154 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 409.278 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 409.278 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 409.278 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 409.278 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 409.278 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 331.906 616.181 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.504 345.951 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.504 345.951 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 546.303 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 132.86 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.232 546.303 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 100.834 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 514.277 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 180.504 514.277 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 165.946 414.555 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 189.24 414.555 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 203.797 514.277 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 339.4 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 339.4 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 339.4 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.0415 276.074 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.0415 276.074 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 141.562 353.048 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 25.0985 283.17 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 522.644 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 132.86 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 202.738 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 469.165 475.334 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 616.181 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 170.712 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 584.154 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 545.592 584.154 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.035 484.433 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 409.278 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 409.278 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 409.278 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 627.48 616.181 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 452.422 202.738 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 452.422 202.738 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 662.783 616.181 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 452.422 170.712 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 522.3 202.738 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 627.48 584.154 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 662.055 584.154 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 647.497 484.433 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 670.791 484.433 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 685.348 584.154 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 409.278 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 409.278 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 409.278 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 409.278 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 409.278 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 696.994 616.181 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 545.592 345.951 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 545.592 345.951 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 546.303 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 132.86 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 546.32 546.303 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 100.834 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 514.277 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 545.592 514.277 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.035 414.555 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 554.327 414.555 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 568.885 514.277 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 339.4 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 339.4 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 339.4 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.13 276.074 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.13 276.074 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 506.651 353.048 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 390.188 283.17 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 609.204 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 580.35 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 551.497 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 609.204 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 580.35 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 609.204 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 580.35 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 551.497 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 110.76 346.52 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.145 638.058 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 317.666 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 110.76 317.666 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 139.613 317.666 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 288.813 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 110.76 288.813 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 139.613 288.813 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 259.96 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 139.613 259.96 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 231.107 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 232.91 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 232.91 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 232.91 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 232.91 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 307.322 232.91 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.176 232.91 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 204.057 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.176 204.057 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 175.204 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 522.644 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 609.204 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 580.35 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 551.497 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.145 609.204 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.145 580.35 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 456.998 609.204 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 456.998 580.35 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 456.998 551.497 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -98.0457 185.417 ] concat %I 191 470 727 726 Rect End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -98.0457 185.417 ] concat %I 335 726 335 470 Line %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 268.282 185.417 ] concat %I 191 470 727 726 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 178.563 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 470.1 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 149.709 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 149.709 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 -225.475 149.709 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 120.856 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 120.856 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -225.475 120.856 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 92.0034 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -225.475 92.0034 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 63.1505 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 64.9535 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 64.9535 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 64.9535 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 64.9535 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -57.7658 64.9535 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.9125 64.9535 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 36.1005 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.9125 36.1005 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 7.248 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -35.0966 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 34.7811 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 104.075 307.377 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 448.224 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727894 0 0 0.727894 -29.1294 2.75446 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 416.198 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 180.504 416.198 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 165.946 316.476 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 241.321 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 241.321 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 241.321 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 262.392 448.224 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 34.7811 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 34.7811 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.694 448.224 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727894 0 0 0.727894 87.334 2.75446 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 157.212 34.7811 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 262.392 416.198 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 296.967 416.198 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 282.41 316.476 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 305.702 316.476 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.259 416.198 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 241.321 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 241.321 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 241.321 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 241.321 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 241.321 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 331.906 448.224 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.504 177.995 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.504 177.995 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 378.347 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -35.0966 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.232 378.347 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -67.1225 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 346.32 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 180.504 346.32 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 165.946 246.599 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 189.24 246.599 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 203.797 346.32 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 171.443 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 171.443 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 171.443 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.0415 108.117 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.0415 108.117 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 141.562 185.092 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 25.0985 115.213 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 354.688 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 -35.0966 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 34.7811 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 469.165 307.377 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 448.224 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 2.75446 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 416.198 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 545.592 416.198 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.035 316.476 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 241.321 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 241.321 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 241.321 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 627.48 448.224 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 452.422 34.7811 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727892 0 0 0.727892 452.422 34.7811 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 662.783 448.224 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 452.422 2.75446 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 522.3 34.7811 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 627.48 416.198 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 662.055 416.198 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 647.497 316.476 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 670.791 316.476 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 685.348 416.198 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 241.321 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 241.321 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 241.321 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 241.321 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 549.961 241.321 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 696.994 448.224 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 545.592 177.995 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 545.592 177.995 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 378.347 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 -35.0966 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 546.32 378.347 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 335.959 -67.1225 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 511.018 346.32 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 545.592 346.32 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 531.035 246.599 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 554.327 246.599 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 568.885 346.32 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 171.443 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 171.443 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 433.497 171.443 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.13 108.117 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 429.13 108.117 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 506.651 185.092 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 390.188 115.213 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 441.248 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 412.394 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 383.54 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 441.248 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 412.394 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 441.248 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 412.394 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 383.54 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 110.76 178.564 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.145 470.1 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 149.709 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 110.76 149.709 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 139.613 149.709 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 120.856 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 110.76 120.856 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 139.613 120.856 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 92.0034 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 139.613 92.0034 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 81.9062 63.1505 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 64.9536 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 64.9536 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 64.9536 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 64.9536 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 307.322 64.9536 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.176 64.9536 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 36.1005 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 336.176 36.1005 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 278.469 7.248 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 354.688 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 441.248 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 412.394 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 399.292 383.54 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.145 441.248 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 428.145 412.394 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 456.998 441.248 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 456.998 412.394 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 456.998 383.54 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -98.0457 17.4598 ] concat %I 191 470 727 726 Rect End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -98.0457 17.4598 ] concat %I 335 726 335 470 Line %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 268.282 17.4598 ] concat %I 191 470 727 726 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 10.6069 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 302.144 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 -18.2472 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 -18.2472 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -225.475 -18.2472 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 -47.1005 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -254.328 -47.1005 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -225.475 -47.1005 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 -75.953 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.601108 0 0 0.601108 -225.475 -75.953 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.601108 0 0 0.601108 -283.182 -104.806 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 -103.004 ] concat %I 241 654 209 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 -103.004 ] concat %I 265 654 297 630 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 -103.004 ] concat %I 253 654 253 634 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 -103.004 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -57.7658 -103.004 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.9125 -103.004 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 -131.856 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -28.9125 -131.856 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.601108 0 0 0.601108 -86.6191 -160.709 ] concat %I 205 606 205 586 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -203.053 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -133.175 ] concat %I 236 554 252 570 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 104.075 139.421 ] concat %I 8 122 357 105 331 95 299 94 267 99 255 220 236 270 237 422 270 8 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 280.268 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -165.202 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 248.241 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 180.504 248.241 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 165.946 148.52 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 73.3641 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 73.3641 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 73.3641 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 262.392 280.268 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 -133.175 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 -133.175 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 297.694 280.268 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 87.334 -165.202 ] concat %I 236 554 252 570 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 157.212 -133.175 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 262.392 248.241 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 296.967 248.241 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 282.41 148.52 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 305.702 148.52 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 320.259 248.241 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 73.3641 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 73.3641 ] concat %I 219 539 219 489 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 73.3641 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 73.3641 ] concat %I 315 488 239 537 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 184.871 73.3641 ] concat %I 4 238 557 270 593 330 596 392 575 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 331.906 280.268 ] concat %I [ (C) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.504 10.038 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 180.504 10.038 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 210.39 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -203.053 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 181.232 210.39 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 -29.1294 -235.08 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 145.929 178.364 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 180.504 178.364 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 165.946 78.642 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 189.24 78.642 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 203.797 178.364 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 3.48671 ] concat %I 236 556 296 556 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 3.48671 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 68.4083 3.48671 ] concat %I 315 488 239 537 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.0415 -59.8397 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 64.0415 -59.8397 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 141.562 17.1353 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 25.0985 -52.7432 ] concat %I 434 644 434 689 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 186.731 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 273.291 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 244.437 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 34.2037 215.584 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 273.291 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 63.0566 244.437 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 273.291 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 244.437 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1.20222 0 0 1.20222 91.9096 215.584 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -98.0457 -150.497 ] concat %I 191 470 727 726 Rect End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.6362 0 0 0.6362 -98.0457 -150.497 ] concat %I 335 726 335 470 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 218.878 979.394 ] concat %I [ (1) ] Text End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.2724 0 0 1.2724 -191.594 128.795 ] concat %I 528 671 528 543 Line %I 1 End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.2724 0 0 1.2724 -191.594 -36.6168 ] concat %I 528 671 528 543 Line %I 1 End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.2724 0 0 1.2724 -193.599 -207.118 ] concat %I 528 671 528 543 Line %I 1 End Begin %I Line %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.2724 0 0 1.2724 -193.599 -377.62 ] concat %I 528 671 528 543 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 585.206 979.394 ] concat %I [ (2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 220.15 813.982 ] concat %I [ (3) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 585.206 813.982 ] concat %I [ (4) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 218.146 643.48 ] concat %I [ (5) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 583.201 643.48 ] concat %I [ (6) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 218.146 475.524 ] concat %I [ (7) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 585.746 475.524 ] concat %I [ (8) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1.2724 0 0 1.2724 218.146 307.567 ] concat %I [ (9) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 375.209 718.066 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.8299 470.44 ] concat %I 284 554 300 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 299.191 883.88 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727894 0 0 0.727894 88.8299 438.413 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 263.888 851.856 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 298.463 851.856 ] concat %I [ (Y) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 283.906 752.136 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.181973 0 0 0.181973 307.198 752.136 ] concat %I 6 80 564 112 564 136 524 112 484 80 484 56 524 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727894 0 0 0.727894 321.755 851.856 ] concat %I [ (Z) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 186.367 676.979 ] concat %I 237 469 295 469 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 182.001 613.653 ] concat %I 344 714 384 667 Line %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 182.001 613.653 ] concat %I 4 385 623 368 603 333 601 251 625 4 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.363947 0 0 0.363947 143.059 620.751 ] concat %I 434 644 434 689 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.381779 0 0 0.381779 10.2294 718.83 ] concat %I 7 470 407 491 320 503 288 521 286 821 279 825 287 825 314 7 BSpl %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t u Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.20007 -25.2019 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 540.503 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 714.833 920.615 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 722 903.8 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 42.0033 340.826 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 42.0033 340.826 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 -0 -0 0.600046 42.0033 340.826 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -365.428 -168.013 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.20007 -25.2019 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 540.503 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 714.833 920.615 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 722 903.8 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -323.425 172.813 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -323.425 172.813 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -323.425 172.813 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -364.828 0 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.20007 -25.2019 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 540.503 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 714.833 920.615 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 722 903.8 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -322.825 340.826 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -322.825 340.826 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -322.825 340.826 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.80017 -167.413 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.20007 -25.2019 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 540.503 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 714.833 920.615 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 722 903.8 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 40.2031 173.413 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 40.2031 173.413 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 40.2031 173.413 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -367.828 -504.639 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.20007 -25.2019 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 540.503 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 714.833 920.615 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 722 903.8 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -325.825 -163.813 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -325.825 -163.813 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -325.825 -163.813 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -2.39993 -336.626 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.20007 -25.2019 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 540.503 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 714.833 920.615 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 722 903.8 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 39.6034 4.19998 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 39.6034 4.19998 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 39.6034 4.19998 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727892 0 0 0.727892 172.075 146.069 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 346.405 558.787 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 354.772 567.174 ] concat %I [ (*) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -325.225 4.19995 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -325.225 4.19995 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -325.225 4.19995 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.19986 -504.039 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -1.20007 -25.2019 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.727892 0 0 0.727892 540.503 507.897 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 714.833 920.615 ] concat %I [ (E) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 722 903.8 ] concat %I [ (*) ] Text End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 40.8034 -163.213 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 40.8034 -163.213 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 40.8034 -163.213 ] concat %I 1093 845 1115 898 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.727892 0 0 0.727892 172.675 -189.957 ] concat %I 236 554 252 570 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 0.727892 0 0 0.727892 347.005 222.761 ] concat %I [ (E) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 355.372 231.148 ] concat %I [ (*) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -324.625 -331.826 ] concat %I 1105 1002 1122 933 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -324.625 -331.826 ] concat %I 1085 948 1109 928 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.600046 0 0 0.600046 -324.625 -331.826 ] concat %I 1093 845 1115 898 Line %I 2 End End %I eop showpage %%Trailer end %%EndDocument endTexFig -1600 66315 a Fv(Figure)452 b(4:)634 b Ft(A)-31 b(n)478 b(example)e(of)h(an)h(exe)-62 b(cution)475 b(of)i(tr)-62 b(aversal)475 b(using)i(the)f(tr)-62 b(aversal)475 b(of)i(Figur)-62 b(e)477 b(3.)688 b(A)-31 b(t)478 b(e)-62 b(ach)475 b(step,)487 b(the)-1600 67971 y(left-hand)531 b(side)i(shows)f(the)h(obje)-62 b(ct)532 b(tr)-62 b(e)g(e)533 b(with)g(the)g(curr)-62 b(ently)532 b(active)f(obje)-62 b(ct)532 b(shade)-62 b(d,)556 b(and)534 b(the)e(right-hand)g(side)-1600 69627 y(shows)432 b(the)h(tr)-62 b(aversal)431 b(gr)-62 b(aph)432 b(with)h(the)f(token)h(set)f(shade)-62 b(d.)24594 75628 y Fv(21)p eop %%Page: 22 23 22 22 bop -1600 2325 a Ft(\014nish)443 b(sets,)h(r)-62 b(esp)g(e)g(ctively.)582 b(L)-62 b(et)442 b Fv(\012)i Ft(b)-62 b(e)442 b(an)i(obje)-62 b(ct)441 b(tr)-62 b(e)g(e)442 b(and)g(let)h Fu(o)f Ft(b)-62 b(e)443 b(an)g(obje)-62 b(ct)441 b(in)i Fv(\012)p Ft(.)587 b(L)-62 b(et)442 b Fu(H)542 b Ft(b)-62 b(e)442 b(the)g(se)-62 b(quenc)g(e)441 b(of)-1600 3981 y(no)-62 b(des)432 b(visite)-62 b(d)432 b(when)h Fu(o:)p Fr(T)-101 b(raverse)433 b Ft(is)g(c)-62 b(al)62 b(le)-62 b(d)431 b(with)i(ar)-62 b(gument)433 b Fu(T)27516 4163 y Fp(s)28006 3981 y Ft(,)h(guide)-62 b(d)431 b(by)i Fu(T)168 b(G)p Ft(.)558 b(Then)17544 6854 y Fv(\012)337 b Fs(`)19497 7036 y Fp(s)20324 6854 y Fu(o)f Fv(:)g Fu(X)95 b Fv(\()p Fs(S)c Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(]\))269 b Fj(\003)g Fu(H)532 b(:)-1600 10288 y Fk(Pro)39 b(of:)604 b Fv(By)525 b(Lemma)h(5.3,)555 b(the)527 b(judgmen)-34 b(t)528 b(\012)539 b Fs(`)21565 10470 y Fp(s)22595 10288 y Fu(o)g Fv(:)g Fu(X)95 b Fv(\()p Fu(P)26946 10476 y Fp(T)131 b(G)28414 10288 y Fv(\()p Fu(T)29593 10470 y Fp(s)30085 10288 y Fu(;)202 b(T)31332 10485 y Fp(f)31937 10288 y Fv(\)\))351 b Fj(\003)f Fu(H)624 b Fv(holds)526 b(true.)904 b(The)526 b(claim)f(of)h(the)-1600 11944 y(theorem)357 b(follo)-34 b(ws)358 b(from)f(the)h(fact)f(that)i Fs(S)91 b Fv([)p Fu(G;)202 b Fs(N)179 b Fu(;)202 b Fs(B)37 b Fv(])334 b(=)j Fu(X)95 b Fv(\()p Fu(P)26284 12191 y Fc(TG)16 b Fn(\()p Fo(S)65 b Fp(;G;)p Fo(N)132 b Fp(;)p Fo(B)24 b Fn(\))32198 11944 y Fv(\()p Fu(T)33377 12126 y Fp(s)33868 11944 y Fu(;)202 b(T)35115 12141 y Fp(f)35721 11944 y Fv(\)\))357 b(b)-34 b(y)358 b(Lemma)e(5.2,)366 b(and)358 b(from)f(the)-1600 13600 y(de\014nitions)405 b(of)g(the)f(start)h(set)f Fu(T)13239 13782 y Fp(s)14134 13600 y Fv(and)h(the)g(\014nish)g(set)f Fu(T)24418 13797 y Fp(f)25023 13600 y Fv(.)p 27222 13766 443 1052 v 282 16054 a(F)-101 b(rom)472 b(the)h(theorem)g(ab)34 b(o)-34 b(v)g(e)473 b(it)f(is)h(clear)e(ho)-34 b(w)474 b(to)f(start)g(a)g(tra) -34 b(v)g(ersal)472 b(at)h(an)g(ob)67 b(ject)473 b Fu(o)p Fv(:)675 b(Call)473 b Fu(o:)p Fr(T)-101 b(raverse)471 b Fv(with)-1600 17710 y(argumen)-34 b(t)405 b Fu(T)4532 17892 y Fp(s)5023 17710 y Fv(,)f(where)g Fu(T)9977 17892 y Fp(s)10872 17710 y Fv(is)g(the)g(start)h(set)f(of)h(the)f(tra)-34 b(v)g(ersal.)-1600 21622 y Fk(Remarks)-1600 24621 y(Closed-w)-39 b(orld)410 b(assumption.)1213 b Fv(The)357 b(class)g(graph)g(pro)-34 b(vided)357 b(as)g(input)h(to)f(TGA)g(is)g(assumed)g(to)g(b)34 b(e)357 b(the)g(en)-34 b(tire)-1600 26277 y(class)380 b(graph)h(of)g(the)g(program.)531 b(If)380 b(an)h(ob)67 b(ject)381 b(whose)g(class)f(is)h(not)g(in)f Fu(G)h Fv(is)f(encoun)-34 b(tered)381 b(while)f(executing)h(TMA,)-1600 27933 y(ev)-34 b(en)444 b(a)g(sub)34 b(class)444 b(of)g(a)g(class)g(in)g Fu(T)168 b(G)p Fv(,)454 b(step)444 b(1)g(of)h(TMA)f(will)f(pro)34 b(duce)444 b(an)h(empt)-34 b(y)444 b Fu(T)38160 27493 y Fo(0)38472 27933 y Fv(,)453 b(and)445 b(step)f(2)g(will)g(stop)g(the) -1600 29589 y(tra)-34 b(v)g(ersal)404 b(from)g(con)-34 b(tin)g(uing)406 b(out)f(of)g(this)f(instance.)-1600 33501 y Fk(Non-simple)523 b(class)e(graphs.)1213 b Fv(While)453 b(the)i(class)f(graph)h Fu(G)f Fv(is)h(assumed)g(to)g(b)34 b(e)454 b(simple,)466 b(and)455 b(th)-34 b(us)456 b(the)f(edges)-1600 35157 y(whose)k(lab)34 b(els)457 b(are)g(in)h Fu(Q)g Fv(\(computed)i(in)d(step)i(4\))f(go)g(out)h(of)f Fr(Class)p Fv(\()p Fq(this)r Fv(\),)471 b(the)458 b Fr(T)-101 b(raverse)458 b Fv(metho)34 b(ds)459 b(are)e(equally)-1600 36813 y(suitable)606 b(for)g(a)g(non-simple)g(class)f(graph)h(whose)h(simpli\014cation)f(is) f Fu(G)p Fv(,)656 b(b)34 b(ecause)606 b(these)f(edges)h(are)f(induced) -1600 38469 y(references,)403 b(i.e.)g(\014elds)h(inherited)g(from)h (the)f(ancestry)g(of)g Fr(Class)p Fv(\()p Fq(this)r Fv(\).)-1600 42381 y Fk(Null)630 b(references.)1212 b Fv(Our)547 b(de\014nition)h (of)g(ob)67 b(ject)548 b(graphs)g(disallo)-34 b(ws)547 b(n)-34 b(ull)548 b(references)e(\(though)j(they)f(ma)-34 b(y)547 b(b)34 b(e)-1600 44037 y(sim)-34 b(ulated)441 b(using)f(something)h(lik)-34 b(e)439 b(the)h(Null)f(Ob)67 b(ject)441 b(pattern)g([W)-101 b(o)34 b(o96)o(]\),)448 b(but)441 b(in)f(a)g(language)g(suc)-34 b(h)441 b(as)f(Ja)-34 b(v)-67 b(a)439 b(or)-1600 45693 y(C)-777 45432 y Fi(++)1002 45693 y Fv(that)538 b(p)34 b(ermits)537 b(n)-34 b(ull)537 b(references,)569 b(step)537 b(5)g(should)h(c)-34 b(hec)g(k)537 b(that)h(eac)-34 b(h)537 b Fq(this)q Fu(:l)560 b Fv(is)537 b(non-n)-34 b(ull)538 b(b)34 b(efore)537 b(in)-34 b(v)g(oking)-1600 47349 y Fr(T)-101 b(raverse)404 b Fv(on)g(it.)-1600 51310 y Fw(5.3)1495 b(Computational)501 b(complexit)-42 b(y)499 b(of)f(the)h(algorithm)-1600 54309 y Fv(It)399 b(is)g(easy)g(to)g(see)g (that)h(the)f(time)g(complexit)-34 b(y)399 b(of)g(TGA)h(is)f(p)34 b(olynomial)399 b(in)g(the)g(size)f(of)i(its)f(input.)538 b(All)399 b(steps)g(run)-1600 55965 y(in)346 b(time)g(linear)f(in)h (the)g(size)g(of)g(their)g(input)h(and)g(output.)521 b(Steps)347 b(1)f(and)g(2)g(tak)-34 b(e)346 b(time)g(linear)f(in)h Fs(j)p Fu(G)44068 55525 y Fo(0)44379 55965 y Fs(j)336 b Fv(=)g Fu(O)34 b Fv(\()p Fs(jS)91 b(j)153 b(\001)g(j)p Fu(G)p Fs(j)p Fv(\))-1600 57621 y(and)341 b(in)g Fu(\034)137 b Fv(,)353 b(where)340 b Fu(\034)477 b Fv(is)340 b(the)h(time)g(b)34 b(ound)341 b(for)g(ev)-67 b(aluating)340 b(an)h(elemen)-34 b(t)340 b(predicate)g(for)h(a)f(giv)-34 b(en)341 b(elemen)-34 b(t.)517 b(T)-101 b(o)341 b(b)34 b(ound)-1600 59277 y(the)439 b(size)f(of)i(the)f(tra)-34 b(v)g(ersal)439 b(graph,)448 b(let)438 b Fu(d)17623 59459 y Fp(o)18572 59277 y Fv(b)34 b(e)439 b(the)g(maximal)g(n)-34 b(um)g(b)34 b(er)439 b(of)h(edges)f(going)g(out)g(from)h(a)e(no)34 b(de)440 b(in)f(the)-1600 60933 y(class)420 b(graph.)590 b(Note)421 b(that)h(all)e(edges)h(added)g(in)g(Step)h(3)f(corresp)34 b(ond)421 b(to)g(class)f(graph)i(edges.)588 b(It)421 b(follo)-34 b(ws)422 b(that)g(the)-1600 62589 y(n)-34 b(um)g(b)34 b(er)403 b(of)e(outgoing)i(edges)e(added)i(to)f(a)f(tra)-34 b(v)g(ersal)402 b(graph)g(no)34 b(de)401 b(in)h(Step)g(3)g(is)f Fu(d)36806 62771 y Fp(o)37717 62589 y Fv(times)h(the)g(n)-34 b(um)g(b)34 b(er)402 b(of)g(copies)-1600 64245 y(of)423 b Fu(G)f Fv(in)g Fu(G)3559 63805 y Fo(0)3869 64245 y Fv(.)593 b(Hence)422 b(Step)h(3)f(ma)-34 b(y)422 b(increase)f(the)i (size)e(of)i(of)f(the)h(graph)g(to)f Fu(O)34 b Fv(\()p Fs(jS)91 b(j)36685 63805 y Fn(2)37491 64245 y Fs(\001)281 b(j)p Fu(G)p Fs(j)g(\001)g Fu(d)41266 64427 y Fp(o)41776 64245 y Fv(\))423 b(in)f(the)h(w)-34 b(orst)423 b(case.)-1600 65901 y(Steps)405 b(3b,)f(4,)g(and)h(5)f(run)h(in)f(time)g(linear)f(in) h Fs(j)p Fu(G)20848 65461 y Fo(00)21414 65901 y Fs(j)336 b Fv(=)h Fu(O)34 b Fv(\()p Fs(jS)91 b(j)26296 65461 y Fn(2)27090 65901 y Fs(\001)269 b(j)p Fu(G)p Fs(j)g(\001)g Fu(d)30829 66083 y Fp(o)31339 65901 y Fv(\).)282 68117 y(As)355 b(for)f(TMA,)h(w)-34 b(e)355 b(note)g(that)h(the)f(size)f(of)h (the)g(argumen)-34 b(t)356 b Fu(T)523 b Fv(is)354 b(b)34 b(ounded)356 b(b)-34 b(y)355 b(the)g(size)f(of)h(the)g(strategy)g (graph.)-1600 69773 y(This)395 b(follo)-34 b(ws)395 b(from)f(the)h (observ)-67 b(ation)394 b(that)i(in)e(all)g(recursiv)-34 b(e)393 b(in)-34 b(v)g(o)34 b(cations)395 b(of)f Fr(T)-101 b(raverse)394 b Fv(made)h(b)-34 b(y)394 b(the)h(algorithm,)-1600 71429 y(for)439 b(all)e Fu(v)43 b(;)202 b(u)394 b Fs(2)g Fu(T)607 b Fv(w)-34 b(e)439 b(ha)-34 b(v)g(e)439 b(that)h Fr(Class)p Fv(\()p Fu(v)43 b Fv(\))394 b(=)g Fr(Class)p Fv(\()p Fu(u)p Fv(\).)642 b(Since)438 b(eac)-34 b(h)439 b(cop)-34 b(y)439 b(of)g(the)f(class)h(graph)g(in)f(the)h(tra)-34 b(v)g(ersal)24594 75628 y(22)p eop %%Page: 23 24 23 23 bop -1600 2325 a Fv(graph)386 b(con)-34 b(tains)387 b(at)f(most)g(one)g(no)34 b(de)385 b(of)h(eac)-34 b(h)386 b(class,)i(it)e(follo)-34 b(ws)386 b(that)h(the)f(n)-34 b(um)g(b)34 b(er)386 b(of)g(no)34 b(des)386 b(in)g Fu(T)554 b Fv(is)385 b(nev)-34 b(er)385 b(more)-1600 3981 y(than)405 b(the)g(n)-34 b(um)g(b)34 b(er)405 b(of)f(edges)h(in)f(the)g(strategy)g (graph.)282 6197 y(The)516 b(prop)34 b(er)515 b(w)-34 b(a)g(y)516 b(to)f(describ)34 b(e)515 b(the)g(complexit)-34 b(y)515 b(of)h(TMA)g(is)f(to)g(express)g(it)g(in)h(terms)f(of)h(the)f (n)-34 b(um)g(b)34 b(er)517 b(of)-1600 7853 y(edges)359 b(in)h(the)g(ob)67 b(ject)360 b(graph)g(and)h(to)f(consider)f(the)h (tra)-34 b(v)g(ersal)359 b(graph)h(size)f(and)h(the)g(tok)-34 b(en)360 b(set)g(size)e(as)i(a)f(constan)-34 b(t.)-1600 9509 y(F)-101 b(or)389 b(eac)-34 b(h)389 b(edge)f(in)h(the)g(ob)67 b(ject)390 b(graph)f(w)-34 b(e)389 b(query)f(a)h(tra)-34 b(v)g(ersal)388 b(graph)i(edge)e(and)i(when)f(the)h(ob)67 b(ject)389 b(graph)h(edge)e(is)-1600 11165 y(selected,)375 b(w)-34 b(e)369 b(need)f(to)h(manipulate)h(the)f(tok)-34 b(en)369 b(set.)527 b(The)369 b(complexit)-34 b(y)368 b(of)h(TMA)g(is)f(prop)34 b(ortional)369 b(to)g(the)g(n)-34 b(um)g(b)34 b(er)-1600 12821 y(of)404 b(edges)h(in)f(the)g(ob)67 b(ject)405 b(graph.)13561 12381 y Fn(3)-1600 16782 y Fw(5.4)1495 b(Extensions)-1600 19781 y Fk(Multiple)430 b(sources)d(and)h(targets.)1212 b Fv(As)373 b(eviden)-34 b(t)372 b(in)g(the)h(statemen)-34 b(t)374 b(of)e(Lemma)g(5.3,)378 b(the)373 b(initial)f(set)g(of)h(no)34 b(des)-1600 21437 y(in)307 b(the)g(tra)-34 b(v)g(ersal)307 b(graph)g(from)g(whic)-34 b(h)308 b(the)f(tra)-34 b(v)g(ersal)307 b(starts)g(can)g(b)34 b(e)307 b(arbitrary:)489 b(the)307 b(set)g(of)h(paths)g(tra)-34 b(v)g(ersed)307 b(w)-34 b(ould)-1600 23093 y(c)g(hange,)436 b(but)430 b(in)f(accordance)g(with)h(the)f(tra)-34 b(v)g(ersal)429 b(strategy)-101 b(,)436 b(using)429 b(an)h(appropriate)g(de\014nition.) 614 b(In)429 b(particular,)-1600 24749 y(one)367 b(ma)-34 b(y)366 b(ha)-34 b(v)g(e)367 b(more)f(than)i(one)e(start)i(no)34 b(de)366 b(in)h(the)g(strategy)f(graph,)374 b(whic)-34 b(h)368 b(is)e(in)-34 b(terpreted)367 b(as)g(sev)-34 b(eral)365 b(optional)-1600 26405 y(\\en)-34 b(try)432 b(p)34 b(oin)-34 b(ts":)594 b(it)432 b(ma)-34 b(y)432 b(b)34 b(e)431 b(the)h(case)f(that)i(the)f(same)g(tra)-34 b(v)g(ersal)431 b(is)h(sometimes)f(started)h(with)h(a)f(no)34 b(de)431 b(of)h(class)-1600 28061 y Fu(A)376 b Fv(and)h(at)f(another)g (time)g(with)h(a)f(no)34 b(de)376 b(of)g(class)g Fu(B)437 b Fv(\(or,)381 b(more)375 b(generally)-101 b(,)380 b(with)d(di\013eren) -34 b(t)376 b(no)34 b(des)377 b(in)e(the)i(strategy)-1600 29717 y(graph\).)847 b(Similarly)-101 b(,)531 b(it)507 b(ma)-34 b(y)507 b(b)34 b(e)506 b(the)h(case)g(that)h(w)-34 b(e)507 b(don't)g(need)g(all)f(tra)-34 b(v)g(ersal)507 b(paths)h(to)f(end)g(with)h(the)f(same)-1600 31373 y(target)513 b(no)34 b(de.)865 b(This)514 b(can)e(b)34 b(e)513 b(useful,)540 b(for)513 b(example,)540 b(if)512 b(w)-34 b(e)514 b(w)-34 b(an)g(t)514 b(to)g(tra)-34 b(v)g(erse)512 b(a)h(tree)f(of)i(classes,) 539 b(rather)513 b(than)-1600 33029 y(tra)-34 b(v)g(erse)404 b(all)f(paths)j(leading)e(to)-34 b(w)g(ards)406 b(the)e(same)g(target)h (class.)282 35245 y(This)497 b(situation)g(of)g(m)-34 b(ultiple)496 b(sources)g(and)h(targets)g(can)f(b)34 b(e)496 b(easily)f(handled)i(b)-34 b(y)497 b(our)f(algorithm:)723 b(supp)34 b(ose)-1600 36901 y(that)418 b(w)-34 b(e)417 b(ha)-34 b(v)g(e)417 b(a)f(set)h Fu(A)f Fv(of)h(source)f(no)34 b(des)417 b(and)g(a)g(set)g Fu(B)477 b Fv(of)417 b(target)g(no)34 b(des)417 b(for)f(the)h(strategy)-101 b(.)576 b(All)416 b(w)-34 b(e)417 b(need)g(to)g(do)-1600 38557 y(is)404 b(to)g(c)-34 b(hange)405 b(Steps)g(3b)g(and)g(4)f(of)g(TGA)h(to)f(b)34 b(e)-1102 41769 y(3b)177 41329 y Fo(0)488 41769 y Fv(.)605 b(F)-101 b(or)434 b(eac)-34 b(h)433 b Fu(t)385 b Fs(2)h Fu(B)61 b Fv(,)441 b(add)434 b(to)g Fu(G)15016 41329 y Fo(0)15760 41769 y Fv(a)f(no)34 b(de)433 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\))22311 41329 y Fo(\003)23270 41769 y Fv(and,)441 b(for)434 b(eac)-34 b(h)434 b(edge)f Fu(e)33996 41951 y Fp(i)34805 41769 y Fv(coming)h(in)-34 b(to)434 b Fu(t)f Fv(in)g Fu(S)70 b Fv(,)441 b(an)433 b(in)-34 b(tercop)g(y)1430 43425 y(edge)404 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\))6745 42985 y Fp(i)7457 43425 y Fs(!)337 b(N)179 b Fv(\()p Fu(t)p Fv(\))11560 42985 y Fo(\003)12086 43425 y Fv(.)-429 46078 y(4)177 45638 y Fo(0)488 46078 y Fv(.)605 b(Add)416 b(to)g Fu(G)6547 45638 y Fo(0)7272 46078 y Fv(a)g(no)34 b(de)415 b Fu(s)11802 45638 y Fo(\003)12743 46078 y Fv(and,)j(for)e(eac)-34 b(h)415 b(edge)g Fu(e)23391 46260 y Fp(i)24122 46078 y Fv(=)355 b Fu(s)g Fs(!)g Fu(v)398 b Fs(2)356 b Fu(D)448 b Fv(where)415 b Fu(s)355 b Fs(2)g Fu(A)p Fv(,)418 b(an)d(edge)g Fu(s)43812 45638 y Fo(\003)44693 46078 y Fs(!)356 b(N)179 b Fv(\()p Fu(s)p Fv(\))48945 45638 y Fp(i)49320 46078 y Fv(.)572 b(F)-101 b(or)1430 47734 y(eac)-34 b(h)405 b Fu(t)336 b Fs(2)h Fu(A)269 b Fs(\\)h Fu(B)61 b Fv(,)404 b(add)h(to)f Fu(G)14845 47294 y Fo(0)15560 47734 y Fv(the)g(edges)g Fu(s)21454 47294 y Fo(\003)22317 47734 y Fs(!)337 b(N)179 b Fv(\()p Fu(t)p Fv(\))26420 47294 y Fo(\003)26945 47734 y Fv(.)-1600 50946 y(The)405 b(\014nish)g(set)f Fu(T)6731 51143 y Fp(f)7740 50946 y Fv(is)g(then)h(de\014ned)g(to)g(b)34 b(e)403 b(the)i(set)f(of)h(no)34 b(des)404 b Fs(N)179 b Fv(\()p Fu(t)p Fv(\))30348 50506 y Fo(\003)31278 50946 y Fv(for)404 b(all)f Fu(t)337 b Fs(2)g Fu(B)61 b Fv(.)282 53162 y(The)576 b(extension)f(to)h(m)-34 b(ultiple)575 b(targets)h(is)f(particularly)f(useful)i(when)g(the)g(target)f(of)h (the)f(tra)-34 b(v)g(ersal)576 b(is)f(an)-1600 54818 y(abstract)439 b(class:)607 b(supp)34 b(ose)439 b(w)-34 b(e)439 b(w)-34 b(an)g(t)441 b(to)e(tra)-34 b(v)g(erse)438 b(to)h(a)f(class)g Fu(A)h Fv(whic)-34 b(h)439 b(happ)34 b(ens)440 b(to)f(b)34 b(e)438 b(abstract.)642 b(The)439 b(natural)-1600 56474 y(in)-34 b(terpretation)425 b(is)f(that)h(the)f (tra)-34 b(v)g(ersal)424 b(should)h(end)f(at)h(whatev)-34 b(er)424 b(sub)34 b(class)424 b(of)h Fu(A)f Fv(whic)-34 b(h)424 b(happ)34 b(ens)426 b(to)e(b)34 b(e)424 b(in)g(the)-1600 58130 y(ob)67 b(ject)376 b(graph.)530 b(Ho)-34 b(w)g(ev)g(er,)381 b(with)376 b(the)g(seman)-34 b(tics)375 b(sp)34 b(eci\014ed)375 b(ab)34 b(o)-34 b(v)g(e,)381 b(if)376 b(the)f(target)h(of)g(the)f (strategy)h(is)f Fu(A)p Fv(,)380 b(then)c(the)-1600 59786 y(ob)67 b(ject)437 b(\(whose)f(class)f(is)h(concrete\))f(substituting)j (for)e Fu(A)f Fv(is)h Ft(not)f Fv(visited.)632 b(T)-101 b(o)436 b(visit)f(the)h(ob)67 b(ject)437 b(substituting)h(for)-1600 61442 y Fu(A)485 b Fv(regardless)f(of)h(its)g(actual)g(class,)504 b(w)-34 b(e)485 b(can)g(simply)g(state)g(that)h(the)f(target)g(of)h (the)f(strategy)g(is)f(the)h(set)g(of)h(all)-1600 63098 y(sub)34 b(classes)404 b(of)h Fu(A)p Fv(.)-1600 67010 y Fk(\\Before,")398 b(\\after")382 b(and)h(\\around")g(metho)39 b(ds.)1212 b Fv(The)334 b(seman)-34 b(tics)333 b(presen)-34 b(ted)334 b(in)f(Section)g(3)g(imp)34 b(oses)333 b(a)g(pre-)-1600 68666 y(order)452 b(of)h(visiting)g(the)g(ob)67 b(jects)454 b(selected)e(b)-34 b(y)453 b(the)g(tra)-34 b(v)g(ersal,)465 b(as)453 b(eviden)-34 b(t)453 b(in)g(TMA:)g(\014rst)g(the)g(ob)67 b(ject)454 b(is)e(v)-34 b(eri\014ed)p -1600 69485 21440 45 v -218 70202 a Fi(3)243 70626 y Fy(Note)437 b(that)f(if)h(w)-28 b(e)436 b(allo)-28 b(w)436 b(users)g(to)g(call)h(the)g(initial)h(tra) -28 b(v)g(ersal)436 b(with)g(arbitrary)f(v)-57 b(alues)438 b(of)e Fh(T)579 b Fy(\(to)436 b(allo)-28 b(w)436 b(m)-28 b(ultiple)438 b(sources,)460 b(see)-1600 71965 y(Section)342 b(5.4\),)g(then)g(it)g(ma)-28 b(y)342 b(b)28 b(e)342 b(the)f(case,)i(at)e(the)h(\014rst)f(call)h(only)-85 b(,)342 b(that)f Fb(j)p Fh(T)142 b Fb(j)343 b Fy(is)f(greater)f(than)g (the)h(n)-28 b(um)g(b)28 b(er)341 b(of)g(strategy)h(graph)e(edges.) 24594 75628 y Fv(23)p eop %%Page: 24 25 24 24 bop -1600 2325 a Fv(to)452 b(b)34 b(e)451 b(on)h(a)g(tra)-34 b(v)g(ersal)451 b(path,)465 b(then)452 b(it)g(is)f(visited,)463 b(and)452 b(then)h(the)f(tra)-34 b(v)g(ersal)451 b(pro)34 b(ceeds)451 b(do)-34 b(wn)453 b(the)f(tree.)681 b(W)-101 b(e)451 b(call)-1600 3981 y(suc)-34 b(h)333 b(visitor)e(metho)34 b(ds)333 b Ft(b)-62 b(efor)g(e)365 b(visitor)g(metho)-62 b(ds)p Fv(.)512 b(It)332 b(is)g(sometimes)g(useful)g(to)h(ha)-34 b(v)g(e)332 b(the)g(visitor)g(metho)34 b(ds)332 b(in)-34 b(v)g(ok)g(ed)-1600 5637 y(in)441 b(p)34 b(ost-order,)451 b(namely)441 b(\014rst)h(descend)g(do)-34 b(wn)443 b(the)f(tree)f(and)h (then)g(in)-34 b(v)g(ok)g(e)442 b(the)g(visitor)f(metho)34 b(d.)651 b(These)442 b(visitor)-1600 7293 y(metho)34 b(ds)396 b(are)f(accordingly)f(called)h Ft(after)424 b(visitor)f(metho)-62 b(ds)p Fv(.)533 b(It)395 b(is)g(a)g(simple)g (exercise)f(to)h(adapt)i(the)e(de\014nition)i(of)-1600 8949 y(tra)-34 b(v)g(ersals)404 b(to)h(deal)f(with)g(after)h(visitor)e (metho)34 b(ds.)282 11165 y(Both)518 b(b)34 b(efore)518 b(and)h(after)f(visitor)f(metho)34 b(ds)519 b(are)f(generalized)f(b)-34 b(y)518 b(the)h(notion)g(of)f Ft(ar)-62 b(ound)537 b(visitor)g(metho) -62 b(ds)p Fv(,)-1600 12821 y(whose)477 b(co)34 b(de)476 b(is)g(in)-34 b(terlea)g(v)g(ed)476 b(with)i(the)e(tra)-34 b(v)g(ersal)477 b(metho)34 b(d)477 b(co)34 b(de)475 b(of)i(TMA.)g(This) g(allo)-34 b(ws)476 b(for)h(b)34 b(efore)476 b(and)h(after)-1600 14477 y(metho)34 b(ds)369 b(\(whic)-34 b(h)369 b(can)e(comm)-34 b(unicate)369 b(directly)e(b)-34 b(y)368 b(shared)g(data)g (structures\),)376 b(and)369 b(it)f(also)f(allo)-34 b(ws)368 b(the)g(visitor)g(to)-1600 16133 y(directly)403 b(manipulate)i(the)g (tra)-34 b(v)g(ersal,)403 b(e.g.,)g(b)-34 b(y)405 b(in)-34 b(v)g(oking)404 b(it)g(m)-34 b(ultiple)405 b(times,)f(or)f(b)-34 b(y)405 b(pruning)g(it.)-1600 19961 y Fk(Cyclic)399 b(ob)77 b(ject)400 b(graphs.)1213 b Fv(One)348 b(of)g(the)h(apparen)-34 b(t)349 b(disadv)-67 b(an)-34 b(tages)349 b(of)g(the)f(approac)-34 b(h)349 b(presen)-34 b(ted)349 b(in)f(the)h(curren)-34 b(t)-1600 21617 y(pap)34 b(er)460 b(is)f(that)i(it)f(deals)g(only)g (with)h(tree)e(\(or)h(forest\))g(ob)67 b(ject)461 b(graphs.)707 b(This)460 b(problem)g(can)g(b)34 b(e)460 b(solv)-34 b(ed)459 b(in)h(man)-34 b(y)-1600 23273 y(w)g(a)g(ys,)438 b(dep)34 b(ending)431 b(on)g(the)h(in)-34 b(tended)432 b(seman)-34 b(tics.)618 b(In)431 b(the)g(curren)-34 b(t)431 b(implemen)-34 b(tations,)438 b(w)-34 b(e)431 b(use)g(visitor)f(metho) 34 b(ds)-1600 24929 y(to)469 b(mak)-34 b(e)469 b(sure)g(that)g(a)g (visited)g(no)34 b(de)469 b(is)f(not)i(revisited)e(in)h(directed)f (acyclic)f(or)i(in)g(cyclic)e(ob)67 b(ject)469 b(graphs.)733 b(The)-1600 26585 y(main)425 b(p)34 b(oin)-34 b(t)425 b(is)f(that)i(w)-34 b(e)425 b(already)f(ha)-34 b(v)g(e)425 b(all)f(the)h(mac)-34 b(hinery)424 b(to)h(carry)f(out)h(a)f (depth-\014rst)j(tra)-34 b(v)g(ersal)424 b(of)h(a)g(part)g(of)-1600 28241 y(the)394 b(ob)67 b(ject)394 b(graph)g(as)f(selected)f(b)-34 b(y)394 b(the)g(strategy)-101 b(,)395 b(so)e(it)g(is)g(quite)g(easy)g (to)g(v)-67 b(ary)392 b(the)i(implemen)-34 b(tation)394 b(sligh)-34 b(tly)394 b(to)-1600 29897 y(accommo)34 b(date)404 b(for)g(our)h(needs.)538 b(In)405 b(a)f(sense,)f(what)j(w)-34 b(e)404 b(need)h(is)e(a)i(sp)34 b(ecialized)402 b(around)j(metho)34 b(d)405 b(\(see)f(ab)34 b(o)-34 b(v)g(e\).)282 32113 y(F)-101 b(or)275 b(example,)300 b(one)276 b(reasonable)f(c)-34 b(hoice)275 b(is)g(that)i(no)e(ob)67 b(ject)277 b(is)e(visited)g(t)-34 b(wice.)496 b(This)275 b(can)h(b)34 b(e)275 b(easily)f(implemen)-34 b(ted)-1600 33769 y(b)g(y)596 b(asso)34 b(ciating)596 b(a)f(\\)p Fq(visited)p Fv(")j(bit)e(with)h(eac)-34 b(h)596 b(ob)67 b(ject)596 b(\(or)g(alternativ)-34 b(ely)595 b(a)g(hash)i(table\),)644 b(and)596 b(using)g(it)g(as)-1600 35425 y(exp)34 b(ected,)439 b(namely)432 b(to)g(execute)g(the)h(follo) -34 b(wing)433 b(as)g(the)g(\014rst)g(step)g(in)f(the)h(tra)-34 b(v)g(ersal)432 b(metho)34 b(d)433 b(\(TMA\))h(\(initially)-101 b(,)-1600 37081 y Fu(o:)p Fq(visited)338 b Fv(=)f Fe(f)-108 b(alse)405 b Fv(for)f(all)g(ob)67 b(jects)405 b Fu(o)p Fv(\):)-118 40092 y(0.)605 b(If)404 b Fq(this)r Fu(:)p Fq(visited)339 b Fv(=)d Fe(tr)-27 b(ue)q Fv(,)404 b(return.)539 b(Else)403 b Fq(this)r Fu(:)p Fq(visited)339 b Fs( )d Fe(tr)-27 b(ue)r Fv(.)-1600 44586 y Fx(6)1793 b(The)598 b(limits)i(of)d(static)i(tra)-50 b(v)g(ersal)600 b(co)50 b(de)-1600 48002 y Fv(One)474 b(app)34 b(ealing)475 b(approac)-34 b(h)475 b(to)g(compiling)f(executable)g(co)34 b(de)474 b(from)g(tra)-34 b(v)g(ersal)475 b(strategies)f(is)g(to)h(use)f(only)h (static)-1600 49659 y(analysis:)505 b(in)337 b(this)g(con)-34 b(text,)351 b(this)338 b(means)f(that)h(only)f(metho)34 b(d)338 b(in)-34 b(v)g(o)34 b(cations)338 b(are)e(used)i(to)f(tra)-34 b(v)g(erse)337 b(the)g(graph,)351 b(with)-1600 51315 y(no)320 b(further)h(computation)h(while)e(the)g(program)g(is)g (running.)512 b(The)320 b(adv)-67 b(an)-34 b(tage)321 b(of)g(the)f(static)g(approac)-34 b(h)321 b(is)f(that)h(the)-1600 52971 y(run)342 b(time)g(o)-34 b(v)g(erhead)342 b(due)g(to)g(tra)-34 b(v)g(ersals)342 b(is)f(minimal;)362 b(the)342 b(p)34 b(ossible)342 b(disadv)-67 b(an)-34 b(tages)343 b(are)e(larger)g (compile)g(time)g(and)-1600 54627 y(higher)392 b(space)h(requiremen)-34 b(t)392 b(for)g(the)h(executable)f(co)34 b(de,)394 b(but)f(ho)-34 b(w)394 b(large)d(can)i(they)f(b)34 b(e?)535 b(Early)392 b(implemen)-34 b(tations)-1600 56283 y(of)532 b(tra)-34 b(v)g(ersals)532 b(w)-34 b(ere)531 b(static,)564 b(but)533 b(they)e(su\013ered)h(from)g(either)f(b)34 b(eing)532 b(limited)f(in)h(scop)34 b(e)531 b([PXL95)o(,)h(PPL97)o(],)563 b(or)-1600 57939 y(ine\016cien)-34 b(t.)503 b(in)296 b(particular,)317 b(the)297 b(automata-based)h(algorithm)f(presen)-34 b(ted)297 b(in)f([PPL97)o(])g(ma)-34 b(y)296 b(result)g(in)h(exp)34 b(onen)-34 b(tial)-1600 59595 y(compilation)404 b(time)g(and)h(exp)34 b(onen)-34 b(tial)405 b(n)-34 b(um)g(b)34 b(er)405 b(of)f(tra)-34 b(v)g(ersal)404 b(metho)34 b(ds)405 b(in)f(the)h(executable)e(co)34 b(de.)282 61811 y(In)279 b(this)h(section)f(w)-34 b(e)280 b(sho)-34 b(w)280 b(that)h(this)f(phenomenon)h(is)e(not)h(acciden)-34 b(tal:)476 b(for)279 b(some)g(strategies)h(and)g(class)f(graphs,)-1600 63467 y(static)505 b(compilation)h(algorithms)f(m)-34 b(ust)506 b(output)h(exp)34 b(onen)-34 b(tially)505 b(man)-34 b(y)505 b(metho)34 b(ds,)531 b(thereb)-34 b(y)506 b(making)f(the)g (space)-1600 65123 y(requiremen)-34 b(t)401 b(of)g(the)g(co)34 b(de,)401 b(as)g(w)-34 b(ell)401 b(as)g(the)g(running)h(time)f(of)h (the)f(compiler,)f(infeasible)h(in)g(the)h(w)-34 b(orst)402 b(case.)537 b(W)-101 b(e)-1600 66779 y(remark)422 b(that)i(our)f(pro)34 b(of)423 b(tec)-34 b(hnique)423 b(is)g(similar)e(to)j(the)f(standard)h (tec)-34 b(hnique)423 b(of)h(sim)-34 b(ulating)423 b(non-deterministic) -1600 68435 y(\014nite)405 b(automata)g(in)f(p)34 b(olynomial)404 b(space)g(and)h(time)f([ASU86].)282 70651 y(T)-101 b(o)501 b(state)g(the)h(result)e(formally)-101 b(,)524 b(w)-34 b(e)502 b(\014rst)f(de\014ne)g(the)h(notion)f(of)g(static)h(tra)-34 b(v)g(ersal)500 b(compilation.)829 b(W)-101 b(e)500 b(then)-1600 72307 y(giv)-34 b(e)433 b(an)h(example)f(of)h(a)g(tra)-34 b(v)g(ersal)433 b(strategy)h(and)h(a)e(class)h(graph)g(where)f(static)h (compilation)g(m)-34 b(ust)435 b(result)f(in)g(an)24594 75628 y(24)p eop %%Page: 25 26 25 25 bop -813 1107 a 30800767 14476353 4012687 22628925 36114186 37890293 startTexFig -813 1107 a%%BeginDocument: lb.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Helvetica Courier %%Pages: 1 %%BoundingBox: 61 344 549 576 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 10 def /arrowWidth 5 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica reencodeISO def /Courier reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 10 Grid 2 2 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.796717 0 0 0.796717 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 264 420 ] concat %I 256 348 156 324 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 264 420 ] concat %I 284 324 284 264 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 264 420 ] concat %I 6 136 572 136 592 156 600 264 600 292 588 284 372 6 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 27 306.5 ] concat %I 443 170 443 152 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 59 306.5 ] concat %I 443 170 443 152 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 91 306.5 ] concat %I 443 170 443 152 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 157 306.5 ] concat %I 443 170 443 152 Line %I 1 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -3 292.5 ] concat %I 9 790 375 790 355 774 343 586 335 534 335 526 355 522 571 534 595 650 579 9 BSpl %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 146.5 424 ] concat %I 371 208 303 152 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 146.5 424 ] concat %I 371 208 479 152 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 146.5 424 ] concat %I 371 336 303 408 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 146.5 424 ] concat %I 371 336 483 408 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 146.5 424 ] concat %I 491 448 383 524 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -3 344 ] concat %I 658 608 670 684 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 146.5 424 ] concat %I 295 448 363 524 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -3 292.5 ] concat %I 7 594 375 594 359 550 359 546 415 546 555 586 583 650 579 7 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -3 292.5 ] concat %I 8 658 375 658 359 650 343 550 343 534 363 534 563 558 591 650 579 8 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -3 292.5 ] concat %I 670 599 658 671 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -3 292.5 ] concat %I 670 559 670 519 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -3 293.5 ] concat %I 670 473 658 413 Line %I 2 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.705882 0 0 0.705882 4.471 205.412 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 775.333 980.333 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 328 585 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 737.333 888.333 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 769.333 888.333 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 835.333 888.333 ] concat %I 520 466 544 490 Rect End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 241 261.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 249 261.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 257 261.5 ] concat %I 210 461 4 4 Elli End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 92 58 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 196 437 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 204 434 ] concat %I [ (1) ] Text End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 92 58 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 228 437 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 236 434 ] concat %I [ (2) ] Text End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 386 495 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 394 492 ] concat %I [ (n) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 328 545 ] concat %I [ (E) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1009.33 1060.33 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1041.33 1060.33 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1107.33 1060.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 568 664 ] concat %I [ (1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 600 664 ] concat %I [ (2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 666 664 ] concat %I [ (n) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 560 667 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 592 667 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 658 667 ] concat %I [ (C) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 775.333 1094.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 328 699 ] concat %I [ (D) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -108 160 ] concat Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 180 264 ] concat %I 148 420 24 348 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 104 132 ] concat %I 184 270 148 240 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 104 132 ] concat %I 118 270 148 240 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 104 132 ] concat %I 90 270 148 240 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 134 132 ] concat %I 88 306 88 270 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 104 132 ] concat %I 88 306 88 270 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 200 132 ] concat %I 88 306 88 270 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 104 132 ] concat %I 148 342 184 306 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 104 132 ] concat %I 150 342 120 306 Line %I 1 End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 56 108 ] concat %I 136 330 4 4 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 258 483 ] concat %I [ (A) ] Text End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 116 144 ] concat %I 136 330 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 56 72 ] concat %I 136 330 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 152 108 ] concat %I 136 330 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 86 108 ] concat %I 136 330 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 116 42 ] concat %I 136 330 4 4 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 258 371 ] concat %I [ (D) ] Text End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 86 72 ] concat %I 136 330 4 4 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 1 -0 -0 1 152 72 ] concat %I 136 330 4 4 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 196 437 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 228 437 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 294 437 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 204 434 ] concat %I [ (1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 236 434 ] concat %I [ (2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 196 415 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 204 412 ] concat %I [ (1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 228 413 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 236 410 ] concat %I [ (2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 294 413 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 302 434 ] concat %I [ (n) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 302 410 ] concat %I [ (n) ] Text End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -184 -50 ] concat Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 227 417.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 235 417.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 243 417.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -184 -86 ] concat Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 227 417.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 235 417.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 243 417.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1019.33 1108.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 572 713 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 977.333 1060.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 528 667 ] concat %I [ (B) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 955.333 932.333 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 508 537 ] concat %I [ (A) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 739.333 1036.33 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 771.333 1036.33 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 837.333 1036.33 ] concat %I 520 466 544 490 Rect End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 243 409.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 251 409.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 259 409.5 ] concat %I 210 461 4 4 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 298 640 ] concat %I [ (1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 330 640 ] concat %I [ (2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 396 640 ] concat %I [ (n) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 290 643 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 322 643 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 388 643 ] concat %I [ (C) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t u Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 513 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 521 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 529 433.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 856 615 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 744 615 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 680 615 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 616 615 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -64 -176 ] concat Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t u Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 513 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 521 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 529 433.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 856 615 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 744 615 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 680 615 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 226 364.5 ] concat %I 700 671 616 615 Line %I 2 End End %I eop Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 945.333 884.33 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 977.333 884.33 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1043.33 884.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 504 488 ] concat %I [ (1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 536 488 ] concat %I [ (2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 602 488 ] concat %I [ (n) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 496 491 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 528 491 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 594 491 ] concat %I [ (C) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 913.333 884.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 464 491 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 536 664 ] concat %I [ (i) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 472 488 ] concat %I [ (j) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -34 128 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1143.33 894.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 696 499 ] concat %I [ (D) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1143.33 854.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 696 459 ] concat %I [ (A) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 334 364.5 ] concat %I 1 756 275 1 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 -0 -0 0.5 350 270.5 ] concat %I 6 700 351 672 311 688 299 704 307 728 299 740 307 6 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 312 402 ] concat %I 776 168 776 128 Line %I 2 End End %I eop Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1041.33 1022.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 594 627 ] concat %I [ (D) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1041.33 982.33 ] concat %I 520 466 544 490 Rect End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 232 492.5 ] concat %I 1 756 275 1 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 0 0 0.5 210 530 ] concat %I 776 168 776 128 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -66 -12 ] concat Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1063.33 1034.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 616 639 ] concat %I [ (D) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 1063.33 994.33 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 616 599 ] concat %I [ (A) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 254 504.5 ] concat %I 1 756 275 1 Poly End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 0 0 0.5 232 542 ] concat %I 776 168 776 128 Line %I 2 End End %I eop Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0.75 SetP %I t [ 0.5 0 0 0.5 204 398.5 ] concat %I 6 700 351 672 311 688 299 704 307 728 299 740 307 6 Poly End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 0 -56 ] concat Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 513 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 521 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 529 433.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 312 402 ] concat %I 444 500 400 284 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 312 402 ] concat %I 504 500 484 464 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 312 402 ] concat %I 572 500 572 464 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 312 402 ] concat %I 704 500 708 464 Line %I 2 End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ -4.37114e-08 1 -1 -4.37114e-08 1134 -180 ] concat Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 513 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 521 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 529 433.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 297 615 ] concat %I [ (c1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 332 615 ] concat %I [ (c2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 370 617 ] concat %I [ (cn) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 300 669 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 332 669 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 372 669 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 336 567 ] concat %I [ (b) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 296 479 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 328 479 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 394 479 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 326 715 ] concat %I [ (a) ] Text End Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ -4.37114e-08 1 -1 -4.37114e-08 1166 -180 ] concat Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 513 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 521 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 529 433.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ -4.37114e-08 1 -1 -4.37114e-08 1198 -180 ] concat Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 513 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 521 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 529 433.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ -4.37114e-08 1 -1 -4.37114e-08 1264 -180 ] concat Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 513 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 521 433.5 ] concat %I 210 461 4 4 Elli End Begin %I Elli %I b 65520 1 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 529 433.5 ] concat %I 210 461 4 4 Elli End End %I eop Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.705882 0 0 0.705882 76.471 259.412 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 401 598 ] concat %I [ (F) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ -0.833333 -0 -0 -0.833333 849.333 940.333 ] concat %I 520 466 544 490 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 402 545 ] concat %I [ (Z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 594 587 ] concat %I [ (Z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 528 683 ] concat %I [ (b) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 554.5 683 ] concat %I [ (c1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 598 683 ] concat %I [ (c2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 652 683 ] concat %I [ (cn) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 564 647 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 602 647 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 670 647 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 558 611 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 602 611 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 670 611 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 524 647 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 464 507 ] concat %I [ (b) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 491 507 ] concat %I [ (c1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 534 507 ] concat %I [ (c2) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* Courier 10 SetF %I t [ 1 0 0 1 588 507 ] concat %I [ (cn) ] Text End End %I eop showpage %%Trailer end %%EndDocument endTexFig -1600 28322 a Fv(Figure)313 b(5:)493 b Ft(Example)348 b(c)-62 b(onsider)g(e)g(d)347 b(in)j(lower-b)-62 b(ound)348 b(pr)-62 b(o)g(of.)527 b(L)-62 b(eft:)515 b(the)349 b(str)-62 b(ate)g(gy)347 b(gr)-62 b(aph.)527 b(The)349 b(sour)-62 b(c)g(e)348 b(of)h(the)g(str)-62 b(ate)g(gy)-1600 29978 y(is)506 b(the)g(no)-62 b(de)506 b(lab)-62 b(ele)g(d)504 b Fr(A)j Ft(and)f(the)f(tar)-62 b(get)505 b(is)i(the)e(no)-62 b(de)506 b(lab)-62 b(ele)g(d)504 b Fr(D)p Ft(.)j(Midd)62 b(le:)702 b(the)505 b(class)g(gr)-62 b(aph.)775 b(The)506 b(name)h(map)-1600 31634 y(is)460 b(indic)-62 b(ate)g(d)457 b(by)i(the)g(no)-62 b(de)460 b(lab)-62 b(els)458 b(on)i(the)f(str)-62 b(ate)g(gy)457 b(gr)-62 b(aph.)635 b(R)-31 b(ight:)609 b(a)460 b(typic)-62 b(al)458 b(obje)-62 b(ct)457 b(tr)-62 b(e)g(e.)636 b(The)460 b(shade)-62 b(d)457 b(r)-62 b(e)g(gions)-1600 33290 y(r)g(epr)g(esent)432 b(a)h(r)-62 b(e)g(cursive)431 b(o)-62 b(c)g(curr)g(enc)g(e)432 b(of)h(the)f(tr)-62 b(e)g(e.)-1600 36957 y Fv(exp)34 b(onen)-34 b(tial)465 b(n)-34 b(um)g(b)34 b(er)466 b(of)f(metho)34 b(ds.)722 b(W)-101 b(e)464 b(remark)g(that)i(the)f(strategy)g(graph)g(w)-34 b(e)466 b(use)f(is)f(not)i(cyclic;)493 b(in)465 b(fact,)480 b(a)-1600 38613 y(tree)404 b(strategy)g(is)g(su\016cien)-34 b(t)405 b(to)f(pro)-34 b(v)g(e)404 b(the)h(same)f(result.)-1600 42574 y Fw(6.1)1495 b(The)498 b(target)i(language)-1600 45573 y Fv(An)509 b(algorithm)f(is)h(said)f(to)h(compile)f(a)g(tra)-34 b(v)g(ersal)508 b(strategy)h(and)g(a)f(class)h(graph)g(to)f Ft(static)528 b(tr)-62 b(aversal)527 b(c)-62 b(o)g(de)506 b Fv(if)j(it)-1600 47229 y(generates)551 b(tra)-34 b(v)g(ersal)552 b(co)34 b(de)551 b(in)g(a)h(language)f(whic)-34 b(h)553 b(supp)34 b(orts)553 b(only)e(metho)34 b(d)552 b(in)-34 b(v)g(o)34 b(cation)552 b(without)h(parameter)-1600 48885 y(passing.)521 b(The)350 b(target)g(language)f(of)h(a)f(static)h (compilation)g(algorithm)f(is)g(formally)g(de\014ned)h(in)g([PXL95)o(,) f(PPL97],)-1600 50541 y(and)447 b(is)f(giv)-34 b(en)446 b(in)g(App)34 b(endix)447 b(B.)664 b(Informally)-101 b(,)456 b(a)446 b(program)g(attac)-34 b(hes)448 b(metho)34 b(d)447 b(de\014nitions)g(to)g(eac)-34 b(h)446 b(class,)456 b(and)447 b(a)-1600 52197 y(metho)34 b(d)463 b(b)34 b(o)g(dy)463 b(is)f(a)g(list)h(of)g(\(quali\014ed\))g(metho)34 b(d)463 b(names.)714 b(There)462 b(are)g(no)h(argumen)-34 b(ts)464 b(passed)f(to)g(the)g(metho)34 b(ds)-1600 53853 y(and)470 b(no)f(return)g(v)-67 b(alues.)732 b(Executing)469 b(a)g(metho)34 b(d)469 b(in)g(a)g(giv)-34 b(en)468 b(ob)67 b(ject)470 b(graph)g(is)e(done)i(simply)e(b)-34 b(y)469 b(unfolding)h(the)-1600 55509 y(metho)34 b(d)504 b(de\014nition.)837 b(T)-101 b(o)503 b(p)34 b(erform)503 b(a)g(tra)-34 b(v)g(ersal)503 b(starting)h(with)g(a)g(giv)-34 b(en)503 b(ob)67 b(ject,)528 b(a)503 b(sp)34 b(ecial)503 b(metho)34 b(d)504 b(attac)-34 b(hed)-1600 57165 y(to)431 b(this)f(ob)67 b(ject)431 b(is)f(in)-34 b(v)g(ok)g(ed.)618 b(When)430 b(a)g(metho)34 b(d)431 b(is)f(in)-34 b(v)g(ok)g(ed,)437 b(the)431 b(corresp)34 b(onding)430 b(ob)67 b(ject)432 b(ma)-34 b(y)430 b(b)34 b(e)430 b(added)h(to)g(the)-1600 58821 y(tra)-34 b(v)g(ersal)404 b(history)-101 b(.)-1600 62782 y Fw(6.2)1495 b(The)498 b(lo)-42 b(w)g(er)500 b(b)42 b(ound)-1600 65781 y Fv(W)-101 b(e)404 b(no)-34 b(w)405 b(pro)-34 b(v)g(e)404 b(the)h(main)f(result)g (of)h(this)f(section.)-1600 67997 y Fk(Theorem)464 b(6.1)606 b Ft(F)-93 b(or)444 b(any)f Fu(n)354 b(>)g Fv(0)443 b Ft(ther)-62 b(e)442 b(exists)g(a)h(tr)-62 b(aversal)441 b(str)-62 b(ate)g(gy)441 b Fs(S)32317 68179 y Fp(n)33386 67997 y Ft(with)i Fs(jS)37100 68179 y Fp(n)37726 67997 y Fs(j)354 b Fv(=)g Fu(O)34 b Fv(\()p Fu(n)p Fv(\))443 b Ft(and)g(a)g(class)f(gr)-62 b(aph)-1600 69653 y Fu(G)-647 69835 y Fp(n)435 69653 y Ft(with)456 b Fs(j)p Fu(G)4381 69835 y Fp(n)5007 69653 y Fs(j)377 b Fv(=)g Fu(O)34 b Fv(\()p Fu(n)p Fv(\))456 b Ft(such)e(that)g(the)h(numb)-62 b(er)456 b(of)f(metho)-62 b(ds)454 b(in)i(a)g(static)e(tr)-62 b(aversal)453 b(c)-62 b(o)g(de)455 b(c)-62 b(orr)g(esp)g(onding)453 b(to)j Fs(S)51374 69835 y Fp(n)-1600 71309 y Ft(and)433 b Fu(G)1707 71491 y Fp(n)2767 71309 y Ft(is)g(at)g(le)-62 b(ast)432 b Fv(2)8887 70869 y Fp(n)9513 71309 y Ft(.)24594 75628 y Fv(25)p eop %%Page: 26 27 26 26 bop -1600 2325 a Fk(Pro)39 b(of:)648 b Fv(By)563 b(con)-34 b(tradiction.)1019 b(Consider)565 b(the)f(strategy)g(graph)h (and)g(the)f(class)g(graph)g(depicted)g(in)g(Figure)g(5.)-1600 3981 y(In)-34 b(tuitiv)g(ely)-101 b(,)500 b(starting)481 b(with)g(an)g(ob)67 b(ject)482 b(of)e(class)h Fu(A)p Fv(,)499 b(an)481 b(ob)67 b(ject)481 b(of)g(class)f Fu(C)34433 4163 y Fp(i)35290 3981 y Fv(can)h(b)34 b(e)480 b(visited)g(only)g(if)h (it)g(has)g(an)-1600 5637 y(ancestor)421 b(of)h(class)f Fu(B)8384 5819 y Fp(i)8760 5637 y Fv(.)589 b(The)422 b(strategy)f(graph)h(has)g(2)p Fu(n)280 b Fv(+)h(2)421 b(no)34 b(des)421 b(and)h(3)p Fu(n)f Fv(edges;)429 b(The)422 b(class)f(graph)g(has)h(2)p Fu(n)280 b Fv(+)h(3)-1600 7293 y(no)34 b(des)430 b(and)h(4)p Fu(n)286 b Fv(+)g(2)430 b(edges.)615 b(Note)430 b(that)h(w)-34 b(e)430 b(can)g(construct)g(ob) 67 b(ject)431 b(trees)e(where)h(an)g Fu(A)p Fv(-ob)67 b(ject)431 b(has)f(an)-34 b(y)430 b(desired)-1600 8949 y(set)452 b(of)g Fu(B)61 b Fv(-ancestors.)683 b(W)-101 b(e)451 b(claim)g(that)i(in)f(a)g(static)g(tra)-34 b(v)g(ersal)452 b(co)34 b(de,)463 b(there)451 b(are)h(at)g(least)g(2)41440 8509 y Fp(n)42518 8949 y Fv(metho)34 b(ds)453 b(attac)-34 b(hed)-1600 10605 y(to)405 b(ob)67 b(jects)406 b(of)g(class)e Fu(A)p Fv(.)541 b(F)-101 b(or)405 b(supp)34 b(ose)406 b(not.)542 b(Then)406 b(there)f(exists)g(a)g(set)g Fu(S)32670 10787 y Fn(0)33534 10605 y Fs(\022)338 b(f)p Fu(C)36287 10787 y Fn(1)36813 10605 y Fu(;)202 b(C)38218 10787 y Fn(2)38744 10605 y Fu(;)g(:)g(:)g(:)f(;)h(C)42304 10787 y Fp(n)42930 10605 y Fs(g)405 b Fv(suc)-34 b(h)406 b(that)g(there)-1600 12261 y(is)e(no)h(metho)34 b(d)405 b(attac)-34 b(hed)406 b(to)f Fu(A)g Fv(whic)-34 b(h)405 b(consists)g(of)g(calls)f(precisely)f (to)i(the)g(metho)34 b(ds)405 b(in)g(the)f(ob)67 b(jects)406 b(p)34 b(oin)-34 b(ted)406 b(to)-1600 13917 y(b)-34 b(y)377 b(the)f(elemen)-34 b(ts)377 b(of)g Fu(S)9140 14099 y Fn(0)9666 13917 y Fv(.)529 b(Let)376 b Fu(I)13209 14099 y Fn(0)14111 13917 y Fv(b)34 b(e)376 b(the)g(set)h(of)g(indices)f(in)g Fu(S)27091 14099 y Fn(0)27617 13917 y Fv(.)529 b(Consider)377 b(an)g(ob)67 b(ject)377 b(tree)f(con)-34 b(taining)377 b(an)g(ob)67 b(ject)-1600 15573 y Fu(o)442 b Fv(with)i Fr(Class)p Fv(\()p Fu(o)p Fv(\))401 b(=)g Fu(A)443 b Fv(suc)-34 b(h)443 b(that)h Fu(o)f Fv(has)g(an)g(ancestor)g(of)g(class) g Fu(B)29872 15755 y Fp(i)30690 15573 y Fv(if)g(and)h(only)e(if)h Fu(i)401 b Fs(2)g Fu(I)40645 15755 y Fn(0)41171 15573 y Fv(.)654 b(Put)444 b(di\013eren)-34 b(tly)-101 b(,)452 b(w)-34 b(e)-1600 17229 y(think)405 b(of)f(an)h(ob)67 b(ject)405 b(tree)e(whic)-34 b(h)405 b(satis\014es)g(the)g(follo)-34 b(wing)404 b(condition:)6211 18864 y Fg(\010)6857 19787 y Fr(Class)o Fv(\()p Fu(o)10491 19287 y Fo(0)10802 19787 y Fv(\))337 b Fs(j)f Fu(o)12871 19287 y Fo(0)13586 19787 y Fv(is)403 b(an)i(ancestor)f(of)h Fu(o)23248 18864 y Fg(\011)24162 19787 y Fs(\\)270 b(f)p Fu(B)26765 19969 y Fn(1)27291 19787 y Fu(;)202 b(B)28749 19969 y Fn(2)29275 19787 y Fu(;)g(:)g(:)g(:)f(;)h(B)32888 19969 y Fp(n)33514 19787 y Fs(g)337 b Fv(=)f Fs(f)p Fu(B)37261 19969 y Fp(i)37974 19787 y Fs(j)h Fu(C)39514 19969 y Fp(i)40226 19787 y Fs(2)g Fu(S)42114 19969 y Fn(0)42640 19787 y Fs(g)606 b Fu(:)-1600 22346 y Fv(As)375 b(noted)h(b)34 b(efore,)379 b(suc)-34 b(h)376 b(an)f(ob)67 b(ject)376 b(graph)f(exists.)529 b(By)373 b(de\014nition,)382 b(when)375 b Fu(o)g Fv(is)f(in)-34 b(v)g(ok)g(ed,)381 b(it)375 b(should)h(call)d(precisely)-1600 24002 y(those)405 b(c)-34 b(hildren)404 b(whose)h(class)e(is)h(in)g Fu(S)15981 24184 y Fn(0)16507 24002 y Fv(.)539 b(But)404 b(b)-34 b(y)405 b(assumption,)g(no)g(suc)-34 b(h)405 b(metho)34 b(d)405 b(is)e(attac)-34 b(hed)406 b(to)e Fu(A)p Fv(.)p 47807 24168 443 1052 v 282 26523 a(W)-101 b(e)329 b(note)h(that)h(the)f(strategy)g(graph)g(in)g(the)g(pro)34 b(of)330 b(of)g(Theorem)f(6.1)h(is)f(acyclic)f(\(in)i(fact,)345 b(it)330 b(is)f(a)h(series-parallel)-1600 28179 y(graph)395 b(expressible)f(in)h(the)g(syn)-34 b(tax)396 b(for)f(tra)-34 b(v)g(ersal)394 b(sp)34 b(eci\014cations)395 b(of)h([PPL97)o(]\).)535 b(The)395 b(pro)34 b(of)395 b(extends)h(directly)e(to)-1600 29835 y(the)435 b(case)f(of)h(tree)f(strategies)h(\(see)f(Section)h (5.4\))g(b)-34 b(y)435 b(omitting)h(the)f(no)34 b(de)435 b(corresp)34 b(onding)434 b(to)h Fu(D)468 b Fv(in)435 b(the)g(strategy)-1600 31491 y(graph.)282 33707 y(It)372 b(ma)-34 b(y)372 b(b)34 b(e)372 b(instructiv)-34 b(e)373 b(to)f(see)g(ho)-34 b(w)373 b(the)g(algorithm)f(describ)34 b(ed)372 b(in)g(Section)h(5)f(a)-34 b(v)g(oids)373 b(the)f(exp)34 b(onen)-34 b(tial)373 b(lo)-34 b(w)g(er)-1600 35363 y(b)34 b(ound.)990 b(In)554 b(that)i(algorithm,)591 b(the)555 b(tra)-34 b(v)g(ersal)554 b(graph)h(serv)-34 b(es)554 b(as)g(a)g(\\road)h(map,")592 b(and)555 b(whenev)-34 b(er)554 b(a)g(tra)-34 b(v)g(ersal)-1600 37019 y(metho)34 b(d)392 b(is)g(called)e(in)i(an)g(ob)67 b(ject)392 b Fu(o)p Fv(,)i(it)d(gets)h(as)g(an)g(input)g(argumen)-34 b(t)393 b(a)f(set)f(of)h(\\tok)-34 b(ens.")535 b(The)392 b(tok)-34 b(en)392 b(set)g(re\015ects)-1600 38675 y(the)426 b(curren)-34 b(t)426 b(lo)34 b(cation)426 b(of)g(the)g(tra)-34 b(v)g(ersal,)431 b(i.e.,)f(what)d(pre\014xes)e(of)h(paths)h(ha)-34 b(v)g(e)427 b(already)e(b)34 b(een)425 b(co)-34 b(v)g(ered)426 b(when)h(the)-1600 40331 y(tra)-34 b(v)g(ersal)424 b(reac)-34 b(hed)424 b Fu(o)p Fv(.)598 b(This)424 b(set)h(con)-34 b(trols)424 b(the)h(next)f(tra)-34 b(v)g(ersal)424 b(actions)g(while)g (b)34 b(eing)424 b(up)34 b(dated)425 b(as)g(the)f(tra)-34 b(v)g(ersal)-1600 41987 y(con)g(tin)g(ues.)1021 b(As)565 b(the)g(argumen)-34 b(t)566 b(of)e(Theorem)h(6.1)f(implies,)604 b(the)565 b(n)-34 b(um)g(b)34 b(er)565 b(of)g(p)34 b(ossible)565 b(con)-34 b(tin)g(uations)567 b(of)e(the)-1600 43643 y(tra)-34 b(v)g(ersal)400 b(ma)-34 b(y)399 b(b)34 b(e)400 b(exp)34 b(onen)-34 b(tial;)401 b(ho)-34 b(w)g(ev)g(er,)401 b(this)f(only)f(means)h(that)h(the)f(n)-34 b(um)g(b)34 b(er)401 b(of)f(p)34 b(ossible)399 b(con\014gurations)j(of)-1600 45299 y(the)359 b(tok)-34 b(en)358 b(set)h(m)-34 b(ust)359 b(b)34 b(e)358 b(exp)34 b(onen)-34 b(tial,)367 b(whic)-34 b(h)359 b(can)g(b)34 b(e)358 b(ac)-34 b(hiev)g(ed)358 b(with)h(an)f(argumen)-34 b(t)360 b(whose)f(size)e(is)h(linear)f(in)h (the)-1600 46955 y(size)403 b(of)i(the)f(strategy)h(graph.)-1600 51484 y Fx(7)1793 b(Implemen)-50 b(tation)600 b(notes)-1600 54900 y Fv(In)504 b(this)h(section)f(w)-34 b(e)504 b(describ)34 b(e)503 b(some)h(of)g(the)h(practical)e(issues)h(and)h(design)f (decisions)g(tak)-34 b(en)504 b(in)g(the)h(course)f(of)-1600 56556 y(dev)-34 b(elopmen)g(t)431 b(of)g(the)g(Demeter)f(soft)-34 b(w)g(are)432 b([Lieb)o(],)k(based)431 b(on)g(the)g(idea)f(of)h(tra)-34 b(v)g(ersal)430 b(strategies)g(as)h(describ)34 b(ed)430 b(in)-1600 58212 y(this)405 b(pap)34 b(er.)-1600 62124 y Fw(7.1)1495 b(User-lev)-42 b(el)499 b(represen)-42 b(tation)-1600 65123 y Fv(An)380 b(LL\(1\))f(grammar)g(has)g(b)34 b(een)379 b(dev)-34 b(elop)34 b(ed)379 b(to)h(supp)34 b(ort)380 b(textual)f(represen)-34 b(tation)380 b(of)g(strategies.)530 b(The)380 b(syn)-34 b(tax)380 b(of)-1600 66779 y(strategies)459 b(is)h(giv)-34 b(en)459 b(as)h(an)f(edge)h(list)f(b)34 b(et)-34 b(w)g(een)461 b(curly)d(brac)-34 b(k)g(ets,)474 b(with)460 b(the)g(source)f(and)h(target)g(no)34 b(des)460 b(pre\014xed)-1600 68435 y(with)479 b Fr(source:)685 b Fv(or)477 b Fr(ta)-34 b(rget:)p Fv(,)496 b(resp)34 b(ectiv)-34 b(ely)-101 b(.)758 b(The)478 b(default)h(name)f(map)g(asso) 34 b(ciates)477 b(a)h(strategy)g(no)34 b(de)478 b(with)h(a)e(class) -1600 70091 y(with)405 b(the)g(same)f(lab)34 b(el.)282 72307 y(Example:)24594 75628 y(26)p eop %%Page: 27 28 27 27 bop 1430 2325 a Fq({)637 b(source:)i(A)e(->)g(B)2545 b(B)637 b(->)g(C)2546 b(C)637 b(->)g(target:)i(D)d(})-1600 5537 y Fv(If)472 b(a)h(strategy's)f(graph)h(is)f(a)h(line)f(graph,)490 b(w)-34 b(e)472 b(ma)-34 b(y)473 b(also)f(use)h(from{via{to)g(syn)-34 b(tax;)507 b(the)472 b(ab)34 b(o)-34 b(v)g(e)473 b(strategy)g(could) -1600 7193 y(also)404 b(b)34 b(e)404 b(written)h(as:)1430 10405 y Fq(from)638 b(A)f(via)g(B)g(via)g(C)g(to)g(D)282 13618 y Fv(In)521 b(fact,)550 b(the)521 b(textual)g(represen)-34 b(tation)522 b(is)e(a)h(m)-34 b(uc)g(h)522 b(more)e(e\013ectiv)-34 b(e)520 b(w)-34 b(a)g(y)521 b(to)g(sp)34 b(ecify)521 b(the)g(constrain)-34 b(t)522 b(map.)-1600 15274 y(Sp)34 b(eci\014cally)-101 b(,)505 b(eac)-34 b(h)486 b(strategy)g(edge)g(ma) -34 b(y)486 b(b)34 b(e)485 b(follo)-34 b(w)g(ed)487 b(b)-34 b(y)486 b(an)g(elemen)-34 b(t)486 b(predicate)g(expressed)f(with)i(an) -34 b(y)486 b(of)h(the)-1600 16930 y(follo)-34 b(wing)405 b(forms:)2067 20142 y Fq(bypassing)639 b({)e(A,)g(B)g(})2067 21798 y(bypassing)i(->)e(*,l,*)2067 23454 y(only-through)j(->)d(A,l,B) -1600 26666 y Fv(The)404 b(\014rst)h(predicate)f(is)f(true)i(for)f(all) f(elemen)-34 b(ts)404 b(except)g(for)g(no)34 b(des)404 b Fr(A)g Fv(and)h Fr(B)p Fv(.)e(The)i(second)f(predicate)g(is)g(true)g (for)-1600 28322 y(all)438 b(elemen)-34 b(ts)439 b(except)f(for)g (edges)h(whose)g(lab)34 b(el)437 b(is)i Fr(l)p Fv(.)641 b(The)439 b(third)g(predicate)f(is)g(false)h(for)f(all)g(elemen)-34 b(ts)439 b(except)f(for)-1600 29978 y(the)405 b(edge)f Fr(A)4887 29312 y Fa(l)4393 29978 y Fs(!)337 b Fr(B)p Fv(.)282 32195 y(The)384 b(expression)g(for)g(the)g(strategy)g(giv)-34 b(en)384 b(in)g(pane)g(2)g(of)g(Figure)g(3,)k(including)c(the)g (constrain)-34 b(t)385 b(map,)j(is)c(giv)-34 b(en)-1600 33851 y(b)34 b(elo)-34 b(w:)1430 37063 y Fq({)637 b(source:)i(A)e(->)g (D)7000 b(bypassing)640 b(->)d(B,z,Z)7794 38719 y(D)g(->)g(target:)i(E) 7794 40375 y(A)e(->)g(Z)7000 b(bypassing)640 b(->)d(A,d,D)7794 42031 y(Z)g(->)g(E)7000 b(bypassing)640 b(A)5727 b(})-1600 45992 y Fw(7.2)1495 b(T)-125 b(o)42 b(ol)499 b(resp)42 b(onsibilities)-1600 48991 y Fv(The)537 b(Demeter)f(soft)-34 b(w)g(are)538 b([Lieb)o(])e(includes)h(sev)-34 b(eral)535 b(di\013eren)-34 b(t)537 b(to)34 b(ols)537 b(and)g(libraries,)568 b(all)536 b(using)h(the)g(tec)-34 b(hnology)-1600 50647 y(describ)34 b(ed)482 b(in)g(this)h(pap)34 b(er.)774 b(W)-101 b(e)482 b(brie\015y)g(describ)34 b(e)481 b(the)i(resp)34 b(onsiblities)482 b(of)h(those)g(to)34 b(ols,)502 b(ho)-34 b(w)484 b(they)e(relate,)501 b(and)-1600 52303 y(what)405 b(their)f(limits)g(are.)-1600 56215 y Fk(7.2.1)1394 b(AP)465 b(Library)-1600 59214 y Fv(The)501 b(AP)f(Library)f(is)h(a)h(Ja)-34 b(v)-67 b(a)499 b(implemen)-34 b(tation)502 b(of)f(TGA.)f(It)h (includes)f(a)g(set)h(of)f(Ja)-34 b(v)-67 b(a)500 b(in)-34 b(terfaces)501 b(and)g(default)-1600 60870 y(implemen)-34 b(tations)385 b(\(including)g(parsers\))f(for)g(the)g(concepts)g(of)h (class)e(graphs,)388 b(tra)-34 b(v)g(ersal)384 b(strategies,)k(name)c (maps,)-1600 62526 y(and)472 b(constrain)-34 b(t)473 b(maps,)488 b(as)471 b(w)-34 b(ell)471 b(as)h(a)f Fr(T)-101 b(raversal)471 b Fv(class)g(that)i(represen)-34 b(ts)471 b(a)g(tra)-34 b(v)g(ersal)472 b(graph)f(constructed)i(from)-1600 64182 y(these)456 b(four)g(ob)67 b(jects.)693 b(The)456 b(AP)f(Library)g(includes)g(a)h(n)-34 b(um)g(b)34 b(er)456 b(of)g(enhancemen)-34 b(ts)457 b(to)f(the)g(basic)f(structures)h(and) -1600 65838 y(algorithms)521 b(de\014ned)h(in)e(this)i(pap)34 b(er;)578 b(one)521 b(recen)-34 b(t)521 b(enhancemen)-34 b(t)522 b(is)e(the)i(abilit)-34 b(y)520 b(to)h(in)-34 b(tersect)521 b(t)-34 b(w)g(o)522 b(strategies,)-1600 67494 y(whic)-34 b(h)349 b(is)e(e\016cien)-34 b(tly)347 b(implemen)-34 b(ted)348 b(b)-34 b(y)348 b(computing)h(t)-34 b(w)g(o)349 b(tra)-34 b(v)g(ersal)348 b(graphs)g(whic)-34 b(h)349 b(can)e(b)34 b(e)348 b(tra)-34 b(v)g(ersed)348 b(in)f(parallel,)-1600 69150 y(only)429 b(mo)-34 b(ving)430 b(ahead)g(in)g(the)g(ob)67 b(ject)431 b(graph)f(when)g(b)34 b(oth)431 b(tra)-34 b(v)g(ersal)429 b(graphs)h(allo)-34 b(w)430 b(it.)615 b(More)429 b(details)h(ab)34 b(out)430 b(this)-1600 70806 y(and)405 b(other)f(enhancemen)-34 b(ts)406 b(will)d(app)34 b(ear)404 b(in)h(a)f(future)h(pap)34 b(er.)24594 75628 y(27)p eop %%Page: 28 29 28 28 bop -1600 2325 a Fk(7.2.2)1394 b(DJ)-1600 5324 y Fv(The)355 b(idea)g(of)g(the)g(DJ)g(library)f([OL01)o(,)g(LOO01])g (is)h(to)g(add)h(tra)-34 b(v)g(ersal)354 b(strategies)h(to)g(Ja)-34 b(v)-67 b(a)355 b(without)h(extending)g(the)-1600 6980 y(language;)508 b(instead,)490 b(tra)-34 b(v)g(ersal)473 b(is)g(done)h(using)g(an)f(API)g(that)h(computes)g(tra)-34 b(v)g(ersal)473 b(graphs)h(at)f(run)-34 b(time)474 b(\(using)-1600 8636 y(the)391 b(AP)g(Library\))f(and)i(in)-34 b(terprets)391 b(them)h(using)f(TMA.)g(A)g(v)-34 b(ector)391 b(of)g Fr(Visito)-34 b(r)390 b Fv(ob)67 b(jects)392 b(can)f(b)34 b(e)390 b(carried)g(along)h(the)-1600 10292 y(tra)-34 b(v)g(ersal)416 b(to)h(p)34 b(erform)416 b(b)34 b(eha)-34 b(vior)416 b(along)h(the)f(w)-34 b(a)g(y)-101 b(.)576 b(The)417 b(Ja)-34 b(v)-67 b(a)416 b(Re\015ection)g(API)g(is)g(used)h (to)g(create)f(class)g(graphs,)-1600 11948 y(tra)-34 b(v)g(erse)404 b(ob)67 b(ject)405 b(graphs,)g(and)f(in)-34 b(v)g(ok)g(e)405 b(visitor)e(metho)34 b(ds.)282 14164 y(DJ)483 b(also)g(in)-34 b(tegrates)484 b(generic)e(programming)h(with) h(adaptiv)-34 b(e)484 b(programming.)776 b(DJ)483 b(supp)34 b(orts)485 b(the)e(adaptiv)-34 b(e)-1600 15820 y(de\014nition)481 b(of)e(iterators)h(that)g(are)f(used)h(b)-34 b(y)480 b(generic)e(algorithms.)765 b(The)480 b(to)34 b(ol)479 b(w)-34 b(orks)480 b(with)g(the)g(Ja)-34 b(v)-67 b(a)479 b(collection)-1600 17476 y(classes)h(and)h(o\013ers)f(the)h(capabilit) -34 b(y)481 b(to)g(use)f(strategies)h(to)g(view)e(an)i(ob)67 b(ject)482 b(graph)f(as)f(a)h(list)f(ev)-34 b(en)480 b(though)i(the)-1600 19132 y(paths)405 b(to)g(the)f(ob)67 b(jects)406 b(in)e(the)g(list)g(ma)-34 b(y)404 b(b)34 b(e)404 b(complex.)-1600 23044 y Fk(7.2.3)1394 b(DemeterJ)-1600 26043 y Fv(DemeterJ)424 b([LO97],)430 b(is)425 b(our)g(oldest)h(Ja)-34 b(v)-67 b(a)425 b(to)34 b(ol)425 b(impro)-34 b(ving)425 b(on)h(our)f(C)30982 25782 y Fi(++)32650 26043 y Fv(implemen)-34 b(tation)427 b(describ)34 b(ed)424 b(in)i([Lie96)o(].)-1600 27699 y(DemeterJ)471 b(tak)-34 b(es)473 b(as)f(input)i(a)e(class)g (dictionary)g(\014le)g(and)h(a)f(set)h(of)f(b)34 b(eha)-34 b(vior)472 b(\014les,)489 b(whic)-34 b(h)474 b(con)-34 b(tain)473 b(plain)f(Ja)-34 b(v)-67 b(a)-1600 29355 y(metho)34 b(ds,)314 b(tra)-34 b(v)g(ersal)291 b(strategies,)313 b(and)292 b(visitor)e(metho)34 b(ds.)502 b(It)290 b(then)i(generates)f (Ja)-34 b(v)-67 b(a)291 b(source)f(co)34 b(de)291 b(for)g(the)g(tra)-34 b(v)g(ersals)-1600 31011 y(that)472 b(implemen)-34 b(ts)471 b(TMA,)g(in)-34 b(v)g(oking)471 b(the)g(visitor)f(metho)34 b(ds)472 b(along)f(the)g(w)-34 b(a)g(y)-101 b(.)739 b(DemeterJ)470 b(is)g(often)i(used)f(after)g(a)-1600 32667 y(pro)67 b(ject)446 b(has)f(b)34 b(een)445 b(protot)-34 b(yp)34 b(ed)447 b(using)e(the)h(DJ)f(library)f(b)34 b(ecause)444 b(DemeterJ)h(generates)g(tra)-34 b(v)g(ersal)445 b(co)34 b(de,)454 b(whic)-34 b(h)-1600 34323 y(is)404 b(faster)g(than)i(tra)-34 b(v)g(ersing)404 b(with)h(re\015ection.)282 36539 y(The)550 b(class)e(dictionary)h(syn)-34 b(tax)550 b(is)f(a)g(concise)g(w)-34 b(a)g(y)550 b(of)g(de\014ning)g(a)f(class)g(graph,)586 b(including)549 b(its)h(\014elds)f(and)-1600 38195 y(accessor)425 b(metho)34 b(ds.)604 b(F)-101 b(or)425 b(example,)430 b(the)c(class)f(dictionary)h(for)f(the)i(class)e(graph)h(of)g(pane)g(1) g(of)g(Figure)f(3)h(can)f(b)34 b(e)-1600 39851 y(expressed)404 b(as)g(follo)-34 b(ws:)1430 43063 y Fq(A)637 b(=)g("a")g()h(B)e() i(C)e()i(D.)1430 44719 y(B)f(=)g("b")g()h(Z.)1430 46375 y(D)f(=)g("d")g()h(Y.)1430 48031 y(C)f(=)g()g(E.)1430 49688 y(Y)g(:)g(A)f(|)h(B.)1430 51344 y(Z)g(:)g(D)f(|)h(E.)1430 53000 y(E)g(=)g("e".)-1600 56212 y Fv(Essen)-34 b(tially)-101 b(,)418 b(the)e(graph)g(is)f(represen)-34 b(ted)416 b(as)g(a)f(list)h (of)g(no)34 b(des,)418 b(where)d(eac)-34 b(h)416 b(no)34 b(de)416 b(is)f(represen)-34 b(ted)416 b(b)-34 b(y)416 b(a)g(list)f(of)h(its)-1600 57868 y(outgoing)451 b(edges,)460 b(with)451 b(the)f(edge)f(lab)34 b(els)449 b(in)h(angle)f(brac)-34 b(k)g(ets.)676 b(The)450 b(class)f(dictionary)h(is)f(annotated)j(with)e (some)-1600 59524 y(syn)-34 b(tactic)431 b(sugar)f(in)g(double)h (quotes)f(to)h(mak)-34 b(e)430 b(an)g(LL\(1\))g(grammar)g(whic)-34 b(h)431 b(is)f(used)h(to)f(generate)g(a)g(parser)g(that)-1600 61180 y(creates)384 b(an)h(ob)67 b(ject)385 b(graph)g(for)f(a)h(giv)-34 b(en)384 b(input)i(sen)-34 b(tence.)532 b(F)-101 b(or)384 b(example,)k(assuming)d(the)g(ab)34 b(o)-34 b(v)g(e)384 b(class)g(dictionary)-101 b(,)-1600 62836 y(the)405 b(ob)67 b(ject)405 b(graph)f(in)g(Figure)g(4)g(can)h(b)34 b(e)404 b(created)f(with)i(the)g(follo)-34 b(wing)405 b(Ja)-34 b(v)-67 b(a)403 b(co)34 b(de:)1430 66048 y Fq(A)637 b(a)g(=)f (A.parse\("a)k(b)d(d)g(b)g(e)f(e)h(d)g(b)f(e"\);)282 69261 y Fv(DemeterJ)290 b(also)h(generates)h(sev)-34 b(eral)290 b(utilit)-34 b(y)291 b(visitors)g(from)h(a)f(class)g (dictionary)-101 b(,)313 b(suc)-34 b(h)292 b(as)g(for)f(prin)-34 b(ting,)315 b(cop)-34 b(ying,)-1600 70917 y(or)404 b(comparing)g(ob)67 b(ject)405 b(graphs)g(or)f(tracing)g(tra)-34 b(v)g(ersals.)24594 75628 y(28)p eop %%Page: 29 30 29 29 bop -1600 2325 a Fk(7.2.4)1394 b(D)-39 b(AJ)-1600 5324 y Fv(D)-34 b(AJ)370 b([Orla)n(,)f(Sun02)r(])g(is)g(our)g(latest)h (to)34 b(ol)369 b(and)h(it)f(tak)-34 b(es)370 b(Asp)34 b(ectJ)369 b([KHH)31839 4884 y Fn(+)32626 5324 y Fv(01],)376 b(rather)369 b(than)h(Ja)-34 b(v)-67 b(a,)376 b(as)369 b(the)h(starting)-1600 6980 y(p)34 b(oin)-34 b(t.)517 b(D)-34 b(AJ)337 b(p)34 b(erforms)336 b(a)g(similar)g(task)h(as)f (DemeterJ,)g(taking)h(as)f(input)i(a)f(set)f(of)h(class)f(dictionaries) g(and)i(asp)34 b(ects)-1600 8636 y(\(augmen)-34 b(ted)587 b(with)g(declarations)e(of)h(strategies)f(and)i(tra)-34 b(v)g(ersals\))586 b(and)g(using)g(the)g(AP)f(Library)f(to)i(generate) -1600 10292 y(tra)-34 b(v)g(ersal)430 b(co)34 b(de)430 b(that)i(implemen)-34 b(ts)431 b(TMA.)f(In)-34 b(tegrating)432 b(with)f(Asp)34 b(ectJ)430 b(allo)-34 b(ws)431 b(the)f(user)h(to)f(b)34 b(ene\014t)431 b(from)g(b)34 b(oth)-1600 11948 y(adaptiv)-34 b(e)495 b(programming)f(and)h(asp)34 b(ect-orien)-34 b(ted)494 b(programming)g([EFB01])f(in)h(the)g(same)g(program.)808 b(All)493 b(of)i(the)-1600 13604 y(curren)-34 b(t)554 b(features)g(of)g(DemeterJ)f(will)g(ev)-34 b(en)g(tually)554 b(b)34 b(e)554 b(a)-34 b(v)-67 b(ailable)553 b(in)g(D)-34 b(AJ,)554 b(and)h(future)f(dev)-34 b(elopmen)g(t)555 b(will)e(b)34 b(e)-1600 15260 y(geared)404 b(to)-34 b(w)g(ards)406 b(enhancing)f(D)-34 b(AJ,)404 b(DJ,)f(and)i(the)g(AP)f(Library)-101 b(.)282 17476 y(See)404 b(Section)g(10)g(for)h(other)f(w)-34 b(a)g(ys)405 b(tra)-34 b(v)g(ersal)404 b(strategies)g(can)g(\014t)h(in) -34 b(to)405 b(Asp)34 b(ectJ.)-1600 22054 y Fx(8)1793 b(Related)598 b(w)-50 b(ork)-1600 25471 y Fv(It)392 b(is)g(surprising)h (to)f(see)g(that)h(despite)g(the)g(univ)-34 b(ersalit)g(y)392 b(of)g(tra)-34 b(v)g(ersals)393 b(in)f(programming,)j(only)d(v)-34 b(ery)391 b(little)h(w)-34 b(ork)-1600 27127 y(has)489 b(b)34 b(een)487 b(done)i(in)f(this)h(direction,)508 b(although)490 b(the)e(pace)g(is)g(pic)-34 b(king)488 b(up.)791 b(Un)-34 b(til)488 b(recen)-34 b(tly)-101 b(,)508 b(the)489 b(automation)h(of)-1600 28783 y(tra)-34 b(v)g(ersal)352 b(of)h(ob)67 b(ject)354 b(structures)f(using)g(succinct)g(represen)-34 b(tations)354 b(has)f(b)34 b(een)352 b(unique)h(to)g(Demeter)f (\([LSX94],)362 b(see)-1600 30439 y(ab)34 b(o)-34 b(v)g(e\);)453 b(the)437 b(rising)f(p)34 b(opularit)-34 b(y)436 b(of)h(markup)g (languages)g(in)f(general,)444 b(and)437 b(XML)f(in)g(particular,)444 b(created)436 b(a)g(new)-1600 32095 y(in)-34 b(terest)405 b(in)f(tra)-34 b(v)g(ersals.)538 b(In)404 b(this)h(section)f(w)-34 b(e)405 b(list)f(some)g(w)-34 b(ork)404 b(relev)-67 b(an)-34 b(t)403 b(to)i(tra)-34 b(v)g(ersals.)282 34311 y(XML)403 b(is)f(a)h(new)h(standard)g(for)f(de\014ning)h(and)g(pro)34 b(cessing)403 b(markup)g(languages)h(for)f(the)g(w)-34 b(eb)404 b([BP)-34 b(e98)o(].)538 b(XML)-1600 35967 y(uses)503 b(grammars)g(\(also)h(called)e Ft(do)-62 b(cument)523 b(typ)-62 b(e)523 b(de\014nitions)502 b Fv(or)g Ft(schemas)99 b Fv(\))502 b(to)h(de\014ne)h(a)f(markup)g(language)h(for)-1600 37623 y(a)525 b(class)g(of)h(do)34 b(cumen)-34 b(ts.)902 b(T)-101 b(o)526 b(select)e(subsets)j(of)e(XML)g(do)34 b(cumen)-34 b(t)526 b(elemen)-34 b(ts,)556 b(the)525 b(W3)g(Consortium)i(recen)-34 b(tly)-1600 39279 y(in)g(tro)34 b(duced)372 b(a)g(language)g(called)f(XP)-34 b(ath)372 b([Ce99].)527 b(The)372 b(w)-34 b(a)g(y)373 b(elemen)-34 b(ts)371 b(are)g(selected)g(in)h(XP)-34 b(ath)372 b(is)g(b)-34 b(y)371 b(na)-34 b(vigation,)-1600 40935 y(somewhat)607 b(resem)-34 b(bling)605 b(the)h(w)-34 b(a)g(y)606 b(one)g(selects)f (\014les)g(from)h(an)g(in)-34 b(teractiv)g(e)605 b(shell,)655 b(but)607 b(with)f(a)g(m)-34 b(uc)g(h)607 b(ric)-34 b(her)-1600 42591 y(language.)533 b(Recen)-34 b(tly)387 b([MS01],)j(XP)-34 b(ath)388 b(has)f(b)34 b(een)386 b(prop)34 b(osed)388 b(as)f(input)h(to)f(a)f(univ)-34 b(ersal)387 b(ob)67 b(ject)388 b(mo)34 b(del)386 b(w)-34 b(alk)g(er)387 b(for)-1600 44247 y(arbitrary)455 b(Ja)-34 b(v)-67 b(a)455 b(ob)67 b(jects.)694 b(XP)-34 b(ath)456 b(expressions)g(are)f(used)h(to)f (describ)34 b(e)455 b Ft(sets)480 b(of)g(obje)-62 b(cts)p Fv(,)465 b(in)455 b(the)h(sense)g(that)h(the)-1600 45903 y(v)-67 b(alue)443 b(of)h(an)g(expression)f(is)g(an)h Ft(unor)-62 b(der)g(e)g(d)442 b Fv(collection)g(of)i(ob)67 b(jects)445 b Ft(without)468 b(duplic)-62 b(ates)p Fv(.)653 b(This)444 b(is)f(in)h(con)-34 b(trast)445 b(to)-1600 47559 y(tra)-34 b(v)g(ersals,)360 b(whose)351 b(v)-67 b(alue)349 b(is)g(a)h(set)g(of)g Ft(p)-62 b(aths)p Fv(,)358 b(so)350 b(that)h(the)f(ob)67 b(jects)351 b(of)f(eac)-34 b(h)350 b(path)h(are)e(explictly)g(ordered)g(and)i(ma)-34 b(y)-1600 49215 y(app)34 b(ear)385 b(more)g(than)h(once,)j(ev)-34 b(en)385 b(on)g(the)h(same)f(path.)533 b(It)385 b(is)g(quite)g(easy)g (to)h(implemen)-34 b(t)385 b(XP)-34 b(ath)387 b(using)e(strategies,) -1600 50871 y(using)517 b(sp)34 b(ecialized)514 b(\\visitors.")874 b(The)517 b(con)-34 b(v)g(erse,)543 b(ho)-34 b(w)g(ev)g(er,)545 b(do)34 b(es)516 b(not)h(hold,)544 b(due)516 b(to)h(the)f(lac)-34 b(k)516 b(of)g(structure)h(in)-1600 52527 y(XP)-34 b(ath)374 b(expression)e(v)-67 b(alues.)527 b(While)372 b(XP)-34 b(ath)374 b(is)f(a)f(p)34 b(o)-34 b(w)g(erful)374 b(language)f(to)g (address)g(parts)h(of)f(an)g(XML)f(do)34 b(cumen)-34 b(t,)-1600 54183 y(there)558 b(are)f(cases)g(in)h(whic)-34 b(h)559 b(strategies)f(can)g(b)34 b(e)557 b(used)i(to)f(select)f(the)h (same)g(sets)g(with)h Ft(exp)-62 b(onential)62 b(ly)555 b Fv(shorter)-1600 55839 y(represen)-34 b(tation)405 b(than)g(the)g(represen)-34 b(tation)405 b(of)f(XP)-34 b(ath.)282 58055 y(A)535 b(bad)i(example)d(for)i(XP)-34 b(ath)537 b(is)e(\(curren)-34 b(tly\))536 b(as)f(follo)-34 b(ws)537 b(\(XP)-34 b(ath)537 b(is)e(in)g(the)h(pro)34 b(cess)535 b(of)h(b)34 b(eing)536 b(extended)-1600 59711 y(mo)-34 b(ving)469 b(closer)e(to)i(the)g(tra)-34 b(v)g(ersal)469 b(strategy)f(mo)34 b(del)468 b(to)h(mak)-34 b(e)469 b(this)g(also)f (easily)g(expressible\).)731 b(T)-101 b(ak)-34 b(e)468 b(a)h(strategy)-1600 61367 y(graph)388 b(with)g(start)f(no)34 b(de)387 b Fu(S)457 b Fv(and)388 b(target)g(no)34 b(de)387 b Fu(T)555 b Fv(and)388 b(no)34 b(des)388 b Fu(A)28276 61549 y Fp(i)29038 61367 y Fv(and)g Fu(B)32297 61549 y Fp(i)33060 61367 y Fv(for)f Fu(i)g Fv(from)g(1)g(to)g Fu(n)g Fv(and)h(no)34 b(des)387 b Fu(C)48719 61549 y Fp(j)49593 61367 y Fv(for)g Fu(j)-1600 63023 y Fv(from)371 b(1)g(to)g Fu(n)202 b Fs(\000)h Fv(1.)527 b(There)371 b(are)f(edges)h(from)g Fu(S)441 b Fv(to)371 b Fu(A)22244 63205 y Fn(1)23140 63023 y Fv(and)h Fu(B)26383 63205 y Fn(1)26909 63023 y Fv(;)382 b(from)371 b Fu(C)31326 63205 y Fp(i)32073 63023 y Fv(to)g Fu(A)34430 63205 y Fp(i)p Fn(+1)36379 63023 y Fv(and)g Fu(B)39621 63205 y Fp(i)p Fn(+1)41570 63023 y Fv(and)h(from)f Fu(A)47635 63205 y Fp(i)48381 63023 y Fv(and)h Fu(B)51624 63205 y Fp(i)-1600 64679 y Fv(to)382 b Fu(C)725 64861 y Fp(i)1483 64679 y Fv(for)g Fu(i)f Fv(from)i(1)e(to)i Fu(n)224 b Fs(\000)h Fv(1;)389 b(from)382 b Fu(A)16610 64861 y Fp(n)17618 64679 y Fv(and)h Fu(B)20872 64861 y Fp(n)21880 64679 y Fv(to)f(T.)g(Note)g(that)h(there)f(are)g(exp)34 b(onen)-34 b(tially)381 b(man)-34 b(y)383 b(paths)g(from)-1600 66335 y Fu(S)456 b Fv(to)386 b Fu(T)555 b Fv(and)386 b(if)g(w)-34 b(e)387 b(w)-34 b(an)g(t)387 b(to)f(express)g(the)g Fu(T)555 b Fv(no)34 b(des)386 b(that)h(w)-34 b(e)386 b(w)-34 b(an)g(t)388 b(to)e(select)f(in)h(XP)-34 b(ath,)391 b(w)-34 b(e)386 b(ha)-34 b(v)g(e)386 b(to)g(en)-34 b(umerate)-1600 67991 y(all)417 b(those)h(paths)h(using)f(the)g(XP)-34 b(ath)419 b(notation.)581 b(The)418 b(size)e(of)i(the)g(strategy)g(graph)g (solution)h(is)e(linear,)j(while)e(the)-1600 69647 y(size)403 b(of)i(the)f(XP)-34 b(ath)406 b(solution)e(is)g(exp)34 b(onen)-34 b(tial.)282 71863 y(This)455 b(example)f(ma)-34 b(y)454 b(lead)h(to)f(exp)34 b(onen)-34 b(tial)455 b(running)h(times)e (for)h(some)f(input)i(ob)67 b(jects)455 b(b)34 b(oth)455 b(for)g(the)g(XP)-34 b(ath)24594 75628 y(29)p eop %%Page: 30 31 30 30 bop -1600 2325 a Fv(and)375 b(the)g(tra)-34 b(v)g(ersal)374 b(strategy)h(case.)528 b(It)374 b(is)g(the)h(resp)34 b(onsibilit)-34 b(y)374 b(of)h(the)f(programmer)g(to)h(recognize)e (this)i(p)34 b(ossibilit)-34 b(y)-1600 3981 y(and)405 b(deal)f(with)h(it)f(using)h(appropriate)f(visitor)g(ob)67 b(jects.)282 6197 y(In)335 b(the)g(con)-34 b(text)335 b(of)g Ft(obje)-62 b(ct-oriente)g(d)366 b(datab)-62 b(ases)p Fv(,)344 b(tra)-34 b(v)g(ersals)335 b(are)f(hea)-34 b(vily)334 b(used.)516 b(Some)335 b(automation)h(of)f(tra)-34 b(v)g(er-)-1600 7853 y(sal)313 b(w)-34 b(as)314 b(suggested)h(in)e([NS88,)h(VdBV93,)f (MS93,)g(KKS92)q(,)g(IL94)o(].)508 b(Roughly)314 b(sp)34 b(eaking,)331 b(the)314 b(idea)f(in)g(these)h(pap)34 b(ers)-1600 9509 y(is)341 b(to)h(tra)-34 b(v)g(erse)341 b(to)h(a)g(target)g(without)h(sp)34 b(ecifying)341 b(the)h(full)f(path) i(leading)e(to)h(it.)518 b(Cast)342 b(in)g(our)f(terms,)354 b(one)342 b(can)f(view)-1600 11165 y(these)426 b(tec)-34 b(hniques)427 b(as)f(a)f(v)-67 b(arian)-34 b(t)426 b(of)g(line-graph)g (strategies)g(\(i.e.,)k(strategy)c(graphs)h(with)g(a)e(single)h(path\)) h(;)437 b(ho)-34 b(w-)-1600 12821 y(ev)g(er,)411 b(their)f(goal)g(is)g (to)h(allo)-34 b(w)410 b(the)h(user)f(to)h(abbreviate)f(the)h(lab)34 b(orious)410 b(sp)34 b(eci\014cation)411 b(of)f(a)h(full)f(query)-101 b(,)411 b(and)g(their)-1600 14477 y(main)426 b(concern)f(is)g(ho)-34 b(w)426 b(to)g(complete)f(the)h(abbreviation)g(when)g(it)g(is)f(am)-34 b(biguous,)432 b(sometimes)425 b(using)h(heuristics.)-1600 16133 y(Another)367 b(complication)e(these)h(approac)-34 b(hes)367 b(confron)-34 b(t)367 b(is)f(that)h(queries)e(are)g(sp)34 b(eci\014ed)366 b(on-line)g(and)g(can)g(therefore)-1600 17789 y(refer)301 b(to)i(run-time)f(structures.)506 b(By)301 b(con)-34 b(trast,)323 b(our)303 b(approac)-34 b(h)303 b(ignores)f(the)g(am)-34 b(biguit)g(y)303 b(problem)g(b)-34 b(y)302 b(tra)-34 b(v)g(ersing)303 b(all)-1600 19445 y(quali\014ed)362 b(ob)67 b(jects,)371 b(and)362 b(requires)f(tra)-34 b(v)g(ersal)361 b(sp)34 b(eci\014cations)362 b(to)g(refer)f(only)h(to)g (compile-time)f(structures.)525 b(On)362 b(the)-1600 21101 y(other)405 b(hand,)h(strategies)f(allo)-34 b(w)405 b(for)g(general)f(graph)i(sp)34 b(eci\014cation,)405 b(and)g(en)-34 b(tail)405 b(\(when)i(com)-34 b(bined)405 b(with)h(visitors\))-1600 22757 y(the)f(p)34 b(o)-34 b(w)g(er)404 b(of)h(a)f(full-\015edged)h(programming)f(language.)282 24973 y(In)554 b(the)g(con)-34 b(text)555 b(of)f(programming)g (languages,)592 b(tra)-34 b(v)g(ersals)554 b(are)f(frequen)-34 b(tly)554 b(used)g(as)g(a)g(part)h(of)f Ft(attribute)-1600 26629 y(gr)-62 b(ammars)p Fv(,)398 b(for)g(tra)-34 b(v)g(ersing)398 b(abstract)g(syn)-34 b(tax)399 b(trees)e([W)-34 b(G84].)536 b(Using)398 b(con)-34 b(v)g(en)g(tional)399 b(programming)g(tec)-34 b(hniques,)-1600 28285 y(the)586 b(details)f(of)h(tra)-34 b(v)g(ersals)585 b(m)-34 b(ust)586 b(b)34 b(e)585 b(hard-co)34 b(ded)586 b(in)g(the)f(attribute)i(grammar;)675 b(this)586 b(fact)g(mak)-34 b(es)585 b(attribute)-1600 29941 y(grammars)477 b(hard)g(to)g(main)-34 b(tain,)496 b(sa)-34 b(y)477 b(in)g(the)g(case)g (of)g(some)g(mo)34 b(di\014cations)477 b(in)g(the)g(grammar)g([KW94)o (].)757 b(In)477 b(the)-1600 31597 y(Eli)f(system)i([GHL)7424 31157 y Fn(+)8210 31597 y Fv(92)q(],)494 b(this)478 b(problem)f(is)g (addressed)h(b)-34 b(y)477 b(separating)h(the)g(details)f(of)h(the)f (grammar)g(from)g(the)-1600 33253 y(underlying)375 b(algorithm,)381 b(using)375 b(tra)-34 b(v)g(ersal)375 b(sp)34 b(eci\014cations)375 b(whic)-34 b(h)376 b(basically)e(corresp)34 b(ond)374 b(to)i(single)e(edge)h(strategy)-1600 34909 y(graphs.)1103 b(There)592 b(are)f(pap)34 b(ers)592 b(dealing)g(with)h(a)f(more)g(mo) 34 b(dular,)638 b(comp)34 b(onen)-34 b(t-based)594 b(approac)-34 b(h)593 b(to)g(attribute)-1600 36565 y(grammars,)500 b(suc)-34 b(h)482 b(as)g([FMY92].)769 b(This)482 b(allo)-34 b(ws)482 b(tra)-34 b(v)g(ersals)481 b(for)g(di\013eren)-34 b(t)482 b(asp)34 b(ects)481 b(or)g(phases)h(to)g(b)34 b(e)481 b(separated,)-1600 38221 y(partially)417 b(addressing)i(the)f (concerns)g(of)g(scattering)g(and)h(tangling)f(of)g(tra)-34 b(v)g(ersal)418 b(co)34 b(de.)579 b(Ho)-34 b(w)g(ev)g(er,)422 b(the)c(mapping)-1600 39877 y(from)571 b(sp)34 b(eci\014c)570 b(attribute)i(grammars)f(to)g(high-lev)-34 b(el)570 b(attribute)i (grammars)f(needed)g(in)g(a)g(mo)34 b(dular)571 b(attribute)-1600 41533 y(grammar)404 b(approac)-34 b(h)405 b(could)g(b)34 b(e)403 b(expressed)h(more)g(con)-34 b(v)g(enien)g(tly)404 b(with)h(tra)-34 b(v)g(ersal)404 b(strategies.)282 43749 y(Meta-programming)517 b(tec)-34 b(hniques)517 b(ha)-34 b(v)g(e)516 b(also)g(b)34 b(een)517 b(dev)-34 b(elop)34 b(ed)516 b(for)g(tra)-34 b(v)g(ersals.)875 b(F)-101 b(or)516 b(example,)543 b(in)517 b([CI84],)-1600 45405 y(a)456 b(simple)f(kind)h(of)g(tra)-34 b(v)g(ersal)456 b(\(corresp)34 b(onding)456 b(to)g(a)g(one)f(la)-34 b(y)g(er)456 b(tree)f(graph\))i (is)e(used)h(in)g(a)g(meta-program;)481 b(this)-1600 47061 y(tra)-34 b(v)g(ersal)404 b(scans)g(all)g(ob)67 b(jects)405 b(and)g(executes)f(the)g(sp)34 b(eci\014ed)404 b(co)34 b(de)404 b(at)g(the)h(desired)e(targets.)282 49277 y Ft(Str)-62 b(ate)g(gic)590 b(pr)-62 b(o)g(gr)g(amming)576 b Fv(\(SP\))h([L)-135 b(VV03])576 b(pro)-34 b(vides)577 b(the)g(programmer)f(with)i(full)f(tra)-34 b(v)g(ersal)576 b(con)-34 b(trol)577 b(with)-1600 50933 y Ft(tr)-62 b(aversal)500 b(schemes)476 b Fv(that)k(can)f(b)34 b(e)479 b(built)g(up)h(mo)34 b(dularly)478 b(using)i(a)e(ric)-34 b(h)479 b(set)g(of)g(com)-34 b(binators.)764 b(A)479 b(k)-34 b(ey)478 b(di\013erence)-1600 52589 y(b)34 b(et)-34 b(w)g(een)407 b(SP)g(and)g(AP)f(is)g(that)i(tra) -34 b(v)g(ersals)406 b(in)g(SP)h(ma)-34 b(y)406 b(follo)-34 b(w)407 b(paths)g(in)g(an)f(ob)67 b(ject)408 b(graph)e(that)i(can)e (nev)-34 b(er)406 b(lead)-1600 54245 y(to)434 b(target)h(classes;)448 b(no)434 b(reac)-34 b(habilit)g(y)434 b(computation)h(is)f(done.)628 b(In)434 b(general,)441 b(this)434 b(is)g(undecidable)g(in)g(SP)-101 b(,)434 b(b)34 b(ecause)-1600 55902 y(the)405 b(tra)-34 b(v)g(ersal)404 b(com)-34 b(binators)405 b(form)f(a)g(T)-101 b(uring-complete)405 b(language.)282 58118 y(The)275 b Ft(Visitor)e Fv(design)i(pattern)g(is)f(discussed)h(in)g(man)-34 b(y)275 b(soft)-34 b(w)g(are-engineering)276 b(w)-34 b(orks)275 b(\(e.g.,)e([GHJV95]\).)496 b(While)-1600 59774 y(this)504 b(approac)-34 b(h)505 b(iden)-34 b(ti\014es)504 b(and)g(isolates)g(the)g(task)f(of)h(tra)-34 b(v)g(ersal,)528 b(no)504 b(mec)-34 b(hanism)504 b(to)g(automate)g(the)g(task)g(and) -1600 61430 y(mak)-34 b(e)347 b(it)g(adaptiv)-34 b(e)347 b(w)-34 b(as)348 b(previously)e(prop)34 b(osed.)520 b(Moreo)-34 b(v)g(er,)358 b(no)347 b(formal)g(treatmen)-34 b(t)348 b(of)f(tra)-34 b(v)g(ersal)347 b(w)-34 b(as)348 b(o\013ered.)519 b(As)-1600 63086 y(a)391 b(side)g(remark)f(from)h(the)g(soft)-34 b(w)g(are)393 b(engineering)d(p)34 b(ersp)g(ectiv)-34 b(e,)393 b(w)-34 b(e)391 b(note)g(that)h(our)g(approac)-34 b(h)392 b(of)f(separating)g(the)-1600 64742 y(tra)-34 b(v)g(ersal)424 b(task)g(from)h(the)f(class-structure)h(of)f(an)h(ob)67 b(ject)425 b(orien)-34 b(ted)424 b(program)h(can)f(b)34 b(e)424 b(view)-34 b(ed)424 b(as)g(a)g(sp)34 b(ecial)423 b(case)-1600 66398 y(of)380 b Ft(asp)-62 b(e)g(ct-oriente)g(d)407 b(pr)-62 b(o)g(gr)g(amming)378 b Fv([EFB01],)383 b(where)d(the)g(idea)f (is)h(to)g(try)f(to)h(align)g(di\013eren)-34 b(t)380 b(conceptual)g(asp)34 b(ects)-1600 68054 y(of)404 b(programming)h(with) g(actual)f(co)34 b(de)404 b(mo)34 b(dules.)282 70270 y(Visitor)438 b(generators)h(ha)-34 b(v)g(e)439 b(b)34 b(een)438 b(around)i(for)e(a)h(while)f(\(e.g.,)447 b([JP98)o(,)438 b(SD01)q(,)g(BV01]\),)447 b(usually)438 b(generating)h(a)-1600 71926 y(default)408 b(DepthFirst)f(visitor)f(with)h(b)34 b(efore)406 b(and)i(after)e(ho)34 b(oks.)546 b(Since)407 b(these)f(visitors)g(only)h(need)f(to)h(b)34 b(e)406 b(man)-34 b(ually)24594 75628 y(30)p eop %%Page: 31 32 31 31 bop -1600 2325 a Fv(sp)34 b(ecialized)509 b(for)i(selected)f(t) -34 b(yp)34 b(es)510 b(of)h(the)g(visited)g(class)f(hierarc)-34 b(h)g(y)-101 b(,)536 b(they)511 b(are)f(adaptiv)-34 b(e)511 b(to)g(some)g(degree.)857 b(But)-1600 3981 y(visitor)484 b(generators)h(fall)f(short)i(of)f(the)g(accomplishmen)-34 b(ts)486 b(of)f(our)g(approac)-34 b(h)485 b(for)g(the)g(follo)-34 b(wing)486 b(reason:)700 b(They)-1600 5637 y(don't)331 b(tak)-34 b(e)331 b(adv)-67 b(an)-34 b(tage)332 b(of)e(a)h(high-lev)-34 b(el)330 b(approac)-34 b(h)332 b(to)f(sp)34 b(ecifying)330 b(tra)-34 b(v)g(ersals)330 b(and)i(instead)f(the)g(generated)g(visitor) -1600 7293 y(go)34 b(es)459 b(ev)-34 b(erywhere.)701 b(F)-101 b(or)459 b(example,)472 b(to)459 b(implemen)-34 b(t)460 b(a)f(tra)-34 b(v)g(ersal)458 b Fr(\\from)i(A)f(to)f(B")h Fv(with)h(a)f(visitor)f(generator,)473 b(w)-34 b(e)-1600 8949 y(w)g(ould)404 b(ha)-34 b(v)g(e)403 b(to)g(sp)34 b(ecialize)400 b(the)j(visitor)f(man)-34 b(ually)403 b(for)f(all)g(classes)g(b)34 b(et)-34 b(w)g(een)404 b(A)e(and)h(B)f (where)h(w)-34 b(e)403 b(don't)g(need)g(to)-1600 10605 y(visit)438 b(all)f(outgoing)i(edges.)640 b(A)438 b(visitor)f (generator)h(generates)g(tra)-34 b(v)g(ersals)438 b(of)g(the)h(form)f Fr(\\from)h(A)f(to)f(*")h Fv(and)h(then)-1600 12261 y(w)-34 b(e)405 b(ha)-34 b(v)g(e)404 b(to)h(sim)-34 b(ulate)404 b(b)-34 b(ypassing)406 b(clauses)d(using)i(sub)34 b(classing.)282 14477 y(An)581 b(imp)34 b(ortan)-34 b(t)583 b(to)34 b(ol)581 b(for)g(asp)34 b(ect-orien)-34 b(ted)582 b(programming)f(is)g(Asp)34 b(ectJ)581 b(from)h(Xero)-34 b(x)581 b(P)-101 b(AR)-34 b(C)582 b([KHH)49328 14037 y Fn(+)50114 14477 y Fv(01)q(].)-1600 16133 y(Generally)463 b(sp)34 b(eaking,)479 b(Asp)34 b(ectJ)464 b(allo)-34 b(ws)464 b(the)h(programmer)f(to)h(manipulate)g Ft(p)-62 b(ointcuts)p Fv(,)476 b(whic)-34 b(h)465 b(are)f(a)g (collection)-1600 17789 y(of)520 b(p)34 b(oin)-34 b(ts)521 b(in)f(the)h(execution.)885 b(In)520 b(Section)h(10)e(w)-34 b(e)521 b(describ)34 b(e)519 b(t)-34 b(w)g(o)521 b(applications)g(of)f (tra)-34 b(v)g(ersals)520 b(to)g(Asp)34 b(ectJ.)520 b(A)-1600 19445 y(tra)-34 b(v)g(ersal)507 b(de\014nes)h(a)f(structured)i(set)e (of)h(join)f(p)34 b(oin)-34 b(ts)509 b(\(calls)e(of)g(the)h(tra)-34 b(v)g(ersal)507 b(metho)34 b(ds\))508 b(while)g(in)f(Asp)34 b(ectJ)507 b(a)-1600 21101 y(m)-34 b(uc)g(h)405 b(ric)-34 b(her)404 b(set)g(of)g(join)h(p)34 b(oin)-34 b(ts)405 b(is)f(used.)539 b(Visitors)404 b(are)g(advice)f(on)h(the)h(tra)-34 b(v)g(ersals.)282 23317 y(The)354 b(idea)g(b)34 b(ehind)355 b(succinct)f(sp)34 b(eci\014cations)354 b(of)h(mathematical)f (structures)h([GW84])f(is)g(to)g(exploit)g(regularit)-34 b(y)-101 b(.)-1600 24973 y(If)407 b(there)g(is)f(no)h(regularit)-34 b(y)-101 b(,)407 b(succinctness)g(will)g(not)g(w)-34 b(ork.)547 b(In)407 b([GW84])f(b)34 b(o)g(olean)407 b(circuits)f(are)g (used)i(to)f(represen)-34 b(t)-1600 26629 y(graphs)405 b(succinctly)-101 b(.)538 b(W)-101 b(e)403 b(instead)i(use)g(tra)-34 b(v)g(ersal)403 b(strategies)i(to)f(de\014ne)h(subgraphs)g(succinctly) -101 b(.)-1600 31195 y Fx(9)1793 b(Comparison)599 b(to)e(tra)-50 b(v)g(ersal)600 b(sp)50 b(eci\014cations)-1600 34612 y Fv(In)359 b(this)h(section,)368 b(b)-34 b(y)360 b Fs(L)9012 34800 y Fn(OLD)11464 34612 y Fv(w)-34 b(e)359 b(mean)h(the)f(tra)-34 b(v)g(ersal)360 b(sp)34 b(eci\014cation)359 b(language)g(of)h([Lie92)o (,)f(PXL95)o(])g(and)h(b)-34 b(y)360 b Fs(L)49621 34800 y Fn(NEW)-1600 36268 y Fv(the)405 b(tra)-34 b(v)g(ersal)404 b(sp)34 b(eci\014cation)404 b(language)g(for)g(strategies)g(presen)-34 b(ted)405 b(in)g(this)f(pap)34 b(er.)282 38484 y(The)349 b(comparison)g(b)34 b(et)-34 b(w)g(een)350 b Fs(L)14531 38672 y Fn(OLD)16973 38484 y Fv(and)g Fs(L)20111 38672 y Fn(NEW)22839 38484 y Fv(is)f(delicate)f(but)i Fs(L)31395 38672 y Fn(NEW)34123 38484 y Fv(is)f(an)g(imp)34 b(ortan)-34 b(t)350 b(impro)-34 b(v)g(emen)g(t)350 b(o)-34 b(v)g(er)-1600 40140 y Fs(L)-764 40328 y Fn(OLD)1329 40140 y Fv(.)826 b(Some)500 b(tra)-34 b(v)g(ersal)499 b(sp)34 b(eci\014cations)500 b(are)g(equally)f(easy)g(to)h(express)f(in)h Fs(L)35758 40328 y Fn(OLD)38351 40140 y Fv(as)g(in)g Fs(L)42281 40328 y Fn(NEW)44660 40140 y Fv(,)524 b(other)500 b Fs(L)49621 40328 y Fn(NEW)-1600 41796 y Fv(tra)-34 b(v)g(ersal)411 b(sp)34 b(eci\014cations)412 b(are)f(imp)34 b(ossible)411 b(to)h(express)f(in)g Fs(L)26688 41984 y Fn(OLD)29193 41796 y Fv(and)h(some)f(tra)-34 b(v)g(ersal)412 b(sp)34 b(eci\014cations)411 b(expressed)-1600 43452 y(in)404 b Fs(L)650 43640 y Fn(NEW)3433 43452 y Fv(can)h(b)34 b(e)404 b(expressed)f(in)h Fs(L)14993 43640 y Fn(OLD)17491 43452 y Fv(but)h(are)e(exp)34 b(onen)-34 b(tially)404 b(longer.)282 45668 y(W)-101 b(e)403 b(discuss)i(the)g(follo)-34 b(wing)404 b(three)g(p)34 b(oin)-34 b(ts)406 b(in)e(detail:)-118 48816 y(1.)605 b(An)-34 b(y)491 b(tra)-34 b(v)g(ersal)490 b(sp)34 b(eci\014cation)490 b(in)h Fs(L)18490 49004 y Fn(OLD)21073 48816 y Fv(is)f(a)g(directed)g(series-parallel)f(graph)i ([Epp92])f(and)h(can)g(b)34 b(e)490 b(ex-)1430 50472 y(pressed)449 b(as)g(a)f(strategy)h(in)g Fs(L)15351 50660 y Fn(NEW)17730 50472 y Fv(.)672 b(In)448 b(other)h(w)-34 b(ords,)461 b(w)-34 b(e)449 b(ha)-34 b(v)g(e)449 b(up)-34 b(w)g(ard)450 b(compatibilit)-34 b(y)-101 b(.)672 b(Example:)627 b(The)1430 52128 y Fs(L)2266 52316 y Fn(OLD)4764 52128 y Fv(st)-34 b(yle)404 b(tra)-34 b(v)g(ersal)403 b(sp)34 b(eci\014cation)1430 55201 y([)p Fr(Company)p Fv(,)p Fr(Domestic)p Fv(])p Fs(\001)p Fv(\([)p Fr(Domestic)p Fv(,)p Fr(ServiceIncome)p Fv(])p Fs(\001)p Fv([)p Fr(ServiceIncome)p Fv(,)p Fr(Money)p Fv(])12700 56857 y(+[)p Fr(Domestic)p Fv(,)p Fr(Go)g(o)g(dsIncome)p Fv(])p Fs(\001)p Fv([)p Fr(Go)g(o)g(dsIncome)p Fv(,)p Fr(Money)p Fv(]\))1430 59929 y(is)370 b(expressed)f(as)g(the)h(strategy)g(sho)-34 b(wn)371 b(in)e(Figure)g(6.)527 b(The)370 b(translation)h(maps)f(eac) -34 b(h)369 b(\\from-to")i(part)f(of)f(the)1430 61586 y(form)405 b([)p Fu(X)95 b Fv(,)p Fu(Y)268 b Fv(])404 b(to)h(an)f(edge)g(in)g(the)h(strategy)-101 b(.)-118 64212 y(2.)605 b(Some)323 b(of)h(the)f(tra)-34 b(v)g(ersal)323 b(sp)34 b(eci\014cations)323 b(in)g Fs(L)22244 64400 y Fn(OLD)24660 64212 y Fv(can)g(b)34 b(e)322 b(expressed)h(m)-34 b(uc)g(h)324 b(more)e(succinctly)h(as)g(a)g(strategy)1430 65868 y(in)404 b Fs(L)3680 66056 y Fn(NEW)6060 65868 y Fv(.)538 b(Consider)405 b(the)f(follo)-34 b(wing)405 b Fs(L)20037 66056 y Fn(OLD)22534 65868 y Fv(tra)-34 b(v)g(ersal)404 b(sp)34 b(eci\014cation)1430 68941 y([)p Fr(Company)p Fv(,)p Fr(Domestic)p Fv(])p Fs(\001)p Fv(\([)p Fr(Domestic)p Fv(,)p Fr(ServiceIncome)p Fv(])p Fs(\001)p Fv([)p Fr(ServiceIncome)p Fv(,)p Fr(Money)p Fv(])12700 70597 y(+[)p Fr(Domestic)p Fv(,)p Fr(Go)g(o)g(dsIncome)p Fv(])p Fs(\001)p Fv([)p Fr(Go)g(o)g(dsIncome)p Fv(,)p Fr(Money)p Fv(]\))1430 72253 y(+[)p Fr(Company)p Fv(,)p Fr(F)-34 b(o)g(reign)p Fv(])p Fs(\001)p Fv([)p Fr(F)g(o)g(reign)p Fv(,)p Fr(Go)34 b(o)g(dsIncome)p Fv(])p Fs(\001)p Fv([)p Fr(Go)g(o)g(dsIncome)p Fv(,)p Fr(Money)p Fv(])24594 75628 y(31)p eop %%Page: 32 33 32 32 bop 11644 1107 a 16050750 7038649 394690 44731596 16445440 51770245 startTexFig 11644 1107 a%%BeginDocument: companystrat1.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Helvetica Courier %%Pages: 1 %%BoundingBox: 6 680 250 787 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica reencodeISO def /Courier reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.956893 0 0 0.956893 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 43.451 446.207 ] concat %I 28 718 8 8 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 8 795 ] concat %I [ (Company) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 80 795 ] concat %I [ (Domestic) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 136 819 ] concat %I [ (ServiceIncome) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 136 723 ] concat %I [ (GoodsIncome) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 216 795 ] concat %I [ (Money) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 16 759 ] concat %I [ (source) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 232 759 ] concat %I [ (target) ] Text End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 211.273 445.598 ] concat %I 28 718 8 8 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 155.318 421.617 ] concat %I 28 718 8 8 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 155.318 469.579 ] concat %I 28 718 8 8 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 99.3622 445.598 ] concat %I 28 718 8 8 Elli End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.99762 341.229 ] concat %I 125 854 221 854 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.99762 341.229 ] concat %I 240 851 333 804 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.99762 341.229 ] concat %I 239 853 333 901 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.99762 341.229 ] concat %I 351 901 446 854 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.99762 341.229 ] concat %I 349 805 447 851 Line %I 2 End End %I eop showpage %%Trailer end %%EndDocument endTexFig 13384 15759 a Fv(Figure)404 b(6:)539 b Ft(A)433 b(series-p)-62 b(ar)g(al)62 b(lel)429 b(tr)-62 b(aversal)432 b(str)-62 b(ate)g(gy.)11644 17323 y 16050750 7104430 394690 44665815 16445440 51770245 startTexFig 11644 17323 a%%BeginDocument: companystrat2.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Helvetica Courier %%Pages: 1 %%BoundingBox: 6 679 250 787 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica reencodeISO def /Courier reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.956893 0 0 0.956893 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 43.451 446.207 ] concat %I 28 718 8 8 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 8 795 ] concat %I [ (Company) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 77.0024 818.981 ] concat %I [ (Domestic) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 136 819 ] concat %I [ (ServiceIncome) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 136 723 ] concat %I [ (GoodsIncome) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 216 795 ] concat %I [ (Money) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 16 759 ] concat %I [ (source) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 232 759 ] concat %I [ (target) ] Text End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 211.273 445.598 ] concat %I 28 718 8 8 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 155.318 421.617 ] concat %I 28 718 8 8 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 155.318 469.579 ] concat %I 28 718 8 8 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 99.3622 469.579 ] concat %I 28 718 8 8 Elli End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.99762 341.229 ] concat %I 351 901 446 854 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.99762 341.229 ] concat %I 349 805 447 851 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* Helvetica 12 SetF %I t [ 1 0 0 1 79.9366 722.435 ] concat %I [ (Foreign) ] Text End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.448179 0 0 0.448179 99.8618 421.617 ] concat %I 28 718 8 8 Elli End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 124 854 219 898 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 125 853 220 805 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 238 901 332 901 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 235 896 335 809 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 237 805 331 805 Line %I 2 End End %I eop showpage %%Trailer end %%EndDocument endTexFig 12176 32086 a Fv(Figure)404 b(7:)539 b Ft(A)433 b(non-series-p)-62 b(ar)g(al)62 b(lel)430 b(tr)-62 b(aversal)431 b(str)-62 b(ate)g(gy.)1430 35753 y Fv(whic)-34 b(h)534 b(duplicates)f([)p Fr(Go)34 b(o)g(dsIncome)p Fv(,)p Fr(Money)p Fv(].)920 b(The)533 b(tra)-34 b(v)g(ersal)532 b(sp)34 b(eci\014cation)533 b(will)f(tra)-34 b(v)g(erse)532 b(to)h(all)e Fr(Money)1430 37409 y Fv(ob)67 b(jects.)522 b(The)351 b(domestic)f(and)h(the)g (foreign)g(parts)g(of)f(the)h(compan)-34 b(y)351 b(are)f(treated)h (di\013eren)-34 b(tly:)511 b(for)351 b(domestic)1430 39065 y(parts)452 b(w)-34 b(e)451 b(tra)-34 b(v)g(erse)451 b(b)34 b(oth)451 b(in)-34 b(to)452 b Fr(ServiceIncome)d Fv(and)j Fr(Go)34 b(o)g(dsIncome)449 b Fv(while)i(for)g(foreign)g (parts)g(w)-34 b(e)451 b(tra)-34 b(v)g(erse)1430 40721 y(only)297 b(in)-34 b(to)298 b Fr(Go)34 b(o)g(dsIncome)p Fv(.)502 b(In)297 b(the)g(corresp)34 b(onding)297 b(tra)-34 b(v)g(ersal)297 b(strategy)g(giv)-34 b(en)297 b(in)g(Figure)g(7,)318 b(this)298 b(duplication)1430 42377 y(is)404 b(not)h(needed.)1430 44531 y(Remem)-34 b(b)34 b(ering)362 b(the)g(motiv)-67 b(ation)363 b(that)g(a)e(tra)-34 b(v)g(ersal)362 b(strategy)g(with)h (source)f Fu(s)g Fv(and)g(target)g Fu(t)g Fv(de\014nes)h(a)f(set)g(of) 1430 46187 y(paths)321 b(from)f Fu(s)g Fv(to)g Fu(t)p Fv(,)336 b(w)-34 b(e)320 b(can)g(alw)-34 b(a)g(ys)320 b(replace)f(a)h(strategy)f(that)i(is)f(a)f(dag)i(b)-34 b(y)320 b(a)f(set)h(of)g(paths)h(that)g(are)e(merged)1430 47843 y(together.)522 b(Because)351 b(the)i(n)-34 b(um)g(b)34 b(er)353 b(of)f(paths)h(from)g Fu(s)f Fv(to)g Fu(t)g Fv(ma)-34 b(y)352 b(b)34 b(e)352 b(exp)34 b(onen)-34 b(tial)352 b(in)g(the)h(size)e(of)h(the)h(dag)f(and)1430 49499 y(there)365 b(ma)-34 b(y)364 b(b)34 b(e)364 b(no)h(shorter)f(p)34 b(ossibilit)-34 b(y)365 b(than)g(en)-34 b(umerating)365 b(all)f(of)h(them,)372 b(the)365 b(old)g(represen)-34 b(tation)365 b(ma)-34 b(y)364 b(b)34 b(e)1430 51155 y(exp)g(onen)-34 b(tially)477 b(longer.)756 b(Consider)477 b(the)g(follo)-34 b(wing)478 b(strategy)f(with)g Fu(n)g Fv(no)34 b(des)477 b Fu(A)38981 51337 y Fn(1)39507 51155 y Fu(;)202 b(A)40955 51337 y Fn(2)41480 51155 y Fu(;)g(:)g(:)g(:)f(;)h(A)45083 51337 y Fp(n)45709 51155 y Fv(.)757 b(There)476 b(are)1430 52811 y(edges)437 b Fu(A)5611 52993 y Fp(i)6378 52811 y Fs(!)392 b Fu(A)8891 52993 y Fp(i)p Fn(+1)10906 52811 y Fv(for)437 b Fu(i)391 b Fv(=)g(1)p Fu(;)202 b(:)g(:)g(:)f(;)h(n)290 b Fs(\000)h Fv(1)437 b(and)h(edges)f Fu(A)28103 52993 y Fp(i)28870 52811 y Fs(!)391 b Fu(A)31382 52993 y Fp(i)p Fn(+2)33397 52811 y Fv(for)437 b Fu(i)391 b Fv(=)g(1)p Fu(;)202 b(:)g(:)g(:)f(n)291 b Fs(\000)g Fv(2.)637 b(Figure)437 b(8)g(sho)-34 b(ws)1430 54467 y(this)415 b(strategy)f(with)i Fu(n)353 b Fv(=)g(7.)569 b(The)414 b(resulting)h(graph)g(is)f(not)h (series-parallel)d(and)j(the)g(only)f(w)-34 b(a)g(y)415 b(to)f(express)1430 56124 y(the)338 b(set)f(of)g(paths)h(from)g(source) e Fu(A)17182 56306 y Fn(1)18045 56124 y Fv(to)h(target)h Fu(A)23874 56306 y Fp(n)24837 56124 y Fv(using)f(only)g(join)g(and)h (merge)e(is)h(to)g(en)-34 b(umerate)338 b(a)f(n)-34 b(um)g(b)34 b(er)1430 57780 y(of)371 b(paths)g(that)g(gro)-34 b(ws)370 b(exp)34 b(onen)-34 b(tially)370 b(in)g Fu(n)p Fv(.)526 b(W)-101 b(e)370 b(can)g(use)g(a)g(series-parallel)e(construction)i (for)g(some)g(of)h(the)1430 59436 y(paths)360 b(but)f(o)-34 b(v)g(erall)357 b(w)-34 b(e)358 b(will)f(ha)-34 b(v)g(e)359 b(an)f(exp)34 b(onen)-34 b(tial)358 b(n)-34 b(um)g(b)34 b(er)359 b(of)g(paths)g(and)f(therefore)g(a)g(tra)-34 b(v)g(ersal)358 b(strategy)8700 61885 y 19537183 4144251 920944 47231303 20458127 51375554 startTexFig 8700 61885 a%%BeginDocument: expstrat.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Courier %%Pages: 1 %%BoundingBox: 14 718 311 781 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 51 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Courier reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.956893 0 0 0.956893 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.264706 0 0 0.264706 36.8443 719.055 ] concat %I 42 243 16 16 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 16 767 ] concat %I [ (source) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 296 767 ] concat %I [ (target) ] Text End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.264706 0 0 0.264706 196.717 719.055 ] concat %I 42 243 16 16 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.264706 0 0 0.264706 156.749 719.055 ] concat %I 42 243 16 16 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.264706 0 0 0.264706 116.781 719.055 ] concat %I 42 243 16 16 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.264706 0 0 0.264706 76.8126 719.055 ] concat %I 42 243 16 16 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.264706 0 0 0.264706 236.686 719.055 ] concat %I 42 243 16 16 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.264706 0 0 0.264706 276.654 719.055 ] concat %I 42 243 16 16 Elli End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 4 100 894 181 950 261 894 262 893 4 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 3 263 895 341 950 423 894 3 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 3 422 894 501 950 580 893 3 BSpl %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 112 886 170 886 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 191 886 250 886 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 271 886 330 886 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 350 886 410 886 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 432 886 490 886 Line %I 2 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 510 886 571 886 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 3 181 876 261 822 341 875 3 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.499604 -0 -0 0.499604 -2.49802 341.229 ] concat %I 3 341 875 421 822 500 875 3 BSpl %I 2 End End %I eop showpage %%Trailer end %%EndDocument endTexFig 3063 71648 a Fv(Figure)404 b(8:)539 b Ft(A)434 b(non-series-p)-62 b(ar)g(al)62 b(lel)429 b(str)-62 b(ate)g(gy)431 b(with)i Fu(n)g Ft(no)-62 b(des)433 b(and)g Fu(O)34 b Fv(\(2)35747 71208 y Fp(n)36373 71648 y Fv(\))434 b Ft(p)-62 b(aths)431 b(\()p Fu(n)336 b Fv(=)h(7)433 b Ft(her)-62 b(e\).)24594 75628 y Fv(32)p eop %%Page: 33 34 33 33 bop 2978 1107 a 26312704 3223306 3946905 34140733 30259609 37364039 startTexFig 2978 1107 a%%BeginDocument: citycd.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Helvetica Courier %%Pages: 1 %%BoundingBox: 60 519 460 568 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica reencodeISO def /Courier reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.956893 0 0 0.956893 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-* Helvetica 14 SetF %I t [ 1 0 0 1 80 573 ] concat %I [ (Flight) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 -52 140 ] concat %I 116 412 180 444 Rect End Begin %I Pict %I b 65535 1 0 0 [] 0 SetB %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 64 0 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-* Helvetica 14 SetF %I t [ 1 0 0 1 184 573 ] concat %I [ (City) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 -52 140 ] concat %I 220 412 276 444 Rect End End %I eop Begin %I Pict %I b 65535 1 0 0 [] 0 SetB %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 128 0 ] concat Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-* Helvetica 14 SetF %I t [ 1 0 0 1 280 573 ] concat %I [ (BusRoute) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 -52 140 ] concat %I 316 412 404 444 Rect End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 160 591 ] concat %I [ (flights) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 160 551 ] concat %I [ (cities) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 320 591 ] concat %I [ (routes) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 320 551 ] concat %I [ (cities) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 -52 140 ] concat %I 284 436 180 436 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 -52 140 ] concat %I 180 420 284 420 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 -52 140 ] concat %I 340 436 444 436 Line %I 1 End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 -0 -0 1 -52 140 ] concat %I 444 420 340 420 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 225.5 556 ] concat %I [ (*) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 129.5 584 ] concat %I [ (*) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 290 556.5 ] concat %I [ (*) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 386.5 583.5 ] concat %I [ (*) ] Text End End %I eop showpage %%Trailer end %%EndDocument endTexFig 11604 9314 a Fv(Figure)404 b(9:)539 b Ft(Class)432 b(gr)-62 b(aph)432 b(for)h(a)h(tr)-62 b(ansp)g(ortation)431 b(network.)11367 10873 y 16379658 4210033 2697052 34140733 19076710 38350766 startTexFig 11367 10873 a%%BeginDocument: cyclicstrat.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Courier Helvetica %%Pages: 1 %%BoundingBox: 41 519 290 583 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Courier reencodeISO def /Helvetica reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.956893 0 0 0.956893 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 44.4901 569.498 ] concat %I [ (source) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 259.26 568.499 ] concat %I [ (target) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 136 607 ] concat %I [ (bypassing City) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-courier-medium-r-normal-*-8-*-*-*-*-*-*-* Courier 8 SetF %I t [ 1 0 0 1 136 551 ] concat %I [ (bypassing City) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -52 140 ] concat %I 3 132 436 220 460 308 436 3 BSpl %I 1 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -52 140 ] concat %I 3 308 436 220 412 132 436 3 BSpl %I 1 End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.49881 -0 -0 1.49881 -25.7296 -74.4409 ] concat %I 69 434 2 2 Elli End Begin %I Elli %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.66535 -0 -0 1.66535 143.136 -146.717 ] concat %I 69 434 2 2 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-* Helvetica 14 SetF %I t [ 1 0 0 1 61.0032 598 ] concat %I [ (City) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-* Helvetica 14 SetF %I t [ 1 0 0 1 244.012 598.751 ] concat %I [ (BusRoute) ] Text End End %I eop showpage %%Trailer end %%EndDocument endTexFig 17697 20747 a Fv(Figure)404 b(10:)538 b Ft(A)434 b(cyclic)d(str)-62 b(ate)g(gy.)1430 24403 y Fv(that)406 b(gro)-34 b(ws)404 b(exp)34 b(onen)-34 b(tially)404 b(in)g Fu(n)p Fv(.)-118 27049 y(3.)605 b(There)415 b(are)f(cyclic)f(strategies)i(\(expressed)g (in)f Fs(L)23919 27237 y Fn(NEW)26299 27049 y Fv(\))h(whic)-34 b(h)415 b(cannot)h(b)34 b(e)414 b(sim)-34 b(ulated)416 b(b)-34 b(y)415 b Fs(L)44343 27237 y Fn(OLD)46436 27049 y Fv(.)570 b(Consider)1430 28705 y(the)330 b(follo)-34 b(wing)330 b(tra)-34 b(v)g(ersal)329 b(that)h(cannot)h(b)34 b(e)329 b(sim)-34 b(ulated)330 b(b)-34 b(y)329 b(a)g(tra)-34 b(v)g(ersal)330 b(sp)34 b(eci\014cation)329 b(in)g Fs(L)43260 28893 y Fn(OLD)45353 28705 y Fv(.)514 b(F)-101 b(or)329 b(a)g(giv)-34 b(en)1430 30361 y(cit)g(y)-101 b(,)471 b(w)-34 b(e)458 b(w)-34 b(an)g(t)460 b(to)e(\014nd)h(all)e(other)h (cities)g(reac)-34 b(hable)457 b(through)i(zero)e(or)h(more)f(bus)i (routes.)700 b(Consider)458 b(this)1430 32017 y(sp)34 b(eci\014cation)430 b(in)f(the)h(con)-34 b(text)430 b(of)f(the)h(class) f(graph)h(in)f(Figure)h(9.)614 b(Using)429 b(this)h(class)f(graph,)436 b(w)-34 b(e)430 b(can)f(start)1430 33673 y(at)405 b(a)f(cit)-34 b(y)404 b(and)h(follo)-34 b(w)404 b(paths)i(of)e(the)h(form)17389 36530 y Fs(h)q Fr(Cit)-34 b(y)420 b Fv(\()p Fr(routes)404 b(BusRoute)g(cities)e(Cit)-34 b(y)17 b Fv(\))35044 36029 y Fo(\003)35570 36530 y Fs(i)1430 39386 y Fv(to)379 b(\014nd)g(all)e (cities)g(connected)i(to)f(it)g(b)-34 b(y)378 b(bus)h(routes)f(only) -101 b(.)530 b(W)-101 b(e)377 b(are)g(not)i(in)-34 b(terested)379 b(in)f(the)g(cities)f(reac)-34 b(hable)1430 41042 y(through)491 b(\015igh)-34 b(ts.)795 b(W)-101 b(e)489 b(can)g(use)h(the)f(cyclic)f (strategy)h(sho)-34 b(wn)491 b(in)e(Figure)g(10,)511 b(whic)-34 b(h)490 b(selects)f(the)g(desired)1430 42698 y Fr(Cit)-34 b(y)437 b Fv(ob)67 b(jects.)636 b(But)437 b(this)g(cyclic)e(strategy)i(cannot)g(b)34 b(e)436 b(expressed)g(b)-34 b(y)437 b(a)g(series-parallel)d(graph.)637 b(W)-101 b(e)436 b(could)1430 44354 y(try:)1430 47487 y Fq(from)638 b(City)g(bypassing)h (City)f(via)g(BusRoute)h(bypassing)g(City)f(to)f(City)1430 50621 y Fv(but)406 b(this)e(allo)-34 b(ws)405 b(only)f(cities)f(reac) -34 b(hable)404 b(through)h(an)g(immediate)f(bus)h(route.)282 53819 y(T)-101 b(o)308 b(summarize:)490 b(the)308 b(new)g(language)g (is)f(exp)34 b(onen)-34 b(tially)308 b(more)f(expressiv)-34 b(e)307 b(in)g(some)h(cases)f(and)i(com)-34 b(bined)308 b(with)-1600 55475 y(the)499 b(exp)34 b(onen)-34 b(tial)498 b(algorithmic)g(impro)-34 b(v)g(emen)g(t)499 b(presen)-34 b(ted)499 b(in)f(this)h(pap)34 b(er)498 b(the)g(new)h(approac)-34 b(h)499 b(is)f(considerably)-1600 57131 y(more)404 b(e\016cien)-34 b(t)404 b(than)h(the)g(old)f(approac)-34 b(h.)-1600 61706 y Fx(10)1793 b(Applications)599 b(of)e(tra)-50 b(v)g(ersal)600 b(strategies)-1600 65123 y Fv(This)571 b(pap)34 b(er)569 b(fo)34 b(cuses)570 b(on)h(succinctly)e(de\014nining)i(b)34 b(eha)-34 b(vior)570 b(for)g(tra)-34 b(v)g(ersing)570 b(through)h(ob)67 b(ject)571 b(graphs)g(and)g(on)-1600 66779 y(e\016cien)-34 b(t)449 b(implemen)-34 b(tations)450 b(of)f(the)g(tra)-34 b(v)g(ersals.)673 b(Ho)-34 b(w)g(ev)g(er,)460 b(our)449 b(tra)-34 b(v)g(ersal)449 b(theory)f(\(the)i(expressiv)-34 b(e)448 b(mo)34 b(del)448 b(and)-1600 68435 y(the)405 b(e\016cien)-34 b(t)404 b(algorithms\))g(is)g(applicable)g(in)g(a)g(m) -34 b(uc)g(h)406 b(wider)e(con)-34 b(text)405 b(whic)-34 b(h)405 b(w)-34 b(e)404 b(outline)h(in)f(this)g(section.)282 70651 y(The)433 b(tra)-34 b(v)g(ersal)432 b(theory)h(relies)e(on)i (three)g(la)-34 b(y)g(ers)432 b(of)h(graphs:)596 b(top,)440 b(middle)433 b(and)g(b)34 b(ottom.)625 b(The)433 b(b)34 b(ottom)433 b(la)-34 b(y)g(er)-1600 72307 y(consists)389 b(of)f(trees)g(that)i(w)-34 b(e)388 b(w)-34 b(an)g(t)390 b(to)f(tra)-34 b(v)g(erse)388 b(to)g(select)g(subtrees.)534 b(Eac)-34 b(h)388 b(b)34 b(ottom)389 b(la)-34 b(y)g(er)388 b(tree)g(has)h(a)f(graph)h(from)24594 75628 y(33)p eop %%Page: 34 35 34 34 bop -1600 2325 a Fv(the)413 b(middle)f(la)-34 b(y)g(er)412 b(asso)34 b(ciated)412 b(with)i(it)e(that)h(con)-34 b(tains)414 b(meta-information)f(ab)34 b(out)414 b(the)e(b)34 b(ottom)414 b(la)-34 b(y)g(er)412 b(tree.)562 b(The)-1600 3981 y(meta-information) 289 b(expresses)f(that)h(certain)e(edges)h(m)-34 b(ust)290 b(or)d(ma)-34 b(y)288 b(exist.)500 b(Eac)-34 b(h)288 b(middle)g(la)-34 b(y)g(er)288 b(graph)g(is)g(asso)34 b(ciated)-1600 5637 y(with)366 b(at)g(least)f(one)g(top)i(la)-34 b(y)g(er)364 b(graph.)527 b(The)365 b(top)h(la)-34 b(y)g(er)365 b(graph)h(is)f(basically)g(a)g(subgraph)i(of)e(the)h(transitiv)-34 b(e)366 b(closure)-1600 7293 y(of)405 b(the)f(middle)g(la)-34 b(y)g(er)404 b(graph,)g(decorated)h(with)g(additional)g(information)g (attac)-34 b(hed)405 b(to)g(the)f(edges.)539 b(The)404 b(purp)34 b(ose)-1600 8949 y(of)516 b(the)h(top)f(la)-34 b(y)g(er)516 b(graph)g(is)g(to)g(de\014ne)g(subtrees)h(of)f(the)g(b)34 b(ottom)517 b(la)-34 b(y)g(er)516 b(graphs.)874 b(In)516 b(other)g(w)-34 b(ords,)545 b(when)517 b(the)-1600 10605 y(b)34 b(ottom)494 b(la)-34 b(y)g(er)492 b(graph)h(is)f(tra)-34 b(v)g(ersed,)515 b(the)493 b(top)g(la)-34 b(y)g(er)492 b(graph)h(tells)g(us)g(at)f(eac)-34 b(h)493 b(no)34 b(de)493 b(whic)-34 b(h)493 b(outgoing)h(edges)f(to)-1600 12261 y(tra)-34 b(v)g(erse.)693 b(The)456 b(purp)34 b(ose)456 b(of)f(the)h(middle)g(la)-34 b(y)g(er)455 b(graph)h(is)f(to)h(act)g(as) g(an)g(abstraction)g(barrier)f(b)34 b(et)-34 b(w)g(een)456 b(the)g(top)-1600 13917 y(and)f(b)34 b(ottom)454 b(la)-34 b(y)g(ers.)687 b(A)-34 b(t)455 b(the)f(middle)g(la)-34 b(y)g(er)453 b(w)-34 b(e)454 b(program)g(the)g(sp)34 b(eci\014cation)454 b(giv)-34 b(en)454 b(b)-34 b(y)454 b(the)g(top)h(la)-34 b(y)g(er)453 b(and)i(w)-34 b(e)-1600 15573 y(use)404 b(the)h(middle)f(la)-34 b(y)g(er)404 b(to)g(reduce)g(the)g(searc)-34 b(h)404 b(space.)282 17789 y(The)454 b(top)g(la)-34 b(y)g(er)453 b(graphs)h(are)f(an)h (abstraction)g(A)f(of)h(the)g(asso)34 b(ciated)453 b(middle)h(la)-34 b(y)g(er)453 b(graphs)h(and)g(the)g(middle)-1600 19445 y(la)-34 b(y)g(er)523 b(graphs)h(are)g(an)g(abstraction)g(B)f(of)h(the) g(asso)34 b(ciated)524 b(b)34 b(ottom)524 b(la)-34 b(y)g(er)523 b(graphs.)898 b(The)524 b(abstractions)h(A)e(and)-1600 21101 y(B,)507 b(ho)-34 b(w)g(ev)g(er,)534 b(are)508 b(di\013eren)-34 b(t.)850 b(Abstraction)509 b(A)f(in)-34 b(v)g(olv)g(es)508 b(the)g(transitiv)-34 b(e)509 b(closure)e(and)i (abstraction)g(B)e(in)-34 b(v)g(olv)g(es)-1600 22757 y(compatibilit)g(y)404 b(rules)g(where)g(relations)g(at)h(the)f(middle) g(la)-34 b(y)g(er)404 b(imply)g(relations)g(at)g(the)h(b)34 b(ottom)405 b(la)-34 b(y)g(er.)282 24973 y(The)392 b(tra)-34 b(v)g(ersal)392 b(theory)h(is)e(also)h(useful)h(if)f(w)-34 b(e)393 b(only)f(use)g(the)h(top)g(and)g(the)f(middle)g(la)-34 b(y)g(er.)534 b(In)393 b(this)f(case)g(w)-34 b(e)392 b(are)-1600 26629 y(in)-34 b(terested)369 b(in)f(de\014ning)h (succinctly)f(a)g(set)h(of)f(paths)i(in)e(the)g(graph)h(in)g(the)f (middle)g(la)-34 b(y)g(er.)526 b(Sometimes)369 b(w)-34 b(e)368 b(are)g(not)-1600 28285 y(in)-34 b(terested)423 b(in)f(the)g(details)g(of)h(the)f(path)i(set,)i(just)d(the)g(subgraph)h (or)d(set)i(of)f(no)34 b(des)423 b(that)g(all)e(those)i(paths)g(in)g (the)-1600 29941 y(set)404 b(co)-34 b(v)g(er.)282 32157 y(This)450 b(general)e(description)h(\014ts)h(man)-34 b(y)450 b(practical)f(situations)h(of)g(whic)-34 b(h)450 b(w)-34 b(e)449 b(men)-34 b(tion)450 b(a)f(few,)461 b(all)448 b(of)i(them)g(of)-1600 33813 y(in)-34 b(terest)405 b(to)f(asp)34 b(ect-orien)-34 b(ted)405 b(programming.)218 36997 y Fs(\017)606 b Fv(The)371 b(standard)g(application:)522 b(T)-101 b(op:)522 b(strategy)370 b(graph,)377 b(Middle:)522 b(class)369 b(graph,)377 b(Bottom:)522 b(ob)67 b(ject)371 b(trees.)526 b(The)1430 38653 y(strategy)448 b(graph)h(serv)-34 b(es)447 b(as)h(a)g(sp)34 b(eci\014cation)448 b(of)g(a)g(set)g(of)h(in) -34 b(tro)34 b(ductions)449 b(of)f(new)h(tra)-34 b(v)g(ersal)447 b(metho)34 b(ds)449 b(in)-34 b(to)1430 40309 y(the)468 b(class)f(graph.)729 b(This)467 b(standard)i(application)f(is)f(used)h (extensiv)-34 b(ely)466 b(in)h(DemeterJ)g(and)h(D)-34 b(AJ.)467 b(DJ)g(also)1430 41965 y(falls)505 b(in)-34 b(to)505 b(this)g(standard)h(application,)529 b(ho)-34 b(w)g(ev)g(er,)530 b(the)505 b(tra)-34 b(v)g(ersal)504 b(b)34 b(eha)-34 b(vior)505 b(is)f(created)g(at)h(run-time)g(b)-34 b(y)1430 43621 y(sp)34 b(ecializing)403 b(a)h(generic)f(tra)-34 b(v)g(ersal)404 b(algorithm.)1430 45715 y(If)309 b(w)-34 b(e)309 b(fo)34 b(cus)309 b(on)g(the)h(top)f(and)h(middle)e(la)-34 b(y)g(er)309 b(only)-101 b(,)327 b(w)-34 b(e)309 b(need)g(only)g(our)g (T)-101 b(ra)-34 b(v)g(ersal)308 b(Graph)i(Algorithm)f(\(TGA\))1430 47371 y(describ)34 b(ed)360 b(in)f(Section)h(5.1.)524 b(One)360 b(application)g(of)g(TGA)g(is)g(to)g(use)g(it)g(to)g (succinctly)f(sp)34 b(ecify)359 b(a)h(set)g(of)g(t)-34 b(yp)34 b(es.)1430 49027 y(In)365 b(Asp)34 b(ectJ,)364 b(t)-34 b(yp)34 b(e)364 b(patterns)i(could)f(b)34 b(ene\014t)365 b(from)f(using)h(strategies)g(to)f(sp)34 b(ecify)364 b(a)h(set)f(of)h(t)-34 b(yp)34 b(es)365 b(succinctly)-101 b(.)1430 51121 y(A)425 b(second)f(application)h(of)g(TGA)f(is)g(the)h (adapter)g(generation)f(approac)-34 b(h)426 b(b)-34 b(y)424 b(Bart)g(Wydaeghe)g(and)h(Wim)1430 52777 y(V)-101 b(anderp)34 b(erren)468 b([Wyd02)o(,)g(WV01,)f(V)-101 b(an01)q(].)728 b(The)469 b(comp)34 b(onen)-34 b(ts)468 b(that)h(need)f(to)g(b)34 b(e)468 b(connected)g(migh)-34 b(t)468 b(not)1430 54433 y(matc)-34 b(h)420 b(and)g(therefore)f(an)g(adapter)h(has)g(to)f(b)34 b(e)419 b(generated.)583 b(The)420 b(idea)f(is)f(that)i(a)f(tra)-34 b(v)g(ersal)419 b(graph)h(that)g(is)1430 56089 y(constructed)415 b(b)-34 b(y)415 b(TGA)g(succinctly)e(describ)34 b(es)414 b(all)f(p)34 b(ossible)414 b(adapters)h(from)f(whic)-34 b(h)415 b(the)g(programmer)f(can)1430 57745 y(c)-34 b(ho)34 b(ose)506 b(the)g(most)g(suitable)g(one.)843 b(The)506 b(top)h(la)-34 b(y)g(er)505 b(graph)h(represen)-34 b(ts)506 b(the)g(in)-34 b(teractions)506 b(of)g(a)f(high-lev)-34 b(el)1430 59401 y(comp)34 b(onen)-34 b(t)364 b(and)f(the)f(middle)h(la) -34 b(y)g(er)361 b(graph)i(represen)-34 b(ts)363 b(the)f(in)-34 b(teractions)363 b(of)g(a)f(lo)-34 b(w-lev)g(el)361 b(comp)34 b(onen)-34 b(t)364 b(that)1430 61057 y(o\013ers)475 b(more)g(detail)g (than)i(the)e(other)h(comp)34 b(onen)-34 b(t)476 b(asks)f(for.)752 b(The)476 b(P)-34 b(acoSuite)476 b(is)f(a)g(to)34 b(ol)475 b(in)g(whic)-34 b(h)476 b(those)1430 62713 y(ideas)447 b(ha)-34 b(v)g(e)447 b(b)34 b(een)446 b(successfully)g(implemen)-34 b(ted)447 b(and)h(tested)f(in)f(an)h(industrial)g(con)-34 b(text.)666 b(The)447 b(application)1430 64369 y(uses)405 b(the)f(full)g(p)34 b(o)-34 b(w)g(er)405 b(of)g(tra)-34 b(v)g(ersal)404 b(strategies,)f(including)i(b)-34 b(ypassing)405 b(clauses)f(and)h(the)g(name)f(maps.)218 66901 y Fs(\017)606 b Fv(The)356 b(call)d(graph)j(application:)514 b(T)-101 b(op:)515 b(computational)356 b(pattern,)365 b(Middle:)514 b(static)355 b(call)f(graph,)365 b(Bottom:)514 b(call)1430 68557 y(tree.)1430 70651 y(Static)583 b(call)e(graph:)896 b(It)582 b(is)g(deriv)-34 b(ed)582 b(from)g(the)h(program)f(source)g (as)g(follo)-34 b(ws.)1074 b(The)582 b(no)34 b(des)583 b(corresp)34 b(ond)1430 72307 y(to)506 b(metho)34 b(ds)505 b(and)h(the)f(edges)g(to)g(metho)34 b(d)506 b(in)-34 b(v)g(o)34 b(cation)505 b(expressions)g(\(e.g.)g Fr(a.fo)34 b(o\(b,c\))p Fv(\))506 b(con)-34 b(tained)506 b(in)e(the)24594 75628 y(34)p eop %%Page: 35 36 35 35 bop 1430 2325 a Fv(metho)34 b(ds.)723 b(There)465 b(are)f(t)-34 b(w)g(o)467 b(t)-34 b(yp)34 b(es)465 b(of)h(metho)34 b(ds:)661 b(concrete)464 b(and)i(abstract.)723 b(A)465 b(concrete)f(metho)34 b(d)466 b(has)g(an)1430 3981 y(outgoing)523 b(edge)e(for)h(ev)-34 b(ery)520 b(metho)34 b(d)522 b(the)g(metho)34 b(d)522 b(calls)e(or)i(migh)-34 b(t)522 b(call.)889 b(Some)522 b(of)g(the)g(outgoing)g(edges)1430 5637 y(are)470 b(mark)-34 b(ed)470 b(required)f(and)h(others)h(are)e(mark)-34 b(ed)470 b(optional.)736 b(The)471 b(required)e(edges)h(are)f(to)h(calls)f(of)i (other)1430 7293 y(metho)34 b(ds)598 b(that)g(are)e(reac)-34 b(hed)596 b(unconditionally)i(while)e(optional)i(edges)e(corresp)34 b(ond)597 b(to)g(calls)f(that)h(are)1430 8949 y(reac)-34 b(hed)432 b(conditionally)g(\(some)g(conditional)h(statemen)-34 b(t)433 b(migh)-34 b(t)433 b(prev)-34 b(en)g(t)433 b(the)f(execution)g (of)g(the)g(call;)445 b(e.g.)1430 10605 y(an)534 b(if,)564 b(lo)34 b(op)533 b(or)f(switc)-34 b(h)534 b(statemen)-34 b(t\).)927 b(An)533 b(abstract)h(metho)34 b(d)533 b(has)g(sev)-34 b(eral)532 b(outgoing)i(edges)f(mark)-34 b(ed)533 b(as)1430 12261 y(virtual)365 b(edges.)526 b(Eac)-34 b(h)366 b(leads)f(to)h(one)g (of)g(the)g(metho)34 b(d)366 b(calls)e(that)j(migh)-34 b(t)366 b(happ)34 b(en)367 b(as)f(a)f(result)h(of)f(the)h(virtual)1430 13917 y(metho)34 b(d)405 b(call.)538 b(A)404 b(static)g(call)f(graph)i (has)g(the)f(shap)34 b(e)405 b(of)f(a)g(class)g(graph.)1430 16057 y(Dynamic)382 b(call)f(tree:)527 b(It)382 b(is)f(a)h(tree)g (conforming)g(to)h(a)f(static)g(call)f(graph.)532 b(The)382 b(no)34 b(des)382 b(are)g(calls)f(of)h(metho)34 b(ds)1430 17713 y(\(called)346 b(join)h(p)34 b(oin)-34 b(ts\))348 b(and)g(the)f(edges)f(represen)-34 b(t)347 b(immediate)f(metho)34 b(d)347 b(call)f(nesting.)520 b(Conformance)348 b(means)1430 19369 y(that)2548 21993 y(1.)606 b(the)428 b(dynamic)g(call)f(graph)h (can)g(only)f(con)-34 b(tain)429 b(instances)f(of)h(call)d(sites)i(app) 34 b(earing)428 b(in)g(the)g(static)g(call)4097 23649 y(graph;)2548 25720 y(2.)606 b(the)405 b(dynamic)f(call)f(graph)i(can)f (only)g(con)-34 b(tain)405 b(edges)f(prescrib)34 b(ed)403 b(b)-34 b(y)405 b(the)f(static)h(call)e(graph;)2548 27791 y(3.)606 b(if)515 b(in)g(the)h(static)f(call)f(graph)i(a)f(required)f (edge)h(exits)g(a)g(call)f(site)h(then)h(the)f(edge)g(m)-34 b(ust)517 b(b)34 b(e)514 b(in)i(the)4097 29447 y(dynamic)404 b(call)f(graph;)i(and)2548 31517 y(4.)606 b(a)515 b(call)f(of)h(a)g (virtual)f(metho)34 b(d)515 b(is)g(not)h(sho)-34 b(wn)516 b(in)f(the)g(dynamic)g(call)f(graph;)570 b(instead)516 b(it)e(sho)-34 b(ws)516 b(the)4097 33174 y(concrete)404 b(metho)34 b(d)404 b(that)i(actually)d(gets)i(called.)1430 35798 y(A)372 b(dynamic)f(call)f(tree)h(has)h(the)g(shap)34 b(e)371 b(of)h(an)f(ob)67 b(ject)373 b(tree)d(where)i(call)e(no)34 b(des)372 b(corresp)34 b(ond)371 b(to)g(ob)67 b(ject)373 b(no)34 b(des)1430 37454 y(and)405 b(immediately)f(nested)g(calls)g (corresp)34 b(ond)404 b(to)g(immediately)g(nested)g(ob)67 b(jects.)1430 39594 y(As)385 b(an)g(example,)i(consider)d(the)h(set)g (of)g(all)f(metho)34 b(d)385 b(calls)e(that)j(migh)-34 b(t)385 b(happ)34 b(en)386 b(b)34 b(et)-34 b(w)g(een)385 b(a)g(call)e(to)i Fr(f)g Fv(and)g(a)1430 41250 y(call)399 b(to)g Fr(g)p Fv(.)537 b(F)-101 b(or)400 b(eac)-34 b(h)399 b(of)h(those)g(metho)34 b(d)400 b(calls)e(w)-34 b(e)400 b(w)-34 b(ould)400 b(lik)-34 b(e)399 b(to)g(prin)-34 b(t)400 b(some)g(information)g(and)g(w)-34 b(e)400 b(w)-34 b(ould)1430 42906 y(lik)g(e)494 b(to)h(kno)-34 b(w)495 b(ho)-34 b(w)496 b(the)f(join)g(p)34 b(oin)-34 b(ts)496 b(are)e(related.)809 b(In)495 b(other)g(w)-34 b(ords,)518 b(w)-34 b(e)495 b(w)-34 b(an)g(t)496 b(to)f(kno)-34 b(w)495 b(the)g(structure)1430 44562 y(of)467 b(the)g(dynamic)f(call)f(tree)h (b)34 b(et)-34 b(w)g(een)467 b(calls)e(to)i Fr(f)f Fv(and)h(calls)f(to) g Fr(g)p Fv(.)725 b(W)-101 b(e)466 b(w)-34 b(ould)467 b(lik)-34 b(e)465 b(to)i(describ)34 b(e)465 b(this)i(slice)1430 46218 y(of)488 b(the)f(dynamic)g(call)f(tree)g(as)h Fr(from)g(p)34 b(c1)487 b(to)f(p)34 b(c2)p Fv(,)507 b(where)487 b Fr(p)34 b(c1)487 b(=)f(call\(*)h(f\(..\)\))787 b Fv(and)488 b Fr(p)34 b(c2)487 b(=)f(call\(*)h(g\(..\)\))p Fv(.)1430 47874 y(\(The)420 b(p)34 b(oin)-34 b(tcuts)421 b Fr(p)34 b(c1)419 b Fv(and)h Fr(p)34 b(c2)419 b Fv(sp)34 b(ecify)419 b(that)h(b)34 b(oth)420 b Fr(f)g Fv(and)g Fr(g)f Fv(ma)-34 b(y)420 b(return)g(an)-34 b(y)419 b(t)-34 b(yp)34 b(e)420 b(and)g(b)34 b(oth)420 b(ma)-34 b(y)419 b(ha)-34 b(v)g(e)1430 49530 y(argumen)g(ts)406 b(of)e(an)-34 b(y)405 b(t)-34 b(yp)34 b(es.\))1430 51670 y(In)477 b(a)g(second)g(example,)495 b(w)-34 b(e)477 b(w)-34 b(an)g(t)479 b(to)e(kno)-34 b(w)478 b(for)f(a)g(thread)g(and)h(a)f(resource)f(t)-34 b(yp)34 b(e)477 b Fr(R)g Fv(all)f(the)h Fr(read)p Fv(,)496 b Fr(write)p Fv(,)1430 53326 y Fr(lo)34 b(ck)p Fv(,)395 b(and)h Fr(unlo)34 b(ck)393 b Fv(calls)h(that)i(happ)34 b(en)396 b(during)f(the)h(thread.)536 b(F)-101 b(urthermore,)396 b(w)-34 b(e)395 b(w)-34 b(an)g(t)397 b(to)e(c)-34 b(hec)g(k)395 b(that)g(none)1430 54982 y(of)350 b(those)h(primitiv)-34 b(es)349 b(call)g(eac)-34 b(h)350 b(other;)368 b(for)349 b(example,)360 b(w)-34 b(e)350 b(w)-34 b(an)g(t)352 b(to)e(disallo)-34 b(w)350 b(that)h Fr(write)e Fv(calls)g Fr(lo)34 b(ck)348 b Fv(directly)-101 b(.)1430 57122 y(W)g(e)604 b(consider)g(four)h (kinds)f(of)h(no)34 b(des)605 b(in)f(the)h(static)f(call)g(graph)h (corresp)34 b(onding)604 b(to)h(calls)e(of)i(the)f(four)1430 58778 y(primitiv)-34 b(es.)4097 61403 y Fq(pointcut)639 b(read\(\):)g(call\(Object)h(R.read\(..\)\);)4097 63059 y(pointcut)f(write\(\):)g(call\(void)h(R.write\(..\)\);)4097 64715 y(pointcut)f(lock\(\):)g(call\(void)h(R.lock\(..\)\);)4097 66371 y(pointcut)f(unlock\(\):)h(call\(void)f(R.unlock\(..\)\);)4097 68027 y(pointcut)g(primitive\(\):)i(read\(\))d(||)f(write\(\))i(||)e (lock\(\))i(||)e(unlock\(\);)1430 70651 y Fv(The)473 b(p)34 b(oin)-34 b(tcut)474 b Fr(sta)-34 b(rt)472 b Fv(con)-34 b(tains)473 b(a)g(no)34 b(de)472 b(in)g(the)h(static)g(call)e(graph)i (where)f(the)h(computation)h(starts.)744 b(W)-101 b(e)1430 72307 y(consider)404 b(the)h(follo)-34 b(wing)405 b(t)-34 b(w)g(o)405 b(strategies:)24594 75628 y(35)p eop %%Page: 36 37 36 36 bop 4097 2325 a Fq(s1)637 b(=)g(from)h(start\(\))g(to)f (primitive\(\))4097 3981 y(s2)g(=)g(from)h(start\(\))g(bypassing)i (primitive\(\))g(to)d(primitive\(\))1430 6633 y Fv(\(Note)405 b(that)g(b)-34 b(ypassing)406 b(a)e(no)34 b(de)404 b(do)34 b(es)404 b(not)h(b)-34 b(ypass)405 b(that)g(no)34 b(de)405 b(if)f(it)g(is)g(a)g(start)h(or)e(end)i(p)34 b(oin)-34 b(t.\))1430 8787 y(The)424 b(primitiv)-34 b(es)424 b(don't)g(call)f (eac)-34 b(h)423 b(other)h(i\013,)k(for)c(the)g(giv)-34 b(en)423 b(static)h(call)f(graph,)429 b Fr(s1)423 b(=)g(s2)g Fv(\(more)h(precisely)-101 b(,)1430 10443 y(if)547 b(the)h(tra)-34 b(v)g(ersal)547 b(graphs)g(determined)h(b)-34 b(y)547 b(the)h(t)-34 b(w)g(o)548 b(strategies)f(are)g(equal\).)967 b(This)547 b(second)h(example)e(is)1430 12099 y(in)-34 b(teresting)502 b(b)34 b(ecause)501 b(it)g(sho)-34 b(ws)502 b(that)g(strategies)f(are)f(useful)i(to)f(form)-34 b(ulate)502 b(arc)-34 b(hitectural)501 b(prop)34 b(erties)501 b(of)1430 13755 y(call)404 b(graphs)g(at)h(a)f(high)h(lev)-34 b(el)403 b(of)h(abstraction.)282 17300 y(Finally)-101 b(,)403 b(w)-34 b(e)405 b(presen)-34 b(t)405 b(a)f(use)g(of)h(the)f(call)g (graph)g(application)h(in)f(serialization/marshalling)g(whic)-34 b(h)405 b(is)f(a)g(v)-34 b(ery)-1600 18956 y(common)330 b(example)e(of)i(ob)67 b(ject)330 b(tra)-34 b(v)g(ersal.)514 b(A)329 b(serializer)e(is)i(a)g(to)34 b(ol)329 b(transforming)i (partial)e(graphs)h(of)g(ob)67 b(jects)330 b(in)-34 b(to)330 b(a)-1600 20612 y(stream)313 b(of)h(b)-34 b(ytes.)509 b(In)313 b([Lop96],)330 b(simple)313 b(tra)-34 b(v)g(ersal)313 b(directiv)-34 b(es)312 b(\(whic)-34 b(h)315 b(are)d(single)h(edge)g (strategy)h(graphs\))g(are)e(used)-1600 22268 y(to)332 b(sp)34 b(ecify)331 b(whic)-34 b(h)333 b(parts)f(of)g(a)g(comp)34 b(ound)332 b(ob)67 b(ject)333 b(should)g(b)34 b(e)331 b(copied)h(and)g(whic)-34 b(h)333 b(should)f(b)34 b(e)332 b(passed)g(b)-34 b(y)332 b(reference)-1600 23924 y(when)486 b(using)g(remote)f(metho)34 b(d)485 b(in)-34 b(v)g(o)34 b(cations.)783 b(Our)485 b(w)-34 b(ork)485 b(on)h(tra)-34 b(v)g(ersals)485 b(is)g(useful)g(to)h(curren)-34 b(t)485 b(w)-34 b(ork)486 b(in)f(ob)67 b(ject)-1600 25580 y(serialization)343 b([PHN00,)g(Bar97)o(,)g(HH19)q(])g(in)g(the)h(follo)-34 b(wing)345 b(w)-34 b(a)g(y:)509 b(A)343 b(common)h(concern)f(in)h (serialization)f(is)g(ho)-34 b(w)345 b(to)-1600 27236 y(generate)433 b(serialization)e(co)34 b(de)433 b(with)g(minimal)g (impact)g(on)g(the)g(co)34 b(de)432 b(size)g(of)h(the)g(application,) 440 b(or)433 b(alternativ)-34 b(ely)-101 b(,)-1600 28892 y(ho)-34 b(w)350 b(to)g(arrange)f(dynamic)g(tra)-34 b(v)g(ersal)349 b(with)h(minimal)e(run-time)i(impact.)520 b(W)-101 b(e)349 b(address)h(this)f(concern)g(b)-34 b(y)350 b(sho)-34 b(wing)-1600 30548 y(in)321 b(Section)h(6)f(that)h(if)g(the)f(tra)-34 b(v)g(ersal)321 b(metho)34 b(ds)322 b(are)f(not)h(generated)g (carefully)e(from)h(a)h(partial)f(ob)67 b(ject)322 b(sp)34 b(eci\014cation)-1600 32204 y(\(as)382 b(describ)34 b(ed)381 b(in)g(this)h(pap)34 b(er\),)386 b(one)c(migh)-34 b(t)382 b(end)g(up)g(with)h(exp)34 b(onen)-34 b(tial)381 b(co)34 b(de)381 b(size.)531 b(Our)381 b(implemen)-34 b(tation)382 b(of)g(DJ)-1600 33860 y(sho)-34 b(ws)476 b(ho)-34 b(w)476 b(to)g(arrange)e(dynamic)h(tra)-34 b(v)g(ersal)475 b(and)g(the)h (DemeterJ)e(and)h(D)-34 b(AJ)475 b(implemen)-34 b(tations)476 b(sho)-34 b(w)477 b(ho)-34 b(w)476 b(to)-1600 35516 y(generate)440 b(e\016cien)-34 b(t)441 b(co)34 b(de)440 b(e\016cien)-34 b(tly)-101 b(.)647 b(W)-101 b(e)440 b(also)g(sho)-34 b(w)442 b(a)e(general)g(w)-34 b(a)g(y)441 b(to)g(sp)34 b(ecify)440 b(partial)g(ob)67 b(jects.)649 b(This)441 b(pap)34 b(er)-1600 37172 y(solv)-34 b(es)338 b(the)i(problem)e(b)-34 b(y)340 b(using)f(a)g(marshalling)f(language)h(\(our)h(tra)-34 b(v)g(ersal)338 b(strategy)h(language\))h(to)f(sp)34 b(ecify)338 b(partial)-1600 38828 y(ob)67 b(ject)405 b(graphs.)-1600 43406 y Fx(11)1793 b(Exp)50 b(erience)599 b(and)f(empirical)i(evidence)-1600 46823 y Fv(The)356 b(algorithms)h(describ)34 b(ed)355 b(in)h(this)h(pap)34 b(er)356 b(ha)-34 b(v)g(e)356 b(b)34 b(een)356 b(used)g(extensiv)-34 b(ely)355 b(in)h(our)g(to)34 b(ols)356 b(and)h(to)34 b(ols)356 b(dev)-34 b(elop)34 b(ed)356 b(b)-34 b(y)-1600 48479 y(others.)756 b(Surprisingly)-101 b(,)494 b(neither)476 b(the)h(exp)34 b(onen)-34 b(tial)476 b(algorithmic)g(impro)-34 b(v)g(emen)g(ts)478 b(nor)e(the)h(more)f(general)f(mo)34 b(del)-1600 50135 y(seem)397 b(to)g(b)34 b(e)396 b(so)h(imp)34 b(ortan)-34 b(t)398 b(for)g(the)f(applications)g(where)g(w)-34 b(e)398 b(used)f(tra)-34 b(v)g(ersals)397 b(so)g(far.)536 b(The)397 b(earlier)f(compilation)-1600 51791 y(algorithm,)365 b(called)354 b(the)h(Xiao-algorithm,)365 b(describ)34 b(ed)354 b(in)h([PXL95)o(])g(w)-34 b(ork)g(ed)355 b(v)-34 b(ery)354 b(w)-34 b(ell)355 b(in)g(practice)f(and)i(the)f(exp)34 b(o-)-1600 53447 y(nen)-34 b(tially)340 b(bad)h(cases)f(describ)34 b(ed)340 b(in)g(this)h(pap)34 b(er)340 b(did)h(not)g(seem)f(to)g(app)34 b(ear)341 b(in)f(practice.)517 b(But)340 b(the)h(Xiao-algorithm)-1600 55103 y(w)-34 b(as)418 b(c)-34 b(hallenging)417 b(to)h(program)f(and)h (o)34 b(ccasionally)416 b(required)g(the)h(programmer)g(to)h(rewrite)e (the)i(tra)-34 b(v)g(ersal)417 b(sp)34 b(eci-)-1600 56759 y(\014cations)410 b(in)g(case)f(the)h(algorithm)g(could)f(not)i(handle) f(the)g(com)-34 b(bination)411 b(of)f(curren)-34 b(t)409 b(strategy)h(and)g(class)g(graph.)-1600 58415 y(The)317 b(threat)f(of)h(slo)-34 b(w)316 b(p)34 b(erformance)316 b(and)h(the)f(lac)-34 b(k)315 b(of)i(generalit)-34 b(y)315 b(made)i(us)f(to)g(switc)-34 b(h)317 b(to)g(the)f(algorithm)g(describ) 34 b(ed)-1600 60071 y(in)404 b(this)h(pap)34 b(er.)282 62287 y(The)331 b(remark)f(that)j(the)e(Xiao)g(algorithm)g(w)-34 b(ork)g(ed)332 b(w)-34 b(ell)330 b(in)h(practice)g(is)g(supp)34 b(orted)332 b(b)-34 b(y)331 b(the)h(follo)-34 b(wing)331 b(statistics)-1600 63943 y(for)396 b(DemeterJ,)f(whic)-34 b(h)397 b(is)f(implemen)-34 b(ted)396 b(in)g(its)h(o)-34 b(wn)397 b(language.)536 b(The)396 b(en)-34 b(tire)396 b(to)34 b(ol)396 b(uses)h(236)f(strategies)g(of)g(whic)-34 b(h)-1600 65599 y(only)547 b(32)h(strategies)f(are)g(m)-34 b(ulti-edge.)969 b(This)549 b(giv)-34 b(es)547 b(an)h(a)-34 b(v)g(erage)547 b(of)h(1.144)f(edges)g(p)34 b(er)547 b(strategy)-101 b(.)969 b(The)548 b(largest)-1600 67255 y(strategy)485 b(has)g(4)f(edges.)779 b(\(It)485 b(should)h(b)34 b(e)484 b(remark)-34 b(ed)484 b(that)h(in)g(a)f(redesign)g(of)h (DemeterJ)f(the)g(a)-34 b(v)g(erage)485 b(w)-34 b(ould)485 b(b)34 b(e)-1600 68911 y(higher)434 b(b)34 b(ecause,)440 b(due)434 b(to)g(to)34 b(ol)434 b(limitations,)441 b(some)434 b(strategies)f(mak)-34 b(e)434 b(use)g(of)g(b)-34 b(ypassing)435 b(instead)f(of)g(using)g(more)-1600 70567 y(strategy)332 b(edges.\))515 b(Because)331 b(strategies)i(are)e(small)h(in)g (DemeterJ,)f(the)i(e\016ciency)d(of)j(our)f(new)h(algorithm)f(is)g(not) h(so)24594 75628 y(36)p eop %%Page: 37 38 37 37 bop -1600 2325 a Fv(imp)34 b(ortan)-34 b(t)336 b(for)f(the)g(DemeterJ)f(application.)516 b(The)335 b(complete)f(set)h (of)g(strategies)g(used)g(in)g(DemeterJ)f(are)g(a)-34 b(v)-67 b(ailable)-1600 3981 y(in)404 b([Orlb)o(].)282 6197 y(T)-101 b(ra)-34 b(v)g(ersal)525 b(strategies)f(are)h(usually)g (m)-34 b(uc)g(h)526 b(smaller)e(than)i(the)f(corresp)34 b(onding)525 b(tra)-34 b(v)g(ersal)525 b(graph.)901 b(Mitc)-34 b(hell)-1600 7853 y(W)-101 b(and)383 b(and)g(P)-34 b(engc)g(heng)383 b(W)-101 b(u)382 b(ha)-34 b(v)g(e)383 b(done)f(some)g(statistics)h (collecting)e(b)-34 b(y)383 b(implemen)-34 b(ting)383 b(and)g(applying)f(another)-1600 9509 y(tra)-34 b(v)g(ersal)309 b(generating)h(algorithm)f([L)-135 b(W01])309 b(with)h(the)g(same)f (tra)-34 b(v)g(ersal)310 b(strategy)f(syn)-34 b(tax)310 b(as)g(ours)f(on)h(the)g(tra)-34 b(v)g(ersals)-1600 11165 y(used)447 b(in)f(DemeterJ's)f Fr(generate)g Fv(pac)-34 b(k)-67 b(age)446 b(source)g(\014les,)456 b(whic)-34 b(h)447 b(ha)-34 b(v)g(e)446 b(80)g(tra)-34 b(v)g(ersals)446 b(in)h(total.)664 b(T)-101 b(able)447 b(1)f(lists)f(the)-1600 12821 y(distribution)400 b(of)g(the)f(ratio)g(of)h(the)f(length)h(of)g (tra)-34 b(v)g(ersal)398 b(metho)34 b(ds)400 b(call)f(path)h(vs.)e(the) i(length)g(of)f(strategy)g(for)g(the)-1600 14477 y(80)379 b(tra)-34 b(v)g(ersals.)529 b(As)379 b(y)-34 b(ou)379 b(can)g(see)f(from)g(the)h(table,)384 b(of)379 b(the)g(80)f(tra)-34 b(v)g(ersals,)383 b(o)-34 b(v)g(er)379 b(40)f(tra)-34 b(v)g(ersals)379 b(ha)-34 b(v)g(e)379 b(ratios)f(bigger)-1600 16133 y(than)341 b(4,)353 b(whic)-34 b(h)341 b(re\015ects)f(the)g(size) f(di\013erence)h(b)34 b(et)-34 b(w)g(een)341 b(tra)-34 b(v)g(ersal)340 b(strategy)g(and)h(tra)-34 b(v)g(ersal)340 b(graph.)517 b(More)340 b(detailed)-1600 17789 y(data)405 b(are)f(a)-34 b(v)-67 b(ailable)403 b(in)h([WW)o(].)p 4461 19797 41478 45 v 4439 21453 45 1657 v 5125 20956 a(Range)h(of)f(the)h(ratios)p 16868 21453 V 17090 21453 V 2489 w([0,2\))p 20775 21453 V 1328 w([2,4\))p 24460 21453 V 1329 w([4,6\))p 28145 21453 V 1328 w([6,8\))p 31831 21453 V 1328 w([8,10\))p 36122 21453 V 1328 w([10,12\))p 41019 21453 V 1329 w([12,)p Fs(1)p Fv(\))p 45917 21453 V 4461 21497 41478 45 v 4439 23153 45 1657 v 5125 22656 a(Num)-34 b(b)34 b(er)405 b(of)f(tra)-34 b(v)g(ersals)p 16868 23153 V 17090 23153 V 1550 w(11)p 20775 23153 V 2473 w(26)p 24460 23153 V 2474 w(19)p 28145 23153 V 2473 w(13)p 31831 23153 V 2473 w(4)p 36122 23153 V 3685 w(5)p 41019 23153 V 4292 w(2)p 45917 23153 V 4461 23197 41478 45 v 2905 25589 a(T)-101 b(able)405 b(1:)538 b Ft(Distribution)431 b(of)i(the)g(r)-62 b(atio)432 b(of)h(the)f(length)g(of)h(c)-62 b(al)62 b(l)433 b(p)-62 b(ath)432 b(vs.)556 b(the)433 b(length)f(of)h(str)-62 b(ate)g(gy.)282 28506 y Fv(An)558 b(industrial)f(pro)67 b(ject)558 b(at)g(V)-101 b(erizon)557 b(whic)-34 b(h)558 b(uses)f(DemeterJ)g(w)-34 b(as)558 b(presen)-34 b(ted)558 b(at)f(the)h(\014rst)g(In)-34 b(ternational)-1600 30162 y(Conference)443 b(on)f(Asp)34 b(ect-Orien)-34 b(ted)443 b(Soft)-34 b(w)g(are)444 b(Dev)-34 b(elopmen)g(t)443 b(\(A)-34 b(OSD\))443 b(in)g(April)e(2002)i([BM02)o (])f(as)h(an)g(example)-1600 31818 y(of)353 b(successful)g(use)g(of)g (A)-34 b(OSD)353 b(tec)-34 b(hnology)353 b(in)g(industry)-101 b(.)522 b(The)353 b(tra)-34 b(v)g(ersal)353 b(sp)34 b(eci\014cations) 353 b(w)-34 b(ork)g(ed)353 b(v)-34 b(ery)352 b(w)-34 b(ell)353 b(in)f(this)-1600 33474 y(pro)67 b(ject)347 b(o)-34 b(v)g(er)346 b(a)g(p)34 b(erio)g(d)346 b(of)h(\014v)-34 b(e)346 b(y)-34 b(ears.)519 b(The)346 b(ev)-34 b(olution)347 b(history)f(of)h(the)g(pro)67 b(ject)347 b(is)f(a)-34 b(v)-67 b(ailable)345 b(on)i(the)f(w)-34 b(eb)347 b([Bla02].)282 35690 y(F)-101 b(urther)547 b(evidence)g(that)h(tra)-34 b(v)g(ersal)547 b(strategies)g(w)-34 b(ork)547 b(can)g(b)34 b(e)547 b(obtained)h(from)f(the)h(successful)f(use)g(of)h(the)-1600 37346 y(Demeter/C)4328 37085 y Fi(++)6000 37346 y Fv(system)431 b([Lie96)o(].)616 b(Demeter/C)20447 37085 y Fi(++)22120 37346 y Fv(w)-34 b(as)431 b(used)g(at)g(Northeastern)g(Univ)-34 b(ersit)g(y)430 b(from)h(1992)f(to)h(1996,)-1600 39002 y(and)376 b(in)g(other)g(places,)381 b(including)376 b(at)g(Citibank,)381 b(IBM,)375 b(Bell)f(Northern)i(Researc)-34 b(h,)382 b(Credit)375 b(Suisse)h(and)h(at)f(sev)-34 b(eral)-1600 40658 y(univ)g(ersities.)741 b(See)471 b([Lieb)o(])h(for)g(an)g (extensiv)-34 b(e)471 b(description)h(of)g(the)g(system)g(and)g(relev) -67 b(an)-34 b(t)471 b(references.)740 b(The)472 b(\014rst)-1600 42314 y(v)-34 b(ersion)426 b(of)h(Demeter)e(allo)-34 b(w)g(ed)427 b(only)f(v)-34 b(ery)426 b(simple)g(tra)-34 b(v)g(ersals)426 b(\(corresp)34 b(onding)427 b(to)g(single-edge)f (strategy)g(graphs)-1600 43970 y(with)440 b(b)-34 b(ypassing)441 b(clauses\),)448 b(and)440 b(generated)f(co)34 b(de)439 b(in)g(C)24727 43709 y Fi(++)25970 43970 y Fv(.)644 b(Demeter/C)32879 43709 y Fi(++)34560 43970 y Fv(compiles)438 b(tra)-34 b(v)g(ersals)440 b(whic)-34 b(h)440 b(can)f(b)34 b(e)-1600 45626 y(describ)g(ed)353 b(b)-34 b(y)354 b(a)f(series-parallel)f (graph,)364 b(but)354 b(only)f(for)h(a)f(restricted)g(set)h(of)g(class) f(graph/strategy)h(com)-34 b(binations.)282 47842 y(Hewlett-P)g(ac)g(k) -67 b(ard)355 b(has)g(rep)34 b(orted)355 b(a)g(p)34 b(ositiv)-34 b(e)354 b(exp)34 b(erience)353 b(in)i(using)g(the)h(tra)-34 b(v)g(ersal/visitor)354 b(st)-34 b(yle)355 b(of)g(program-)-1600 49498 y(ming)404 b(for)h(writing)f(installation)h(soft)-34 b(w)g(are)405 b(for)g(the)f(HP)g(prin)-34 b(ters)405 b(family)e([Liea)o(].)282 51714 y(Finally)-101 b(,)441 b(another)436 b(piece)d(of)i(empirical)f(evidence)g(is)g(that)i(the)f (La)-34 b(w)435 b(of)g(Demeter)f([LH89)o(])g(is)h(still)f(considered) -1600 53370 y(to)523 b(b)34 b(e)522 b(a)h(go)34 b(o)g(d)522 b(idea)h([HT00].)893 b(Ho)-34 b(w)g(ev)g(er,)553 b(writing)523 b(all)e(of)i(the)g(metho)34 b(ds)524 b(needed)f(to)g(forw)-34 b(ard)523 b(calls)f(is)g(tedious)-1600 55026 y(and)481 b(error)e(prone.)766 b(T)-101 b(ra)-34 b(v)g(ersal)480 b(strategies)g(ma)-34 b(y)480 b(b)34 b(e)480 b(used)g(to)h(sp)34 b(ecify)479 b(the)h(forw)-34 b(arding)482 b(calls)d(at)h(a)g(high)h (lev)-34 b(el)479 b(of)-1600 56682 y(abstraction.)-1600 61261 y Fx(12)1793 b(Conclusion)-1600 64677 y Fv(T)-101 b(ra)-34 b(v)g(ersals)391 b(are)e(fundamen)-34 b(tal)393 b(to)e(ob)67 b(ject-orien)-34 b(ted)392 b(programming)f(and)g (programming)g(in)g(general.)533 b(In)390 b(order)h(to)-1600 66333 y(pro)34 b(cess)499 b(an)g(ob)67 b(ject)500 b(w)-34 b(e)499 b(need)h(to)f(tra)-34 b(v)g(erse)499 b(through)h(a)f(part)h(of) f(it)h(and)f(p)34 b(erform)499 b(appropriate)h(actions)f(during)-1600 67989 y(the)516 b(tra)-34 b(v)g(ersal.)872 b(The)516 b(imp)34 b(ortance)516 b(of)g(tra)-34 b(v)g(ersals)515 b(of)h(ob)67 b(ject)516 b(structure)g(is)f(w)-34 b(ell)516 b(recognized)e(in)i(the)g(literature.)-1600 69645 y(F)-101 b(or)418 b(example,)h(the)f(Visitor)g(design)f(pattern)i([GHJV95])e (and)i(its)e(v)-67 b(arian)-34 b(ts)418 b([Vli95)o(,)f(Vli96,)g(JP98])g (attest)i(to)e(this)-1600 71301 y(fact.)516 b(W)-101 b(e)333 b(b)34 b(eliev)-34 b(e)333 b(that)j(the)e(notion)h(of)g (strategies)f(is)g(a)g(signi\014can)-34 b(t)336 b(con)-34 b(tribution)335 b(to)g(soft)-34 b(w)g(are)336 b(dev)-34 b(elop)34 b(ers|b)g(oth)24594 75628 y(37)p eop %%Page: 38 39 38 38 bop -1600 2325 a Fv(b)-34 b(y)436 b(pro)-34 b(viding)435 b(a)g(more)g(in)-34 b(tuitiv)g(e)436 b(and)g(conceptually)f(simpler)g (programming)g(mo)34 b(del,)442 b(and)436 b(b)-34 b(y)436 b(automating)g(the)-1600 3981 y(frequen)-34 b(t-and-tedious)407 b(task)d(of)g(programming)h(tra)-34 b(v)g(ersals.)282 6197 y(In)385 b(this)h(pap)34 b(er)385 b(w)-34 b(e)385 b(ha)-34 b(v)g(e)386 b(extended)f(the)h(state)f(of)h(kno)-34 b(wledge)385 b(regarding)g(tra)-34 b(v)g(ersals)385 b(b)-34 b(y)386 b(pro)-34 b(viding)386 b(a)f(general)-1600 7853 y(de\014nition)370 b(as)f(w)-34 b(ell)368 b(as)h(an)g(e\016cien)-34 b(t)369 b(implemen)-34 b(tation)369 b(and)h(a)f(w)-34 b(orking)369 b(protot)-34 b(yp)34 b(e.)527 b(W)-101 b(e)368 b(impro)-34 b(v)g(e)369 b(on)g(all)f(previous)-1600 9509 y(implemen)-34 b(tations)334 b(and)g(at)f(the)g(same)g(time)f(w)-34 b(e)334 b(presen)-34 b(t)333 b(a)g(mo)34 b(del)332 b(that)i(is)f(more)f (general)g(than)i(previous)f(tra)-34 b(v)g(ersal)-1600 11165 y(mo)34 b(dels.)540 b(In)404 b(addition,)i(the)f(lo)-34 b(w)g(er)404 b(b)34 b(ound)406 b(result)f(impro)-34 b(v)g(es)405 b(the)f(understanding)j(of)e(the)g(inheren)-34 b(t)405 b(prop)34 b(erties)405 b(of)-1600 12821 y(run-time)g(tra)-34 b(v)g(ersals,)403 b(whose)i(implemen)-34 b(tation)405 b(has)g(b)34 b(een)404 b(notoriously)g(tric)-34 b(ky)-101 b(.)282 15037 y(U.S.)404 b(paten)-34 b(t)406 b(5,946,490)d(co)-34 b(v)g(ers)404 b(the)h(algorithms)f(in)g(this)h(pap)34 b(er.)-1600 64104 y Fw(Ac)-42 b(kno)g(wledgmen)g(ts)-1600 67103 y Fv(W)-101 b(e)395 b(wish)i(to)f(thank)h(Dean)f(Allemang,)h (James)e(Deikun,)i(Lars)f(Hansen,)i(Jens)e(P)-34 b(alsb)34 b(erg,)396 b(Kedar)g(P)-34 b(atank)-67 b(ar,)397 b(Salil)-1600 68759 y(Pradhan,)384 b(Johan)c(Ovlinger,)i(Bino)-34 b(y)378 b(Sam)-34 b(uel,)384 b(Benedikt)378 b(Sc)-34 b(h)g(ulz,)385 b(and)379 b(Mitc)-34 b(h)379 b(W)-101 b(and)380 b(for)e(n)-34 b(umerous)380 b(discussions)-1600 70415 y(and)543 b(suggestions.)954 b(Sp)34 b(ecial)542 b(thanks)h(are)f(due)h(to)g(Mic)-34 b(hal)542 b(Y)-101 b(oung,)578 b(for)542 b(bringing)h([ASU86])f(to)h (our)f(atten)-34 b(tion.)-1600 72071 y(Man)g(y)405 b(thanks)g(to)f(the) h(A)-34 b(CM)405 b(review)-34 b(ers)403 b(for)h(their)g(detailed)g(and) h(helpful)g(feedbac)-34 b(k.)24594 75628 y(38)p eop %%Page: 39 40 39 39 bop -1600 2325 a Fx(References)-1600 5679 y Fv([ASU86])1663 b(Alfred)460 b(V.)h(Aho,)475 b(Ra)-34 b(vi)460 b(Sethi,)475 b(and)462 b(Je\013)e(D.)g(Ullman.)705 b Ft(Compilers|Principles,)496 b(T)-93 b(e)-62 b(chniques,)495 b(and)4440 7335 y(T)-93 b(o)-62 b(ols)p Fv(,)402 b(pages)j(126{127.)537 b(Addison-W)-101 b(esley)g(,)404 b(1986.)537 b(\(Algorithm)405 b(3.4\).)-1600 9987 y([Bar97])2214 b(A.)373 b(Bartoli.)486 b(A)373 b(no)-34 b(v)g(el)374 b(approac)-34 b(h)374 b(to)g(marshalling.)487 b Ft(Softwar)-62 b(e{Pr)g(actic)g(e)402 b(and)i(Exp)-62 b(erienc)g(e)p Fv(,)378 b(27\(1\):63{)4440 11643 y(85,)404 b(Jan)-34 b(uary)404 b(1997.)-1600 14296 y([Bla02])2352 b(Luis)375 b(Blando.)491 b(Mission)375 b(Critical)g(V)-101 b(erizon)375 b(Pro)67 b(ject)376 b(Using)g(DemeterJ.)490 b(T)-101 b(ec)-34 b(hnical)375 b(rep)34 b(ort,)381 b(V)-101 b(erizon,)4440 15952 y(2002.)537 b(h)-34 b (ttp://www.ccs.neu.edu/researc)g(h/demeter/ev)-67 b (aluation/gte-labs/.)-1600 18604 y([BM02])2184 b(Luis)488 b(Blando)g(and)i(Nosherw)-34 b(an)489 b(Min)-34 b(w)g(alla.)789 b(Commercial)488 b(A)-34 b(OSD)488 b(Deplo)-34 b(ymen)g(t)490 b(in)e(Action:)707 b(Fiv)-34 b(e)4440 20260 y(Y)-101 b(ears)353 b(and)i(Coun)-34 b(ting.)457 b(In)354 b(Gregor)f(Kiczales,) 362 b(editor,)i Ft(First)386 b(International)h(Confer)-62 b(enc)g(e)386 b(on)h(Asp)-62 b(e)g(ct-)4440 21916 y(Oriente)g(d)432 b(Softwar)-62 b(e)433 b(Development)p Fv(,)401 b(Ensc)-34 b(hede,)405 b(The)g(Netherlands,)f(2002.)-1600 24568 y([BP)-34 b(e98])1965 b(Tim)348 b(Bra)-34 b(y)-101 b(,)358 b(Jean)348 b(P)-34 b(aoli,)359 b(and)349 b(C.)f(M.)f(Sp)34 b(erb)g(erg-McQueen)348 b(\(eds.\).)446 b(Extensible)348 b(Markup)g(Language.)4440 26224 y(h)-34 b(ttp://www.w3.org/TR/REC-XML,) 407 b(F)-101 b(ebruary)405 b(1998.)-1600 28877 y([BRJ99])1780 b(Grady)346 b(Bo)34 b(o)g(c)-34 b(h,)357 b(James)346 b(Rum)-34 b(baugh,)360 b(and)347 b(Iv)-67 b(ar)345 b(Jacobson.)444 b Ft(The)379 b(Uni\014e)-62 b(d)381 b(Mo)-62 b(deling)378 b(L)-62 b(anguage)379 b(User)4440 30533 y(Guide)p Fv(.)535 b(Ob)67 b(ject)405 b(T)-101 b(ec)-34 b(hnology)404 b(Series.)f(Addison) j(W)-101 b(esley)g(,)402 b(1999.)537 b(ISBN)404 b(0-201-57168-4.)-1600 33185 y([BV01])2386 b(M.)406 b(Bra)-34 b(v)g(en)g(b)34 b(o)g(er)406 b(and)h(E.)f(Visser.)544 b(Guiding)407 b(visitors:)543 b(Separating)408 b(na)-34 b(vigation)407 b(from)g(computation.)4440 34841 y(T)-101 b(ec)-34 b(hnical)544 b(rep)34 b(ort,)578 b(Institute)545 b(of)f(Information)h(and)g(Computing)g(Sciences,)578 b(Utrec)-34 b(h)g(t)545 b(Univ)-34 b(ersit)g(y)-101 b(,)4440 36497 y(2001.)-1600 39149 y([Ce99])2740 b(James)707 b(Clark)g(and)h (Stev)-34 b(e)707 b(DeRose)g(\(eds.\).)1441 b(XML)706 b(P)-34 b(ath)709 b(Language)e(\(XP)-34 b(ath\),)785 b(v)-34 b(ersion)706 b(1.0.)4440 40805 y(h)-34 b (ttp://www.w3.org/TR/XP)g(ath,)408 b(No)-34 b(v)g(em)g(b)34 b(er)404 b(1999.)-1600 43458 y([CI84])2841 b(Rob)34 b(ert)449 b(D.)f(Cameron)i(and)f(M.)g(Rob)34 b(ert)449 b(Ito.)671 b(Grammar-based)449 b(de\014nition)h(of)f(metaprogramming)4440 45114 y(systems.)390 b Ft(A)-31 b(CM)351 b(T)-93 b(r)-62 b(ansactions)349 b(on)i(Pr)-62 b(o)g(gr)g(amming)350 b(L)-62 b(anguages)348 b(and)i(Systems)p Fv(,)331 b(6\(1\):20{54,)h (Jan)-34 b(uary)4440 46770 y(1984.)-1600 49422 y([Con])3212 b(W3)392 b(Consortium.)521 b(XML)392 b(sc)-34 b(hema)394 b(home)f(page.)519 b(h)-34 b(ttp://www.w3.org/XML/Sc)g(hema/.)523 b(Con)-34 b(tin)g(u-)4440 51078 y(ously)404 b(up)34 b(dated.)-1600 53730 y([EFB01])1679 b(Tzilla)408 b(Elrad,)h(Rob)34 b(ert)409 b(Filman,)g(and)h(A)-34 b(tef)409 b(Bader.)550 b(Asp)34 b(ect-Orien)-34 b(ted)409 b(Programming.)550 b Ft(Communi-)4440 55386 y(c)-62 b(ations)432 b(of)g(the)h(A)-31 b(CM)p Fv(,)404 b(44\(10\):28{97,)h(2001.)-1600 58039 y([Epp92])1983 b(Da)-34 b(vid)412 b(Eppstein.)564 b(P)-34 b(arallel)411 b(recognition)i(of)g(series-parallel)e(graphs.)563 b Ft(Information)441 b(and)g(Computa-)4440 59695 y(tion)p Fv(,)403 b(98\(1\):41{55,)i(1992.)-1600 62347 y([FMY92])1343 b(R.)401 b(F)-101 b(arro)-34 b(w,)402 b(T.J.)f(Marlo)-34 b(w,)402 b(and)g(D.M.)f(Y)-101 b(ellin.)532 b(Comp)34 b(osable)402 b(A)-34 b(ttribute)403 b(Grammars:)537 b(Supp)34 b(ort)403 b(for)4440 64003 y(mo)34 b(dularit)-34 b(y)361 b(in)f(translator)i(design)f(and)g(implemen)-34 b(tation.)467 b(In)361 b Ft(A)-31 b(CM)394 b(Symp)-62 b(osium)392 b(on)i(Principles)e (of)4440 65659 y(Pr)-62 b(o)g(gr)g(amming)433 b(L)-62 b(anguages)p Fv(,)401 b(pages)k(223{234.)f(A)-34 b(CM)405 b(Press,)e(1992.)-1600 68311 y([GHJV95])762 b(Eric)-34 b(h)426 b(Gamma,)432 b(Ric)-34 b(hard)427 b(Helm,)k(Ralph)c(Johnson,) 433 b(and)427 b(John)g(Vlissides.)603 b Ft(Design)453 b(Patterns:)597 b(Ele-)4440 69967 y(ments)433 b(of)g(R)-62 b(eusable)431 b(Obje)-62 b(ct-Oriente)g(d)431 b(Softwar)-62 b(e)p Fv(.)536 b(Addison-W)-101 b(esley)g(,)404 b(1995.)24594 75628 y(39)p eop %%Page: 40 41 40 40 bop -1600 2325 a Fv([GHL)1355 1885 y Fn(+)2142 2325 y Fv(92])749 b(R.)409 b(W.)g(Gra)-34 b(y)-101 b(,)411 b(V.)f(P)-101 b(.)409 b(Heuring,)i(S.)e(P)-101 b(.)409 b(Levi,)h(A.)f(M.)h(Sloane,)h(and)f(W.)f(M.)h(W)-101 b(aite.)553 b(Eli:)c(A)409 b(complete,)4440 3981 y(\015exible)345 b(compiler)g(construction)i(system.)442 b Ft(Communic)-62 b(ations)378 b(of)h(the)g(A)-31 b(CM)p Fv(,)346 b(35:121{131,)357 b(F)-101 b(ebruary)4440 5637 y(1992.)-1600 8217 y([GW84])1957 b(H.)273 b(Galp)34 b(erin)272 b(and)i(A.)f(Wigderson.)324 b(Succinct)274 b(represen)-34 b(tation)274 b(of)f(graphs.)325 b Ft(Information)312 b(and)h(Contr)-62 b(ol)p Fv(,)4440 9873 y(56\(3\):183{198,)405 b(Marc)-34 b(h)404 b(1984.)-1600 12454 y([HH19])2336 b(Philipp)593 b(Hosc)-34 b(hk)-67 b(a)594 b(and)g(Christian)h(Huitema.)1101 b(Automatic)595 b(generation)e(of)h(optimized)g(co)34 b(de)593 b(for)4440 14110 y(marshalling)423 b(routines.)595 b(In)424 b(Nathaniel)g (Borenstein)f(Man)-34 b(uel)424 b(Medina,)429 b(editor,)e Ft(IFIP)453 b(TC6/WG6.5)4440 15766 y(International)502 b(Working)g(Confer)-62 b(enc)g(e)503 b(on)g(Upp)-62 b(er)503 b(L)-62 b(ayer)502 b(Pr)-62 b(oto)g(c)g(ols,)519 b(A)-31 b(r)-62 b(chite)g(ctur)g(es)500 b(and)j(Applic)-62 b(a-)4440 17422 y(tions)p Fv(,)403 b(pages)h(131{146,)g(Barcelona,)f(19.)h (North-Holland.)-1600 20003 y([HT00])2370 b(Andrew)405 b(Hun)-34 b(t)405 b(and)g(Da)-34 b(vid)404 b(Thomas.)539 b Ft(The)433 b(Pr)-62 b(agmatic)432 b(Pr)-62 b(o)g(gr)g(ammer)p Fv(.)536 b(Addison-W)-101 b(esley)g(,)404 b(2000.)-1600 22584 y([IL94])2958 b(Y)-101 b(annis)529 b(E.)f(Ioannidis)g(and)h(Y) -101 b(ezdi)528 b(Lashk)-67 b(ari.)907 b(Incomplete)528 b(path)h(expressions)f(and)h(their)g(disam-)4440 24240 y(biguation.)478 b(In)367 b Ft(Pr)-62 b(o)g(c)g(e)g(e)g(dings)397 b(of)i(A)-31 b(CM/SIGMOD)400 b(A)-31 b(nnual)400 b(Confer)-62 b(enc)g(e)399 b(on)g(Management)f(of)h(Data)p Fv(,)4440 25896 y(pages)404 b(138{149.)g(A)-34 b(CM)405 b(Press,)f(1994.)-1600 28477 y([JP98])2706 b(Barry)595 b(Ja)-34 b(y)597 b(and)h(Jens)f(P)-34 b(alsb)34 b(erg.)1111 b(The)597 b(essence)f(of)h(the)h(visitor)e (pattern.)1112 b(In)597 b Ft(COMPSA)-31 b(C'98,)4440 30133 y(22nd)479 b(A)-31 b(nnual)481 b(International)e(Computer)h (Softwar)-62 b(e)479 b(and)i(Applic)-62 b(ations)477 b(Confer)-62 b(enc)g(e)p Fv(,)467 b(pages)455 b(9{15,)4440 31789 y(Vienna,)404 b(1998.)-1600 34369 y([KHH)1498 33929 y Fn(+)2285 34369 y Fv(01])606 b(Gregor)552 b(Kiczales,)589 b(Erik)552 b(Hilsdale,)589 b(Jim)553 b(Hugunin,)591 b(Mik)553 b(Kersten,)589 b(Je\013rey)552 b(P)-34 b(alm,)590 b(and)554 b(William)4440 36025 y(Grisw)-34 b(old.)650 b(An)442 b(Ov)-34 b(erview)441 b(of)h(Asp)34 b(ectJ.)650 b(In)442 b(Jorgen)f(Kn)-34 b(udsen,)453 b(editor,)e Ft(Eur)-62 b(op)g(e)g(an)467 b(Confer)-62 b(enc)g(e)467 b(on)4440 37681 y(Obje)-62 b(ct-Oriente)g(d)431 b(Pr)-62 b(o)g(gr)g(amming)p Fv(,)403 b(Budap)34 b(est,)404 b(2001.)g(Springer)g(V)-101 b(erlag.)-1600 40262 y([KKS92])1595 b(Mic)-34 b(hael)508 b(Kifer,)533 b(W)-101 b(on)508 b(Kim,)534 b(and)509 b(Y)-101 b(ehosh)-34 b(ua)510 b(Sagiv.)847 b(Querying)508 b(ob)67 b(ject-orien)-34 b(ted)509 b(databases.)849 b(In)4440 41918 y(Mic)-34 b(hael)432 b(Stonebrak)-34 b(er,)440 b(editor,)g Ft(Pr)-62 b(o)g(c)g(e)g(e)g(dings)458 b(of)h(A)-31 b(CM/SIGMOD)461 b(A)-31 b(nnual)459 b(Confer)-62 b(enc)g(e)459 b(on)h(Man-)4440 43574 y(agement)432 b(of)h(Data)p Fv(,)403 b(pages)h(393{402,)g(San)h(Diego,)e(CA,)i(1992.)f(A)-34 b(CM)405 b(Press.)-1600 46155 y([KW94])1965 b(U.)493 b(Kastens)h(and)h(W.)e(M.)h(W)-101 b(aite.)803 b(Mo)34 b(dularit)-34 b(y)494 b(and)h(reusabilit)-34 b(y)493 b(in)h(attribute)h(grammars.)804 b Ft(A)-62 b(cta)4440 47811 y(Informatic)g(a)p Fv(,)402 b(31:601{627,)i(1994.)-1600 50392 y([LH89])2487 b(Karl)535 b(J.)h(Lieb)34 b(erherr)534 b(and)j(Ian)f(Holland.)931 b(Assuring)536 b(go)34 b(o)g(d)536 b(st)-34 b(yle)536 b(for)g(ob)67 b(ject-orien)-34 b(ted)538 b(programs.)4440 52048 y Ft(IEEE)434 b(Softwar)-62 b(e)p Fv(,)403 b(pages)i(38{48,)f(Septem)-34 b(b)34 b(er)404 b(1989.)-1600 54629 y([Liea])3126 b(Karl)403 b(Lieb)34 b(erherr.)535 b(Comm)-34 b(unication)406 b(with)f(Hewlett-P)-34 b(ac)g(k)-67 b(ard.)4440 56285 y(h)-34 b(ttp://www.ccs.neu.edu/researc) g(h/demeter/ev)-67 b(aluation/con)-34 b(v)g(en)g(tional-en)g(v/hp.h)g (tml.)-1600 58865 y([Lieb])3059 b(Karl)438 b(Lieb)34 b(erherr.)640 b(Demeter)439 b(home)g(page.)642 b(h)-34 b(ttp://www.ccs.neu.edu/researc)g(h/demeter/.)644 b(Con-)4440 60521 y(tin)-34 b(uously)405 b(up)34 b(dated.)-1600 63102 y([Lie92])2520 b(Karl)587 b(J.)h(Lieb)34 b(erherr.)1085 b(Comp)34 b(onen)-34 b(t)590 b(enhancemen)-34 b(t:)908 b(An)589 b(adaptiv)-34 b(e)589 b(reusabilit)-34 b(y)589 b(mec)-34 b(hanism)589 b(for)4440 64758 y(groups)533 b(of)g(collab)34 b(orating)532 b(classes.)918 b(In)533 b(J.)f(v)-67 b(an)532 b(Leeu)-34 b(w)g(en,)565 b(editor,)f Ft(Information)551 b(Pr)-62 b(o)g(c)g(essing)550 b('92,)4440 66414 y(12th)432 b(World)g(Computer)g(Congr)-62 b(ess)p Fv(,)403 b(pages)h(179{185,)g(Madrid,)h(Spain,)f(1992.)g(Elsevier.) -1600 68995 y([Lie96])2520 b(Karl)405 b(J.)g(Lieb)34 b(erherr.)539 b Ft(A)-62 b(daptive)433 b(Obje)-62 b(ct-Oriente)g(d)432 b(Softwar)-62 b(e:)559 b(The)434 b(Demeter)g(Metho)-62 b(d)433 b(with)h(Pr)-62 b(op)g(a-)4440 70651 y(gation)333 b(Patterns)p Fv(.)360 b(PWS)296 b(Publishing)h(Compan)-34 b(y)-101 b(,)319 b(Boston,)f(1996.)362 b(616)296 b(pages,)318 b(ISBN)296 b(0-534-94602-X,)4440 72307 y(en)-34 b(tire)404 b(b)34 b(o)g(ok)403 b(at)i(www.ccs.neu.edu/researc)-34 b(h/demeter.)24594 75628 y(40)p eop %%Page: 41 42 41 41 bop -1600 2325 a Fv([LO97])2453 b(Karl)424 b(J.)h(Lieb)34 b(erherr)423 b(and)j(Doug)f(Orleans.)600 b(Prev)-34 b(en)g(tiv)g(e)424 b(program)i(main)-34 b(tenance)426 b(in)f(Demeter/Ja)-34 b(v)-67 b(a)4440 3981 y(\(researc)-34 b(h)573 b(demonstration\).)1042 b(In)574 b Ft(International)588 b(Confer)-62 b(enc)g(e)588 b(on)h(Softwar)-62 b(e)588 b(Engine)-62 b(ering)p Fv(,)615 b(pages)4440 5637 y(604{605,)404 b(Boston,)g(MA,)g(1997.)g(A)-34 b(CM)405 b(Press.)-1600 8289 y([LOO01])1510 b(Karl)413 b(Lieb)34 b(erherr,)414 b(Doug)g(Orleans,)h(and)f(Johan)h(Ovlinger.)565 b(Asp)34 b(ect-Orien)-34 b(ted)413 b(Programming)h(with)4440 9945 y(Adaptiv)-34 b(e)405 b(Metho)34 b(ds.)538 b Ft(Communic)-62 b(ations)431 b(of)i(the)g(A)-31 b(CM)p Fv(,)404 b(44\(10\):39{41,)g (2001.)-1600 12597 y([Lop96])2117 b(Cristina)405 b(Videira)f(Lop)34 b(es.)539 b(Adaptiv)-34 b(e)405 b(parameter)g(passing.)540 b(In)404 b Ft(2nd)434 b(International)f(Symp)-62 b(osium)433 b(on)4440 14253 y(Obje)-62 b(ct)366 b(T)-93 b(e)-62 b(chnolo)g(gies)364 b(for)i(A)-62 b(dvanc)g(e)g(d)366 b(Softwar)-62 b(e)p Fv(,)345 b(pages)332 b(118{136,)347 b(Kanaza)-34 b(w)g(a,)347 b(Japan,)g(Marc)-34 b(h)332 b(1996.)4440 15909 y(Springer-V)-101 b(erlag.)-1600 18562 y([LSX94])1814 b(Karl)404 b(J.)h(Lieb)34 b(erherr,)403 b(Ignacio)i(Silv)-67 b(a-Lep)34 b(e,)403 b(and)j(Cun)g(Xiao.)540 b(Adaptiv)-34 b(e)406 b(ob)67 b(ject-orien)-34 b(ted)407 b(program-)4440 20218 y(ming)425 b(using)h(graph-based)g(customization.)601 b Ft(Communic)-62 b(ations)451 b(of)i(the)f(A)-31 b(CM)p Fv(,)425 b(37\(5\):94{101,)431 b(Ma)-34 b(y)4440 21874 y(1994.)-1600 24526 y([L)-135 b(VV03])1713 b(Ralf)606 b(L\177)-606 b(ammel,)656 b(Eelco)605 b(Visser,)656 b(and)607 b(Jo)34 b(ost)606 b(Visser.)1138 b(Strategic)607 b(programming)f(meets)g(adaptiv)-34 b(e)4440 26182 y(programming.)537 b(In)404 b Ft(Pr)-62 b(o)g(c.)433 b(of)g(A)-31 b(OSD'03)p Fv(.)404 b(A)-34 b(CM)405 b(Press,)e(2003.) -1600 28834 y([L)-135 b(W01])2285 b(Karl)282 b(Lieb)34 b(erherr)282 b(and)i(Mitc)-34 b(hell)283 b(W)-101 b(and.)341 b(T)-101 b(ra)-34 b(v)g(ersal)283 b(seman)-34 b(tics)284 b(in)f(ob)67 b(ject)284 b(graphs.)341 b(T)-101 b(ec)-34 b(hnical)284 b(Rep)34 b(ort)4440 30490 y(NU-CCS-2001-05,)405 b(Northeastern)g(Univ)-34 b(ersit)g(y)-101 b(,)404 b(Ma)-34 b(y)404 b(2001.)-1600 33143 y([MS93])2370 b(Victor)463 b(M.)g(Mark)-34 b(o)g(witz)464 b(and)h(Arie)d(Shoshani.)716 b(Ob)67 b(ject)464 b(queries)f(o)-34 b(v)g(er)463 b(relational)g (databases:)659 b(Lan-)4440 34799 y(guage,)496 b(implemen)-34 b(tation,)498 b(and)479 b(application.)758 b(In)479 b Ft(9th)500 b(International)h(Confer)-62 b(enc)g(e)501 b(on)h(Data)e(Engi-)4440 36455 y(ne)-62 b(ering)p Fv(,)403 b(pages)h(71{80.)g(IEEE)g(Press,)f(1993.)-1600 39107 y([MS01])2370 b(Bob)499 b(McWhirter)f(and)i(James)f(Strac)-34 b(han.)821 b(Extensible)499 b(Markup)g(Language.)821 b(h)-34 b(ttp://jaxen.org/,)4440 40763 y(2001.)-1600 43415 y([NS88])2572 b(Eric)-34 b(h)598 b(J.)g(Neuhold)h(and)g(Mic)-34 b(hael)598 b(Sc)-34 b(hre\015.)1117 b(Dynamic)598 b(deriv)-67 b(ation)598 b(of)g(p)34 b(ersonalized)598 b(views.)1116 b(In)4440 45071 y Ft(Pr)-62 b(o)g(c)g(e)g(e)g(dings)431 b(of)i(the)f(14th)g(VLDB)j(Confer)-62 b(enc)g(e)p Fv(,)402 b(pages)j(183{194,)f(1988.)-1600 47723 y([OL01])2453 b(Doug)560 b(Orleans)f(and)i(Karl)e(Lieb)34 b(erherr.)1000 b(DJ:)559 b(Dynamic)g(Adaptiv)-34 b(e)561 b(Programming)f(in)g(Ja)-34 b(v)-67 b(a.)1001 b(In)4440 49379 y Ft(R)-62 b(e\015e)g(ction)320 b(2001:)499 b(Meta-level)318 b(A)-31 b(r)-62 b(chite)g(ctur)g(es)318 b(and)j(Sep)-62 b(ar)g(ation)319 b(of)i(Cr)-62 b(osscutting)319 b(Conc)-62 b(erns)321 b Fv(,)306 b(Ky)-34 b(oto,)4440 51036 y(Japan,)404 b(Septem)-34 b(b)34 b(er)405 b(2001.)f(Springer)g(V) -101 b(erlag.)537 b(8)404 b(pages.)-1600 53688 y([Orla])3005 b(Doug)404 b(Orleans.)537 b(D)-34 b(AJ)404 b(home)g(page.)538 b(h)-34 b(ttp://da)67 b(j.sf.net/.)540 b(Con)-34 b(tin)g(uously)407 b(up)34 b(dated.)-1600 56340 y([Orlb])2938 b(Doug)404 b(Orleans.)537 b(DemeterJ)403 b(Strategy)i(Statistics.)4440 57996 y(h)-34 b(ttp://www.ccs.neu.edu/researc)g (h/demeter/DemeterJ/strategy-usage-in-DemeterJ.txt.)-1600 60648 y([PHN00])1511 b(M.)519 b(Phillipsen,)548 b(B.)519 b(Haumac)-34 b(her,)549 b(and)520 b(C.)g(Nester.)881 b(More)519 b(E\016cien)-34 b(t)520 b(Serialization)f(and)h(RMI)g(for) 4440 62304 y(Ja)-34 b(v)-67 b(a.)537 b Ft(Concurr)-62 b(ency:)556 b(Pr)-62 b(actic)g(e)431 b(and)j(Exp)-62 b(erienc)g(e)p Fv(,)402 b(12\(7\):495{518,)j(Ma)-34 b(y)404 b(2000.)-1600 64957 y([P)-34 b(ol49])2420 b(George)403 b(P)-34 b(oly)g(a.)537 b Ft(How)434 b(T)-93 b(o)434 b(Solve)e(It)p Fv(.)537 b(Princeton)404 b(Univ)-34 b(ersit)g(y)404 b(Press,)g(1949.) -1600 67609 y([PPL97])1746 b(Jens)564 b(P)-34 b(alsb)34 b(erg,)603 b(Boaz)563 b(P)-34 b(att-Shamir,)605 b(and)565 b(Karl)e(Lieb)34 b(erherr.)1012 b(A)563 b(new)i(approac)-34 b(h)565 b(to)f(compiling)4440 69265 y(adaptiv)-34 b(e)405 b(programs.)537 b Ft(Scienc)-62 b(e)433 b(of)g(Computer)f(Pr)-62 b(o)g(gr)g(amming)p Fv(,)403 b(29\(3\):303{326,)i(1997.)24594 75628 y(41)p eop %%Page: 42 43 42 42 bop -1600 2325 a Fv([PXL95])1662 b(Jens)418 b(P)-34 b(alsb)34 b(erg,)420 b(Cun)f(Xiao,)i(and)d(Karl)f(Lieb)34 b(erherr.)576 b(E\016cien)-34 b(t)418 b(implemen)-34 b(tation)419 b(of)g(adaptiv)-34 b(e)418 b(soft-)4440 3981 y(w)-34 b(are.)522 b Ft(A)-31 b(CM)425 b(T)-93 b(r)-62 b(ansactions)423 b(on)j(Pr)-62 b(o)g(gr)g(amming)424 b(L)-62 b(anguages)423 b(and)h(Systems)p Fv(,)395 b(17\(2\):264{292,)j (Marc)-34 b(h)4440 5637 y(1995.)-1600 8289 y([SD01])2555 b(Kurt)522 b(Stirew)-34 b(alt)523 b(and)f(Laura)g(K.)f(Dillon.)888 b(Generation)522 b(of)h(visitor)e(comp)34 b(onen)-34 b(ts)523 b(that)g(implemen)-34 b(t)4440 9945 y(program)449 b(transformations.)672 b(In)449 b Ft(A)-31 b(CM)475 b(SIGSOFT)i(Symp) -62 b(osium)473 b(on)i(Softwar)-62 b(e)474 b(R)-62 b(eusability)p Fv(,)456 b(pages)4440 11601 y(86{94,)404 b(2001.)-1600 14253 y([Sma])3077 b(Y)-101 b(annis)405 b(Smaragdakis.)537 b(P)-34 b(ersonal)404 b(comm)-34 b(unication.)538 b(1997.)-1600 16906 y([SPL96])1898 b(Linda)541 b(M.)g(Seiter,)575 b(Jens)541 b(P)-34 b(alsb)34 b(erg,)575 b(and)542 b(Karl)f(J.)f(Lieb)34 b(erherr.)944 b(Ev)-34 b(olution)542 b(of)g(Ob)67 b(ject)542 b(Beha)-34 b(vior)4440 18562 y(using)376 b(Con)-34 b(text)377 b(Relations.)491 b(In)376 b(Da)-34 b(vid)375 b(Garlan,)382 b(editor,)f Ft(Symp)-62 b(osium)405 b(on)j(F)-93 b(oundations)405 b(of)i(Softwar)-62 b(e)4440 20218 y(Engine)g(ering,)433 b(SIGSOFT)p Fv(,)405 b(pages)g(46{57,)f(San)h(F)-101 b(rancisco,)403 b(1996.)h(A)-34 b(CM)405 b(Press)f(\(SIGSOFT\).)-1600 22870 y([SPL98])1898 b(Linda)314 b(M.)h(Seiter,)331 b(Jens)315 b(P)-34 b(alsb)34 b(erg,)331 b(and)316 b(Karl)d(J.)h(Lieb)34 b(erherr.)390 b(Ev)-34 b(olution)315 b(of)f(Ob)67 b(ject)316 b(Beha)-34 b(vior)313 b(using)4440 24526 y(Con)-34 b(text)572 b(Relations.)1034 b Ft(IEEE)588 b(T)-93 b(r)-62 b(ansactions)585 b(on)j(Softwar)-62 b(e)586 b(Engine)-62 b(ering)p Fv(,)611 b(24\(1\):79{92,)i(Jan)-34 b(uary)4440 26182 y(1998.)-1600 28834 y([Sun02])2135 b(John)431 b(Sung.)617 b(Asp)34 b(ectual)431 b(Concepts.)618 b(T)-101 b(ec)-34 b(hnical)430 b(Rep)34 b(ort)431 b(NU-CCS-02-06,)439 b(Northeastern)431 b(Univ)-34 b(er-)4440 30490 y(sit)g(y)-101 b(,)385 b(June)380 b(2002.)498 b(Master's)380 b(Thesis,)385 b(h)-34 b (ttp://www.ccs.neu.edu/home/lieb)34 b(er/theses-index.h)-34 b(tml.)-1600 33143 y([V)-101 b(an01])2067 b(Wim)469 b(V)-101 b(anderp)34 b(erren.)732 b(Applying)470 b(asp)34 b(ect-orien)-34 b(ted)470 b(programming)h(ideas)e(in)h(a)f(comp)34 b(onen)-34 b(t)471 b(based)4440 34799 y(con)-34 b(text:)539 b(Comp)34 b(osition)405 b(adapters.)538 b(In)404 b Ft(GCSE)p Fv(,)h(Erfurt,)f (German)-34 b(y)-101 b(,)404 b(2001.)-1600 37451 y([VdBV93])804 b(Jan)418 b(V)-101 b(an)419 b(den)g(Bussc)-34 b(he)419 b(and)g(Gottfried)g(V)-101 b(ossen.)580 b(An)419 b(extension)f(of)h (path)g(expressions)f(to)h(simplify)4440 39107 y(na)-34 b(vigation)358 b(in)g(ob)67 b(ject-orien)-34 b(ted)360 b(queries.)460 b(In)358 b(Stefano)i(Ceri,)366 b(Katsumi)358 b(T)-101 b(anak)-67 b(a,)367 b(and)359 b(Shalom)g(Tsur,)4440 40763 y(editors,)k Ft(De)-62 b(ductive)384 b(and)j(Obje)-62 b(ct-Oriente)g(d)385 b(Datab)-62 b(ases)p Fv(,)360 b(pages)354 b(267{282,)364 b(Pho)34 b(enix,)363 b(Arizona,)g(1993.)4440 42419 y(Springer)404 b(V)-101 b(erlag,)403 b(Lecture)g(Notes)i(in)f (CS,)h(No.)e(760.)-1600 45071 y([Vli95])2571 b(John)405 b(Vlissides.)536 b(Visiting)404 b(righ)-34 b(ts.)538 b Ft(C++)435 b(R)-62 b(ep)g(ort)p Fv(,)402 b(Septem)-34 b(b)34 b(er)405 b(1995.)-1600 47723 y([Vli96])2571 b(John)405 b(Vlissides.)536 b(The)405 b(T)-101 b(rouble)404 b(with)h(Observ)-34 b(er.)537 b Ft(C++)434 b(R)-62 b(ep)g(ort)p Fv(,)403 b(Septem)-34 b(b)34 b(er)404 b(1996.)-1600 50376 y([W)-34 b(G84])1991 b(William)403 b(W)-101 b(aite)403 b(and)i(Gerhard)f(Go)34 b(os.)538 b Ft(Compiler)432 b(Construction)p Fv(.)535 b(Springer)405 b(V)-101 b(erlag,)403 b(1984.)-1600 53028 y([W)-101 b(o)34 b(o96])1763 b(Bobb)-34 b(y)404 b(W)-101 b(o)34 b(olf.)537 b(The)405 b(Null)f(Ob)67 b(ject)404 b(pattern.)538 b(In)405 b Ft(Pattern)433 b(L)-62 b(anguages)431 b(of)i(Pr)-62 b(o)g(gr)g(am)433 b(Design)p Fv(,)403 b(1996.)-1600 55680 y([WV01])1999 b(Bart)399 b(Wydaeghe)h(and)h(Wim)e(V)-101 b(anderp)34 b(erren.)530 b(T)-101 b(o)-34 b(w)g(ards)402 b(a)e(new)g(comp)34 b(onen)-34 b(t)402 b(comp)34 b(osition)400 b(pro)34 b(cess.)4440 57336 y(In)404 b Ft(ECBS)p Fv(,)h(W)-101 b(ashington,)405 b(April)f(2001.)-1600 59989 y([WW])2874 b(Mitc)-34 b(h)422 b(W)-101 b(and)421 b(and)i(P)-34 b(engc)g(heng)422 b(W)-101 b(u.)588 b(P)-34 b(art)422 b(of)g(the)f(Statistics)h(of)g(T) -101 b(ra)-34 b(v)g(ersing)422 b(Metho)34 b(ds)422 b(Generated)4440 61645 y(F)-101 b(or)276 b(DemeterJ)f(Source)h(Co)34 b(de.)328 b(h)-34 b(ttp://www.ccs.neu.edu/home/wup)34 b (c/statistics/statistics.h)-34 b(tm.)-1600 64297 y([Wyd02])1595 b(Bart)423 b(Wydaeghe.)597 b Ft(P)-93 b(A)-31 b(COSUITE:)454 b(Comp)-62 b(onent)451 b(Comp)-62 b(osition)450 b(Base)-62 b(d)450 b(on)i(Comp)-62 b(osition)450 b(Patterns)4440 65953 y(and)433 b(Usage)f(Sc)-62 b(enarios)p Fv(.)536 b(PhD)404 b(thesis,)g(F)-101 b(ree)404 b(Univ)-34 b(ersit)g(y)404 b(of)g(Brussels,)f(2002.)24594 75628 y(42)p eop %%Page: 43 44 43 43 bop -800 1107 a 30785863 8620036 197345 37561384 39995310 49007411 startTexFig -800 1107 a%%BeginDocument: simplify.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Times-Italic Helvetica-Bold %%Pages: 1 %%BoundingBox: 3 571 608 745 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Times-Italic reencodeISO def /Helvetica-Bold reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 12 Grid 4 4 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.796717 0 0 0.796717 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 24 643 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 24 571 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 -36 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 20 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 60 571 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 60 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 -211 277 ] concat %I 467 595 467 539 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 -211 277 ] concat %I 463 523 443 487 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 -211 277 ] concat %I 471 523 495 487 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 291.5 867.5 ] concat %I [ (l) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 340 889 ] concat %I [ (b) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 236 813 ] concat %I [ (c) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 340 817 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 224 777 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 288 777 ] concat %I [ (f) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 268 821 ] concat %I [ (m) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 0 0 0.5 171 662.5 ] concat %I 186 291 298 291 Line %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 171 662.5 ] concat %I 58 115 410 539 Rect End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 216 643 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 216 571 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 156 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 212 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 252 571 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 252 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -19 277 ] concat %I 467 595 467 539 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -19 277 ] concat %I 463 523 443 487 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 -19 277 ] concat %I 471 523 495 487 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 436 769 ] concat %I [ (l) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 532 889 ] concat %I [ (b) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 428 813 ] concat %I [ (c) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 532 817 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 416 777 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 480 777 ] concat %I [ (f) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 440 745 ] concat %I [ (m) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 363 662.5 ] concat %I 58 115 410 539 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 219.5 662.5 ] concat %I 6 401 179 409 163 433 155 457 179 489 275 585 299 6 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 171 662.5 ] concat %I 7 618 179 626 163 650 163 658 179 634 323 626 419 682 435 7 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 171 662.5 ] concat %I 7 610 179 610 155 626 131 682 139 666 227 658 275 682 291 7 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 488.5 757.5 ] concat %I [ (l) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 512 753 ] concat %I [ (m) ] Text End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 408 643 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 408 571 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 348 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 404 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 444 571 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 444 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 173 277 ] concat %I 463 523 443 487 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 -0 -0 1 173 277 ] concat %I 471 523 495 487 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 628 769 ] concat %I [ (l) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 724 889 ] concat %I [ (b) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 620 813 ] concat %I [ (c) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 724 817 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 608 777 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 672 777 ] concat %I [ (f) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 632 745 ] concat %I [ (m) ] Text End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 -0 -0 0.5 555 662.5 ] concat %I 58 115 410 539 Rect End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 411.5 662.5 ] concat %I 6 401 179 409 163 433 155 457 179 489 275 585 299 6 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 363 662.5 ] concat %I 7 618 179 626 163 650 163 658 179 634 323 626 419 682 435 7 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 363 662.5 ] concat %I 7 610 179 610 155 626 131 682 139 666 227 658 275 682 291 7 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 681.5 757.5 ] concat %I [ (l) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 704 753 ] concat %I [ (m) ] Text End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 462 662.5 ] concat %I 4 356 419 268 331 268 235 292 195 4 BSpl %I 2 End Begin %I BSpl %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 462 662.5 ] concat %I 3 356 419 404 323 412 203 3 BSpl %I 2 End Begin %I Poly %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 -168 571 ] concat %I 6 456 490 472 490 480 474 472 458 456 458 448 474 6 Poly End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 -228 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 -172 519 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 -132 571 ] concat %I 520 466 544 490 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 -132 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 -403 277 ] concat %I 463 523 443 487 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 -403 277 ] concat %I 471 523 495 487 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 44 886 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 80 893 ] concat %I [ (l) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 148 889 ] concat %I [ (b) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 44 813 ] concat %I [ (c) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 148 817 ] concat %I [ (d) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 32 777 ] concat %I [ (e) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 96 777 ] concat %I [ (f) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 76 821 ] concat %I [ (m) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 0 0 0.5 -21 662.5 ] concat %I 186 291 298 291 Line %I 2 End Begin %I Rect %I b 65535 0 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 -21 662.5 ] concat %I 58 115 410 539 Rect End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 -204 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -21 525 ] concat %I 178 710 298 710 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -21 525 ] concat %I 170 702 170 582 Line %I 2 End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 28 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 -21 525 ] concat %I 570 710 618 710 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 292 902 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 236 886 ] concat %I [ (a') ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 496 897 ] concat %I [ (l) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 220 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 171 525 ] concat %I 642 710 682 710 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 171 525 ] concat %I 570 710 618 710 Line %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 46 525 ] concat %I 7 764 454 780 446 815 513 844 579 868 654 876 694 932 710 7 BSpl %I 2 End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 238 525 ] concat %I 7 764 454 780 446 815 513 844 579 868 654 876 694 932 710 7 BSpl %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 688 897 ] concat %I [ (l) ] Text End Begin %I Rect %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 1 SetP %I t [ 0.5 0 0 0.5 412 643 ] concat %I 520 466 544 490 Rect End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 363 525 ] concat %I 642 710 682 710 Line %I 2 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 363 525 ] concat %I 570 710 618 710 Line %I 2 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 484 902 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 676 902 ] concat %I [ (a) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 428 886 ] concat %I [ (a') ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-times-medium-i-normal-*-14-*-*-*-*-*-*-* Times-Italic 14 SetF %I t [ 1 0 0 1 620 886 ] concat %I [ (a') ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 17 922 ] concat %I [ (A) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 209 922 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 401 922 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 593 922 ] concat %I [ (D) ] Text End Begin %I BSpl %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.5 -0 -0 0.5 183 525 ] concat %I 4 154 693 162 683 181 683 274 702 4 BSpl %I 2 End End %I eop showpage %%Trailer end %%EndDocument endTexFig -1600 18430 a Fv(Figure)398 b(11:)536 b Ft(A)-31 b(n)428 b(example)f(of)g(class)g(gr)-62 b(aph)426 b(simpli\014c)-62 b(ation.)553 b Fr(A)p Ft(:)428 b(the)f(original)g(class)f(gr)-62 b(aph.)554 b(Concr)-62 b(ete)427 b(classes)f(ar)-62 b(e)-1600 20086 y(depicte)g(d)388 b(as)i(squar)-62 b(es,)397 b(and)390 b(abstr)-62 b(act)388 b(classes)h(ar)-62 b(e)390 b(hexagons.)541 b(R)-62 b(efer)g(enc)g(e)389 b(e)-62 b(dges)389 b(ar)-62 b(e)390 b(r)-62 b(e)g(gular,)398 b(and)390 b(sub)-62 b(class)388 b(e)-62 b(dges)-1600 21742 y(ar)g(e)433 b(he)-62 b(avy.)555 b Fr(B)p Ft(:)433 b(after)g(step)f(1.)557 b Fr(C)p Ft(:)433 b(after)g(step)f(2.)557 b Fr(D)p Ft(:)433 b(after)g(step)f(3.)-1600 25200 y Fx(APPENDICES)-1600 29152 y(A)1793 b(Class)599 b(graph)f(Simpli\014cation)-1600 32568 y Fv(In)404 b(this)h(app)34 b(endix)404 b(w)-34 b(e)405 b(pro)-34 b(v)g(e)404 b(Prop)34 b(osition)404 b(2.1.)539 b(F)-101 b(or)404 b(the)g(con)-34 b(v)g(enience)404 b(of)h(the)f(reader,)g(w)-34 b(e)404 b(repro)34 b(duce)404 b(it)g(b)34 b(elo)-34 b(w.)-1600 34784 y Fk(Prop)39 b(osition)460 b(2.1.)537 b Ft(L)-62 b(et)429 b Fu(G)337 b Fv(=)g(\()p Fu(V)67 b(;)202 b(E)70 b Fv(\))430 b Ft(b)-62 b(e)428 b(an)h(arbitr)-62 b(ary)428 b(class)f(gr)-62 b(aph.)554 b(Then)430 b(ther)-62 b(e)428 b(exists)g(a)g(simple)g(class)g(gr)-62 b(aph)-1600 36440 y Fr(Simplify)p Fv(\()p Fu(G)p Fv(\))337 b(=)g(\()p Fu(V)7420 36000 y Fo(0)7731 36440 y Fu(;)202 b(E)9235 36000 y Fo(0)9545 36440 y Fv(\))432 b Ft(such)d(that)h(an)h (obje)-62 b(ct)429 b(gr)-62 b(aph)430 b Fv(\012)i Ft(is)e(an)i(instanc) -62 b(e)430 b(of)g Fu(G)i Ft(if)e(and)h(only)g(if)g Fv(\012)g Ft(is)g(an)g(instanc)-62 b(e)-1600 38096 y(of)433 b Fr(Simplify)p Fv(\()p Fu(G)p Fv(\))p Ft(.)558 b(Mor)-62 b(e)g(over,)431 b Fs(j)p Fu(V)13726 37656 y Fo(0)14037 38096 y Fs(j)336 b Fv(=)g Fu(O)34 b Fv(\()p Fs(j)p Fu(V)269 b Fs(j)p Fv(\))434 b Ft(and)f Fs(j)p Fu(E)23630 37656 y Fo(0)23940 38096 y Fs(j)336 b Fv(=)h Fu(O)34 b Fv(\()p Fs(j)p Fu(E)70 b Fs(j)28962 37656 y Fn(2)29486 38096 y Fv(\))p Ft(.)-1600 40312 y Fv(The)405 b(prop)34 b(osition)404 b(is)g(pro)-34 b(v)g(en)405 b(b)-34 b(y)404 b(the)h(follo)-34 b(wing)405 b(transformation)h(algorithm)e(\(see)g(example)f(in)h(Figure)g(11\).) -118 43263 y(1.)605 b(F)-101 b(or)449 b(eac)-34 b(h)449 b(concrete)f(class)h Fu(v)454 b Fs(2)411 b Fu(V)718 b Fv(with)450 b(an)f(outgoing)h(sub)34 b(class)449 b(edge)g Fu(v)36350 42596 y Fo(\005)35979 43263 y Fs(!)411 b Fu(u)g Fs(2)g Fu(E)70 b Fv(,)459 b(add)450 b(a)f(new)g(abstract)1430 44919 y(no)34 b(de)405 b Fu(v)4991 44479 y Fo(0)5705 44919 y Fv(in)-34 b(to)405 b Fu(V)270 b Fv(,)403 b(along)i(with)g(the)f (follo)-34 b(wing)405 b(c)-34 b(hanges)405 b(of)f(the)h(edge)f(set:) 2885 47466 y Fs(\017)606 b Fv(Div)-34 b(ert)404 b(all)f(edges)h(coming) g(in)-34 b(to)405 b Fu(v)447 b Fv(to)405 b(end)f(at)h Fu(v)26329 47026 y Fo(0)26639 47466 y Fv(.)539 b(That)405 b(is,)13387 50025 y Fu(E)h Fs( )337 b Fu(E)i Fs([)18549 48770 y Fg(n)19287 50025 y Fu(u)20778 49359 y Fp(l)20317 50025 y Fs(!)e Fu(v)22497 49525 y Fo(0)23144 50025 y Fs(j)g Fu(u)25309 49359 y Fp(l)24848 50025 y Fs(!)g Fu(v)380 b Fs(2)337 b Fu(E)29475 48770 y Fg(o)30482 50025 y Fs(n)31357 48770 y Fg(n)32095 50025 y Fu(u)33586 49359 y Fp(l)33126 50025 y Fs(!)f Fu(v)380 b Fs(j)336 b Fu(u)37806 49359 y Fp(l)37346 50025 y Fs(!)h Fu(v)380 b Fs(2)336 b Fu(E)41972 48770 y Fg(o)2885 52753 y Fs(\017)606 b Fv(Div)-34 b(ert)404 b(all)f(sub)34 b(class)404 b(edges)g(going)h(out)g(from)f Fu(v)447 b Fv(to)405 b(originate)e(at)i Fu(v)35413 52313 y Fo(0)35724 52753 y Fv(.)538 b(That)405 b(is,)14610 55312 y Fu(E)h Fs( )337 b Fu(E)i Fs([)19772 54057 y Fg(n)20510 55312 y Fu(v)21141 54812 y Fo(0)22159 54646 y(\005)21788 55312 y Fs(!)e Fu(u)f Fs(j)h Fu(v)26379 54646 y Fo(\005)26008 55312 y Fs(!)g Fu(u)g Fs(2)g Fu(E)30698 54057 y Fg(o)31705 55312 y Fs(n)32580 54057 y Fg(n)33318 55312 y Fu(v)34657 54646 y Fo(\005)34286 55312 y Fs(!)g Fu(u)f Fs(j)h Fu(v)38877 54646 y Fo(\005)38506 55312 y Fs(!)g Fu(u)40749 54057 y Fg(o)2885 58041 y Fs(\017)606 b Fv(Mak)-34 b(e)404 b Fu(v)447 b Fv(a)404 b(sub)34 b(class)405 b(of)f Fu(v)16120 57601 y Fo(0)16431 58041 y Fv(:)23001 59697 y Fu(E)i Fs( )337 b Fu(E)i Fs([)28162 58441 y Fg(n)28900 59697 y Fu(v)29531 59196 y Fo(0)30549 59030 y(\005)30179 59697 y Fs(!)d Fu(v)32358 58441 y Fg(o)1430 62244 y Fv(When)405 b(this)f(step)h(is)f(completed,)g(no)g(concrete)g(class)g(has)g(sub)34 b(class)405 b(edges)f(going)g(out)h(from)f(it.)-118 64791 y(2.)605 b(F)-101 b(or)497 b(eac)-34 b(h)498 b(concrete)e(class)h Fu(v)43 b Fv(:)724 b(add)498 b(edges)f(so)g(that)i(the)e(set)h(of)f (edges)g(going)g(out)h(from)g Fu(v)540 b Fv(is)496 b(exactly)g(the)1430 66447 y(induced)405 b(edges)f(of)h Fu(v)43 b Fv(.)538 b(Then,)405 b(delete)e(all)h(reference)f(edges)h(going)g(out)h(from)f (abstract)h(classes.)-118 68995 y(3.)605 b(Con)-34 b(tract)358 b(long)e(inheritance)f(c)-34 b(hains.)523 b(F)-101 b(or)356 b(eac)-34 b(h)356 b(abstract)h(class)e Fu(v)43 b Fv(:)515 b(\014nd)357 b(all)e(concrete)g(classes)g Fu(u)h Fv(whic)-34 b(h)357 b(can)1430 70651 y(b)34 b(e)354 b(reac)-34 b(hed)355 b(from)f Fu(v)397 b Fv(using)355 b(sub)34 b(class)354 b(edges)h(only)-101 b(,)363 b(and)355 b(add)g(a)g(sub)34 b(class)354 b(edge)g Fu(v)39287 69985 y Fo(\005)38916 70651 y Fs(!)337 b Fu(u)354 b Fv(if)g(one)g(do)34 b(es)354 b(not)h(exist)1430 72307 y(already)-101 b(.)538 b(Finally)-101 b(,)403 b(delete)h(all)g(sub)34 b(class)404 b(edges)g(leading)g(to)h (abstract)g(classes.)24594 75628 y(43)p eop %%Page: 44 45 44 44 bop 282 2325 a Fv(Informally)-101 b(,)313 b(Step)292 b(1)f(decouples)h(the)g(sub-classing)g(role)e(from)i(concrete)f (classes)f(b)-34 b(y)292 b(in)-34 b(tro)34 b(ducing)292 b(an)g(additional)-1600 3981 y(abstract)405 b(class)f(for)g(eac)-34 b(h)404 b(class)g(whic)-34 b(h)405 b(has)g(b)34 b(oth)405 b(sub)34 b(class)404 b(and)h(reference)e(edges)h(going)g(out)h(from)f (it.)282 6197 y(Step)451 b(2)g(unfolds)h(inherited)f(reference)e(edges) i(b)-34 b(y)451 b(pushing)h(them)f(do)-34 b(wn)453 b(the)e(sub)34 b(class)451 b(hierarc)-34 b(h)g(y)-101 b(.)678 b(This)451 b(can)-1600 7853 y(b)34 b(e)357 b(done)h(e\016cien)-34 b(tly)356 b(b)-34 b(y)358 b(tra)-34 b(v)g(ersing)358 b(the)f(sub)34 b(class)358 b(edges)f(in)g(a)h(top-do)-34 b(wn)359 b(fashion,)368 b(starting)358 b(with)g(no)34 b(des)357 b(with)i(no)-1600 9509 y(sub)34 b(class)347 b(edges)f(coming)g(in)-34 b(to)347 b(them,)358 b(and)347 b(\\collecting")f(reference)f(edges)h(as)g(w)-34 b(e)347 b(go)f(do)-34 b(wn.)521 b(Details)346 b(are)g(omitted.)282 11725 y(Step)394 b(3)e(can)h(b)34 b(e)393 b(view)-34 b(ed)393 b(as)g(taking)g(the)g(transitiv)-34 b(e)394 b(\(non-re\015exiv)-34 b(e\))393 b(closure)f(of)h(the)h(sub)34 b(class)393 b(relation.)534 b(This)-1600 13381 y(step)405 b(can)f(b)34 b(e)404 b(done)g(in)h(parallel)e(with)i(Step)g(2.)282 15597 y(F)-101 b(or)560 b(the)g(b)34 b(ound)562 b(on)e(the)h(size)e(of) h(the)h(resulting)f(graph,)599 b(note)561 b(\014rst)g(that)g(only)f (Step)h(1)f(ma)-34 b(y)560 b(c)-34 b(hange)560 b(the)-1600 17253 y(n)-34 b(um)g(b)34 b(er)540 b(of)f(no)34 b(des)539 b(b)-34 b(y)539 b(at)h(most)f(doubling)h(it.)942 b(Next,)573 b(note)539 b(that)h(since)e(Steps)i(2)f(and)g(3)g(do)g(not)h(c)-34 b(hange)539 b(the)-1600 18909 y(connectivit)-34 b(y)373 b(structure)h(of)f(the)h(graph,)379 b(w)-34 b(e)374 b(can)f(deal)g (with)h(eac)-34 b(h)373 b(connected)g(comp)34 b(onen)-34 b(t)375 b(separately)-101 b(.)527 b(Consider)-1600 20565 y(suc)-34 b(h)355 b(a)f(comp)34 b(onen)-34 b(t)355 b(with)g Fu(n)e Fv(no)34 b(des.)522 b(Since)354 b(it)g(is)g(connected,)364 b(there)353 b(are)h(at)g(least)g Fu(n)169 b Fs(\000)g Fv(1)353 b(no)34 b(des)354 b(in)g(the)h(comp)34 b(onen)-34 b(t)-1600 22221 y(b)34 b(efore)415 b(Steps)h(2)f(and)g(3.)571 b(Since)415 b(these)h(steps)f(do)h(not)f(in)-34 b(tro)34 b(duce)416 b(no)34 b(des)415 b(or)g(parallel)f(edges,)j(they)e(ma)-34 b(y)415 b(in)-34 b(tro)34 b(duce)-1600 23877 y(at)437 b(most)g Fu(O)34 b Fv(\()p Fu(n)5074 23437 y Fn(2)5599 23877 y Fv(\))437 b(new)f(edges.)636 b(W)-101 b(e)436 b(ma)-34 b(y)436 b(therefore)g(conclude)h(that)g(the)g(n)-34 b(um)g(b)34 b(er)438 b(of)f(no)34 b(des)436 b(in)h Fr(Simplify)o Fv(\()p Fu(G)p Fv(\))g(is)g(at)-1600 25533 y(most)405 b(doubled)g(and)g(the)f(n)-34 b(um)g(b)34 b(er)405 b(of)g(edges)f(is)g (at)g(most)h(squared.)-1600 30078 y Fx(B)1793 b(T)-149 b(arget)598 b(language)f(for)h(static)h(compilation)-1600 33495 y Fv(Static)432 b(tra)-34 b(v)g(ersal)431 b(compilers)f(compile)g (strategies)h(and)h(class)f(graphs)h(in)-34 b(to)432 b(an)f(ob)67 b(ject-orien)-34 b(ted)433 b(program)e(where)-1600 35151 y(the)425 b(sequence)g(of)g(metho)34 b(ds)426 b(in)-34 b(v)g(ok)g(ed)426 b(b)-34 b(y)425 b(an)g(ob)67 b(ject)426 b(dep)34 b(ends)426 b(only)f(on)g(the)h(ob)67 b(ject)426 b(structure)f(and)h(the)f(metho)34 b(d)-1600 36807 y(name)404 b(\(no)h(parameter)f(passing)h(is)f(allo)-34 b(w)g(ed\).)540 b(F)-101 b(ormally)g(,)403 b(the)h(language)h(is)e(de\014ned)j(as)e (follo)-34 b(ws.)282 39023 y(A)316 b Ft(pr)-62 b(o)g(gr)g(am)315 b Fv(in)h(the)h(target)f(language)h(is)f(a)g(partial)g(function)h(whic) -34 b(h)318 b(maps)e(a)h(class)e(name)i(and)g(a)f(metho)34 b(d)317 b(name)-1600 40679 y(to)466 b(a)f(metho)34 b(d.)723 b(A)465 b(metho)34 b(d)466 b(is)f(a)h(tuple)f(of)h(the)g(form)f Fs(h)p Fu(l)24786 40861 y Fn(1)25312 40679 y Fu(:m)26713 40861 y Fn(1)27239 40679 y Fu(;)202 b(:)g(:)g(:)f(;)h(l)30295 40861 y Fp(n)30921 40679 y Fu(:m)32322 40861 y Fp(n)32948 40679 y Fs(i)p Fv(,)480 b(where)466 b Fu(l)38165 40861 y Fn(1)38892 40679 y Fu(:)202 b(:)g(:)f(l)40870 40861 y Fp(n)41935 40679 y Fs(2)439 b(L)465 b Fv(and)h Fu(m)47965 40861 y Fn(1)48693 40679 y Fu(:)202 b(:)g(:)f(m)51373 40861 y Fp(n)-1600 42335 y Fv(are)358 b(metho)34 b(d)360 b(names.)524 b(When)359 b(in)-34 b(v)g(ok)g(ed,)369 b(suc)-34 b(h)359 b(a)g(metho)34 b(d)360 b(executes)e(b)-34 b(y)360 b(in)-34 b(v)g(oking)359 b Fu(l)36712 42517 y Fp(i)37088 42335 y Fu(:m)38489 42517 y Fp(i)39223 42335 y Fv(in)g(order.)523 b(W)-101 b(e)359 b(distinguish)-1600 43991 y(t)-34 b(w)g(o)451 b(kinds)e(of)h(metho)34 b(ds:)630 b Ft(visiting)447 b Fv(and)j Ft(non-visiting)p Fv(,)458 b(prescrib)34 b(ed)449 b(b)-34 b(y)450 b(a)f(predicate)g Fr(visit)f Fv(de\014ned)i(on)f(the)h (set)g(of)-1600 45647 y(metho)34 b(d)405 b(names.)282 47863 y(An)507 b(in)-34 b(v)g(o)34 b(cation)508 b(of)f(a)g(program)h (is)e(de\014ned)j(as)e(follo)-34 b(ws.)848 b(If)507 b(\012)g(is)g(an)h (ob)67 b(ject)508 b(graph,)533 b Fu(o)506 b Fv(a)h(no)34 b(de)508 b(in)f(\012,)533 b Fu(m)507 b Fv(a)-1600 49519 y(metho)34 b(d)405 b(name,)f Fr(P)g Fv(a)g(program)h(in)f(the)g(target) h(language,)f(and)h Fu(H)502 b Fv(a)404 b(sequence)g(of)g(ob)67 b(jects,)405 b(then)g(the)f(judgmen)-34 b(t)20307 52181 y(\012)337 b Fs(`)22260 52363 y Fp(c)23059 52181 y Fu(o)g Fv(:)f Fu(m)h Fv(:)f Fr(P)270 b Fj(\003)f Fu(H)-1600 54844 y Fv(means)484 b(that)g(when)g(sending)g(the)g(message)f Fu(m)g Fv(to)h Fu(o)p Fv(,)502 b(w)-34 b(e)484 b(get)f(a)h(tra)-34 b(v)g(ersal)483 b(of)g(the)h(ob)67 b(ject)484 b(graph)g(\012)g (starting)g(in)-1600 56500 y Fu(o)e Fv(so)h(that)h Fu(H)581 b Fv(is)483 b(the)g(tra)-34 b(v)g(ersal)483 b(history)-101 b(.)775 b(F)-101 b(ormally)g(,)501 b(this)483 b(holds)h(when)g(the)f (judgmen)-34 b(t)485 b(is)d(deriv)-67 b(able)482 b(using)h(the)-1600 58156 y(follo)-34 b(wing)405 b(rules:)5393 60518 y(\012)337 b Fs(`)7346 60700 y Fp(c)8145 60518 y Fu(o)8733 60700 y Fp(i)9445 60518 y Fv(:)g Fu(m)11183 60700 y Fp(i)11895 60518 y Fv(:)g Fr(P)270 b Fj(\003)f Fu(H)15833 60700 y Fp(i)18728 60518 y Fs(8)p Fu(i)336 b Fs(2)h Fv(1)p Fu(::n)p 5393 61057 17915 45 v 6314 62170 a Fv(\012)h Fs(`)8268 62352 y Fp(c)9067 62170 y Fu(o)e Fv(:)g Fu(m)h Fv(:)g Fr(P)270 b Fj(\003)f Fu(o)g Fs(\001)g Fu(H)17466 62352 y Fn(1)18260 62170 y Fs(\001)g Fu(:::)g Fs(\001)g Fu(H)21760 62352 y Fp(n)25730 60417 y Fv(if)404 b Fr(P)p Fv(\()p Fr(Class)p Fv(\()p Fu(o)p Fv(\))p Fu(;)202 b(m)p Fv(\))338 b(=)e Fs(h)p Fu(l)36716 60599 y Fn(1)37242 60417 y Fu(:m)38643 60599 y Fn(1)39371 60417 y Fu(:)202 b(:)g(:)f(l)41349 60599 y Fp(n)41975 60417 y Fu(:m)43376 60599 y Fp(n)44002 60417 y Fs(i)p Fv(,)404 b(and)25730 62259 y Fr(visit)n Fv(\()p Fu(m)p Fv(\),)h(and)g Fu(o)34089 61557 y Fp(l)34370 61692 y Fm(i)33799 62259 y Fs(!)337 b Fu(o)35936 62441 y Fp(i)36715 62259 y Fv(is)404 b(in)g(\012)g(for)h (all)e Fu(i)336 b Fs(2)h Fv(1)p Fu(::n)p Fv(.)-1600 64521 y(and)5393 66648 y(\012)g Fs(`)7346 66830 y Fp(c)8145 66648 y Fu(o)8733 66830 y Fp(i)9445 66648 y Fv(:)g Fu(m)11183 66830 y Fp(i)11895 66648 y Fv(:)g Fr(P)270 b Fj(\003)f Fu(H)15833 66830 y Fp(i)18728 66648 y Fs(8)p Fu(i)336 b Fs(2)h Fv(1)p Fu(::n)p 5393 67187 V 7046 68300 a Fv(\012)g Fs(`)8999 68482 y Fp(c)9798 68300 y Fu(o)g Fv(:)f Fu(m)h Fv(:)f Fr(P)270 b Fj(\003)f Fu(H)16734 68482 y Fn(1)17529 68300 y Fs(\001)g Fu(:::)f Fs(\001)h Fu(H)21028 68482 y Fp(n)25730 66547 y Fv(if)404 b Fr(P)p Fv(\()p Fr(Class)p Fv(\()p Fu(o)p Fv(\))p Fu(;)202 b(m)p Fv(\))338 b(=)e Fs(h)p Fu(l)36716 66729 y Fn(1)37242 66547 y Fu(:m)38643 66729 y Fn(1)39371 66547 y Fu(:)202 b(:)g(:)f(l)41349 66729 y Fp(n)41975 66547 y Fu(:m)43376 66729 y Fp(n)44002 66547 y Fs(i)p Fv(,)404 b(and)25730 68389 y Fs(:)p Fr(visit)n Fv(\()p Fu(m)p Fv(\),)h(and)g Fu(o)34897 67686 y Fp(l)35178 67821 y Fm(i)34607 68389 y Fs(!)337 b Fu(o)36744 68571 y Fp(i)37523 68389 y Fv(is)404 b(in)g(\012)h(for)f(all)f Fu(i)337 b Fs(2)f Fv(1)p Fu(::n)p Fv(.)-1600 70651 y(The)382 b(lab)34 b(el)380 b Fu(c)h Fv(of)h(the)f(turnstile)h(indicates)g(\\co) 34 b(de".)530 b(In)-34 b(tuitiv)g(ely)-101 b(,)386 b(the)381 b(rule)g(sa)-34 b(ys)382 b(that)g(when)g(sending)g(the)g(message)-1600 72307 y Fu(m)351 b Fv(to)g Fu(o)p Fv(,)360 b(w)-34 b(e)351 b(c)-34 b(hec)g(k)351 b(if)g Fu(o)f Fv(understands)i(the)f(message,)361 b(and)352 b(if)e(so,)362 b(w)-34 b(e)351 b(in)-34 b(v)g(ok)g(e)350 b(the)i(metho)34 b(d.)521 b(The)351 b(ob)67 b(ject)352 b Fu(o)e Fv(is)g(added)24594 75628 y(44)p eop %%Page: 45 46 45 45 bop -1600 2325 a Fv(to)379 b(the)f(tra)-34 b(v)g(ersal)378 b(history)g(only)g(if)g Fr(visit)o Fv(\()p Fu(m)p Fv(\))h(is)f(true.) 530 b(Notice)378 b(that)h(for)f Fu(n)336 b Fv(=)h(0,)383 b(the)378 b(rule)g(is)g(an)h(axiom;)386 b(in)378 b(the)g(case)-1600 3981 y(that)405 b Fr(visit)o Fv(\()p Fu(m)p Fv(\))g(is)f(true,)g(it)g (is)g(simply)p 12866 6573 9268 45 v 12866 7686 a(\012)337 b Fs(`)14819 7868 y Fp(c)15618 7686 y Fu(o)f Fv(:)h Fu(m)g Fv(:)f Fr(P)270 b Fj(\003)f Fu(o)24556 6854 y Fv(if)404 b Fr(P)q Fv(\()p Fr(Class)p Fv(\()p Fu(o)p Fv(\))p Fu(;)202 b(m)p Fv(\))337 b(=)g Fs(hi)-1600 10159 y Fv(and)405 b(if)f Fr(visit)n Fv(\()p Fu(m)p Fv(\))i(is)d(false,)h(then)h(it)f(is)p 12914 12752 9173 45 v 12914 13864 a(\012)337 b Fs(`)14867 14046 y Fp(c)15666 13864 y Fu(o)f Fv(:)h Fu(m)g Fv(:)f Fr(P)270 b Fj(\003)f Fu(\017)24508 13033 y Fv(if)404 b Fr(P)q Fv(\()p Fr(Class)p Fv(\()p Fu(o)p Fv(\))p Fu(;)202 b(m)p Fv(\))337 b(=)g Fs(hi)p Fv(,)-1600 16270 y(where)404 b Fu(\017)g Fv(denotes)h(the)g(empt)-34 b(y)404 b(history)-101 b(.)282 18486 y(Giv)-34 b(en)388 b(a)g(program)g(in)g(the)g(target)g (language,)k(it)c(is)f(straigh)-34 b(tforw)g(ard)391 b(to)d(generate,)j(for)d(example,)i(a)e(C)48295 18225 y Fi(++)49925 18486 y Fv(or)g(a)-1600 20142 y(Ja)-34 b(v)-67 b(a)404 b(program.)24594 75628 y(45)p eop %%Trailer end end