From 01a1338f8ee2f554ffac3f8088add33d9b8409d0 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 10 Aug 2008 01:06:15 +0000 Subject: new colors. --- LaTeX/argouml.zargo | Bin 50590 -> 51667 bytes LaTeX/chapters/implementierung.tex | 21 +- LaTeX/diplomarbeit.pdf | 6250 +++++++++++++++-------------- LaTeX/images/client-server-protokolle.eps | 100 +- LaTeX/images/client-server.eps | 6 +- LaTeX/images/core-time.eps | 34 +- LaTeX/images/core.eps | 44 +- LaTeX/images/events.eps | 38 +- LaTeX/images/exceptions.eps | 12 +- LaTeX/images/prefs-editors.eps | 62 +- LaTeX/images/prefs.eps | 16 +- LaTeX/images/protocols.eps | 44 +- LaTeX/images/serialize.eps | 10 +- LaTeX/images/simulator.eps | 36 +- LaTeX/images/utils.eps | 32 +- LaTeX/images/wrapping.eps | 333 ++ LaTeX/wrapping.zargo | Bin 0 -> 4023 bytes 17 files changed, 3746 insertions(+), 3292 deletions(-) create mode 100644 LaTeX/images/wrapping.eps create mode 100644 LaTeX/wrapping.zargo diff --git a/LaTeX/argouml.zargo b/LaTeX/argouml.zargo index 579a0d2..0b15b8e 100644 Binary files a/LaTeX/argouml.zargo and b/LaTeX/argouml.zargo differ diff --git a/LaTeX/chapters/implementierung.tex b/LaTeX/chapters/implementierung.tex index 86ed5da..6679c56 100644 --- a/LaTeX/chapters/implementierung.tex +++ b/LaTeX/chapters/implementierung.tex @@ -98,6 +98,10 @@ Alle Variablen die als Prefix \textit{lang}, \textit{keyevent}, \textit{div} ode \subsection{Editorobjekte} +Wie Variablen intern abgespeichert werden ist bereits bekannt. F\"{u}r das Editieren der Variablen werden Editor-Objekte verwendet. Auf Abbildung \ref{fig:PackagePrefsEditors} ist die Klassenstruktur des dazugeh\"{o}rigen Paketes \textit{prefs.editors} angegeben. + +Die Basis eines Editors stellt die abstrakte Klasse \textit{VSAbstractEditor} dar, dem ein \textit{VSPrefs} Objekt zum Editieren \"{u}bergeben wird. Ein Editor stellt alle verf\"{u}gbaren und nicht-versteckten Variablen des \textit{VSPrefs}-Objektes im GUI dar und bietet gleichzeitig die M\"{o}glichkeit alle Variablen dar\"{u}ber zu editieren an. F\"{u}r das Editieren von Farbwerten wird auf \textit{VSColorChooser} zur\"{u}ckgegriffen. Die Klasse \textit{VSEditorTable} ist f\"{u}r das \textit{JTable}-Objekt aus Java's Swing-Bibliothek zust\"{a}ndig, welches bei der graphischen Darstellung aller Variablen eingesetzt wird. Die abstrakte Klasse \textit{VSAbstractBetterEditor} wurde, wegen der \"{U}bersicht, als Zwischenschritt eingef\"{u}gt. + \begin{figure}[h] \centering \includegraphics[width=10.5cm]{images/prefs-editors} @@ -105,13 +109,7 @@ Alle Variablen die als Prefix \textit{lang}, \textit{keyevent}, \textit{div} ode \label{fig:PackagePrefsEditors} \end{figure} -Wie Variablen intern abgespeichert werden ist bereits bekannt. F\"{u}r das Editieren der Variablen werden Editor-Objekte verwendet. Auf Abbildung \ref{fig:PackagePrefsEditors} ist die Klassenstruktur des dazugeh\"{o}rigen Paketes \textit{prefs.editors} angegeben. - -Die Basis eines Editors stellt die abstrakte Klasse \textit{VSAbstractEditor} dar, dem ein \textit{VSPrefs} Objekt zum Editieren \"{u}bergeben wird. Ein Editor stellt alle verf\"{u}gbaren und nicht-versteckten Variablen des \textit{VSPrefs}-Objektes im GUI dar und bietet gleichzeitig die M\"{o}glichkeit alle Variablen dar\"{u}ber zu editieren an. F\"{u}r das Editieren von Farbwerten wird auf \textit{VSColorChooser} zur\"{u}ckgegriffen. Die Klasse \textit{VSEditorTable} ist f\"{u}r das \textit{JTable}-Objekt aus Java's Swing-Bibliothek zust\"{a}ndig, welches bei der graphischen Darstellung aller Variablen eingesetzt wird. Die abstrakte Klasse \textit{VSAbstractBetterEditor} wurde, wegen der \"{U}bersicht, als Zwischenschritt eingef\"{u}gt. - -Die Klasse \textit{VSSimulatorEditor} dient f\"{u}r das Editieren der globalen Simulationseinstellungen und \textit{VSProcessEditor} f\"{u}r das Editieren der Prozesseinstellungen sowie der dazugeh\"{o}rigen Protokollvariablen. Da diese beiden Klassen von \textit{VSAbstractBetterEditor} erben, k\"{o}nnen sie mithilfe von \textit{VSEditorFrame} in einem separaten Fenster angezeigt werden. Alternativ k\"{o}nnen die Editoren auch in der Sidebar im Tab ``Variablen'' angezeigt werden. Auf Abbildung \ref{fig:Simulationseinstellungen} wurde bereits ein \textit{VSEditorFrame} in Aktion gesehen. - -F\"{u}r Protokolle gibt es keine separate Editor-Klasse, da sie bereits vom Prozesseditor aus editiert werden k\"{o}nnen. Dabei iteriert der Prozesseditor \"{u}ber alle f\"{u}r den jeweiligen Prozess verf\"{u}gbaren Protokollobjekte und f\"{u}gt deren Variablen zus\"{a}tzlich in den Prozesseditor ein. Somit erscheinen die Prozess- und die dazugeh\"{o}rigen Protokollvariablen im selben Editor, womit dem Benutzer eine bessere \"{U}bersicht geboten wird. +Die Klasse \textit{VSSimulatorEditor} dient f\"{u}r das Editieren der globalen Simulationseinstellungen und \textit{VSProcessEditor} f\"{u}r das Editieren der Prozesseinstellungen sowie der dazugeh\"{o}rigen Protokollvariablen. Da diese beiden Klassen von \textit{VSAbstractBetterEditor} erben, k\"{o}nnen sie mithilfe von \textit{VSEditorFrame} in einem separaten Fenster angezeigt werden. Alternativ k\"{o}nnen die Editoren auch in der Sidebar im Tab ``Variablen'' angezeigt werden. Auf Abbildung \ref{fig:Simulationseinstellungen} wurde bereits ein \textit{VSEditorFrame} in Aktion gesehen. Auf Abbildung \ref{fig:NeueSimulationVariaben} wurde hingegen ein Prozesseditor in der Sidebar ge\"{o}ffnet. F\"{u}r Protokolle gibt es keine separate Editor-Klasse, da sie bereits vom Prozesseditor aus editiert werden k\"{o}nnen. Dabei iteriert der Prozesseditor \"{u}ber alle f\"{u}r den jeweiligen Prozess verf\"{u}gbaren Protokollobjekte und f\"{u}gt deren Variablen zus\"{a}tzlich in den Prozesseditor ein. Somit erscheinen die Prozess- und die dazugeh\"{o}rigen Protokollvariablen im selben Editor, womit dem Benutzer eine bessere \"{U}bersicht geboten wird. \section{Ereignisse} @@ -224,10 +222,17 @@ Jede Simulation besitzt genau eine Instanz von \textit{VSTaskManager}. Eine Inst \label{fig:PackageCore} \end{figure} -Eine Instanz von \textit{VSMessage} stellt eine Nachricht dar, die von einem Prozess verschickt wird. F\"{u}r jedes Versenden einer Nachricht wird hiervon eine Instanz gebildet, wo der Senderprozess die zu verschickende Daten ablegt. Da \textit{VSMessage} von \textit{VSPrefs} erbt, k\"{o}nnen zwischen zwei Prozessen beliebige Datentypen (Tabelle \ref{tb:VariablenDatentypen}) \"{u}ber eine Nachricht verschickt werden. Anschlieend wird f\"{u}r jeden Empf\"{a}ngerprozess das neues Ereignisobjekt der Klasse \textit{VSMessageReceiveEvent} angelegt, welche eine Referenz der verschickten Nachricht besitzt. Danach wird ein \textit{VSTask}-Objekt instanziert, wo die Referenz auf das Ereignisobjekt und das dazugeh\"{o}rige Prozessobjekt sowie die Ereigniseintrittszeit als Attribute gespeichert werden. Das \textit{VSTask}-Objekt wird dann dem Task-Manager "{u}bergeben, der das dazugeh\"{o}rige Ereignis ausf\"{u}hrt, wenn die Ereigniseintrittszeit eingetroffen ist. Via Java-Polymorphie wird das \textit{VSMessageReceiveEvent}-Objekt in ein \textit{VSAbstractEvent} umgewandelt. +Eine Instanz von \textit{VSMessage} stellt eine Nachricht dar, die von einem Prozess verschickt wird. F\"{u}r jedes Versenden einer Nachricht wird hiervon eine Instanz gebildet, wo der Senderprozess die zu verschickende Daten ablegt. Da \textit{VSMessage} von \textit{VSPrefs} erbt, k\"{o}nnen zwischen zwei Prozessen beliebige Datentypen (Tabelle \ref{tb:VariablenDatentypen}) \"{u}ber eine Nachricht verschickt werden. Anschlieend wird f\"{u}r jeden Empf\"{a}ngerprozess das neues Ereignisobjekt der Klasse \textit{VSMessageReceiveEvent} angelegt, welche eine Referenz der verschickten Nachricht besitzt. Danach wird ein \textit{VSTask}-Objekt instanziert, wo die Referenz auf das Ereignisobjekt und das dazugeh\"{o}rige Prozessobjekt sowie die Ereigniseintrittszeit als Attribute gespeichert werden. Das \textit{VSTask}-Objekt wird dann dem Task-Manager "{u}bergeben, der das dazugeh\"{o}rige Ereignis ausf\"{u}hrt, wenn die Ereigniseintrittszeit eingetroffen ist. Die Verschachtelung der Objekte beim Verschicken einer Nachricht ist auf Abbildung \ref{fig:Wrapping} dargestellt. Via Java-Polymorphie wird das \textit{VSMessageReceiveEvent}-Objekt in ein \textit{VSAbstractEvent} umgewandelt. Erw\"{a}hnentswert ist auch die Klasse \textit{VSMessageStub}, welche ein \textit{VSMessage} kapselt. Ihr Zweck ist das Verstecken einiger Methoden von \textit{VSMessage} im Protokoll-API, welches f\"{u}r die Erstellung eigener Protokolle dient. Der Protokoll-Entwickler soll m\"{o}glichst nichts falsch machen k\"{o}nnen und deswegen soll den Protokoll-API ein eingeschr\"{a}nkter Funktionsumpfang zur Verf\"{u}rung gestellt werden. Da sich \textit{VSMessageStub} im selben Paket wie \textit{VSMessage} befindet, kann \textit{VSMessageStub} auf paket-private Methoden von \textit{VSMessage} zugreifen. Protokolle hingegen werden in einem anderen Paket implementiert und haben somit keinen Zugriff auf diese paket-privaten Methoden. Zwar kann der Protokollentwickler ein eigenes \textit{VSMessageStub}-Objekt anlegen, jedoch kann er auf diese Weise besser unterscheiden, auf welche Mehhoden er zugreifen sollte und auf welche nicht. Das Protokoll-API wird sp\"{a}ter genauer behandelt. +\begin{figure}[h] + \centering + \includegraphics[width=11.0cm]{images/wrapping} + \caption{Gekapseltes \textit{VSMessage} im \textit{VSMessageReceiveEvent}-Objekt} + \label{fig:Wrapping} +\end{figure} + Der Task-Manager speichert anschlieend die Empfangsereignisse in den lokalen Warteschlangen der Empf\"{a}ngerprozesse. Die Nachricht kommt bei einem Empf\"{a}ngerprozess an, sobald das Ereignis f\"{u}r den Empfang eintritt. F\"{u}r die korrekte Implementierung der Lamport- und Vektor-Zeitstempel wird jeder Nachricht automatisch eine Referenz auf die Lamport- sowie auf die Vektorzeit des sendenden Prozesses als Attribut beigef\"{u}gt. F\"{u}r die \"{U}berpr\"{u}fung des Protokolls wird in jeder Nachricht auch der Klassenname des jeweiligen Protokolls abgespeichert. Eine Instanz von \textit{VSInternalProcess} repr\"{a}sentiert einen simulierten Prozess. Ein \textit{VSInternalProcess} stellt alle vom Simulator intern verwendeten Methoden zur Verf\"{u}gung, w\"{a}hrend ein \textit{VSAbstractProcess} lediglich Methoden hat, die man im Protokoll-API f\"{u}r die Erstellung eigener Protokolle verwenden darf. Da \textit{VSAbstractProcess} abstrakt ist und hiervon keine Instanz gebildet werden darf, muss f\"{u}r einen neuen Prozesses stets ein \textit{VSInternalProcess}-Objekt erstellt werden. Via Polymorphie wird dieses Objekt nach \textit{VSAbstractProcess} umgewandelt und so dem Protokoll-API zur Verf\"{u}gung gestellt. Beispielsweise darf mit \textit{getTasks()} nur vom Simulator intern auf die Priorit\"{a}ts-Warteschlangen zugegriffen werden, w\"{a}hrend man im Protokoll-API selbiges vermeiden sollte und auch gar nicht direkt m\"{o}glich ist. Hierf\"{u}r h\"{a}tte man auch ein Stub-Objekt \textit{VSProcessStub} verwenden k\"{o}nnen. Da aber so gut wie alle paar Millisekunden auf die Methoden von \textit{VSInternalProcess} zugegriffen wird, wurde hier aus Performancegr\"{u}nden der Weg \"{u}ber eine Vererbungungsstufe preferiert. diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index d6219bf..12142b4 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -812,7 +812,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 276 0 obj << -/Length 2090 +/Length 2088 /Filter /FlateDecode >> stream @@ -822,11 +822,7 @@ x ZˋWWc|2DXLxǫ՘yL1}pL}EyNZ[oǢ6ө(Btz*MЩ\60;G0IZM%z]Ն&Y"zg/_\@o=h㘝"Xn^Fpoճv2t+8Vȇݟ.zfV&ϼnfsS? endstream +zNA&׽Myl菓&z0ηB(%YDlU])wHt=y %zMV9JNP'b ̜K.N2'̭W%!CZըիxLjMKŮ~,~>?u/v_*궽,8f,)dL+·}Kn#?ǶІm;Zfm~fL^3Hf syQ[ޟ~߹.޸{W1;u!3*Ex(Z7g 2)d(Vp"?]D-l"L*yU`Bendstream endobj 275 0 obj << /Type /Page @@ -1241,15 +1237,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 366 0 obj << -/Length 1435 +/Length 1573 /Filter /FlateDecode >> stream -xKo6)t -_Cآa=86֏Tvb?}G$S8JV 5rǏi3*ΌnWٮ{uh͛YTv.Z2NoX}sbu[mrWe!R7?fE,x^nJJVFdk|B:oLgCֿ5frc}9tVQSY6e{%AM `J(~EԦMǻTP!ahD{R!57TZڿnٕ77: EV3y"epjgsDJER[ˣKHE= Z[<8`("&Kx#6G@NM `Z8xwǸr欳YDsf"kogicoxQLwc^h|"PғPSBPBZUj*"`8f*C-{rrj`JrQ]XZ85uO XRVNlVWZ9A9kFHˤpb,+^,A,R[ tzAPQՠpP˺ݡ.[dOծ74,3B,LlbCUpИ<<ւɨ:Pذ]ȃ?ؗ<{AfmfRs;N:?eSdM&t@ FlX8<և_c\XmzrkJɥD"5ҩ$c$ 'ċ4T%C=Ψ>yMGۆvێ̛:_#wvʨ~+xO6gV2 ӊfU& zRR3~R/k(A FRl87cNټ&&io40HғXSzXmQaN 6jow⩡C3 *:HǪo7u7`CG% [ygCK!WX#1>sCJbJW0&B.b` =1FIMѝ^~h~nr,~*Ysr1ɬߠvݠcJpJ -{kIMrQu[@1n{UQ~t"`,Lhb碳{8Te~ݻxޔޤu Yf$ރQXw{V]#BVb{=ڰGDBMFU -DEƚgf$  ^8fj2eE'endstream +xKo6:XV|c@%am+}Һ(;%-%#' +Z$YZk43\ǓL1ZdVY'om7Ʒٷ?O *z- gWoW]y.vЫ|Qq(W?={~Շ"e@<-7%%KL$!?.._yϘmq8ڲ,g  [o2X?FS;Sun< nY :fV3Qb@>`c8duF [zY[*W1+:8^д:̱fmU~:sf|(Ĵ5!ᘍN [ԸcO &h<P! +F3j!5ž^(wSq<7"3H!/nvwuq8 #fIDj0Ϝ(bbG瑊z& 1CxRQDFuZ$)V?l+5@NF`\;x(wUXY9ƚOhV3y]3Ra -)oZ[-?(d%jS 4ޝ[| +`m-EH9VK.,D/j4(ԔԤСjjH3rP":\TkT9!vMv%U)#]3`Ho8sFHäb(@ H::AOs6/fcendstream endobj 365 0 obj << /Type /Page @@ -1257,7 +1255,7 @@ endobj /Resources 364 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 273 0 R -/Annots [ 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R ] +/Annots [ 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R ] >> endobj 368 0 obj << /Type /Annot @@ -1318,52 +1316,59 @@ endobj 376 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 603.5131 254.8524 613.7814] +/Rect [86.8628 603.4054 357.6869 613.9877] /Subtype /Link /A << /S /GoTo /D (figure.3.6) >> >> endobj 377 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 587.2894 249.4056 595.8542] +/Rect [86.8628 585.5858 254.8524 595.8542] /Subtype /Link /A << /S /GoTo /D (figure.3.7) >> >> endobj 378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 569.3622 190.0803 577.927] +/Rect [86.8628 569.3622 249.4056 577.927] /Subtype /Link /A << /S /GoTo /D (figure.3.8) >> >> endobj 379 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 551.4349 296.1243 559.9997] +/Rect [86.8628 551.4349 190.0803 559.9997] /Subtype /Link /A << /S /GoTo /D (figure.3.9) >> >> endobj 380 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 531.6965 202.4313 542.2787] +/Rect [86.8628 533.5077 296.1243 542.0725] /Subtype /Link /A << /S /GoTo /D (figure.3.10) >> >> endobj 381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 515.5805 168.9961 524.1452] +/Rect [86.8628 513.7692 202.4313 524.3515] /Subtype /Link /A << /S /GoTo /D (figure.3.11) >> >> endobj 382 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 495.9497 195.644 506.218] +/Rect [86.8628 497.6532 168.9961 506.218] /Subtype /Link /A << /S /GoTo /D (figure.3.12) >> >> endobj +383 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [86.8628 478.0224 195.644 488.2908] +/Subtype /Link +/A << /S /GoTo /D (figure.3.13) >> +>> endobj 367 0 obj << /D [365 0 R /XYZ 74.4095 793.4011 null] >> endobj @@ -1371,7 +1376,7 @@ endobj /Font << /F61 280 0 R /F28 217 0 R >> /ProcSet [ /PDF /Text ] >> endobj -400 0 obj << +402 0 obj << /Length 1852 /Filter /FlateDecode >> @@ -1381,158 +1386,158 @@ x agTCT~']L-S@fCUu}Y?ϯ5p5~;6is V" ӍYTj;hULUU߶K2FgR܇ILF5b1EZCHΪ'!)i7'w{,Z؛i`fD q`[X O@m5je4ȳM<Ջv̋WVy'& >Z$ε F8vLphbo&M&uBj$NfkT2諸o?-bK9Lcb[A~CIO$Xq*Ģ"ҞIgkTSt^]NW^S,tW6V=Io{e+TUT4XA'TF5H*ݦY:cٮ|.ap-%R,'nO#7<U{%KE,# _gTgSy^\4 ~_XT Pb\֪UW[o=oaSU$lx0 ;6սD]|٢ZzǛh;V0K: [^kգQpwvWLbuD{Ti&q&[f?Bg('g7nO$Jvlzt Oq'-N08APhdOgllq︺$ JfAvqkp w o&b% JKo}c! 0xq{怭QC{'hݦًZ=ʛ ޝM/H2Obl( ga1UBaHݎd3. U{TuPN!֨L<(g!?m($IJbZ]$h4TO-EMXNΨM7NW|]gZgaJ\1I[JzTwR,ڲ*V^Q BK"ZDuywv@ZE" ;p1Ӈ/n<'cD@X"_{XA QjX,lCg`ɝRPk0xmz (]qh1Lb*1VaLA?5gr)b݊bG#XQPu7 ֹ3H(r팪[|aE{̝պ Npib%UY ƪ'N=4vait3m]u^Eyî6/'gSu| f![*o^Ցf .1\DrnZT;SzV{ IHѨ$uN> endobj -403 0 obj << +405 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 612.425 338.2165 623.0073] /Subtype /Link /A << /S /GoTo /D (table.2.1) >> >> endobj -404 0 obj << +406 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 594.4978 298.9616 605.0801] /Subtype /Link /A << /S /GoTo /D (table.2.2) >> >> endobj -405 0 obj << +407 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 576.5706 180.2935 586.9466] /Subtype /Link /A << /S /GoTo /D (table.2.3) >> >> endobj -406 0 obj << +408 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 558.6433 257.1971 569.0193] /Subtype /Link /A << /S /GoTo /D (table.2.4) >> >> endobj -407 0 obj << +409 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 540.7161 289.7984 551.2984] /Subtype /Link /A << /S /GoTo /D (table.2.5) >> >> endobj -408 0 obj << +410 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 522.7889 256.1481 533.1649] /Subtype /Link /A << /S /GoTo /D (table.2.6) >> >> endobj -409 0 obj << +411 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 504.8616 335.2394 515.4439] /Subtype /Link /A << /S /GoTo /D (table.2.7) >> >> endobj -410 0 obj << +412 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 486.9344 406.6109 497.5167] /Subtype /Link /A << /S /GoTo /D (table.2.8) >> >> endobj -411 0 obj << +413 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 469.0072 319.7369 479.3832] /Subtype /Link /A << /S /GoTo /D (table.2.9) >> >> endobj -412 0 obj << +414 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 451.0799 295.5011 461.6622] /Subtype /Link /A << /S /GoTo /D (table.2.10) >> >> endobj -413 0 obj << +415 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 433.1527 301.3831 443.735] /Subtype /Link /A << /S /GoTo /D (table.2.11) >> >> endobj -414 0 obj << +416 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 415.2255 371.7415 425.8077] /Subtype /Link /A << /S /GoTo /D (table.2.12) >> >> endobj -415 0 obj << +417 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 397.2982 385.1908 407.8805] /Subtype /Link /A << /S /GoTo /D (table.2.13) >> >> endobj -416 0 obj << +418 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 379.371 276.0623 389.747] /Subtype /Link /A << /S /GoTo /D (table.2.14) >> >> endobj -417 0 obj << +419 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 361.4438 286.3466 371.8198] /Subtype /Link /A << /S /GoTo /D (table.2.15) >> >> endobj -418 0 obj << +420 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 343.5165 356.705 353.8925] /Subtype /Link /A << /S /GoTo /D (table.2.16) >> >> endobj -419 0 obj << +421 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 325.5893 370.1543 336.1716] /Subtype /Link /A << /S /GoTo /D (table.2.17) >> >> endobj -420 0 obj << +422 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 299.5107 177.8368 308.0754] /Subtype /Link /A << /S /GoTo /D (table.3.1) >> >> endobj -421 0 obj << +423 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 281.5834 345.4789 290.3545] /Subtype /Link /A << /S /GoTo /D (table.3.2) >> >> endobj -401 0 obj << -/D [399 0 R /XYZ 74.4095 793.4011 null] +403 0 obj << +/D [401 0 R /XYZ 74.4095 793.4011 null] >> endobj -402 0 obj << -/D [399 0 R /XYZ 74.4095 643.0739 null] +404 0 obj << +/D [401 0 R /XYZ 74.4095 643.0739 null] >> endobj -398 0 obj << +400 0 obj << /Font << /F26 214 0 R /F28 217 0 R /F61 280 0 R >> /ProcSet [ /PDF /Text ] >> endobj -443 0 obj << +445 0 obj << /Length 1758 /Filter /FlateDecode >> @@ -1546,35 +1551,35 @@ xڍXKo /2|Cb&"6eKBz?g9z{ %i%GS>Z NCAlȓ)WKi648r2'NBr}O=M~v%4,\9󄙮5n8ie~Asg~0=Uh4R+މ k*e֣̣uixzQ&犡&f61،pׅSZPs硅z=ĸĶ6ΕA{ܥ5;f .jGr_fNO^c38>/L4AI}\;duX3a!Խ]^jc~4(G#6.Zrd*c[k/!V+Ymx&|>r;s :*n|s9eeg EI7W巇,A#:7F~ȉ~e?]endstream endobj -442 0 obj << +444 0 obj << /Type /Page -/Contents 443 0 R -/Resources 441 0 R +/Contents 445 0 R +/Resources 443 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 273 0 R -/Annots [ 445 0 R ] +/Annots [ 447 0 R ] >> endobj -445 0 obj << +447 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [75.9058 417.1708 102.2418 425.7356] /Subtype /Link /A << /S /GoTo /D (cite.Tanenbaum) >> >> endobj -444 0 obj << -/D [442 0 R /XYZ 74.4095 793.4011 null] +446 0 obj << +/D [444 0 R /XYZ 74.4095 793.4011 null] >> endobj 6 0 obj << -/D [442 0 R /XYZ 74.4095 771.7323 null] +/D [444 0 R /XYZ 74.4095 771.7323 null] >> endobj 10 0 obj << -/D [442 0 R /XYZ 74.4095 570.9064 null] +/D [444 0 R /XYZ 74.4095 570.9064 null] >> endobj -441 0 obj << +443 0 obj << /Font << /F26 214 0 R /F28 217 0 R /F61 280 0 R >> /ProcSet [ /PDF /Text ] >> endobj -451 0 obj << +453 0 obj << /Length 1854 /Filter /FlateDecode >> @@ -1585,91 +1590,91 @@ xڭX %#.zD.\]W ך~}=Erax]iwxuWo_PU;"M,X|YJĀԡB'l~rX< K/R pX@ƞc; MHS{BwQP1L^ydBPFZBj> endobj -447 0 obj << +449 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/client-server.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 458 0 R +/PTEX.InfoDict 460 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 382.00000000 112.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 459 0 R ->>/Font << /R8 460 0 R >> +/R7 461 0 R +>>/Font << /R8 462 0 R >> >> -/Length 461 0 R +/Length 463 0 R /Filter /FlateDecode >> stream -xTn0 +xl{p%RE[$F/A,E"N~Ejx0"g槮Ӣ>yTFc5P԰x,4/?l8-4{I$&uAGсq4dtq@TR'a:̵ e ?΃ߏbw'i^&tYߟT6E Iu@ɞkNbRw~=p\1 cB*0KfAB[JυF +ªcGTl/.]/=荧Age]i1OexʠpqQ<=:KeCljeXlu aVH;8O-KiD-w2ǃkC8p ]Z뱵@Աb7i +{QB{7bw"C|ܥ|<[@_ۼO.~f-g/8撁4<냳( |`ԗtj>RvO%oXBǼ۟u^s |Q?۝ITL0 /?DZendstream endobj -458 0 obj +460 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080809233926Z00'00') -/ModDate (D:20080809233926Z00'00') +/CreationDate (D:20080810030234Z00'00') +/ModDate (D:20080810030234Z00'00') >> endobj -459 0 obj +461 0 obj << /Type /ExtGState /OPM 1 >> endobj -460 0 obj +462 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -461 0 obj -452 +463 0 obj +460 endobj -454 0 obj << +456 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [439.9225 458.2842 454.378 468.8664] /Subtype /Link /A << /S /GoTo /D (figure.1.1) >> >> endobj -452 0 obj << -/D [450 0 R /XYZ 74.4095 793.4011 null] +454 0 obj << +/D [452 0 R /XYZ 74.4095 793.4011 null] >> endobj 14 0 obj << -/D [450 0 R /XYZ 74.4095 771.7323 null] +/D [452 0 R /XYZ 74.4095 771.7323 null] >> endobj -453 0 obj << -/D [450 0 R /XYZ 74.4095 659.2541 null] +455 0 obj << +/D [452 0 R /XYZ 74.4095 659.2541 null] >> endobj 337 0 obj << -/D [450 0 R /XYZ 288.3666 523.6815 null] +/D [452 0 R /XYZ 288.3666 523.6815 null] >> endobj -455 0 obj << -/D [450 0 R /XYZ 74.4095 396.6881 null] +457 0 obj << +/D [452 0 R /XYZ 74.4095 396.6881 null] >> endobj -456 0 obj << -/D [450 0 R /XYZ 74.4095 235.3536 null] +458 0 obj << +/D [452 0 R /XYZ 74.4095 235.3536 null] >> endobj -449 0 obj << +451 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> -/XObject << /Im2 447 0 R >> +/XObject << /Im2 449 0 R >> /ProcSet [ /PDF /Text ] >> endobj -464 0 obj << +466 0 obj << /Length 1352 /Filter /FlateDecode >> @@ -1683,76 +1688,73 @@ U  #c-ݻЩ ҂φ0ΗX;$q!Lq˝2:϶:؜*se)])ZLAқLPR$}ɒ')@7Xo{I%/ Ova &/3kl ,M F[~7)׹_3ㅏR2v'Jg}#ȷdendstream endobj -463 0 obj << +465 0 obj << /Type /Page -/Contents 464 0 R -/Resources 462 0 R +/Contents 466 0 R +/Resources 464 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 457 0 R +/Parent 459 0 R >> endobj -448 0 obj << +450 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/client-server-protokolle.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 467 0 R +/PTEX.InfoDict 469 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 376.00000000 320.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 468 0 R ->>/Font << /R8 469 0 R >> +/R7 470 0 R +>>/Font << /R8 471 0 R >> >> -/Length 470 0 R +/Length 472 0 R /Filter /FlateDecode >> stream -xMo0 <;l"îkP6AbGJGb:,P/E '+Oz?}  l - К-5!Q%"DGzCtΠIəY.0q$R!/AJه7iYza' dĀ7~ x2sg*fGz7а& %m2/gR|~-n[q5@'MQV -HU-j\Cm o s@8a9rA*Z\id4(%>ih2eC4{y]Te\{}\t^2)W/b5̯@zŨ8#G7 +8 )| -Y La- 7pD7[:pHp {-q*YA^6@K  -B|jZ%Tp'endstream +xN0 y=4# u*Bˈ}4ZgF=4r~/T =ԋ_VHzQ)YocDJx)@/R]9$rAHQH/5a'i\$hU?4DZsYV;º*[>|PS/@,4d@ӋvpѼFWեu;E"-xcv3!_üŬ5,}Fj.bVW9<[mEUqomuPemb\> endobj -468 0 obj +470 0 obj << /Type /ExtGState /OPM 1 >> endobj -469 0 obj +471 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -470 0 obj -499 +472 0 obj +548 endobj -465 0 obj << -/D [463 0 R /XYZ 74.4095 793.4011 null] +467 0 obj << +/D [465 0 R /XYZ 74.4095 793.4011 null] >> endobj -466 0 obj << -/D [463 0 R /XYZ 74.4095 750.3359 null] +468 0 obj << +/D [465 0 R /XYZ 74.4095 750.3359 null] >> endobj 338 0 obj << -/D [463 0 R /XYZ 281.7271 358.4221 null] +/D [465 0 R /XYZ 281.7271 358.4221 null] >> endobj -462 0 obj << +464 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> -/XObject << /Im3 448 0 R >> +/XObject << /Im3 450 0 R >> /ProcSet [ /PDF /Text ] >> endobj -473 0 obj << +475 0 obj << /Length 1763 /Filter /FlateDecode >> @@ -1764,35 +1766,35 @@ xڍ CG1zPI.A 0vwXuɈ>V+LK/?**Jg5蝷:M^7gÜ3Y\ܼ+=pPGu:25.-oZ014eaį7`6r b|Fz.7>7Fw`Sendstream endobj -472 0 obj << +474 0 obj << /Type /Page -/Contents 473 0 R -/Resources 471 0 R +/Contents 475 0 R +/Resources 473 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 457 0 R -/Annots [ 477 0 R ] +/Parent 459 0 R +/Annots [ 479 0 R ] >> endobj -477 0 obj << +479 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [126.1829 465.5316 140.6385 476.1138] /Subtype /Link /A << /S /GoTo /D (figure.1.2) >> >> endobj -474 0 obj << -/D [472 0 R /XYZ 74.4095 793.4011 null] +476 0 obj << +/D [474 0 R /XYZ 74.4095 793.4011 null] >> endobj -475 0 obj << -/D [472 0 R /XYZ 74.4095 750.7482 null] +477 0 obj << +/D [474 0 R /XYZ 74.4095 750.7482 null] >> endobj -476 0 obj << -/D [472 0 R /XYZ 74.4095 608.3473 null] +478 0 obj << +/D [474 0 R /XYZ 74.4095 608.3473 null] >> endobj -471 0 obj << +473 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> /ProcSet [ /PDF /Text ] >> endobj -481 0 obj << +483 0 obj << /Length 1160 /Filter /FlateDecode >> @@ -1802,15 +1804,15 @@ xڭWKs l0.JRCvF';%ZhS.ʳµRX+ﱬ} +J"+2pamlhUOH~ kZ((i;GK9e/)-!I!3NlA%0F>*7* !LM|jSv[y r.`+tNq k9Wiy ,!88bPq."C_x=(.@>~*<30l7T[%= eghFVCc gzC uIHLiXU|YC.S#K+i;?U&o} D7悝˅pPM.z72AnD)1pujR._k~ǃP+&…O97+T!6y<$u"omY崀tSF`OkDwr L}W]>H?٢1|EP> endobj -478 0 obj << +480 0 obj << /Type /XObject /Subtype /Image /Width 1024 @@ -1832,45 +1834,45 @@ pz t ?y#rϲP{@Z N>:?}?o2k#9uuѣGkLlĝefqSSMp\8G<'G#s_dS!tN杫5_?|BNwW=z4Fٯ x;O[4^qo>lO3Ʃc&*q[(WY/5886qcߓͺ򝏙'O;ί6lnL++*ZZ]zȑ#]>@hKvI+H8]ˈ#sNBNn|Ny: jꚛ<(\E(>(=X8$5WQz8 X:ԾpSki>Xcձȫ+Ty`)sq7i[#~=3ϘӪSϬӊC(X޽{k`A; 0eWte|A9N\ڣg;k_`Aj5.khKG ZQN#M~~ Rs7?_hi>&? ҔpύT5ue4?R8yeSNo9?w:7+d2L&4[AC{s_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?@@?@?@?@?@@?_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?@@?@?@?@?@@?_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?@@?@?@?@?@@?_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?@@?@?@?@?@̏7L&d2Lij`0`6endstream endobj -483 0 obj << +485 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 189.397 87.8688 199.9793] /Subtype /Link /A << /S /GoTo /D (figure.2.1) >> >> endobj -484 0 obj << +486 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [389.0928 189.397 403.5483 199.9793] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj -485 0 obj << +487 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [300.1067 135.6153 314.5622 146.1976] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj -482 0 obj << -/D [480 0 R /XYZ 74.4095 793.4011 null] +484 0 obj << +/D [482 0 R /XYZ 74.4095 793.4011 null] >> endobj 18 0 obj << -/D [480 0 R /XYZ 74.4095 771.7323 null] +/D [482 0 R /XYZ 74.4095 771.7323 null] >> endobj 22 0 obj << -/D [480 0 R /XYZ 74.4095 581.9662 null] +/D [482 0 R /XYZ 74.4095 581.9662 null] >> endobj 339 0 obj << -/D [480 0 R /XYZ 250.8743 253.9309 null] +/D [482 0 R /XYZ 250.8743 253.9309 null] >> endobj -479 0 obj << +481 0 obj << /Font << /F26 214 0 R /F28 217 0 R /F61 280 0 R >> -/XObject << /Im4 478 0 R >> +/XObject << /Im4 480 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -491 0 obj << +493 0 obj << /Length 1704 /Filter /FlateDecode >> @@ -1883,15 +1885,15 @@ gG 6d p1nD*},f#վCJw]Xl-hpvG =wa7n2zc6h٘"OiĬ{v\WWO[lp: i{Lxܘl|NTtloG2qcCK$?~i2Cf㮣K>%> endobj -486 0 obj << +488 0 obj << /Type /XObject /Subtype /Image /Width 234 @@ -1930,38 +1932,38 @@ ze TzZz`QE^^^RRRH/EzI/EzWl֬Y˗/WFF:wqyK'snڰaٳ.]*_5bwhhhh͚5p7nT sNl߮o޼ِ)jطo [۷ ;;;Uz"ndAhY\Ct-7T Ez vޝ"竮fm2.+Hw"_.Q k3Cd+ K~@P >OsL':TYT EzĽxXBW.QYf:ٗ.]Zds=W]]t%(K^K^K^" /LLL*Dz)KQH/Ez)R(K^"Ez)KQH/E^R(K^K^"Ez)KQH/E^R(K^"5}#endstream endobj -494 0 obj << +496 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.9175 721.5786 198.3731 732.1608] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj -496 0 obj << +498 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [323.2532 153.5425 337.7088 164.1248] /Subtype /Link /A << /S /GoTo /D (figure.2.4) >> >> endobj -492 0 obj << -/D [490 0 R /XYZ 74.4095 793.4011 null] +494 0 obj << +/D [492 0 R /XYZ 74.4095 793.4011 null] >> endobj -493 0 obj << -/D [490 0 R /XYZ 74.4095 752.2837 null] +495 0 obj << +/D [492 0 R /XYZ 74.4095 752.2837 null] >> endobj 340 0 obj << -/D [490 0 R /XYZ 305.5773 401.9113 null] +/D [492 0 R /XYZ 305.5773 401.9113 null] >> endobj -495 0 obj << -/D [490 0 R /XYZ 74.4095 184.2476 null] +497 0 obj << +/D [492 0 R /XYZ 74.4095 184.2476 null] >> endobj -489 0 obj << +491 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> -/XObject << /Im5 486 0 R >> +/XObject << /Im5 488 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -499 0 obj << +501 0 obj << /Length 1085 /Filter /FlateDecode >> @@ -1971,14 +1973,14 @@ xڭW 6&\$ΒfiG3&0&=gyXݜ?o]m|_Тxى@o1kډJZLҁ&xO^U:Fv,.HzuYdP[ (09]{@ )eM2vӈ{eZ,H[dλ,ݧa4-Ц` ۩Pja_Ӕn$ \:mufŠ[䭍w764'n=7k'׋{ %F1&bA5 fip>8+jFUf-&ԭd\K@]em ?koLAYfs^3 =]R?S*Dm͒p5Sdm%UJe jan X 6Ce qS _i!YNw19-pE3#7O~yS8QQl۴|B١&CI.ʅ/lnW QWA(?<1pDQ-g!7cI|5;xX\&qZ]kŬm N 9=gMzk8=5րt71 KQq=2si!ܖaR3_\PK\Uv\]f᪟5jHߘƧKO`bW Zz%Z*-KY;Z.zߵ3.:aNu C넉uaQ:SUD-> endobj -487 0 obj << +489 0 obj << /Type /XObject /Subtype /Image /Width 1024 @@ -2050,7 +2052,7 @@ Oo9/ q^/jY?P?o#K ~{^{g~$)*0?Jr=7op˜Nn"x[O:_#?w.^>lz31ƻ,]:L7yL2Smz/@_r s kg-vfz=Eu^||ڿ]1r'o/43-NS%$p?,p')b` wBON wH``endstream endobj -488 0 obj << +490 0 obj << /Type /XObject /Subtype /Image /Width 180 @@ -2078,21 +2080,21 @@ SȈoD\ ٘Zl7Z%lL-6Z!7,7>L")dcjb,>߰ߞ{و|t9T,t)T(«8 {endstream endobj -500 0 obj << -/D [498 0 R /XYZ 74.4095 793.4011 null] +502 0 obj << +/D [500 0 R /XYZ 74.4095 793.4011 null] >> endobj 341 0 obj << -/D [498 0 R /XYZ 286.4299 503.2659 null] +/D [500 0 R /XYZ 286.4299 503.2659 null] >> endobj 342 0 obj << -/D [498 0 R /XYZ 266.1839 382.6614 null] +/D [500 0 R /XYZ 266.1839 382.6614 null] >> endobj -497 0 obj << +499 0 obj << /Font << /F61 280 0 R /F28 217 0 R /F35 237 0 R >> -/XObject << /Im6 487 0 R /Im7 488 0 R >> +/XObject << /Im6 489 0 R /Im7 490 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -505 0 obj << +507 0 obj << /Length 1296 /Filter /FlateDecode >> @@ -2106,15 +2108,15 @@ xڭWYo jq\ԯMz1EF TNѹ-˭'D| ӏ(eD$ETOڃ`&Bn1=L Ra:*@UrD|S `7 :ur5HX WbLנNX|,[m&q i`9WɈ{U>aV?R~0"ςP UeA%<p˾6MFU4<yW-º X=7be= :0Hpi`R~Otd%/< 5endstream endobj -504 0 obj << +506 0 obj << /Type /Page -/Contents 505 0 R -/Resources 503 0 R +/Contents 507 0 R +/Resources 505 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 509 0 R -/Annots [ 508 0 R ] +/Parent 511 0 R +/Annots [ 510 0 R ] >> endobj -501 0 obj << +503 0 obj << /Type /XObject /Subtype /Image /Width 586 @@ -2129,7 +2131,7 @@ x 7-XW [r7g7U~Zz?ކ[1g bǗsI9ۮ㥧 '&7Wjo_E3/jcOL˺=.cuQ݌1]uUKc-usg1uzJݦY,Ց;[aaX,uV7bX,usX,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,RFu[c5Y,5Mݾ8;b-n"n`{M[bX6Jݎ_гsX,KݞvVyn,Śn{QRv"aX,u˯kbXm= vb[BQDnbX]Vyn,Śnů\X,kvcX,(uܼqncLsncM݌1ƨ1ӷnߞ{&1Ƙ.uLX,kXNX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,ݯbXiյ9,nu[vqkwRQv҅bXkcucX,|u[݋bX,U3qvb[~>^S7b=ngnsX,KJZ)~fݬ&b2V|\X,k](X,˵dX,VӺU~vncLs,mf1u1Ƙm#3u3m{&1Ƙ.uLX,kXNX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,ݯbXiյ9,nu[vqkwRQv҅bXkcucX,|u[݋bX,U3qvb[~>^S7b=ngnsX,KJZ)~fݬ&b2V|\X,k](X,u$b[Glww݌1Ƙ&sU7c1#mwW1ncLhݾҩ1Ƙ~uk6LX,k|NX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KRc5Y,5ᵛ1c1c1c1c1yg&뵙onqZL }I^9g/b[RgzK.in=3"Ǹwiøik_tZzk9{ř;[=ҧ|C;q(Uoq'GkrdBu{\d1޻NV3Xfpw#uBImOu蓄4J1tqUI\=0got9MO&#GĞx\瓫&}M;1?&(X}a___ˡ{֊;\݊X\ӌeB~|*y컑J{ӫnF:v[-rtU ߞ 37pm -!tۖQr06RUpuMΉ!r:9s"oh'tZ0P""Bvjx:KP^xi^ʋ/KP^xi^*P^xi^ʋ/PW/KP^x!/ x/@ oendstream endobj -508 0 obj << +510 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [151.9713 397.9679 166.4269 408.5502] /Subtype /Link /A << /S /GoTo /D (figure.2.5) >> >> endobj -506 0 obj << -/D [504 0 R /XYZ 74.4095 793.4011 null] +508 0 obj << +/D [506 0 R /XYZ 74.4095 793.4011 null] >> endobj -507 0 obj << -/D [504 0 R /XYZ 74.4095 750.7482 null] +509 0 obj << +/D [506 0 R /XYZ 74.4095 750.7482 null] >> endobj 343 0 obj << -/D [504 0 R /XYZ 221.8999 480.5224 null] +/D [506 0 R /XYZ 221.8999 480.5224 null] >> endobj 344 0 obj << -/D [504 0 R /XYZ 255.9892 182.3152 null] +/D [506 0 R /XYZ 255.9892 182.3152 null] >> endobj -503 0 obj << +505 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> -/XObject << /Im8 501 0 R /Im9 502 0 R >> +/XObject << /Im8 503 0 R /Im9 504 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -512 0 obj << +514 0 obj << /Length 2254 /Filter /FlateDecode >> @@ -2184,42 +2186,42 @@ xڭYYo c> endobj -514 0 obj << +516 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [337.1593 481.275 351.6149 491.8573] /Subtype /Link /A << /S /GoTo /D (figure.2.6) >> >> endobj -516 0 obj << +518 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.3617 311.8411 335.8173 322.4233] /Subtype /Link /A << /S /GoTo /D (table.2.1) >> >> endobj -513 0 obj << -/D [511 0 R /XYZ 74.4095 793.4011 null] +515 0 obj << +/D [513 0 R /XYZ 74.4095 793.4011 null] >> endobj -422 0 obj << -/D [511 0 R /XYZ 208.6475 629.4466 null] +424 0 obj << +/D [513 0 R /XYZ 208.6475 629.4466 null] >> endobj -515 0 obj << -/D [511 0 R /XYZ 74.4095 355.9148 null] +517 0 obj << +/D [513 0 R /XYZ 74.4095 355.9148 null] >> endobj -510 0 obj << +512 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> /ProcSet [ /PDF /Text ] >> endobj -521 0 obj << +523 0 obj << /Length 1303 /Filter /FlateDecode >> @@ -2232,15 +2234,15 @@ O fyZxC8dɹmM۫?c޿XU+p11[u,D e:8"Źi.dff!p Xt!빞e*-dɺu d33y&L6(Ø||I^ؘ0DQn8c`)ƶaK p4Z1׶iՑ{E#l=j/g'{i-<8zNL 2PB> endobj -517 0 obj << +519 0 obj << /Type /XObject /Subtype /Image /Width 318 @@ -2260,7 +2262,7 @@ x sq2s2Ud0'3_y%S8|Rʱ lL2U*v-o޲l+b~qendstream endobj -518 0 obj << +520 0 obj << /Type /XObject /Subtype /Image /Width 318 @@ -2283,31 +2285,31 @@ A aT7*r~ȍNKv-\U4^mdwEkQ+^Jrز~hZnoƖ>yk0sKgo \P_r~`E/_~`E/?zi0"ԗd00Aw 5Zյ%uZ;kkK,󖩺\ זX+-Su!w%rm22UrW"זX+-Su!w%rm 2UrW"ז䫫_HՅܕܶϒZGluCz썚\˿ܬD^ZϛQ~K\+XFsv)SՌ-{y/a.0AqMYa}ێ-ATylsTn"pqMYy}[ύvN!w򘻔6D*/۰ov9AMYfs3 -{ e/Yq~e[ .Լ"3ڒZiK,|U_r~ojaee\-Z1kpf{/k R.L 0䶽Vf#ڌO^V\_neEſnq+C.ڌ%neECrIW"oV=gD|c[endstream endobj -524 0 obj << +526 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [419.3512 493.1175 433.8068 503.6997] /Subtype /Link /A << /S /GoTo /D (figure.2.7) >> >> endobj -522 0 obj << -/D [520 0 R /XYZ 74.4095 793.4011 null] +524 0 obj << +/D [522 0 R /XYZ 74.4095 793.4011 null] >> endobj -523 0 obj << -/D [520 0 R /XYZ 74.4095 752.6311 null] +525 0 obj << +/D [522 0 R /XYZ 74.4095 752.6311 null] >> endobj 345 0 obj << -/D [520 0 R /XYZ 254.5056 542.162 null] +/D [522 0 R /XYZ 254.5056 542.162 null] >> endobj 346 0 obj << -/D [520 0 R /XYZ 224.2713 182.8845 null] +/D [522 0 R /XYZ 224.2713 182.8845 null] >> endobj -519 0 obj << +521 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> -/XObject << /Im10 517 0 R /Im11 518 0 R >> +/XObject << /Im10 519 0 R /Im11 520 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -529 0 obj << +531 0 obj << /Length 1835 /Filter /FlateDecode >> @@ -2321,15 +2323,15 @@ h[ R}+g}ےX;&hdm]!{ᛣpwAH ))AU=h!h(0Mh4va=:HڭoxpŴS9cZvbateVxDEk-5*I:a%Am(r mA`dx FqMH)TOddɧL݀cp ߵ}l?}ϩ/Dal*`P;?38ecAԪ^Dp!ICr2,īJ( psj<2Bpb~?0:KM#7v=?r]wU0kOi3saΠq(bU8A}䠪$L`·cs&xd59sf"8LsPA G&RWHeSw=tyI=4!ilq>bu_$L OQ> endobj -525 0 obj << +527 0 obj << /Type /XObject /Subtype /Image /Width 318 @@ -2357,46 +2359,46 @@ O g}(mvy^[/F !Օ\ VZ?endstream endobj -531 0 obj << +533 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.0658 756.7859 179.5214 767.3682] /Subtype /Link /A << /S /GoTo /D (figure.2.6) >> >> endobj -532 0 obj << +534 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.5754 738.8587 240.0309 749.441] /Subtype /Link /A << /S /GoTo /D (figure.2.9) >> >> endobj -533 0 obj << +535 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [335.0373 720.9315 349.4929 733.0693] /Subtype /Link /A << /S /GoTo /D (figure.2.8) >> >> endobj -534 0 obj << +536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [327.3201 171.4698 346.7609 182.052] /Subtype /Link /A << /S /GoTo /D (figure.2.13) >> >> endobj -530 0 obj << -/D [528 0 R /XYZ 74.4095 793.4011 null] +532 0 obj << +/D [530 0 R /XYZ 74.4095 793.4011 null] >> endobj 347 0 obj << -/D [528 0 R /XYZ 264.6686 374.7253 null] +/D [530 0 R /XYZ 264.6686 374.7253 null] >> endobj -527 0 obj << +529 0 obj << /Font << /F61 280 0 R /F28 217 0 R >> -/XObject << /Im12 525 0 R >> +/XObject << /Im12 527 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -538 0 obj << +540 0 obj << /Length 2364 /Filter /FlateDecode >> @@ -2417,15 +2419,15 @@ n^ / F/00e l~CwwZJ aDƗvxq|Ɯ,cuw },7˄|I_Rkendstream endobj -537 0 obj << +539 0 obj << /Type /Page -/Contents 538 0 R -/Resources 536 0 R +/Contents 540 0 R +/Resources 538 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 509 0 R -/Annots [ 541 0 R 542 0 R 543 0 R ] +/Parent 511 0 R +/Annots [ 543 0 R 544 0 R 545 0 R ] >> endobj -526 0 obj << +528 0 obj << /Type /XObject /Subtype /Image /Width 576 @@ -2447,45 +2449,45 @@ I 6޲?%O~/ @_/~@ ~ 8~].I$I<׿E] @_/+xӟ$v/ 1{5ַt-U6Ao]*ߣ`)Qnݾۍw2dU29g'5|b+NP} /wQqVCe&Fߞ9W_*~sumw(x~}9VEGqZۛiPK_կk^~XXh?bE+f5xPj uMЯO+kem~}|G08~-*_*l.'R!Z)툫y&5}/k] !v'(/S7?O-o`40~ }#pemGeu-/ /6֯Jendstream endobj -541 0 obj << +543 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.2684 594.8817 201.7239 605.464] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj -542 0 obj << +544 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [144.4782 576.9545 163.919 587.5367] /Subtype /Link /A << /S /GoTo /D (figure.2.10) >> >> endobj -543 0 obj << +545 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [491.0001 171.4698 510.4409 182.052] /Subtype /Link /A << /S /GoTo /D (figure.2.11) >> >> endobj -539 0 obj << -/D [537 0 R /XYZ 74.4095 793.4011 null] +541 0 obj << +/D [539 0 R /XYZ 74.4095 793.4011 null] >> endobj -540 0 obj << -/D [537 0 R /XYZ 74.4095 750.7482 null] +542 0 obj << +/D [539 0 R /XYZ 74.4095 750.7482 null] >> endobj 348 0 obj << -/D [537 0 R /XYZ 298.4805 642.0881 null] +/D [539 0 R /XYZ 298.4805 642.0881 null] >> endobj 26 0 obj << -/D [537 0 R /XYZ 74.4095 332.4608 null] +/D [539 0 R /XYZ 74.4095 332.4608 null] >> endobj -536 0 obj << +538 0 obj << /Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> -/XObject << /Im13 526 0 R >> +/XObject << /Im13 528 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -546 0 obj << +548 0 obj << /Length 1673 /Filter /FlateDecode >> @@ -2500,15 +2502,15 @@ xg\ SbAdQmhs`Ǘ>P5K@aw >Gd؆LсȽ[#g4GEPeem JZ(M \7he N]_-EUh]$uI`<$Xg!&WDHAdeU5yNXoI@ ":ǮWEA bbzc5׺ԋF˿Bat-&<5㶇XۗLvFU\TB@%-Zkۺ(LB@(KT-͞;!e1L{ 쀛~A<#4YgYZ!9^| ?lUQAf~KH?3q/xᮘ]PcxQLeD\V. &7.+:uM/WuMCGYG=pi:.rM7$0o`ۭ/UU酅[H; VX$Ȟ*A/xeH$\{]X SCF T鈧!ӵxNƤN@t]…$>gtɑ1VAۚDOv5:S)P,g^Mx%,|Lgbendstream endobj -545 0 obj << +547 0 obj << /Type /Page -/Contents 546 0 R -/Resources 544 0 R +/Contents 548 0 R +/Resources 546 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 509 0 R -/Annots [ 549 0 R ] +/Parent 511 0 R +/Annots [ 551 0 R ] >> endobj -535 0 obj << +537 0 obj << /Type /XObject /Subtype /Image /Width 1024 @@ -2566,31 +2568,31 @@ Krg lUmîD}[@kii5kiiTk4M4MӴj*)( k[*z73nnSg/?]fGĻ}^|Msn!@J҃c?=2gt*?G~G?~0zOuLK=`_3K`!N8l6lV?EE[endstream endobj -549 0 obj << +551 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.4034 417.8288 340.8443 428.4111] /Subtype /Link /A << /S /GoTo /D (figure.2.12) >> >> endobj -547 0 obj << -/D [545 0 R /XYZ 74.4095 793.4011 null] +549 0 obj << +/D [547 0 R /XYZ 74.4095 793.4011 null] >> endobj 349 0 obj << -/D [545 0 R /XYZ 265.0857 503.2659 null] ->> endobj -548 0 obj << -/D [545 0 R /XYZ 74.4095 447.2385 null] +/D [547 0 R /XYZ 265.0857 503.2659 null] >> endobj 550 0 obj << -/D [545 0 R /XYZ 74.4095 181.0693 null] +/D [547 0 R /XYZ 74.4095 447.2385 null] >> endobj -544 0 obj << +552 0 obj << +/D [547 0 R /XYZ 74.4095 181.0693 null] +>> endobj +546 0 obj << /Font << /F61 280 0 R /F28 217 0 R /F26 214 0 R >> -/XObject << /Im14 535 0 R >> +/XObject << /Im14 537 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -554 0 obj << +556 0 obj << /Length 1708 /Filter /FlateDecode >> @@ -2602,14 +2604,14 @@ xڭX 2?r=`x+5, Z񈴍 jiF2MonLXQ2J+88i*LX.3eIf/'ڐ-K4Xth`ƀd d~ K\S^˔[