Aalz HH $ @d HHHHff@  d Footnote TableFootnote**.\t.\t/ - :;,.!?6 `  `TOCHeading1Heading2   EquationVariablesheg@e @f ghTg#ieg9jng@kvaklgKm} a q b a 4TQ ) I >hy )<$lastpagenum> *<$monthname> <$daynum>, <$year>ja8 +"<$monthnum>/<$daynum>/<$shortyear> ,;<$monthname> <$daynum>, <$year> <$hour>:<$minute00> <$ampm>( -"<$monthnum>/<$daynum>/<$shortyear> .<$monthname> <$daynum>, <$year> /"<$monthnum>/<$daynum>/<$shortyear> 0 <$fullfilename> 1 <$filename> 2 <$paratext[Title]> 3 <$paratext[Heading1]> 4 <$curpagenum> 5 <$marker1> 6 <$marker2> 7 (Continued) 8+ (Sheet <$tblsheetnum> of <$tblsheetcount>)* 9Heading & Page <$paratext> on page<$pagenum> :Pagepage<$pagenum> ;See Heading & Page%See <$paratext> on page<$pagenum>. < Table All7Table<$paranumonly>, <$paratext>, on page<$pagenum> =Table Number & Pagea'Table<$paranumonly> on page<$pagenum>  FFAe HHA JJ g A NN PP ZZ  SSAe>  jjA/  i<$5y  v5|  v>nu5  ug { jnda5 ! ur5 " tunag% # v fig' $ jDg) % kTg+ & ja[Hg- ' vD g/ ( jDm g1 ) rb2 * j jrb3 + j jnb4 , jhtbc - o3.ed . v vHed / b ved 0 b bpb 1 v bc 2 n4.;b 3 { vngeb 4 vr1.nb 5 u2.<b 6 v ve^ 7 j jl$pb 8 v vo<a 9 { {Taa : j v&'a ; j jay>a < jp>a = j j^ > j jF^ ? j je^ @ j jd A b bcg B j vJc C { vch D j vd E b bci F j vc G j jPc H v vck I j jc6 J q -_G K { {g3 L Aeg5 M xg7 N   g> O aygE P a|>gG Q bDgI R ngP S argR T augT U bD% gV V 'DgX W j)TgZ X j+ag\ Y bD-Dg^ Z /Dmg` [ j1rgb \ j2rgc ] v3ngd ^ v v4hge _ v vogf ` ~ vgg a q be-gh b q q-gi c q q-gj d qgk e q b.-gl f q q-c7 g q -a h ju2.a i j jva j j jja k j jva l j j{a m j jja n j jja o j ja p j jja q j jja r j jja s jja t j jba u j jja v j j{a w j jja x j jba y j jja z j jjc9 { q v-c; | q j-cl } j jqa ~ j j{a  j ja j jx\ y ya j jaa j jaa j jba j ja j jab j jab j jbb j vcm j jjcn j vjco j vbcp j vcq j vjcr j vjc jvc j jvc v vv\ j y~\ j vq\ j vq\ j vq\ j jc jqc jq\ j jqc jjc v vjc jjc jjc jjc jjc jjc j jjc v jjc j jjc jjc v vc j vjc j jjc j jjc v jjc j jjc j jjc j jjc j jqc j jqc j jjc j jjc j jjc v vjc v jyc j jjc j jjc j jjc j jjc j jjb| { vjb} { vje v vje v vje j jjf j jjf j jjh6 { vjh7 v vjh8 jjf { bjf v vvf v vjf j vjf j jjf j jjf! j jjf" j jjf# j jjf$ j jjf% j jjf& j jvf' j jjf( j jjf) j jjf* j jjf+ j jjf, j jjf- j jvf. j jjf/ j jjf0 j jvf1 j jjf2 j jjf3 j jjf4 j jvf5 j jjf6 j jjf7 j jjf9 { bjf: v vjf; v vjfr j vjfs j jjft j jvfu j jvfv j jjfw j jjf} j jjf~ j jjfz j jjfE j j{f{ j j{f j jvf j jvf { {jfO j jjfP j jjfQ j j{fR j jvfS j jjfT j j{fU j jvf` v vvfa v vj\  j jjc  j jjc  j vjc  v vjc  j jjc  j jjc  j jjc  j jjc  j jjc  v vjc  { vjc  v vjc  j vj]  j jj]  j jjc  j jjc  j jjc j jjc ! j jjc " j jj] # j jj] $ j jjc % v vjc & v vjc ' v vjc ( v v{] ) j jvc * v vv] + { yjh9 , jj] - j yjh: . jjd / j jjd 0 j jjd 1 j jjd 2 j jjd 3 j jjd 4 v vjd 5 v vjh; 6 jjh< 7 jjd 8 v v{d 9 q qj-d : j jjd ; j jjd < j jjh= = j jjh> > j jjh? ? j jjh@ @ j jvhA A jvhB B jjhC C jjhD D jjhE E jvhF F v vjhG G j jjhH H j jje. I b vjd J vje/ K q bv-d L b b{hI Q j jvhJ R j jjhK S j jjhL T j jjhM U j jjhN V j jjhO W j jjf ^ v vjf _ j vjf ` j jjf a j jjf b j jvf c j jvf d j jvf e j jvf f j jjf g j jvf h j j{f i j jjf j j jjg k j jjg l j je( m j jje0 n b bje7 o q bj-e: p q qj-g q j jvg r j jvg s j jjg t j jjhx u { jvhy v v vqhz w v vjh{ x v vjh| y v vjh} z j vjh~ { j jjh | j jjh } j jjh ~ j jjh  j jjh j jjh j jjh j jjh j jvh j jjh v jjh j jbh j jh j jqh j jbh j jjh j jjh j jjh j jjh j jjh j jjh j jjh j jve j jje j jje { jje j jje j jje j jje j jje j jje j jje j jje j jje j jje j jje j jje j jje j jbe j jqh0 j jq5 pg dq5jjPFhxdq6vjJHh|dq7jj8ChHm3R q897 jjHm3R H RH R FootnoteHr@ q98:7 jHr@ HzHz  Single LineH'q:9<7 j;;Footnote j  5_;:j     HD q<:=7 eHD HH  Double LineH q=<@7e>?j Double Line j5c>?=j5e?>=ee jH q@=B7 AA Single Linej5hA@HZqB@C7q TableFootnoteEGxR qCB7 9EGxR EPwEPw  TableFootnoteodbDLLHH5xE5 HHF e   HH5zFN5 HHlEE DHH5{G6 HH@>?HDo d   HH5}HJ6HHlGG HUV 5~I6 HUV AAJUUh  f15e AHUV 5JH6HUV lII HHbKD xHHR Lw  h K )Message-Passing Ship Implementationl UT UT` /(define (make-spaceship x-pos y-pos time-left) %UR UT`  (define (move dx dy) :UP UT`  (set! x-pos (+ x-pos dx)) OUN UT`  (set! y-pos (+ y-pos dy)) dUL UT`  (list x-pos y-pos)) yUJ UT` ˭ (define (count-down) GUH UT`  % (set! time-left (- time-left 1)) UF UT` >  (if (<= time-left 0) UD UT` ?  blast-off HUB UT` @ " time-left))  ; no bug U@ UT`  G (define (dispatch message) ~U> UT`  % (cond ((eq? message move) move)  U< UT` # A1 ((eq? message count-down) count-down) 5!U: UT` $ / (else (error "No method" message)))) 6U8 UT` ) dispatch) M `  fU6 UT` - +(define enterprise (make-spaceship 0 0 2)) {U4 UT` 7 ˪#((enterprise move) 1 2) ==> (1 2) HHbLDiHHlgKK  tiHUV 5M5 ovHUV s (+ x-pNUTUUe ! po +HUV 5NPF5 poHUV lMM UHH$ 5O5 mleH$  >eft 0) P ?UUe "  BH$ 5PN5;o H$ lOO daQ)ovS HHaRQ 5U:HHv hod" mesSU8 ` 9 ch"Data-Directed Ship Implementation &UT UT` : in n;UR UT` ; ce(define (install-ship-package) ˪PUP UT` < ve ;; Internal representation eUN UT` = 0 (define (make-ship x y time) (list x y time)) zUL UT` p K$ (define (ship-x ship) (car ship)) UJ UT` q # (define (set-ship-x! ship new-x) UH UT` r  (set-car! ship new-x)) e !UF UT` s  ... UD UT` t  (define (move ship dx dy) UB UT` u ' (set-ship-x! (+ (ship-x ship) dx)) 5U@ UT` v m' (set-ship-y! (+ (ship-y ship) dy))  U> UT` w ( (list (ship-x ship) (ship-y ship))) B"U< UT` x  (define (count-down ship) 7U: UT` y ( (let ((time (ship-time-left ship))) LU8 UT` z a" (set-time-left! (- time 1)) aU6 UT` * 1 (if (<= time 0) blast-off time)  ;bug! vU4 UT` +  U2 UT` , - ;; External representation - tagged object 9U0 UT` ~ d - (define (tag x) (attach-tag spaceship x)) RU. UT`  (d (put make spaceship e)U, UT` <. (lambda (x y t) (tag (make-ship x y t)))) U* UT` e  (put move spaceship xU( UT` UT- (lambda (s dx dy) (tag (move s dx dy)))) ) U& UT` q* (put count-down spaceship count-down) U$ UT`  done -c3U" UT` ! ) UTHU UT` .  D]U UT` (define (move obj dx dy) rU UT` " (apply-generic move obj dx dy) HHaSQ- (HHlRR -x HwgTe U\fhU:$QhgUVTef$Qh|Fw$[$ۥgVUWTW\ ) |Fw$[$ۥ|FO]|FO] Data) |F$[AۥgWVXTV\ + |F$[Aۥ|FO]|FO] Directeden-lgXWYT -l~`ۥgYXZT d ~`ۥ Object-Orientedmbd g ZY\TT l[[  (l g![T &UT coet-down) n}]Z  @h ] ٪i !|Fw$[A!ۥg"\ZT |Fw$[A!ۥVW 7g$]_Tger 7[i ` #  -f`g&^Tf`[iUT UTa $   5g(_]cT 5[ief ` % ΄FType $|1g*`T[$|1[i|F$[UT UTa &  X9g,aTFO]9[ig a '   9f`g.bT9f`[iۥUT UTa ( Ob t 9}g0c_dT\ 9}[iUT UT` ) (spaceship) (l$9|1g2dckT&UT$9|1co[iUT UT` L } (planet) d^e[ggHH^fe g$HH er  [iTTg ` `Managing Large Systems )  h ^ `h T ` _  Tu ` ` Operation-Centric: g( ` a Generic operations  ` b Dispatch on type F ` c 1Data-directed programming  ` d 1Type/Object-Centric: F ` e &Message passing  ` f %Object-oriented programming (today!) HH^geHHlLff dhWhjHHhXih HH|(sj ` u Multiple Inheritance ) ` v } p? ` w @Can have objects that inherit methods from more than one type. U  x 9Suppose rather than a named speaker we have an anonymous k @ x icomic: ` y  UT UT` z gi(define (make-comic) UR UT` {  (lambda (message) UP UT` | ` (case message UN UT` } ((SAY) iUL UT` ~  (lambda (self stuff) tyUJ UT`  c5 (display-message (append stuff (ha ha))))) yUH UT` F ((JOKE) 'UF UT` in (lambda (self)  UT`  U< UT`  (define eric U: UT`  (let ((comic (make-comic)) U8 UT` 3 (lecturer (make-canadian-lecturer Eric))) e U6 UT` } (lambda (message) U4 UT` tE ( get-method  message  lecturer   comic )))) uU2 UT` a  e$U0 UT` an(ask eric JOKE) 9U. UT` c:A duck walks into a bar NU, UT` gi dcU* UT` #(ask eric SAY (The sky is blue)) agexU( UT` |The sky is blue Eh? e HHhZjhHHlii 5 Ryg4kdlTh))`y F[i(JO)  ` M in Operations bdaRf`"g6lkmTpy-Rf`" i[i)))UT UT` N move  R}"g8mluT  R}""No[irea aUTUT h O j T Z|g:nvTnerot[j et-g;osnst -?g<sotnotT?-$g=tsn -$os$R|1"g?um{T2UT$R|1""UT[ian(aUTUT h P U.k $Z|gAvn}TTwy[k -gBwxvxy(UT-?gCxwyvwyZ?-$gDyxv-$wxu$gFzTh))u$ F[i(JO)  a Q in puf`$gH{u|Tmuf`$`[i iiUT UT` R UT count-down mo u}$gJ|{T u}$$[ieaUTUT h S Om  ||gL}vTn~[m -gM~}t-?gN~}~tT?-$gO} -$~$u|1$gQ|T2$u|1$ [ianUTUT` T P .gST[[i   a U  Bf`gUTf`y[iZUT UT` V   }gWT }[igFUT UT` W )) $|1gYT$|1`[igHUT UT` X  g[TTmo[i} a Y  f`g]Teaf`[i|UT UT` Z   }g_T  }[itUT UT` [  $|1gaTT$|1[igOUT UT` \   db1HHb P .HH7gS  [ ` + Object-Oriented Programming ) ` .  J ` / 1960s: Simula Zk ` 0 V1970s: Smalltalk ` A  1980s: C++ ` E 1990s: Java F ` 6 W ) ` 8   8 IIndividual entities or  objects  which are categorized into groups   8 g[Jor  classes  that behave similarly, but with individual differences  @ 8 2based on internal state of each  instance . 1 ` 1  zmb  NSQzmmb  NQtmzm$b QTzm$HHb HHlL dbmb  NQm mb  NQnmm$bQZm$mb NQsC+m` Emb NQ)m m$bQr m$vb Q8g[v havvvb Qvn iervv;m? b Q;m? b  N;mzvvb Qb vtvvb Qvvvb Qvvmb NQm m;m$bQ;m$h[?b NQ nh\" procedure w  5 DPrivate State : gives each object (each instance of a class) the @ 5 ability to behave differently ` g Local environment ` - 'Methods  for responding to messages  ` { 4Scheme procedures (take method-dependent arguments)   2 hFAn  Inheritance Rule  telling what method to use if no specific  @ 2 &method is defined for a given message % ` | a.Need to add conventions on messages & methods HHbHHl dbN UT$~arer$~_: a  eit_: _#Õ_#Õ my-ship7Ob a red  9$ b>: b NQ b>: kk my-shipt (\ UT`  : ` %Or, with an alternative case syntax: NU< UT`  cU: UT` (define (make-speaker name) xU8 UT`  (lambda (message) U6 UT`  (case message U4 UT`  ((NAME) (lambda () name)) ctU2 UT` V ((CHANGE-NAME) U0 UT` UT1 (lambda (new-name) (set! name new-name))) TU. UT` G am ((SAY) U, UT` d  (lambda (list-of-stuff) (la U* UT` UN) (if (not (null? list-of-stuff)) C U( UT` UL. (display-message list-of-stuff)) 5U& UT` e) 'NUF-SAID)) JU$ UT` me (else (no-method))))) Z$aFUTZ$HHbDUTHHl )) dbSD) )a N);a Na ;)$a-ea)$?a T?se ssDDD6a  V6NAM )2a -n2 G22Z$ai-oZ$HHb --sHH* lay-messuf ` OO System - Version 1 Contd ) ` ls n?  @Abstract out retrieval of method from the object (given the mesU @ b sage)... k `  ~UT UT` $(define (get-method message object) UR UT`  (object message)) UP UT`   A... and the combined retrieval and application of that method to @ the arguments:  `  UN UT` $(define (ask object message . args) UL UT` . (let ((method (get-method message object))) )UJ UT`  (if (method? method) >UH UT`  (apply method args) SUF UT` 3 (error "No method for message" message)))) hUD UT`   ` +Detection of methods (or missing methods): UB UT`   U@ UT` -"(define (no-method) (NO-METHOD)) U> UT` y- sU< UT` (define (method? x) U: UT` io (cond ((procedure? x) #t) lsU8 UT` ! ((eq? x (no-method)) #f) hU6 UT` (9 (else (error "Object returned non-message" x)))) &U4 UT` UT HHbtHHl dbn r f atHHb es:HHZ$(definme ` ϪExample ) `  -m o george (eUL UT`   sUJ UT`  $(ask p SAY (I cannot tell a lie)) UH UT`  mI cannot tell a lie hoUF UT` ˪ ==> nuf-said @ `  (d n ` % -M O ` & 3What if we want a speaker to call its own method?? U:( ` '  n> ` ( #t;Problem : no access to the "object" from inside itself! U6T ` * :Solution : add explicit "self" argument to all methods HHb HHl dc HHc HHs(d `  !A Specialized Speaker (Subclass) ) ` 4 o T?  5 (dXWant  lecturers  to be a kind of  speaker  - that  inherit  the behav) U @ 5 *ior of speakers but add to that behavior: k `  (a p~UT UT`  el(define (make-lecturer name) mUR UT`  li' (let ((speaker (make-speaker name))) UP UT`  n (lambda (message) UN UT`  (case message eaUL UT` ! n  ((LECTURE) UJ UT` "  (lambda (self stuff) UH UT` 0 t"# (delegate speaker self ` *UF UT` m : + SAY (Good Morning!)) H&UD UT` / b0 (delegate speaker self SAY stuff))) ;UB UT` 1 0 (else (get-method message speaker)))))) PU@ UT` 2  eU> UT` : "(define d (make-lecturer Duane)) zU< UT` ; )(ask d LECTURE (Today we learn more)) U: UT` < (dGood Morning! U8 UT` 3 ecToday we learn more as ` J 4%Approach: Inheritance by Delegation l ` I a1Inherit behavior by adding an "internal" speaker  ` K AGet internal object to act on behalf of object by  delegation  ` n ٪,If message is not recognized, pass the buck UTA ` L et#Can change or specialize behavior: UPW ` o Add new methods ) m ` p Change operation of methods UTHHc!THHl # dd5T SHHd6 HH$ak;UB UT   ` ss#Object-Oriented System - Version 2 ) ` :   (set! name new-name) UF UT` ? 9  (ask self SAY (list call me name)) )) oUD UT` @ uc ((SAY) UB UT` A ge, (lambda ( self  list-of-stuff) U@ UT` B ) ) (if (not (null? list-of-stuff)) e#U> UT` C . (display-message list-of-stuff)) 8U< UT` D  'NUF-SAID)) MU: UT` E  (else (no-method))))) d ` F  xU8 UT` G $(define (ask object message . args) U6 UT` H ak. (let ((method (get-method message object))) U4 UT` Q  (if (method? method) yU2 UT` R + (apply method  object  args) (dU0 UT` S r 3 (error "No method for message" message)))) fUPU. UT` T  cU, UT` U UT(ask p CHANGE-NAME fred) lam U* UT` V n Call me fred T U( UT` W  HHHd8adaHHl et!dfV almHHfW SAHHygelf  l   ` Another Subclass l)  U>>Want a "Canadian Lecturer" that changes the basic way of talk? @ ,ing: append "Eh?" to everything he says... U ` me dhUT UT` &(define (make-canadian-lecturer name) }UR UT` ag) (let ((lecturer (make-lecturer name))) mUP UT` me (lambda (message) UN UT` (i (case message U2UL UT`  ((SAY) od UJ UT` s) (lambda (self stuff) UH UT` d # (delegate lecturer self UF UT` UT3 SAY (append stuff (Eh?))))) UD UT` fr1 (else (get-method message lecturer)))))) 8%UB UT` a a:U@ UT` *(define (delegate to from message . args) OU> UT` * (let ((method (get-method message to))) dU< UT`  (if (method? method) yU: UT` ! (apply method from args) U8 UT` ' (error "No method" message)))) AnU6 UT`  U4 UT` a$(define (ask object message . args) baU2 UT` / (apply delegate object object message args)) g hU0 UT`  U. UT` UT*(define e (make-canadian-lecturer Eric))  U, UT` ˪ (ask e SAY (The sky is blue)) le!U* UT` UPThe sky is blue Eh? (l6U( UT` UN TKU& UT` $(ask e LECTURE (The sky is blue)) `U$ UT` UJGood Morning! uU" UT` (The sky is blue UTHHfY lfHHl tufdg (ecterA@7 hjh A@7 A@@E|A@@E| e J@RE| hh(gJ@RE|  to) S@mE|J@RE|J@sznۥhh J@sznۥJ@E|J@E| preferred typeɑ]isw`ۥhh e))ɑ]isw`ۥɑiɑi secondary type@IE| hhT@IE| y deg@dE|@IE|A@7Kt8hhU.A@7Kt8HHg ,UTHHSA!U* UT Th ` UTFixing the Bug KU&) ` (a e? ` y  bU ` ٪ k ` !  "~UT UT` Th(define (make-lecturer name) UR UT` ' (let ((speaker (make-speaker name))) UP UT`  (lambda (message) UN UT`  (case message UL UT` ct ((LECTURE) UJ UT`  (lambda (self stuff) UH UT` @+  (delegate speaker self  J@UF UT` ) 3  SAY (Good Morning!))  &UD UT` 2  (delegate speaker self SAY stuff) ;UB UT` 0  (ask self SAY (Good Morning!)) PU@ UT` @' (ask self SAY stuff) )) eU> UT` d0 (else (get-method message speaker)))))) zU< UT` @ U: UT` *(define e (make-canadian-lecturer Eric)) U8 UT` SA (ask e SAY (The sky is blue)) U6 UT` The sky is blue Eh? FiU4 UT`  U2 UT` $(ask e LECTURE (The sky is blue)) U0 UT` Good Morning! Eh?  U. UT` (mThe sky is blue Eh? URHHgeerHHl <  UTdh) T  E)HHh*   ftuHH:@h   ` !Alternative Multiple Inheritance n) ` UT ?  BWe have lots of flexibility - suppose we want to pass the message U @ Aon to multiple internal objects (not just some "preferred" one)? hUT UT` ˪ >}UR UT`  UP UT` d (define eric )UN UT` ˪ (let ((comic (make-comic)) UL UT` ca3 (lecturer (make-canadian-lecturer Eric))) SAUJ UT` e) (lambda (message) UH UT` Eh (lambda (self . args) U2UF UT` (a (apply delegate-to-all UD UT` % (list lecturer comic) m%UB UT` Eh self :U@ UT`  args))))) OU> UT`  dU< UT` h)#(ask eric SAY (The sky is blue)) yU: UT` The sky is blue Eh? U8 UT` tuThe sky is blue ha ha U6 UT`  U4 UT`  U2 UT` l 6(define (delegate-to-all to-list from message . args) U0 UT` q (foreach BWeU. UT` r ib (lambda (to-whom)  U, UT` s e 2 (apply delegate to-whom from message args)) !U* UT` t pr to-list) ? 6U( UT` k ˪ >HHh,   (dHHl <   ) //@@h- kca//@@Eridh! :msa < < HHh" ; : a HH<to % < li ` UTOO System - Version 3 ) ` ^ UT UT` i  (object message)) 8U< UT` j  HHh$ < :HHl  ; ; d5Leftd6Rightd7to ReferencedD dQOOm d ^ din-mdot defoodbl(ldeomt d h d) UTd  od eg d nustd  : d bd a -oof a CellTiny.  f b  Bullet1\t. f cCellBody. f d  CellHeading. f e   Footnote. f fTHeading1Body. f gT Heading2Body. f hT  HeadingRunInBody. f i l yIndented. f j  Scheme. f k Body. f l   TableFootnote. f mT  TableTitleT:Table : .  f nPTitleBody. f o T  TableTitleT:Table : . f p   CellHeading. $f q $. Bullet2-\t. f r   CellFooting. f s  SchemeSig . @ t  oHeader. @ u  +> Footer. f v Body. f w Scheme. f x Body. f y Scheme. f zE.o  Numbered1.\tNumbered. f { THeading1Body.  f | Bulleted\t. f }T Heading1ContBody.  f ~ .  Bullet1\t. f   Scheme.  f  d Bullet1\t. f T Heading1ContBody. f Body. f  Scheme. f CellBody. f Equation.  f . Numbered.\t. f  HighlightNumberd.  f . Numbered.\t. f CellTiny. $f $.  Bullet2-\tf. $f $. Bullet2Highlight-\t.  f  fBullet1\t. +33f f+33. SubNumbered < >.\t.   Emphasis EquationVariables         SchemeFontet          SchemeFont          a Z Z Z  Z Z  Z N Z  Z  Z  Thin Medium Double Thick@  Very Thin-=6 -Fo. 0/ 80 1 p2 x3 4 5 (     oH p rH p rH p rH p rH p rFormat A   ou v b vu v v vu v a vu v v vFormat B   ou v b vu v v vu v a vu v v vFormat BeufxU7ye if`}|1xUe [.]/^-_0`@9xUe [1a.2b.c 3d0RxU"e [ 4k5l4m0uuxU$e [4z5{ 4| 0xUe [4H5H4mat0xUe[454v0v U e V UComment @ afe  d BlackT!WhitevddARedvFodd UGreendd  Blued Cyand UMagentad Yellow  M.Times.P Times-Roman[M.Arial Rounded MT Bold.B2 M.Times.Bc Times-Bold M.Courier.B Courier-Bold M.Courier.BICourier-BoldObliquek M.Helvetica.BHelvetica-BoldArial Rounded Monotype Bold Courier HelveticaTimesRegularRomanBoldedBold RegularObliqueItalic(3iEMTQTVYn"ze߽oNުWhyMmN@^5Z٤m֢ 4w'gieG>` 3|)tAH~A}"ja8Ec`ixyFkWf3gp fRmm!;Z@p8L.{^1A{ob W!r̞l¿EUj |W(