diff options
| -rw-r--r-- | LaTeX/argouml.zargo | bin | 29381 -> 29589 bytes | |||
| -rw-r--r-- | LaTeX/chapters/implementierung.tex | 33 | ||||
| -rw-r--r-- | LaTeX/chapters/simulator.tex | 4 | ||||
| -rw-r--r-- | LaTeX/diplomarbeit.pdf | 5755 | ||||
| -rw-r--r-- | LaTeX/images/events.eps | 284 | ||||
| -rw-r--r-- | sources/events/VSRegisteredEvents.java | 22 |
6 files changed, 3088 insertions, 3010 deletions
diff --git a/LaTeX/argouml.zargo b/LaTeX/argouml.zargo Binary files differindex 566ce43..a50a6a9 100644 --- a/LaTeX/argouml.zargo +++ b/LaTeX/argouml.zargo diff --git a/LaTeX/chapters/implementierung.tex b/LaTeX/chapters/implementierung.tex index f0b8685..64034db 100644 --- a/LaTeX/chapters/implementierung.tex +++ b/LaTeX/chapters/implementierung.tex @@ -52,7 +52,7 @@ Eine Simulation ist von einer Vielzahl von Einstellungen abh\"{a}ngig. Da auf di \subsection{Einstellungsobjekte}
-Auf Abbilung \ref{fig:PackagePrefs} ist der Aufbau des Pakets \textit{prefs} zu sehen. In einer Instanz der Klasse \textit{VSPrefs} lassen sich viele verschiedene Daten als Variablen f\"{u}r eine sp\"{a}tere Verwendung dynamisch ablegen und stellt somit einen Container f\"{u}r diese Daten dar. In einem \textit{VSPrefs}-Objekt speichert der Simulator alle seine Einstellungen ab. Zudem besitzt jedes Prozessobjekt und jedes Protokollobjekt f\"{u}r lokale Einstellungen seine eigene Instanz von \textit{VSPrefs}. Selbst Nachrichtenobjekte besitzt hiervon eine eigene Instanz, wobei hier die zu verschickenden Daten abgelegt werden k\"{o}nnen.
+Auf Abbilung \ref{fig:PackagePrefs} ist der Aufbau des Pakets \textit{prefs} zu sehen. In einer Instanz der Klasse \textit{VSPrefs} lassen sich viele verschiedene Daten als Variablen f\"{u}r eine sp\"{a}tere Verwendung dynamisch ablegen und stellt somit einen Container f\"{u}r diese Daten dar. In einem \textit{VSPrefs}-Objekt speichert der Simulator alle seine Einstellungen ab. Zudem besitzt jedes Prozessobjekt und jedes Ereignisobjekt (und da Protokolle auch Ereignisse sind auch jedes Protokollobjekt) f\"{u}r lokale Einstellungen seine eigene Instanz von \textit{VSPrefs}. Selbst Nachrichtenobjekte besitzt hiervon eine eigene Instanz, wobei hier die zu verschickenden Daten abgelegt werden k\"{o}nnen.
\begin{figure}[h]
\centering
@@ -131,7 +131,7 @@ F\"{u}r Protokolle gibt es keine separate Editor-Klasse, da sie bereits vom Proz \section{Ereignisse}
-\subsection{Die Funktionsweise von Ereignissen}
+\subsection{Funktionsweise von Ereignissen}
F\"{u}r jedes Ereignis existiert eine dazugeh\"{o}rige Klasse, welche die auszuf\"{u}hrenden Aktionen implementiert. Eine Instanz davon wird, f\"{u}r eine sp\"{a}tere Ausf\"{u}hrung, in einem \textit{VSTask}-Objekt verpackt dem Task-Manager \"{u}bergeben. Auf den Task-Manager wird sp\"{a}ter noch genauer eingegangen.
\begin{figure}[h]
@@ -182,7 +182,7 @@ Des Weiteren werden folgende nicht-abstrakte Methoden von \textit{VSAbstractEven Jede Ereiginsklasse hat zudem Zugriff auf folgende Attribute, die von \textit{VSAbstractEvent} vererbt werden:
\begin{itemize}
- \item \textit{protected VSPrefs prefs}: Eine Referenz auf das Simulationseinstellungsobjekt. Hier\"{u}ber lassen sich alle Simulationseinstellungen beziehen.
+ \item \textit{protected VSPrefs prefs}: Eine Referenz auf das Simulationseinstellungsobjekt. Hier\"{u}ber lassen sich alle Simulationseinstellungen beziehen. \textit{prefs} ist nicht zu verwechseln mit den TODO
\item \textit{protected VSAbstractProcess process}: Eine Referenz auf das Prozessobjekt des jeweiligen Prozesses, auf welches das Ereignis angewendet wird.
\end{itemize}
@@ -273,16 +273,16 @@ void createCrashAndRecoverExample(VSTaskManager taskManager, VSAbstractEvent recoverEvent = new VSProcessRecoverEvent();
VSTask globalTask = new VSTask(2000, process,
- recoverEvent, VSTask.GLOBAL);
+ recoverEvent, VSTask.GLOBAL);
taksManager.addTask(globalTask);
}
\end{code}
-In diesem Beispiel wurden zwei Ereignisse (Absturz- und Wiederbelebung eines gegebenen Prozesses) angelegt. Das Absturzereignis tritt bei der aktuellen lokalen Prozesszeit plus \textit{500ms} ein, w\"{a}hrend das Wiederbelebungsereignis bei einer globalen Zeit von \textit{2000ms} stattfindet. F\"{u}r den Fall, dass das Wiederbelebungsereignis vor dem Absturzereignis eintritt, wird es nicht ausgef\"{u}hrt, da der Prozess noch nicht abgest\"{u}rzt ist.
+In diesem Beispiel wurden zwei Ereignisse (Absturz- und Wiederbelebung eines gegebenen Prozesses) angelegt. Das Absturzereignis tritt bei der aktuellen lokalen Prozesszeit plus \textit{500ms} ein, w\"{a}hrend das Wiederbelebungsereignis bei einer globalen Zeit von \textit{2000ms} stattfindet. F\"{u}r den Fall, dass das Wiederbelebungsereignis vor dem Absturzereignis eintritt wird es nicht ausgef\"{u}hrt, da der Prozess noch nicht abgest\"{u}rzt ist.
\section{Protokolle}
-\subsection{Die Funktionsweise des Protokoll-APIs}
+\subsection{Funktionsweise des Protokoll-APIs}
\begin{figure}[h]
\centering
@@ -437,11 +437,28 @@ Der Server benutzt in diesem Beispiel keinen Wecker. Dementsprechend hat die Met \subsection{Erstellung eigener Protokolle}
-\section{GUI}
+Hier werden alle Schritte zusammegefasst, die f\"{u}r die Erstellung eines eigenen Protokolls \textit{VSMyProtocol} durchgef\"{u}rt werden m\"{u}ssen.
+
+\begin{enumerate}
+ \item VS-Simulator Quelltext beziehen und in das Verzeichnis \textit{vs/sources/protocols/implementations} wechseln.
+ \item Das Template-Protokoll \textit{VSDummyProtocol.java} nach \textit{VSMyProtocol.java} kopieren.
+ \item \textit{VSDummyProtocol.java} editieren und den Klassennamen dort anpassen (\textit{VSDummyProtocol} $\rightarrow$ \textit{VSMyProtocol}).
+ \item In das oberste Verzeichnis \textit{vs/} wechseln
+ \item Die datei \textit{sources/events/VSRegisteredEvents.java} editieren, und in der \textit{init}-Methode folgende Zeile hinzuf\"{u}gen:
+ \begin{code}
+registerEvent("protocols.implementations.VSMyProtocol",
+ "Langer Name des Protokolls", // Langer name
+ "Neues Protokoll"); // Kurzer Name
+ \end{code}
+ \item Mit dem Befehl \textit{ant compile} die \"{A}nderungen \"{u}bernehmen und mit \textit{ant test} testen, ob der Simulator das Protokoll \"{u}bernommen hat. Hierbei wird der Simulator direkt aus dem Quellverzeichnis gestartet. ``Neues Protokoll'' sollte nun im Ereigniseditor programmiert werden k\"{o}nnen.
+ \item Mit dem Befehl \textit{ant dist} das Archiv \textit{dist/lib/VS-Sim-Latest.jar} erstellen und verwenden.
+\end{enumerate}
+
+\section{GUI sowie Simulationsvisualisierung}
\section{Serialisierung von Simulationen}
-\subsection{R\"{u}ckw\"{a}rtskompatibel}
+\subsubsection{R\"{u}ckw\"{a}rtskompatibel}
\section{Weiteres}
diff --git a/LaTeX/chapters/simulator.tex b/LaTeX/chapters/simulator.tex index a22d71e..076b04a 100644 --- a/LaTeX/chapters/simulator.tex +++ b/LaTeX/chapters/simulator.tex @@ -1,6 +1,6 @@ \chapter{Der Simulator}
-\section{Die grafische Benutzeroberfl\"{a}che (GUI)}
+\section{Grafische Benutzeroberfl\"{a}che (GUI)}
\begin{figure}[h]
\centering
@@ -156,7 +156,7 @@ Mit dem Deaktivieren des Logging-Schalters l\"{a}t sich das Loggen von Nachrich \"{U}ber den Schalter ``Expertenmodus'' wird der Expertenmodus aktiviert beziehungsweise deaktiviert.
-\section{Der Expertenmodus}
+\section{Expertenmodus}
\begin{figure}[h]
\centering
diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index 365f0c6..3b2c557 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -27,13 +27,13 @@ endobj << /S /GoTo /D (section.2.1) >> endobj 24 0 obj -(\376\377\0002\000.\0001\000\040\000D\000i\000e\000\040\000g\000r\000a\000f\000i\000s\000c\000h\000e\000\040\000B\000e\000n\000u\000t\000z\000e\000r\000o\000b\000e\000r\000f\000l\000\344\000c\000h\000e\000\040\000\050\000G\000U\000I\000\051) +(\376\377\0002\000.\0001\000\040\000G\000r\000a\000f\000i\000s\000c\000h\000e\000\040\000B\000e\000n\000u\000t\000z\000e\000r\000o\000b\000e\000r\000f\000l\000\344\000c\000h\000e\000\040\000\050\000G\000U\000I\000\051) endobj 25 0 obj << /S /GoTo /D (section.2.2) >> endobj 28 0 obj -(\376\377\0002\000.\0002\000\040\000D\000e\000r\000\040\000E\000x\000p\000e\000r\000t\000e\000n\000m\000o\000d\000u\000s) +(\376\377\0002\000.\0002\000\040\000E\000x\000p\000e\000r\000t\000e\000n\000m\000o\000d\000u\000s) endobj 29 0 obj << /S /GoTo /D (section.2.3) >> @@ -189,7 +189,7 @@ endobj << /S /GoTo /D (subsection.3.3.1) >> endobj 132 0 obj -(\376\377\0003\000.\0003\000.\0001\000\040\000D\000i\000e\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000s\000w\000e\000i\000s\000e\000\040\000v\000o\000n\000\040\000E\000r\000e\000i\000g\000n\000i\000s\000s\000e\000n) +(\376\377\0003\000.\0003\000.\0001\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000s\000w\000e\000i\000s\000e\000\040\000v\000o\000n\000\040\000E\000r\000e\000i\000g\000n\000i\000s\000s\000e\000n) endobj 133 0 obj << /S /GoTo /D (subsection.3.3.2) >> @@ -225,7 +225,7 @@ endobj << /S /GoTo /D (subsection.3.5.1) >> endobj 156 0 obj -(\376\377\0003\000.\0005\000.\0001\000\040\000D\000i\000e\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000s\000w\000e\000i\000s\000e\000\040\000d\000e\000s\000\040\000P\000r\000o\000t\000o\000k\000o\000l\000l\000-\000A\000P\000I\000s) +(\376\377\0003\000.\0005\000.\0001\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000s\000w\000e\000i\000s\000e\000\040\000d\000e\000s\000\040\000P\000r\000o\000t\000o\000k\000o\000l\000l\000-\000A\000P\000I\000s) endobj 157 0 obj << /S /GoTo /D (subsection.3.5.2) >> @@ -243,7 +243,7 @@ endobj << /S /GoTo /D (section.3.6) >> endobj 168 0 obj -(\376\377\0003\000.\0006\000\040\000G\000U\000I) +(\376\377\0003\000.\0006\000\040\000G\000U\000I\000\040\000s\000o\000w\000i\000e\000\040\000S\000i\000m\000u\000l\000a\000t\000i\000o\000n\000s\000v\000i\000s\000u\000a\000l\000i\000s\000i\000e\000r\000u\000n\000g) endobj 169 0 obj << /S /GoTo /D (section.3.7) >> @@ -252,45 +252,39 @@ endobj (\376\377\0003\000.\0007\000\040\000S\000e\000r\000i\000a\000l\000i\000s\000i\000e\000r\000u\000n\000g\000\040\000v\000o\000n\000\040\000S\000i\000m\000u\000l\000a\000t\000i\000o\000n\000e\000n) endobj 173 0 obj -<< /S /GoTo /D (subsection.3.7.1) >> -endobj -176 0 obj -(\376\377\0003\000.\0007\000.\0001\000\040\000R\000\374\000c\000k\000w\000\344\000r\000t\000s\000k\000o\000m\000p\000a\000t\000i\000b\000e\000l) -endobj -177 0 obj << /S /GoTo /D (section.3.8) >> endobj -180 0 obj +176 0 obj (\376\377\0003\000.\0008\000\040\000W\000e\000i\000t\000e\000r\000e\000s) endobj -181 0 obj +177 0 obj << /S /GoTo /D (section.3.9) >> endobj -184 0 obj +180 0 obj (\376\377\0003\000.\0009\000\040\000E\000n\000t\000w\000i\000c\000k\000l\000u\000n\000g\000s\000u\000m\000g\000e\000b\000u\000n\000g) endobj -185 0 obj +181 0 obj << /S /GoTo /D (chapter.4) >> endobj -188 0 obj +184 0 obj (\376\377\0004\000\040\000A\000u\000s\000b\000l\000i\000c\000k) endobj -189 0 obj +185 0 obj << /S /GoTo /D (appendix.A) >> endobj -192 0 obj +188 0 obj (\376\377\000A\000\040\000A\000k\000r\000o\000n\000y\000m\000s) endobj -193 0 obj +189 0 obj << /S /GoTo /D (appendix.B) >> endobj -196 0 obj +192 0 obj (\376\377\000B\000\040\000L\000i\000t\000e\000r\000a\000t\000u\000r\000v\000e\000r\000z\000e\000i\000c\000h\000n\000i\000s) endobj -197 0 obj -<< /S /GoTo /D [198 0 R /Fit ] >> +193 0 obj +<< /S /GoTo /D [194 0 R /Fit ] >> endobj -201 0 obj << +197 0 obj << /Length 826 /Filter /FlateDecode >> @@ -300,14 +294,14 @@ xڍUKs6W(͔ofN];ri-A"kL%YI:< 犂b쫑 h<r*r`o2ř֯CC'KsJLΛcDk|nZ҅v 6`#ȳEM<%Li$UuЉR#?gp3Pbj%=Swi6"5 F>_㘱FԮCaLp1[CмE?'4!ޮ!M caf ] %T=ke=)KPJjqT*'8e5Ҋa(Dc8Q+`J_mߦ~s51D G܉endstream endobj -198 0 obj << +194 0 obj << /Type /Page -/Contents 201 0 R -/Resources 200 0 R +/Contents 197 0 R +/Resources 196 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 210 0 R +/Parent 206 0 R >> endobj -199 0 obj << +195 0 obj << /Type /XObject /Subtype /Image /Width 500 @@ -468,18 +462,18 @@ j'F{E, 5M%jKqizlO<ԕ#C~%(4p<]gʟ~c]'?Ӹ)E- sOyGKrm{ endobj -202 0 obj << -/D [198 0 R /XYZ 74.4095 769.8898 null] +198 0 obj << +/D [194 0 R /XYZ 74.4095 769.8898 null] >> endobj -203 0 obj << -/D [198 0 R /XYZ 74.4095 769.8898 null] +199 0 obj << +/D [194 0 R /XYZ 74.4095 769.8898 null] >> endobj -200 0 obj << -/Font << /F26 206 0 R /F28 209 0 R >> -/XObject << /Im1 199 0 R >> +196 0 obj << +/Font << /F26 202 0 R /F28 205 0 R >> +/XObject << /Im1 195 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -213 0 obj << +209 0 obj << /Length 892 /Filter /FlateDecode >> @@ -491,21 +485,21 @@ vsqy#oj
>qԳDR&ڦ C1D\q{oJ7.
pV1H9<E YJ=ZN~P#Qm`Wŀ;>: @endstream endobj -212 0 obj << +208 0 obj << /Type /Page -/Contents 213 0 R -/Resources 211 0 R +/Contents 209 0 R +/Resources 207 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 210 0 R +/Parent 206 0 R >> endobj -214 0 obj << -/D [212 0 R /XYZ 74.4095 793.4011 null] +210 0 obj << +/D [208 0 R /XYZ 74.4095 793.4011 null] >> endobj -211 0 obj << -/Font << /F26 206 0 R /F28 209 0 R >> +207 0 obj << +/Font << /F26 202 0 R /F28 205 0 R >> /ProcSet [ /PDF /Text ] >> endobj -217 0 obj << +213 0 obj << /Length 790 /Filter /FlateDecode >> @@ -519,419 +513,410 @@ xڕVMs0Wp"[>d2$3A)_ I C֫}ڷJ08$b<zE[ 7, =js+&f endobj -216 0 obj << +212 0 obj << /Type /Page -/Contents 217 0 R -/Resources 215 0 R +/Contents 213 0 R +/Resources 211 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 210 0 R +/Parent 206 0 R >> endobj -218 0 obj << -/D [216 0 R /XYZ 74.4095 793.4011 null] +214 0 obj << +/D [212 0 R /XYZ 74.4095 793.4011 null] >> endobj -215 0 obj << -/Font << /F26 206 0 R /F28 209 0 R /F35 221 0 R >> +211 0 obj << +/Font << /F26 202 0 R /F28 205 0 R /F35 217 0 R >> /ProcSet [ /PDF /Text ] >> endobj -224 0 obj << -/Length 2207 +220 0 obj << +/Length 2201 /Filter /FlateDecode >> stream -x]4+|\D[%K3P.®zH_d[YGiEv:d7::L2lLqq.23~gݫp.R?&]
_LcZH9rVh$8Vus⋯G9f!)b9ïo*+Ey4/UY/=$2CL_" ┱INwC";l2I,bZ(To-WRmYm9V.F4ۉHk2GR)0D!,Y~A2|Jhɢ,A%MkIbݔ*H!Rg~0WNpBCj5/~>Ѱg!'JI|HKIᐜ12Zft -<>A[-8--H\wW/4Ҝp5l'hŗ*-)^fg3UP~W%;",v52Es_L\~X`'f/ˢKg[i}qcy4Fq^eXW?~c^ys9JJ*jf&|cJć2`֦!=PY,
,1rSwN[MQ`NK3?^x;Uՙ5,+oW0ak- -:W R:M+a=Ɣuή0bLk|bvՋ`Cqx]}hm jPYi& -ak-"N-s5-S: xdv2OKe]}[efм{ -yf8&8:U=J'PԙxRSi-Sx:Óxʔtij) -2?hS%QSЪ<gcofF(`C,0BQg4p<dF -^uձzޘvo0*,݄:U49"v
dd4 #A0GakqdZ"H@r -W9OUx5"?"qJ82#tx$l-1u(j8AHvEMQOe=-Ŀ<v]/`ʹ3J8:U1Qi#W{M(`Z6IM(L6MIKrxcU</u_YmVoWm.A70QtM42 -:ypO(`6Z<iO(L<DdOva~_Eh2sZF%,-ф f3lEфCad:NhY5MQ\ûʺ,6Sw/2է_lw--kץ0YNw |~rz tբ_3$Sbi -%'s,)Uy?gDK\HY&Bgd**-;BwS]v9lE.Fɜ(y&d9/[ -SjwW_n7[?v;gQi2!N.fƠǝt.z][z:=s1Ṉίez:_w9|#kڭ&jlu~EJ x]F v;gdA}//ۇE>Cm3*a{2}5wWy9 -[k!W`yڍJNϯ핷LqֽYiq۔m@Ře {z}6By:q)h0>B΄PI(OlX&O{vۇIr}6\3~|!N0:r5##J0Gak-sID-rT
>re>/\xЩ%>|ʻG-5wߖF92mNjA=mpԆ?|wӾ3)TJɐ2$f*az=12}'y@[K E==.vj<6؞`j֩q>k<wendstream +xM۸<J!x̬צ*$uFZ
5%R}$Aِ=سS>h,o76 2 +Xf$4WXvf;+HT&>o`06YT_uʩn;KziatUwkxyzۿzs;8 +4˧0U:-ɅQq? +NSE:Β\k9[Yo֫7e/T.CbNy>!3JHPLkXB>D* IdP-+d
ge5&g6[
F]4 zwh\MyTɜ0msJDskZ2~]~k0bN<rxČDcM8%VkBJ
\2,'TY9Cuќ +et +(wED-`VoKParfhr\.5(ިCWzt˪nTMzV !@ +NDI#gxvG]vl_\'/-,O1FRŪJ<wW{<%5Mj<Z +OB<9r{<]sʺ<TuZ.4.IdMoơ5y.ڞ#0bi`DNF{(z]_כ?UQsU~S +@MLJ6'mDs"(@Q<Z;vA2D [y +
+;FCCCGsA~=G䔦z̳g.oja[{t;<>WR<Li6 RwX~YDGk+PdҝLG^"EC~g {Hy(Q<Z|z]!ˡY`[y;px0^ӻ7ۺ;o;훲#
ᔊ,3`oaUC,Og<Ecί1!4.S`6lNSS~ѶwDPC;׀i]`'qʳh*ţ\ +SƝ賿RܢbC endobj -223 0 obj << +219 0 obj << /Type /Page -/Contents 224 0 R -/Resources 222 0 R +/Contents 220 0 R +/Resources 218 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 210 0 R -/Annots [ 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R ] +/Parent 206 0 R +/Annots [ 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R ] >> endobj -227 0 obj << +223 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 602.7474 132.1982 613.2758] /Subtype /Link /A << /S /GoTo /D (chapter.1) >> >> endobj -228 0 obj << +224 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 585.4997 150.1131 594.0645] /Subtype /Link /A << /S /GoTo /D (section.1.1) >> >> endobj -229 0 obj << +225 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 564.6297 156.4611 575.212] /Subtype /Link /A << /S /GoTo /D (section.1.2) >> >> endobj -230 0 obj << +226 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 537.7331 147.4677 546.3786] /Subtype /Link /A << /S /GoTo /D (chapter.2) >> >> endobj -231 0 obj << +227 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 516.7914 266.0381 527.3736] +/Rect [86.8628 516.899 252.1763 527.3736] /Subtype /Link /A << /S /GoTo /D (section.2.1) >> >> endobj -232 0 obj << +228 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 497.8402 189.5647 508.1086] +/Rect [86.8628 497.8402 172.6274 508.1086] /Subtype /Link /A << /S /GoTo /D (section.2.2) >> >> endobj -233 0 obj << +229 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 478.6738 151.3326 489.0498] /Subtype /Link /A << /S /GoTo /D (section.2.3) >> >> endobj -234 0 obj << +230 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 459.6149 163.3025 469.991] /Subtype /Link /A << /S /GoTo /D (section.2.4) >> >> endobj -235 0 obj << +231 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 440.6638 219.7364 450.9322] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.1) >> >> endobj -236 0 obj << +232 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 421.4973 237.2476 432.0796] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.2) >> >> endobj -237 0 obj << +233 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 402.4385 280.8776 412.8146] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.3) >> >> endobj -238 0 obj << +234 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 383.3797 269.5888 393.7557] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.4) >> >> endobj -239 0 obj << +235 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 366.1322 149.1627 374.697] /Subtype /Link /A << /S /GoTo /D (section.2.5) >> >> endobj -240 0 obj << +236 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 345.3698 245.963 355.8444] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.1) >> >> endobj -241 0 obj << +237 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 326.2033 235.2122 336.5793] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.2) >> >> endobj -242 0 obj << +238 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 308.9558 234.1633 317.5205] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.3) >> >> endobj -243 0 obj << +239 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 288.0857 430.8561 298.668] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.4) >> >> endobj -244 0 obj << +240 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 269.0269 339.714 279.6092] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.5) >> >> endobj -245 0 obj << +241 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 249.9681 361.5826 260.5504] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.6) >> >> endobj -246 0 obj << +242 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 232.7206 273.5162 241.4916] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.7) >> >> endobj -247 0 obj << +243 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 213.6618 279.3982 222.4328] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.8) >> >> endobj -248 0 obj << +244 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 192.7917 278.1965 203.374] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.9) >> >> endobj -249 0 obj << +245 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 173.7329 283.3791 184.3152] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.10) >> >> endobj -250 0 obj << +246 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 154.7818 178.9666 165.0501] /Subtype /Link /A << /S /GoTo /D (section.2.6) >> >> endobj -251 0 obj << +247 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 135.723 264.7471 145.9913] /Subtype /Link /A << /S /GoTo /D (subsection.2.6.1) >> >> endobj -225 0 obj << -/D [223 0 R /XYZ 74.4095 793.4011 null] ->> endobj -226 0 obj << -/D [223 0 R /XYZ 74.4095 634.2859 null] +221 0 obj << +/D [219 0 R /XYZ 74.4095 793.4011 null] >> endobj 222 0 obj << -/Font << /F26 206 0 R /F28 209 0 R >> +/D [219 0 R /XYZ 74.4095 634.2859 null] +>> endobj +218 0 obj << +/Font << /F26 202 0 R /F28 205 0 R >> /ProcSet [ /PDF /Text ] >> endobj -254 0 obj << -/Length 1990 +250 0 obj << +/Length 1903 /Filter /FlateDecode >> stream -xnFjå&AB$'h$\jY -818{fvqvf%?VI$u0NƊZ\^tVE~z8eqf_9{y\\ݿsU6~Ow~jPjx;KBoQ/]r0u.uAW)|P7vr~U͡*w2R4ʄd)3Ic}ŘӐSĉAg
2xчh[M+iR|mvrVզ*7I%gATǑKwGǷct;
cKpg8n>N.OPjw2XෛųݥrcɊ:U&>ֱalbDsZ ӄb^%p -;0 -eH|ʮSwRdӺ:^]Lx*Rf#Xn#0ܦj04Ȁx&`erIh_zP-bH0`0otS`wjMbz='P$Ci -߶l|ڻZhT9mgAIE9JHļLu() +x[o6)h31"6k<jeۧߡ$J)q5mP Ux<鐇YA+$:U'j7.x_>f%NkY\-YA/]l-W9WrջMy.XLI!\Xݩ$:m~*v7Eytc`0Miv*?KA컪/߫r]nUϕMc*cI1ȜSfI㨽uCb,h)DРX|\mdմ&e'M٫fl,kHngaUmrY(L41Np쬾f?F8~;Si4gOzf j-f(W+x\7aK +&T<kgkVԃ[zm&tL3
&40j+2`2ށu@D_zP-bوY0n+]31Vc&1E#xm(aK|4}ʦD-h -0{k&n2v^Db7$MEBX_J&lY7,/6j}TYfnƵ'=ݲjIQѝAPe<CN=?r'Y2f,-#D$xld1rUE!uSOCjjSLN5@GkZIJԷ]R\tDHGaQOZ&B9/A&۵:eoA[/a }jmջ)|xsl],o +w)oy ++85¥4pS96<I'N,X94=\Y' SI6g-E8\x4¨s1f^F-?=U>aJ;gv*?3Htvv;Ѝ:]#B*]1F\./NSXO'TXa>e:+2*?m:aPϢ>̎}AK#X{3n2 n-[sj P}RO)¤EP,MXǁcendstream endobj -253 0 obj << +249 0 obj << /Type /Page -/Contents 254 0 R -/Resources 252 0 R +/Contents 250 0 R +/Resources 248 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 210 0 R -/Annots [ 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R ] +/Parent 206 0 R +/Annots [ 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R ] >> endobj -259 0 obj << +255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 756.786 177.5405 767.3144] /Subtype /Link /A << /S /GoTo /D (chapter.3) >> >> endobj -260 0 obj << +256 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 738.8587 199.1048 749.2347] /Subtype /Link /A << /S /GoTo /D (section.3.1) >> >> endobj -261 0 obj << +257 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 720.9315 216.6336 731.3075] /Subtype /Link /A << /S /GoTo /D (section.3.2) >> >> endobj -262 0 obj << +258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 703.0042 215.4148 713.3802] /Subtype /Link /A << /S /GoTo /D (subsection.3.2.1) >> >> endobj -263 0 obj << +259 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 685.1846 190.4974 695.453] /Subtype /Link /A << /S /GoTo /D (subsection.3.2.2) >> >> endobj -264 0 obj << +260 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 667.1498 151.3326 677.5258] /Subtype /Link /A << /S /GoTo /D (section.3.3) >> >> endobj -265 0 obj << +261 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [107.4855 649.2225 281.595 659.5985] +/Rect [107.4855 649.2225 265.653 659.5985] /Subtype /Link /A << /S /GoTo /D (subsection.3.3.1) >> >> endobj -266 0 obj << +262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 631.2953 308.7178 641.6713] /Subtype /Link /A << /S /GoTo /D (subsection.3.3.2) >> >> endobj -267 0 obj << +263 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 613.3681 334.173 623.9503] /Subtype /Link /A << /S /GoTo /D (section.3.4) >> >> endobj -268 0 obj << +264 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 597.252 199.5985 605.8168] /Subtype /Link /A << /S /GoTo /D (subsection.3.4.1) >> >> endobj -269 0 obj << +265 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 577.5136 336.6387 588.0958] /Subtype /Link /A << /S /GoTo /D (subsection.3.4.2) >> >> endobj -270 0 obj << +266 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 561.3976 149.1627 569.9624] /Subtype /Link /A << /S /GoTo /D (section.3.5) >> >> endobj -271 0 obj << +267 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [107.4855 543.4703 291.6013 552.0351] +/Rect [107.4855 543.4703 275.6593 552.0351] /Subtype /Link /A << /S /GoTo /D (subsection.3.5.1) >> >> endobj -272 0 obj << +268 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 523.7319 301.5626 534.1079] /Subtype /Link /A << /S /GoTo /D (subsection.3.5.2) >> >> endobj -273 0 obj << +269 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 505.8046 252.6067 516.1807] /Subtype /Link /A << /S /GoTo /D (subsection.3.5.3) >> >> endobj -274 0 obj << +270 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 489.6886 125.42 498.4597] +/Rect [86.8628 487.8774 253.8798 498.4597] /Subtype /Link /A << /S /GoTo /D (section.3.6) >> >> endobj -275 0 obj << +271 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 469.9502 235.0054 480.5324] /Subtype /Link /A << /S /GoTo /D (section.3.7) >> >> endobj -276 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [107.4855 452.1306 223.368 462.399] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.7.1) >> ->> endobj -277 0 obj << +272 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 435.9069 144.581 444.4717] +/Rect [86.8628 453.8342 144.581 462.399] /Subtype /Link /A << /S /GoTo /D (section.3.8) >> >> endobj -278 0 obj << +273 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 416.1685 203.8034 426.5445] +/Rect [86.8628 434.0957 203.8034 444.4717] /Subtype /Link /A << /S /GoTo /D (section.3.9) >> >> endobj -279 0 obj << +274 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [73.4132 391.1578 125.6888 399.8033] +/Rect [73.4132 409.0851 125.6888 417.7306] /Subtype /Link /A << /S /GoTo /D (chapter.4) >> >> endobj -280 0 obj << +275 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [73.4132 362.5203 132.3418 372.7169] +/Rect [73.4132 380.4475 132.3418 390.6442] /Subtype /Link /A << /S /GoTo /D (appendix.A) >> >> endobj -281 0 obj << +276 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [73.4132 337.3706 174.1512 346.0161] +/Rect [73.4132 355.2979 174.1512 363.9433] /Subtype /Link /A << /S /GoTo /D (appendix.B) >> >> endobj -255 0 obj << -/D [253 0 R /XYZ 74.4095 793.4011 null] +251 0 obj << +/D [249 0 R /XYZ 74.4095 793.4011 null] >> endobj -252 0 obj << -/Font << /F61 258 0 R /F26 206 0 R /F28 209 0 R >> +248 0 obj << +/Font << /F61 254 0 R /F26 202 0 R /F28 205 0 R >> /ProcSet [ /PDF /Text ] >> endobj -284 0 obj << +279 0 obj << /Length 2387 /Filter /FlateDecode >> @@ -948,214 +933,214 @@ i]hj.(ɒ^-ɧ&JR^guE3s!-IBej 2&J j <x<
8:9`)ۘߡc401U$-35pz*k8tendstream endobj -283 0 obj << +278 0 obj << /Type /Page -/Contents 284 0 R -/Resources 282 0 R +/Contents 279 0 R +/Resources 277 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 210 0 R -/Annots [ 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R ] +/Parent 206 0 R +/Annots [ 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R ] >> endobj -287 0 obj << +282 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 614.0499 190.237 622.821] /Subtype /Link /A << /S /GoTo /D (figure.1.1) >> >> endobj -288 0 obj << +283 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 596.1014 203.516 604.8725] /Subtype /Link /A << /S /GoTo /D (figure.1.2) >> >> endobj -289 0 obj << +284 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 568.1903 265.2216 576.9613] /Subtype /Link /A << /S /GoTo /D (figure.2.1) >> >> endobj -290 0 obj << +285 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 550.3225 155.8157 558.8066] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj -291 0 obj << +286 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 532.2933 194.1104 541.0644] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj -292 0 obj << +287 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 514.3448 234.6025 522.9096] /Subtype /Link /A << /S /GoTo /D (figure.2.4) >> >> endobj -293 0 obj << +288 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 494.5851 323.1705 505.1674] /Subtype /Link /A << /S /GoTo /D (figure.2.5) >> >> endobj -294 0 obj << +289 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 478.4479 254.9919 487.2189] /Subtype /Link /A << /S /GoTo /D (figure.2.6) >> >> endobj -295 0 obj << +290 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 458.6881 257.9592 469.2704] /Subtype /Link /A << /S /GoTo /D (figure.2.7) >> >> endobj -296 0 obj << +291 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 440.7397 318.4276 451.1157] /Subtype /Link /A << /S /GoTo /D (figure.2.8) >> >> endobj -297 0 obj << +292 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 422.7912 237.633 433.3734] /Subtype /Link /A << /S /GoTo /D (figure.2.9) >> >> endobj -298 0 obj << +293 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 404.8427 174.9945 415.4249] /Subtype /Link /A << /S /GoTo /D (figure.2.10) >> >> endobj -299 0 obj << +294 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 387.0018 241.7841 397.4764] /Subtype /Link /A << /S /GoTo /D (figure.2.11) >> >> endobj -300 0 obj << +295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 369.0533 233.9117 379.528] /Subtype /Link /A << /S /GoTo /D (figure.2.12) >> >> endobj -301 0 obj << +296 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 350.9972 289.0185 361.5795] /Subtype /Link /A << /S /GoTo /D (figure.2.13) >> >> endobj -302 0 obj << +297 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 333.0487 319.2616 343.631] /Subtype /Link /A << /S /GoTo /D (figure.2.14) >> >> endobj -303 0 obj << +298 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 315.1002 206.5199 325.4762] /Subtype /Link /A << /S /GoTo /D (figure.2.15) >> >& |
