From 79aab89a00ddb12ae904d171789f0688890088e9 Mon Sep 17 00:00:00 2001
From: Nils Christian Ehmke <nie@informatik.uni-kiel.de>
Date: Fri, 3 Feb 2012 17:48:14 +0100
Subject: [PATCH] Added an overview diagram; Added configuration files for
 findbugs, checkstyle and pmd; Added maven-plugins to support these
 quality-tools; Moved some code; Modified some code for checkstyle; Added the
 kieker-header within the files.

---
 Kieker.WebGUI/.classpath                      |    1 -
 .../org.eclipse.core.resources.prefs          |    3 +-
 Kieker.WebGUI/doc/Overview.pdf                |  Bin 0 -> 75040 bytes
 Kieker.WebGUI/pom.xml                         |  588 ++++----
 Kieker.WebGUI/quality-config/cs-conf.xml      | 1190 +++++++++++++++++
 Kieker.WebGUI/quality-config/fb-filter.xml    |   73 +
 Kieker.WebGUI/quality-config/pmdrules.xml     |   83 ++
 .../AvailableDependenciesBean.java            |   69 +-
 .../application/AvailableProjectsBean.java    |   33 +-
 .../beans/application/ThemeSwitcherBean.java  |   20 +
 .../request/SelectedDependenciesBean.java     |   20 +
 .../webgui/beans/request/StringBean.java      |   20 +
 .../beans/session/AvailablePluginsBean.java   |   32 -
 .../beans/session/CurrentThemeBean.java       |   20 +
 .../session/DependencyUploadController.java   |   44 +-
 .../beans/session/SelectedProjectBean.java    |   73 +-
 .../kieker/webgui/common/FileManager.java     |  473 +++----
 .../kieker/webgui/common/PluginFinder.java    |  113 +-
 .../converter/MIDependencyToIntConverter.java |   56 +-
 .../MIDependencyToStringConverter.java        |   65 +-
 .../converter/MIProjectToStringConverter.java |   21 +
 Kieker.WebGUI/src/main/webapp/main.xhtml      |    2 +-
 .../src/main/webapp/projectDependencies.css   |   22 +
 .../src/main/webapp/projectDependencies.xhtml |   55 +-
 24 files changed, 2393 insertions(+), 683 deletions(-)
 create mode 100644 Kieker.WebGUI/doc/Overview.pdf
 create mode 100644 Kieker.WebGUI/quality-config/cs-conf.xml
 create mode 100644 Kieker.WebGUI/quality-config/fb-filter.xml
 create mode 100644 Kieker.WebGUI/quality-config/pmdrules.xml
 delete mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/AvailablePluginsBean.java
 create mode 100644 Kieker.WebGUI/src/main/webapp/projectDependencies.css

diff --git a/Kieker.WebGUI/.classpath b/Kieker.WebGUI/.classpath
index da5037b3..595a5bf4 100644
--- a/Kieker.WebGUI/.classpath
+++ b/Kieker.WebGUI/.classpath
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/Kieker.WebGUI/.settings/org.eclipse.core.resources.prefs b/Kieker.WebGUI/.settings/org.eclipse.core.resources.prefs
index 4b31b758..f8e2785f 100644
--- a/Kieker.WebGUI/.settings/org.eclipse.core.resources.prefs
+++ b/Kieker.WebGUI/.settings/org.eclipse.core.resources.prefs
@@ -1,5 +1,4 @@
-#Sat Jan 21 18:45:36 CET 2012
+#Fri Feb 03 16:06:50 CET 2012
 eclipse.preferences.version=1
 encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
 encoding/<project>=UTF-8
diff --git a/Kieker.WebGUI/doc/Overview.pdf b/Kieker.WebGUI/doc/Overview.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..5cab2c5f6c432327b9ab3a4f69454ebea80cb795
GIT binary patch
literal 75040
zcmdSC2|U$X_djl)r{c)$m}kylEK^9vGMC6qnIlt$NF=k&kqi-q5F(VZ%yTJIDMLak
zQ$+q}a5(Ng_j$gz{GQkU+}C#Rv7Kvg`+eSPz4zK{uMdxoimC`$RGf^be7@)>859Tt
zx>`Aq$;tx7v}|3@d7KA|!@BgyfIy&_s=bqktvl?$PL>|FDz?_HHnwE)@?;l1+-)tL
z$$ZiZjoXX*K{TV&LL2y`>ED{DNk<8<Q69OcAxsmF_r#m<Q$tAiOM8|g{XsF_!anZ8
z=;>Z4^^tD;(8<kN^_s()-<Gb#DB0gG=;^zvLGy9>wfV+nx}@<SAGRJcogr%6LcYlY
z279@m2iTjV$KQ4fYz|*N;l9Pm32r0Z<jMH4?sqyk?9^4eZ!6PZ$G3`a2TBNem1yRx
zYc5sP6O1t>>qe*vKNMDmu4bjIR+bYVVc}Mm!l7cIy=&r`+<w%}AiHJe3|U!e^Zds`
zl8>fFDh*4b9u3Q)Wj8xh9~B*kCi%VN0dn{rx_t7Ife&apw(-)$1vdRIuG@`j(JXyj
z^CMJ=QC>&*s<`;7Ki*k#8F6!&p75@*ykhcTh9*PW=@d)F!y``7{SoY45Uo+0nF^KO
zxG*}mgDF;%J~<0EGt$N*7tND!9<Q2PH+kQ*0N_nZpTCvA<)z!b%w8|*KJ%%L$EJzR
zO#@f=VCCn^%A8Bx)singH=zY9p%moK`a}8nSA?txn^_2()%+s|E7Ds!6OC?+w8Xbp
z#p)W}cy;BBVP#UP;Ft3{6=$x@o{S+ezG|fJd*JM({Q=f#*R)~ZS3JP1?+3dIovJdq
z){CULfaC5*j7|;T#-q1tH05d^x*xrsuG{)BDV}tg6yifY#UmhX#QQ3Z`%(T;&G@iK
zJdXOupPZM$H*e>jT@7#!Pwe_uUZARFAEzmKKEI{7Ts+M%=w=qNEkAB&Z`_1bvY%8;
zZ2a|;hi)@1b-Xy4bnkMkK&EGSdKJm%TL#W)VW0Rz;=xzs@CAl91?rOv?p-D~R2<Ib
zci)(Ek<qou=EuA3J!W91t<qUS)%Ig4`GCR0qsKrwXNodwmlzqWM$0BUvog+53SM)(
za`ITQx^~*=n9{J3O}NzuTjD}pDz8xylK$xTd2Y^=bapfB^QQ!A$<7E3f0sSamFRS~
zIdf(H=v3?RzH!gYxKA@me6tCn9yK9>#Q|Q!oH1=zFAMSypMSc(Vt{M<?v7x<GAsF(
za}mpVOFt1aoI&rqWbZ?#U(bK%JDMS5@i5q7Wp=3JBbD*=r2}Ssmk*eogMH0swtcO{
zX-S0u96o)j4l&}KwC?NfBDFVvd+93?XVQC01JQaeNc+u*G{0IkF*CNU=Q5O+vmWLx
z7ud-$PN%VZeutW?%7~sx6K%Xd7+!bdK;j~&=~__3<{UL^QD@__&6B$gZ=F|zwxo|Q
z`jQTsul{iT<r8t?1$&Y$mv!xpj5eAV_#q3g9#A<wxU=x-g4uM?{LjU#{^z7dYvW$M
zmZ{{Dv|_y*l^(Ibic{rNX#oC9=PrnO$%Wi~F6U%-bRyE3DZf_Z>*V<2%;wiG6I*@H
zQ)uQD$ZTC~whaO772Jft?FRh6Fv|f3K_Kuqz`up;SQvy&Ip*VWT;Bs`Pk^$r@DA8N
zVwND-H$XAvqd+iF%-Rz6Z<v*V{Q&uIvC}859Bi#U5byDk07}5^6Hv@Y5-7R-N(v~o
z{Yn}rz5PlCD6{<v41&!E^%@KWgHf*`KrnoA@ZSZ70%2|YwKx!ruz~P?2_UR(_e%o7
zs1d<ZKv>)Emj;4Sqk?6Cu!ii1fPk>J{Td8}pvHwjfUvgR4+TO{<3hxNu(sVV0feB&
zg-8NnZM$Cz2tkbtkp{xrcE1b|f*KbJ0>T=y9|{J-+V*P*5Q-WX3I)R2cE30fiW(Ox
z0fe>fen}t{H7-;N2y5H@(m*I`T&N5X){y<;ARw%5zXk)vQR9k3fUvgR4+V;&#uXO_
z!rFGf1W+6`uDB!+*0%elfa0ie#ifC;w%soS6i1CK0RqArvR?uWgthJ05TFEVTnQ);
z*0%e_ffA^3C14*X)VLCoKv>&;j}%Y>HLip-5Z1Q)Wq=Z>aV0@OSVQ(pf`PEM{Tc$4
zM2#y61;W~Pzc^45HLj!t5Z1Q)VIO4FxRO#pSljNG21=sFm6QR(8nRys1cbHi*I=L&
zYFsG@5Z1Q)p+G6rxKiRkSljNG07{|8m68O)+IByTLa1@2q=B%u-7f=_LX9g80>T=y
zUm6UAwe8mspfqY+X($lZw)@3_(x`EzC4jKD-7g80MvW^i1%$Qjei(UC<4Vf_VGY?Y
z0|LU@_G>Uu1~sk>1PE)}{ZOC`YFrs{AgpcoO8{k1<H|?^VQsr#3MhjbS4J8LYuo)W
zvw<2H41yaD)W~2E%yhuMkne*TIJlA9`3`12K&bJ-AeaGxeWBh7Ga(?<9Kax$5rKW7
zeg-omAk;j-AebS6eW88^GbJG8T(<3?s;dj!2%@Z}od`$-HbbOs+cuZ5cW#?qFv8Bk
z4KUoa8eF<y3l!6_JZB4kBkYB{E$nw8{u)Gwwyll5rIM=;&;&L-{BtcXDkUQ$1H%I<
zx%2WY;;qWCS-}41i$KKRi|9J;?&^5~ZDz>P5WVo9!$;JI&B5K$<>CeS$kvxo-O8|j
z6<aTRYg@hJO7PC@KUL56qN}I7we3Y9VvXUdbNlatuO#ZP+7_%}r0GUX1(RfjkB^+v
zwkJWnQ{U6d1F<TquI|o=9wqbzfEhv<Ly>>-|I5D*jPyZ!bTws5`+)!;1!3Kl2R@Vx
zi-9z483fdA#&cIyU5@;`b-~`)lq2nd$Y)jRw>Ko*%&x7)9=X9VkWkB4#zZAmz)VfK
zj=M@s<@k3Gja(@B>cN&oYR5w(r+{2k#6tW_AH53>{Db{Ba1ft;#P7vIa1b=!1CG!H
zL<grH=uNn(f*-tOC5kUc9_*fxcPJ@SiT;#F!L`8jKqa!6j}LY7EJ%zB$g?6kwE(v+
zRz*ZEcThyoMP!s^=Eq(uiB-~lpj4~`JOw<2QyfLBfe9?sM;!*1v^47T4@PK{{QwJY
zcm4(z!WdyISO~kipI~Wq)_W9P%M2C>Q;R~O<#!4ohY2mza>CJ)*+pxY5`RW5xL^1i
zS_t=mt!N=U9R{?rJW$lSPa{e$M_vpJm6Xy4i9-k=O72xl{T`GalynpTrM}86X9^06
zxXd>LCkAPnq;RdQ@$vDwNSx1;+N2H#=ICW;2m{Lk1=M7&ciJYCP23x54)JlT3b{b&
zj*BCBk{u)G;42DWW*CYvYq<;K?(+W*jIiG(_OHA*Y8q%^88C7Kfu(38cS3v6mWZq;
zYfz+6Sy&6(sH=!G8Wd?^BM=+AKGGDFF&sxcyA`C)Y}`=O+7&|`xG4f%rT)5+6Q?)R
z_SB=Z&z4>*WIgv84|j2~<Wp8$dx@K~xOHQ8Z)8h<MiN&>n}S7SQ<P=^N53f+m)jJ~
zZk_+Jv6^lD#OBn(<;=%@3I2c+0{9q6j96k6{7}#i{D|2j+4nzzAED{~%68;N5nJ)!
z(Q!M`!{1RkeQ&QQJsiK#`1D&(2K!6^)lp0!!iDKJh*IEP4B<2QeGGR+&K_ZnlAy@l
zI<|td?<z-_q8@|Jc}1&@2`@CABZI~{_@wp)uU+7GV%%V46a`!H+IOKtsr7fE<0}V1
zuxD?S54m#N^g<Ilh!EAjz=fjk9^Z$}N(ULG+vEF?n}~l<I#NV^995?4_D_kP5|M?F
zaoC&oN)i!;wCXrH+;=4Tkcv}M5*QeG;JRcPL22iFot}UW4?WFL9o;>ahAD^^p}XF^
zm2yp`sd6P=6%LICI}j7+Pyz#?bI^?B|5)dsZDw}4iHulcDL0X!*Z(8fP}~C{ik#d@
znhM&3ii3*vIvm`QLPIa=>UvsWl2*lpfq@~J<Bh7S;t+#iI>`a4;()$Hox^~<E}DiZ
zrQY~!HhBW^&Q^z*KQvD=H2_)&aY#$Jzhi(Kv7+0YMVGaR$^JfR|Fx_|#L|)Dp~1Zy
zNW#7V0WzY#2kyV<8V=mO(VP6jN~OyD*AbEFrPPieY6up&+TYU!y|P%KWD04doPD7j
z<WDqB^$-(^D9Z?2ceLmYVhX<xBAT$--K(OZgU#U^<hjNkbbdE{)1ifk-v|rW$Nw#W
zQz}Gz1`}SGg$-g-`+^rL<bduek;gRHYCQK(*lgoPK^X~GHa9b6&_Xz|SpW-6c%jx4
z#xFD>iZ}$@7rb_zD;mGBS=k`Z0Wt6kld_S-iB+}BRfJ%0cOb?v?RgK%qrSATqc9K%
zbgd^OQL&<m^|T=2gC;yB=HzSf%5O|V@)b`!IO`O8D9Moo9yh%q$Ucn;#y#3*H->|l
z?C<0F@0}fL9_aK$o{C~AJ(0(|d*IfND4}WqQK)!d4ZaGTZ?@MUY6@s-2$`S+8z{{*
z;cPs=K1vWMJp1MCIR(<W<ujK|>t<7<G;H~Ydki&L>=M&DW`kZZ(bUD3_jyt`T_)-E
zBnFyjT6c7HlBZoMVz{rMAaRna1fSk~rN@S2O>Twd*34%6Ca>$Nlw801j1oIBtMFwE
z9|6QF!=Z+O28Ql_1Q36~|L`M#7B|{uJn{e>TR#H-J&r@LSMRhMnR1L6K=+<jb=<0z
zIxoTEa$1UwX$gNdgvt#QikS5dBAMX#LEP0lJJG&91jS~(gUqMcL(t#VJILcIipWlm
zvcH{IbzzL-AQCvXNrx5~K+I`h;KCHgL1u?wE1C9B?rg)=Nr54ba};A72eEP(;M&~;
zAXfFa&w>%*Y9#Jxwhx=t4l?@)1G_M(9Vz^Ssv%SRsCMk5*efs@NtDWfyE?QJE5u}f
zpLYLR?I2Ru{t7oT7Yj?-iA*Z{zrkGrdIi-7K|q8MWei7@k#jI@TUNpv3MsyRfzqOZ
zSJCTW{2ja;kpQb)(531(G-9HIG)0P{ID^3~Qy4HtEaNs+VOdA;cfh{`BWC!&#2B@q
zMR%CUygF>f7?Yf-IuHP&AgD7nG{q;8^S=i%#lw|;v7`|6_>P}?<r04p4b`i$&#IC;
z$v0Bq^Cwp*cIC_uVk&P;C}Nf~h#bY=2N6xq>{{+!gNw{=#8!0n`&^1bMC<QzrUXE%
zg9$FwhaF}L(c}ywb#!0gLPZ<)kO|)T&zCRYR{8(GnQX}HSqujAx09tPgfYmOMt~G1
zxKPXa7r1sw@rQB-Q}70v3yiJog8xN&7~uK`ITK=+xQ}wiNr=4$6O8{LXAl|KzfZe=
zFK1BmKxZd1#T!fEM&_#jU*UcQ)dPu35Mz=v5n7ZK6k0Gz6X=AmX)x465!%V&q)eXS
z1Bsx_(a#V+q}E5*1}+Jw{Pw|}a-3`e4`(?Ph$-HRSWY;mFmzyP%<xYG{5vpWrvF2%
z(N4j39VaqvA6v2hyR3o50SrJrPzg|(xUv;pj?gDQCjNVeE;2IDrZ6%HFr=h@W;8j&
z&v2Vb;1d(G09}sYJvVrsToOCQItH2|R%aVJ$=%~)#Jz{#M{ZZk>>OC`p&vGfW{_7u
zFwpOJog>DRsB}A8E=+J?)-s4W?F(F(LNmyVEZEAReGko0VhGJ#;Q;Vpf(x^jLEIAB
z7r0P6kv;6f=FklCqSPLC8Ag`C(@R5EWsjM?AKKD;ln!JiJ3DgS=|hIa5t-BP*tO<J
z`52$w729YHualo`n5V3%u{UVb{-tqFBeHm@HA_DK4nCfAX_to#UW;;Qm-0A%Oyy*<
zNO%c!<(ZHfS#@U7L4W^q-=Ep48+QAS{2bl7J9#4K(d8`l87+27ev!|ZfJLbaxW|K{
z+09*XiQvn>47&Ymb%S;Uz3cIi7s;@cugDv5dp-dF<ndBcJ|kQnW6CT>mv_&VQWOJr
zh~+`KyxkZKV&HutCCWyllM;D}4_h(8s6u}0@(k)UAJcI}QycAdOn9M;9E=@kr}>C0
zlKX<!?#>d8L)a`)khett%Ar5POB=C)-<y3ArwVY#gcs`b{};UWD-9Tt7=r{J4KHkt
zw;*rt?!ikt674vCX-+9lBTt!!Uh<w(Xr@{jE&kW7gJ21ViSe<w@;{GRJX~$)BruZ~
zx6`Oza=h&@cbbR3?WDt001kZ@^lWrMMZi6d&~N_M0uik;DXXj^BZubOHpVaN-S7e(
zeSYS==j@j?<%Gvq-F~ih$G*#7f8v{~pG)qC`%M+JhzVXaO#_A^A~<j`z=%KM_xbqm
zUEi*&Mf(_Fv-Uw=*530m_;0T7wh89l-o3As;+U{QlP!{Hu5WiKe@C^T?e<W=AKmpK
z@0Vk#>qB0Y|0^bcWJ*Oc{&o=Ge1P@_2DlI_2d5N_9B7ei#GHPgX}fTtWzp<X2zl)v
zTjAP&r6Pj3I{FvSHw5s(gcoL|f+(u6FL=T4`6GW38eZ6}RFHKg_Rvc^q86TrcHLVc
z*c>>|6Zk<b4_`0IMQw~m`9=jT{?aB-8t+C+qo23@Pxbe*j}nGSYg{~ZZ>g?;9An-P
ztel0sCN2*T!oTu5*yS8hrA~9fcd9YE7M$C5%Wt0Gqs`D;{~|_pa~B7NFOn?b%^Ob+
zCwQyf{XF>2^WM=J4Of~~AxuYph?*DMOaw!BEhl3BzYp!dc6w+jQ)r(6Y}P)=3L<+x
z0slJh-undDr+Af!vT;1b^JC^wg&A2YM45@dTzEnhDA@)P?LHx52EUIXnmI+$e~<UW
zW<`Q5<FW^wKTAW4h!lq1Clm-R)QNvUQ$W)Kzv@y#i}BbNQ8s29Ewri$h$-z0TD$v^
zT`D1K(qO6cLl)QBPqef#ggSkXVa!59tQ-oi-LeUYIqeHvs9hyGxsauTuobR<(kd8^
zZ7V<n@U$etQcQ&tgb`Uuj5Mi=Z`Bo@2rQXz<D?|&xN*_2x1As;wY*#<jCPOEa-B5;
zgLFZx<TiY;Do5~lz`p|{3N!sae*fOVVG70|D?ec?%zw{)`PU8(ezA=Bifa!Dm1zBg
zmdX<oiYSu6)*bC)8KR2T?}Lcu;ZS@3JtV|t`GG7Xwl6kwJG6<(#Who7+}|N8mu-^{
zZGVTD)4ss9yRS!cao8+KkoDd66)tTI_sVX)061Zy7b?5~qZe8v8ZoJT!3*{K(dY$1
zma4-};|D=j-NS$v1|KIWDUNqbH5cPGYS_Ipc<ybWFFqG=n4s+ho)wg2xCbvZGH}D-
zdJRYD9S5|#(}Y)9Z~YxT<U($<4OZ3<<>HWY{C)WTwTnYb_T6D61X*+tTT%YIk~!9T
zge*Xjf}ltKehcC2J3p)mOK6<tu6tNz1{=|T-mEVmJD7Y)iwf`M5vdiZPj#LlnYz!5
zHz{=LZMPUb`JNw^E-o$-f30|?KFiHYl~m0~<VQtA+SZHjn?Y3$yz}|`OrMA@tTC@*
zf*G|7g8_r4WFUwlkN-=UF$8NM$oi4k3iIEU3~V=uOhtkkfD8hl;eCK5T1vXU@G1&q
zk-W}`<p>cGItuMbI*-Umx-dOJAH0}Fm^nowCg{-Q%Wg6f1W|(X_mSI`FK8LsXw1W6
z`2s;!AjM!`|8+7F60nSWf4w8-&3dp16I3WA2xFP_&UOJgpM8M}#o|4#5R0V?1X&Pv
z|Dd9XtT%v_G|UH=D(;jtlvSdO#sn5hSHQvAIk7{|XkWm>5K4g{%X4F?soSo_3o{)%
zRnCxsFHE{c;x%k<PIQZ&3{$ZmBCn?*im;kKp^-o*Wm+KgKxkaR8<rL+qBb7oS1E7N
zDjCWRF%Dw@Z>LHb!k_J2frg-!mP0J^|LasE#03=Or)Af8VspV>2!?{a|LD&mB9LW6
zBL2an-OHpD!UP`5jKRQ@M8gg)nD&Kv7{VnGWTAU(WgbS6@mmM3+mKOk{LQJ|F{Y)*
zgch3q*bO;D&}v)#4%5)|2g+%pJ2m9v2e1{b{mZUJp@nd3B~>zLZta{b-4-UeP|FE-
zYdaxl2;$ie`$8@Z;S&h*sSwx-7yK{Uds9d|94*mkzS)ff|8u}VFl8&V)%n<=o4D&+
z2dNAwOAD@e%ReVEovOWX<XTcfmugk(yW+e&@wR-;u9bUUR3z_PB>U$HRF*iNW?g*U
zmh8_01<pj5e;>PFLNI)^mYYpOgtKZnO6%G2?valra_sBXXU~J4_7M}f3mRYo7EQ09
zW!FLwPv`i3WMLnZe^<O0aVzYvE)Scl_d+mK@BK%Yr==zQA2)G1(Ub^}w)d13vQvy>
zuggQLpz>!%6zx*ct`5QGlDZJ&LuB@2XMlnXgUd@-pk>2AwVmP)a2vW)n;to(-)Gvc
z%iFmchVJsPxyCL8`DmYgMGN8bQUW>9UEW=~O-yj1E0kTAhgP%U56QJFOwq`N%@Gph
z6PNbDb!<<DkqoJGj1CbuBDa<UICL}f>#u`d(FVq^VF^Yx2Py}=C&593?00B`ISd~6
zoLsbc%bNCiDbo!MvKTMx*(3m}a0S2YlCsFLCw)-ZCvY|;)pfI|IWFWo8_m0Dagu8G
zEZNqQqV%DQ(UlJ4uT&f8*k?47RHWAN)4WBjFd>X4YQW+<cPSx%SeEx+`@WrvfqRIH
z%>kHytls-yVr5C0f!7`>WnSYrT`n35k%StmbxoEIK%pQ#kR*|Q6&X!YW}rZFmoAAB
z$prk8tlVX~R7}94i5i)m8$%GptoFsyVhX}wa|K?=KUU!VeZa&)g#A@yFH|qn6NOv|
zWC^wiR)m*pvGb<;fdR6e%d0T<$n5Uk(XJW)p|wR>b99a&ALoXp8w?Cpbdhnh-+&Av
z+4mR(GJxG)e+?&Fi(xTAKgfS4)@fHr_X`tdXb~5g-9x^8tF4Q6cXQW6A|JJft(g60
z#N|KOMR5rt7|m#&fv=}#qtg83is;fY;f3M=oMXH04((#&A94)kPxo*Pn-vZ6S&n-Y
z%^!0N0?RMMz%kpqbl)*yhFViNW@sGS4MzSUW|#sm$j4J+E64sGc=>J2wzUTYM1bH}
z2{^fJM|;R_(j{X8472w5!$P`fyFAqIM<*FJSIC86sF3^HfT0{2q-2|90X=Ab?A#Lo
z83xGEE8n7N540;gf5tJi>(0A=44W(3LXgj<-5<M%;#go0%#97bVbGf7ClDfVhZj<j
zKTCHH6JF@LW7m(NUD)_TyfCGcARo1hr8e<*YusYe9Vm*GiVtG)W9N?nXfR=hu03}B
z*uE9IMZ2Po#xZQx9?0i8?<>bj#fks!$K<Q%?qdQBU3l#7p%Js%k3BS^O2c0R{>bN3
zV=Kw_QFy>Y`)FYg5Uw)5KIqPlzK_uYoWcYdN*e6lL;qn_+g<5_sCDpH$gsIwEd)ck
zTDdSVSpbNJ;OCWQ|GLUUaWU*9*N&CZk?Yc^ke7V@$wZ!FWs$5Os&y(mEp++d?a-fv
zk^GX3sy#H}{JkHp`+LV45=O7l%nlHo;oqFbmz1W>zxuY9OZ^scE-oMv18C@VYGrn_
zyU;RM|InGC3@^G~#OC_55aa{u_s1~)jc59yyHBl+xdOoOh#ClD@!&Lo(`@H{Dso!;
zVi|Y$cDt?&n`_cS5cOa8o`uVW!IG9iG=x9pnyUlcq!iroj~0g}T5*tFOXfW7<EKpq
zr<qnn!<)>rj4!nd@X{Zxa7){p)rFPBfrxC>YEwBsvR0@Jg?%sJ=rZ6t?`mkV)*eh6
z%UPS70EojxGZYQrprO%hH<J5@G()+|Jv75+{qeh%X)$WXzqm6ld=fNo#tp!fnIM5$
z(ZA4ammPnI7^cVvHW#ObAnLvDrP=Rqq)~`L0$}?xRXbip7(aF=jGuD_fT4^AWG9W|
zFEra->puhyC2`PchRr2rA^%un_IJYgCCJz!@~{l18qvL3>>9uhgJIms8rVxSwA7D3
zLkz8g%C0xV=0dR$M8Vemq8SP?WEh_}WQw0thOC|}&@|8#=e`#JQ-pEnxcD!K?dB8w
zA!3-qAChqYiKRu>A-`Kk7LzMOKaSQZy1C~x`ZZl9CWfI)kKJ(9z7>*1t9gUQFl?3{
zh=ad<Vi*c9Fvip9a|r+fOpu{#kKNN~v;)aMq!=oKxyOyceH+$NY(Ik^Ww0m1z;iy3
z@hV>W5HzEhZw@HHgcwQ~{KY8lm+(NVKD0|RY_9$a!Cd|Izi0nrGKvtC8$%)nI$&)L
zO4tck#jyfhF+hf192V`^1?{xt4@riyyXYjt=HjprM38%*>>>n3GDr#ha1-|2Ei{tl
z`2(^sA%-$rdr5{Cd;dekcK3E@B*SLq@w??=F_H{|JaGXb5rdJ87Ck6@zXXtm2{RN6
z;F#?myr9K${}3~jtK7pfY*rr_O2q!bHhLQ~Nre9R`#$>qZOo{lRuzt#Bpg<FWD)X*
zg<p3=`DmrR(3pnJ0t9nK*WYw!DBCCrKa~DEXn6_%427K_Qs^3FH^zvV*?t6ucgnP(
zQw^I-zCtjRe3d{yfALAOsM$GxX`-udSa8IHG}nP{GNhC!*FvIF-|(XX!y)j%Ft=LO
zL*Z#=r`Uq9Z%&puB2hoWA3MYo9^xe+Tf)2V0l<_jj9&Q_jcRCdi$61vXl2=UsfNv!
zUm=JM=YGi$@V0?OrVI1t=Ap$ur~wHWJQ`x{;CzDH#@&-?v~BPo0){F6fv8G~t(!9p
zrC)#Fqk$z5c^@DoV4wqB7p>8brt@e3cQIjxS%skOs{RnO-QX7*$*@_4U?|r5=a@mH
z;K{<gMCcpp`yT+eF(HPoKz2_#_pO5KP8GyG&J3Fs2!;x-66mL#-<&`2Nzo95pBJFd
z0)`4SHOxN5MJ5wOKRYT<JIo`_wrXOcI|n(D!C|DE)kv!Cz0zvPlgLl_%Al;cTodlh
z#(V^+C`b-Y;O5E$VlknHE<tv6Bbwa%L!RxPm+tZmn=83O{%s}KvTHZ5sTbg>fr8t6
z6zflA>eSN|C?8T`OidBwo_1%v&4hS1-05qrri5Hvv~uM5%KQq)IZkuL2*r@&WM}~b
zF`$NC&=pOBpectxL=9zq(Yc1r1zjPCTB&;_2oFp+1}W0u{Pb(~1*VSbM^_&rAPDc*
z(<8tSj1l5K_Uw^rE(3!d;G;#2n;*lYN6EbYSLT~9wfnvt@Cjqa7y9*F?8fakB?hFK
zuWU}dJ|C#@^@QBHu64^SwOC5MQMy4)xS_{Gc5n3lVIkMuT^d?-N;I}%b36o59(6Bn
ztS}qdpaa8AuGzHCbJee5n3m*PbHAQ&lOhnF3$n=oH<E@CcV=&X>`#`r8v60;vvHd7
z7iz6Y-I2=T4_iNrg{Tt-IRyaDQ`e~yPpg@|;`*8;!{qAXF;j|r9t5DpgdB<yFbxR?
z?H<bPTlv<VdZT+Nhs}cI-<EIvFNTsa<&!Z3gCGO)!D17Fu%~DS8SCuc6Kq=sjA8-~
zU6!CxZZ~rHho*A(zyOVM*epvh)NzGVE(k@r&Z71!KTZHi1R`?ok&qI=vmDp`lM$2)
zKh^%xdP55A{HA;8Cbad(i-8|EnNJ#RJbS1aOZ)DaY_Q$K{Qg41?o2Z>OQsx4yNo0=
zD&HZ%QB1g@3llWlc9;7PaYOxnG`>Nxxt=Q&Lp@j4h@GT4)4Iykm<&D|0`hWHZYlyb
zpBnx6=pxR$@yiE230F-V!LZ!a0fF%3z6(}chkw%P*~m9pT~L>k|8=;SE-iuQm!F>X
z{rd?<Y`$gyM8s-ug%RWmqW0Q5<?N7i+mDbI%=Ye-=i1>L6q_rwLJ`GJ_qw?MxN-Z>
zb}}V-`^k&ULHVYH$pJDdz#TQ&;SHGmJJpb@hr(><@ESR<{lN@FfCP%o<yN7HvZwow
zSuz4MWiCydUANXz1en8w8JZs1Jqtz7Ykx4q5Fmkquvm{k|7|_i|I9N+CS$}CPLY@;
z2Y}Id*1iIm#Dp2T6hY(Jen}B9!VDtON3)GstVN(03bV4pwrvgD+cuc|Uy=P{2Gb(9
z;_H>@2*AgRzy7>z85U?M2|nDP^0Cv$zp3o|=3uzAm~l}u6SbSQMdRwv9>8RiAK;{R
zI1i^+p-<bH&eqH^CRaOE#z|sd7XYGi&tJV7N-V%5$UCKdkh9w#wqXd9K(V<>D-=VO
zRycB~4R>8<kz>=9K;S)4;w?^ol7r;x<EyW%VZeETUB*PBAC+u0myK6C@O24(B-Xd4
zmol64c@}P>tB@l34Px)ibHJFHEkV^GPf3o)pJJ)6ozzbra0~<G&<nK6?5IfO<n{+R
zlpRKwk=R^$6^gm?>OY^0{ueWOI~n;P=xsT|czyRme7iQ_118MSgCx6V5;3p+!ED#y
z?wUz#F3bu=R6*T0Il{P&S@O|5Q$kw(i|A_P0$?5!WGEKE?c+}DA33f4feht3_s|TR
z)d->z>b^mil6)HxMovz-hEV-`3Qu$%1bo2+8fs19pzS33K=-XgD;VLtk?^DO44dT$
zqR8o9&=8>!MLL|H-eFY%-K!&K75HfI1O_1YNDdJ6Dha!9euC#8++dKhKDh=?)Ymfc
zKjjztxNSBv9~{nnl1lbnbD<93v+AaS^UeScoB1XKd&d(LpU=L0(F6?I!1Z&&6dZvf
z3f;n2c5gHi`iDhWcLT{_5K8f&6Aqipt3ol9SKWi1n5*CH=X6Dqdmw>km?FsvzSpw6
z34&o)&2VTT@#SFhRjZ+|3bXon;Y;|rFSzS{N@%}SS5D+xjc^;4^9s2=FF&B4pU#}+
z*piY!eaFKc$6pqpje&OPHCWLi$;kQbhp~hrYL@<$cmIbftXj4%=RD4Xfe=XvFl5hl
z**i6)76#3m((=#+|DRr~^LCHDORL|`@!H@AvRqf>j^+yBT(!J*lK^*;rs@Dd!azoa
zt}Nk!Ghwu#nXNh}(LEkRhuNc<g~!Vc^Rlv><IiXqwtQKDE_x{!`)_S6EIbi|E?$Bz
zj-^U1rgU#!11YH;D-2a0uhN_n<{~t&4e6OwxHiOkaj<|);h^vI0*N;NF|{=R&Qiyu
z8aL~Y$|Ty3!HctxYQMa2blUptEwJQApZV=ReaBtsLeOOY)=iy{_Ib=TID%<_@6Qk1
zHl&yiCQmFlbLBnNOTP>LGHHB|Ob&Zf-I|+yzag9EEu8Y$E2X%VZ1ow0bb8!YXi6-+
zR&Jaoja|9ryO7E!3qom&vV%$ojyD|$qTph?Lw)h=G$rmGWy@#empLNnJ{?h&4lo#T
zo*>DgZ*O7DN}7^wpX~B@pxn>!RRmw>+`1OA^R2`E=AJg|zP8f*O>fViI9=qCtFTaf
z#&~f$Bv|P|_|%1<lN8j!7dSde+YPTyP2FWUjQnQxAjIKv&^R6F7AdcqQEWyF9<S2d
zpU0P0qooA}b<Uo>(`XDmZ&AlDOnZS;aLURdMN-GH_e=bOL51VlA^XmQuX!D>^U<fw
z0cJ$Zb&BndLPko9s2V3FE|fpuw=}-cS{eYNqOCs`no*Z6PySHNXsX>uK2Yj2M7UWZ
z&UQr5HEEp1x=|zI!|k^Ou3Se*Im%ufpywsG$>`y9I`s5<|23e;t<L$x#L=<qCl&f@
zHf$EZ6KI>&nk=Y#miwDOc~ayR2Lif<`}_3ch>3jtanE+>$34fkf)GiYQ%Cx@ob=O@
z=}W^sa-TCa_(%2>GCZXWart>b!<*9HiA9`7O3YQYGgA87DEl?Kdcd1`MpH^c#@@wh
zg%2h~*U8pD7Cu_4;bxIuJuzEa?zravE(({0<2)3oA@ZK&J*|J=*8>TK679zlHHB|j
z-Z@7SSQ-#R=z|j>8^S{WG>ZlKgYYY*KWy=o=mWy9z<xj_dkhdY$=S}6_?Yk9g?57L
z!gcAg@k(tL;lUlr_nc0738?32$`qv;ao@WhZ>#aJ6sqs3q%P#3R!^cSJ5CpytvPyE
zZrLb8<>-W=ZWw9kyVivdalVJHUOQC%qhI!@Z?Xc>Ia%4Svs7pKmRjF2v87T1&H90-
zW)?3cHFNe=bZ64y>w!-6vfO`QkE0#`^27@7(&M+24rb4?D(=(klvNZRsqcyBefmr&
zacgkM?y8I-peil9p`<E1J80`?Z}znN+K;N$4mtBA`R4h_8`*&)W?U~Dy&fh_$|oM`
zXFYMhnxDMsv7#_Jon7F0dj1x?SYaBXy2{8xi@=8#dG0BYrx)z%H?DcM$+fWtpPZ1@
zUq5)xP}cv^x%WT%p2#T$bO2SvUOsrD?xJ^lfLAl_war;>F+KYHaN+Q>W3Qupj>p#W
zo1Hdz<9cCSxV#r4CjZFC(8JKuah&?qU58b`R^`&K!03l3?V|y5W+QA{+9RD~!CkIL
z=|k-T8-!ynnS+0lS*_$W%{hiazaQ>rXXx6vZS1bArGM$Fbb7l9(Zt%3)_&E%NAX2Y
zEvKeaCsOB!KOXr^JO3=kHGiQpntH8bEp#EthNvyLa7nx&;H2o#*_TAThvkWyh-Z^=
z$h^y|M-s}!JyNp|e#F(jG&mVsV^P$UDxNexz-L^u*3?omj7vsUe0}4M`6sA*O~T~T
zcfsmA9bYeXjyMF5Xdmb~lzVEuVM*}riFa+&xeF&vEa$0Xgks}=Ij|4+1oK?To(__D
zsd0hSkGGaBK%aFfmm*^@DOo%n_uNWvb^MRFB%H^15=17?PTni3DNl=^W%#Jn6mrdD
zh&{Nom5)OG4Kvt@w6`Rfkv@cc{;;3z5$0++ts}!TiDCU5Z=9FbyduXsMEm%L$)mVT
zZ}8&Qey4m;u)@o$$8=;|%TB?gU+ac@vkL3^qN=JyK3)&LF4H&Sqe42Y^QQ-EM~wAf
zc$s~;H`Yk@=Hgf4;ck2r*MZ0o-2nv!!AgyfRHOORpVCfSP!h-J2@@9gu$THCN>g>}
z#SsiWBT;pisjm50m>};D9I}~9xD*DbAH8zyj5siJt7(0CR(Ik2?WBIzG2hH<UTyha
z)k1B=rwr+v!---ZwAH@~B0d#gJ<2A)7EK>oB^u2f<$G)PVDtH-HAS8N)19-gjhg*`
zv<1bfQV3Le4~aZan^bcUI#gsb;gv-AMSAID3b}dJ<frN%x88pMEFL#Mxcs6`?5u*@
zTx4@*Q)TL-<rB`g&#+QXP38pyxL!+i4qa+~%u89tdcK8JKC0%&%4Q3-X3@lDL3Qbu
zXGz07hQ7+2O}NQo%0FExk@m47RLzq>hWx<={qJfs`A3B0E8jNs^LV_hVav9<kn=8M
zsb9atoi8UNy=zG!j{=t_JBRIZWU!uIbT}t<+Ewjg+&+G?`ZeQ54PEZ}`m=0vDWC42
zH#U%|gv=<+^R;hOZ>V1#>i#K_LZxcWf8XAN?u?e@6&fOUCWgR+Mp3vX?-PX2-VYeh
z$kuyvnl2$qIrF4P|2d)S@~1dF#M@Nf9V=r2MSnQdSU2^osk(x=G%mnTang}LF-2`^
z+B5Z)3r`kzcq#B=R+l5LO#&<KbsSa=jn~<BVSre{r*FPx`2b>k6>-Bjg9JKW6<(Qr
z@RD~Xkt+P-x`6%{#@FBaquexk4GXzfm&@MCou7-hAC`<`dci>QRM;<!8qb_x^_9&N
z-3O-=4&Hrb-q(FbPtTe)&4iWVjJv)1<MJw-SWip!_BxT*k(+GpTTNT>5>Jx#2o6)$
zK~6BrlgW)=dFpd_q4`7Ov+U-p9e&SGv(3L)^LWeRaXIb8ZE~j0hll(5BGl=~E-8(v
z*sI%8n(JQ{P=L9@k>pBMv*gp+&V6RDo|X8=T`)K`1bUPNFuL5vCAu)@ulY09zaC<8
z$2ryczKAoe*U-wFXJu}Z8Un%|y3R~Fha}_1A@3s&WJ+6GH#PG1Njz>Apnp^2vFTg^
zoX+$Z{cQW8c-8+Dh(B{IGkcx0oaI8*I~G5xf%MKWS@UzvNsA$ot(=_M-X$cU*sI0o
z4y{<ZaWt|>E3~#;&QyQL_<Zf5WoEXJ%}2p|RuQeCEeRooEsAb(Y*Ew^3pdFn0&-aC
zC<Bi?zeCtHmmM8NofR1(p>Rf~IQL=5+=F@vr*>hx)ML5$%S|<ewiIja3`0pJB05Gs
zYO;d2VoviN>}}?j<t+=JW9n6%)*JXF6l%6kmZkdg<i!JLX0C@tJPr*CF{QEKAJZ>W
z=)ZH+?@Yhn6z9lE-wkl{uQ<gkR~Sk}W-rdW$NjL&7jv*1xFAD!{!&D*4Dh-l>C909
zE*ho$^U{_cy?0V)-LGW1orrf*1k7{=oG_iQ*$iJ{VX1aEef43rs2Q-F>RJsJo2mWv
z=1%I}^a7#uYe7f5U)@NOOb|1!eBbLcHV=Iv``Gfs`c2W)SLO`*j~1?~e{^5?Uj2gk
zq9}9m%2E|&5=H&OA>!o^q_!W=6s38zQZh1;8cQUkek0JKURUcpq~4bMdEk`jGd22L
zHSdy%E3svc4n}x!&V+)>2GsdBwzdhzR4g`$gkU2ka7Mou2lpIZ6!`{s%L#H*wbQ(1
zWcGo?uXK4#DY856oVTAaGBEt2Qb~S?h$*n)6T@NLr#6W!oKO3|^RIJ+420gSf;F|=
zA0ed>Q5^e_&b(7^j?u1#2cLa$kv6xc-5?pTB{FP;V_99REL}H1%h2CQ@=XrZZ8UN0
ze&ohlRI@0=jD6v$-t)d@lQQ4x&Jfu#-`vB8ACnbA+ppsMxINEw&NNqLq(0s#;X`FX
z|C5-Ru9=g^g?={rQ(X0bl+bhK^xO232TZ1xlpjF_m!zS5=Th!9;iwWZ$XP8mu8=`q
z*%PHn8b}`Ld}gWbcZqQLP&w`LWM_c`-l&oR`KSEgQCyijYy+m_q47}vlbi>L>xyv$
zs8zVA<NQ~(E5AH@A*S~zSMp;jwfu<hTE-DQZ!%)1uC<?uHOZf6E+saaxH>+S8`N;~
z#Mhb-QvAvK3Ex`DnCkT<mPw&C-3{?yO#T2dK`P@|fMb+$3FnCyi5dKs7N0e~c`>#V
zj<cjGld(7*W{Jp?X3%v@&a;8&`?RfEo(xH`D?V=XMj0#{boiWBQJ9LP2_!ZDW>?7#
zvDYyW3IkX9#~--M2|bP|YC;(8Df`SvZK@|hIm|+!j#I}(0V#?WSvE=?o=!d<KN_A2
zJz|n~pD2E4y5_qPJNYq0-dMb%$o5!wD#h~`0R<OXzP1N`|H@%~hb$FrS6CKRL1tL=
z;61?R>ETxrB0eH1d>yBzo}RgOHd8A2iTl{9U)o~HtY-H+KlbT6Bst1oboj>~c@D0>
z{FxM7apNBDy`IB$a`6VnFXJxHG7RR_3k{^ab}VEMzx(ug^Es!(U6W4qqfvNA!zUCS
zM8C4Q8ePt+BlifY1$cx!zZ|F=m)w{>Z_({w>E&=oAggmFxrqIu#i*t98J0pSc^go9
zbH<OE3w^IHfOwA|806@aa0A7T9$l!rE^;GMlq~IP{e?kG`3`~z`il1t)121sz#0Wd
zTJS;WjM`ym8E)2uC{6pD)assn+&AOC&+v1<(7xxpE_-vH=4Q#c)|2eqYu|<Vpf{g+
z*LKeL^xqH^7kl(7<-)7DJUMl54JpIqSqD}Lt=o7<No{5(8P)S2^r<)7QR^I>gAh7|
zQH{i`-Eh6)xSS>B>iSmq^%$+c*YfSV3(qdib1}1zUH(#XCwUlROHkr>Bt-h1&-~z{
zn$;JUalaz8w8!Od)W$_?e07bW4<{VJ)9mo9${FJky!5O_PjkeOsj!5?>#QB)$J+uD
zr|C~WGu*o4$V?+5!o<dE=5eWarSEJ`-}{#L{+>D3!q%M2o4LnxS55dkBRl2?^@h%@
zoAu_m9O@MdXJLDiJgmOrMMr#*TPv7OE`lhFzKo(gOZ1Hi@P3R5#aR-fc?Z9vI{Kqk
zfD$qZ%~=M;L8Tlaqb3Sh@T1ja;#s!F{tx!cUvm_5TO#yA0Bj+EbhCo5pn|WJ#>~)J
z@PUz(1NGVkUz6u<;^wx-;Jv_G2XzY`iORf2(-=<E7!PYY;~YPAf4W^6>bf!KxuWjX
z)%AIv;@q5NF6nv-@98@6dZ3@X>Xx;%)hdt1sbl=Nxp~v80%&Qq>XjG51t<&|YNg4Y
za({A%vUKv<x2k=1AE+5oF6ZYJpu>GiLu(>y2sDA(bKR$IGkyG0Pu}5`NNTNQ4ewe~
z|KQg6mmn!Q@RnG$|MFVU$&pf*)r(SvqoeQd9u&GO_3-eeLq&dDxDij}doKI;4jvzr
zZ%o+8ob6#2d;YytK+H)=EdrnISnG|Sx+m;fm*joh2w04PVnQSYj}?LBKOQTl3mmmu
z*8#>5ZWt@Je^+s&FSf<KLf_JA6_rkyW?UCb=w8}%yc@4e_<alB>w;Iuy6`e&Hs2;&
zlo-AE5x1c}>6#wh*kID|7WA!UJnsYLbwE`36mhfZ(}_BdEdRSjY~kbcC1=407kxG=
z-gpsveT@hJXWs~FeH#%_#os2Kr}rU~e*zd0VIL6zCLNBoZSo6cbdmgCtMy)@)5?t3
z>yq^_zH}WM%_l#_06Cnl=NVQkin4x+iaFE)L-G0XM9F$gEo6(h>({MR1heK=bStQ{
zDBfj*eJRH0&mZFCP$^_&Nl1r$PjF$<Db*vG_!1%9d&A@@!xQmfA>J4+bIStSN6yg^
zwLY$(>JJ2Q&MWygKXbZ`W>QWoTwUU8Kb7%xXy{CgJg<&pd1K>gM^(*o`=Yc;&5H!Z
z{kJtKnKNz`-7i&dC^Pn55Np3N%65D5a8{H?|FwD`4$jb$+8S;6>kVm-Sx0JxQ8s6$
zXLH9{DHlb}72>1cDY&h?q9k6Kn-$<xsCHTD`N_Vp2DUe;_WG{8x>D1=qDMtDWi)=W
zCFm#PnkeD0pY5|i`Nk(5tF-g?U*9h%eRsx5d;O_zO*9#Qh=M^1pNUK-n}M6CdZoJ$
zRa5F6(K(IjV#7ADPrt!u%l64$EuOIBELGI0c#9bkb!j9af={^Spvi<?#eL-$!S?r)
zNrMTUBs8J!<EI#_dJ>G=yB|BQsS}%MDE1tB;~+n^%-Te(LvW{A@LJAXwmFZ*1IJ}(
z`DKxh0i!p+*a-@}z7~Iakn$Rh32)LD8i0EI(Z~IOb2#-xBo+?GPCsYk3y><xyP)z=
z@%5u;K(@&#qX|`3=Of-zKU~c(UedQvTN~&-9_>!;eD+zTdk3KFZoc)IqOr@rnBE6w
z_uv1)nQ_)=qVdMc<Yj@WNu7r{**zZkUFRxPU%!txxGQPI!q-j5Jn7gRTxyz6?MdZ%
z>eB4;x2|trF1yC{+|zoMdZ+VC{uocgLEH3aO;t^D-B<9t3{~nc^GKadE;7qM`?B-U
z)Wbph2YfA>R6v>{VP_B9N%ljN9x@)Srop%`Ug2qdiRIt2GS#-yi@JBt;UrW$4Oa^<
z69;B+K=#**N(w<nGCB=veK{Z!u*Y<M2M73*v<~TzHR-EoxD{aE68l`|z!Yw>Si9`d
z_cr_)C6m;pl+M;_7GF$Mb7E2pYjLBq2?BwU_WpA&@g$1!EhjtgXfe5bIYtsf+)kTu
zSlm2MD_Ky*`>Yh`upnimg99kuzCnD_Vca43CCo^^NzOinPXz409=Z;x?u~x8mipXc
zwe#xpS)T`2t`6r$I?pppmdCP~dUW3&cy~E!W0P2#-Q=CmW~9Q#)bijPd0+0$d>x$9
z$K;M7Oi!e~Qht93S;(cG=xQx2n7Gku{iA(CVukOzzL&akQ?I(26D{CW;<u%<y^nw9
z<xYmtI_PF<9)Giv`B;s?n0p{zJfMrio~qjIjoe%9Gb8OIg)Uv2a)KtZ1y%`E$AUBS
zv^@16KS;f8I67eVO53)HwQH;KYe1_GtULAM4T+W5lTaIvYhxodHIKf$cGh4ZjX8ES
z9_U+^5d#Wmg}#ybk(e}<(^b3nbKpt48Pm@Z5!VG;s<d}M{XcJ5uUgEW8@adWd?Wq&
zI?tTd;yO+XnOE|uJBtjrO|3Gc3=&hj`Zm>w3=<>IR2Z{5***J|5ukX<5F9Md=S)Ax
zbRVc?(`=<&s$>wZHeKJ497#Cl$3Ab{8#{9uWLQz)er3$SCBJZrq&?uXhv&@8C{JBY
zZBATQO><d`rzVjxbao+}i5G>ZjYY3R!&XkI#uu{b<4Wf)9<cj-Dmh>06@>ZgYyri$
z@&j2qrgdjddm0TH^PXpEkR-olt7WkMA;l9)Xs~<?LMsz{!j9>6grumQf!ksQNx!#@
zzE?<*u}F;WqV4U@CzcBR{OlkX<tEW;HN~mH^UUS%>J1!{9Fm5r{CzvlI5@s9nixDi
zI3#IoOMYO2Y1U$x8<Nf}!uXwFRxNcM=Tgit$9#<U#giIYac`U}0`c5P@nS8LsOfBQ
zY@HwY33>t!80RM1J$z-?KXbTT+T>2trGPnABiTG{lJ+}3G2^f45{#1#64ci$m8(0i
zi4eaJc7B6btHwv?H8SYZ+Cz|0?3WU?d;+o<T-?K1MwZs2?)Bsdzm>lCa>~>hSL#W~
zDDbLhW6JaHnO3`roDJ25i$9jXxP0yy^B})y=W4}NIn&j37xHjCNlo)EzOWy2?9wnJ
zdj*kmbH@#5?W?texqWAVx=Tx)ez8m@_V<V;UP`SR4!&u7$oRweYTmrLwWtQya-y&+
z5kz(7bTF6I<w`D~?t6YO*#Poy3HYPW1ZA1Y#d7Vws7sI#clmiPRJJONcU?Uaa&^-b
zaP@=foA_pLU{g}vuY*0*6qK~-?T2Dmroivi)5SRtjx$Jr@!6zRwJW#G@o5&bN^T23
zwG~mYGH*Zm;%oL*JlQnJ*Q5CP^+LC*Kk|G(K3?}^>vB}oBY{nUE$<jtqFe9gjvr$j
zKb)RWYP~cj{Gy@Vz?Hpy^RjA-Li200cDzJknhreNwqh~Mg%=HqB<<k#Y4?k32_u5(
z(Evj?iF)0UoW99R%bC5w)?vABk$U=LfM)NhH(Bvc=OV^<Y1;9=3G2iYW;rExbZvj9
z0`{Z`4lDeoq}KvyCK?vX&bD5*ecS-ehFT38(;FWeE^_N!9XnsudO2>B-p_Nq?TxBS
z_~eOM`k$lgAq~UUtH$1MyeFp4wdiiCjWCA(Oz=@)Ii7d-U276`SoT_-P2r|1#RwxX
zFnM@L;W>YZ^)-_W;q+K`j_1#B-CdYs;L;9Y7;(CN-@dm)YruAN>Hui{C7H8PI1TC4
zB(aV9gbe40)0VgcH<kP|p1;fBFX@cl9CaDEyXMcR``V4+<O>lW#<8elBRAth3Kjgg
z{lp`FKzM{k`HjEi*%XszNPmV&8JSyQDVvZniGYpC1H6(d41KD}r}3ZxA5XNMus?T>
z-Xwp_?#+y0*9=|0U(l49{bd8bw0l+r&@!!iB*SUC#cyps$#r&^-<DQBhZ|2|S4LbM
zJ7m88qx$QyE-?+Qiw_n_FP_nzwYAhuGhTZB@y&#s%M*ckx)-Tt#a+KfMKtfGOIF#R
z{`^#c{88=lLw329PSx>%&8qviq6c96TFJ7pvTq~Z{;BJOK|feG*Q*~fRJnU>mg{z>
zsVrMBCjGiR)*$tI_{-CCn+b7(g7k-|ulRR<&K5f5XZK~ZVd>O86(1Up8$JFRdbuoC
zGqj|(czX0Sk8u)shO)nDOev-jDL$m;Dlj(e;CNERJ@?=fl{<a4SpZqFgtY+F*(Sp5
zh&9s*P4`;8cbp<|XL9BbMl05g@bKh_&Lned#0U3MDo<*wnxCejKl_y8WCu=1vZ??T
zfFu9C!|7xaA-gyC1rjxhTR110gI3KJS;;q2;x2oKklc~gZ=Xm^KSP{%B`S<;(~!3z
z`FZlovRvKfdfoYqHoQ37&@azxRzA;aEL3K1u1#M&*t`}!H*ll-YJA6NSkA1Tx9j}c
z_;tOjuczw$@Gb{2FG#o(oao@FUOutO^`$?pf8;Go?0svo;?qK|1K;r1!3(6WL+v+g
zlR788hzLo;T^>4=+gAvWKek;BDja<1B(wy%TAFlolYYvuqViLkaURoxg*z2g-h}LQ
zwAs7T;I+i@4QBnwCwU$RMdE3|t2x1kANJEzTur=b_H-&|pngtno~OO0x<=hKDQVUH
z9_L`E(GaW^rWCov5g%b;eBCpv@oghXD7gDDMcz|9nnf`#`H#A|Vc*VvTvv(qkM(|Q
zs?kHW)jsd!Ku}kZpQao+C7s<@ee6b7+k<=VS!~{+6*v_SyCNLSOVgQJakP`k?z)vO
z_r8;od%C`vc$|0E;dtu@H=(-|9~H**pF1h7iO31HzL-sls9cCl51Nv{LgzCl@V<n8
zz;XglF5XsMiRC1##DiPZADH{g+C0wXh~KFeE(j@9SvI*8Tw>N70kJ7KwPyZ!%=HLe
zu<!HLW6WN*<_Dg=EsGq$OK?oTFlEy)(abm<exg<^p6@thM)%p*jYiWC8zv*H4S~~o
zp53_x-6h_pNw<~G1e~1xbWm9YuT|4qqqNBTLzq`tKarA2@OX^ZP?1tvSFlXfmDk@M
z7kWrZuBOeu?)HMN#kokc@KN=2JQPy7d050FBKqCdPtwO!MbAq<-Qq9MaA-TaAyMJ?
z&8)l1I?}|e=102$|FLNTFGlaMXs!f`+{5*!a`i_jdR4Yqv(!fzUw%jtE<EB4>Qh;g
zk4<Jfs`^0Kszi$BaZFdGPU0u#=+*|XdEP;g;Dv!a@qo6^dAb(wjM~KUBPSNU_}y|1
z@>z9SqYbjGS_}jO`3XxjCPFB>#-J`DY&tg^V&0bf=bgU!P$Ex*^~Q?_&~I9O{8Idb
z?;Tr|E@hU|j|R8`rP>@5m<P0dXy3Ms3OFY|;a5<m=3jl#opt<`dDfwOwVxk;lKOn*
zlgKjrC$43d!`X=qvw3C{M&Y`qg+_cF%7z4uGevY3?t)OIAf;@bW1oL!c{FqlC^XIW
zc!-|A6PM2m5-La}xn`I7Yi^YmBo!0I9mTC<>{{tiF4*d>rF%9ki!+J_NFf?w2^7==
z81oW@-+B-r&lPWfS}2CHQRfUG%i}}cB2nm!3QmhoLsK1LV)vGs8?nmw^r>{a=Z7ZT
z+XC~c3!+*l2AJJTv`)xee33MEgJbn3Q{?+F7D3f%1B;FD0ng`$8OblvZoRqtG(CEC
z#BIKB#<9f?S`?G<ZARZ$zURAX{0(+VSq{1m9%!Xqrg4g8O1B7oqTr&4yC~)57U{?n
zO!@-xhwfd9T|7H(GH9%z&>}M+#V_3;Q?I}&-TZbUl_~9`>4&?trb0!Xa++P2JuT?H
z9=?RW)i%7+#aiY%=slw{xTdI+(1QzYi_$gV)dk-NP#&#T;A=6F&1JlCiAT$5y!CK^
z98t@QtG42eZ3DIp2?<{gXb2W88ENRM+xCSO{-T*&D)HeFG0zA|r=hCKKUIBGcb)7`
zO0;K1r-$n1vQjI*aDK<-T82Y0$>8H;tKR|$8L7|N0R>trCBl2N*@{1hi%^jEdy#u8
z_I8UdINITm3cHmSF~?AO+?*_bqk`9Ou9fp>QmFXGTQ8Qw5BQH$CDB>Zld#-;{GRm7
z1N<EGxh>&k9<R-15vRuKlljifQ!ewDqP2QMI%+PC>igtQmr$`Zu)MzD_Bm)k>atIF
zAmNW+k=gXJmVGN~4rHr@J**1GPS@wm?5<k7rnb9Fwa@#$P`~hk9~x=Xajee0bI$U1
z=V=#-#>Zs^i}e<_ix{6KaA;k6(B5TSnbG})PQ)r|yzGWZ2z>?gVeROt#IMg6R@rbP
z6X-imcHn8?&949}^vTM(PwUU!wttuH9`dS~_DZFXMa~JRx_+9=!$D&kfxfVUpz`|H
zg2O>nnkA2=&!tuOzD@2=uI{M<owNKB`GILRGAh+nYSN|H#m&jnrL(GkIpFEAyUx{K
zx4Px3_59g)uh}-4PaRHP=!l{7j^bf>Kc7AC{YIwxk@t^W_Td46^XD&@j~2~P-KTB2
z-klIfd+~v&bcv(a4f@A<qT$CnGc672W5;j^mw^K0Y-G1A`0}reQC+mGJlyKhs5dR1
zW>c{k6DNJ-TZ^BUX~1WEL1(MSw%5x8hqxnC3vwi~jz+IQj&xAw&yrjp49p;j8+^Q>
zwdkH9YOuKa`P_;1rMS-a>P@rS)T1q$gsK`Y{Q0r=plY0^7eqMMq~6-}J33A_evFgs
zS*gvKe@+5f5wKCe+o0T0>6!bzx{o~|{SkdY5p}`)wGpP{M@9P=nez$o9pw2BL>{^c
z$v8eimtt1!!1N}a$D~dSchL1BrBEU3v|AIQrbDad0w0;u&FI5=gOU6!l`eL+pNH-*
zeQ2n&y255YviSb<^6cxF=4t;Y=WITfMTjUSYfRGJvYxmI;xuMFbI<5z(5sTqfDzR%
ztS8Q7KWncgZ#a0&*6xHTeZ_Z^>-X2XZI4d60k$NmxsUiY=%mGJh-yI<pLi9%P<I?2
zH|>g-6<Iv}_7zpl@!a#5Zc?W+hM(mWl7GjO#V=6DWDxjqtvKT;K_DconENTWIza^o
z4I6DMCztVLC?VIgI0}h5e8L({HL|k}q=AP-<LvL)W?XN~u;b3hO?49gE}~UhTFh!|
zc`Jcu<2ii+<om#>LlgO<brGd(SEdSyg>gG(a`SXe91q6>aZ|EFt=c)ssBv1<%H2hX
z2ynScL2)#9e=WwSUVPaT*FS$d=)?#6M*ILZ<y_m*+*5*ddY%u>Qb^OBYb+|Vr(AC6
z;lvq#emHI~NHP#$wN)=K74U^AwyV6^nCnobgHNNO^7OAYhJY#wzn%!j*1!-+sIX11
zn)J2tlkRgqH#ZnH<*0A5-_z}W+usnF?muxS-8}7TfbaK9VX$MSG}rUZ_fGSLJ+LM?
zk8?2dX&k=o^DO-NiK0?n`GlLN#peqp<1Rwpvxl5Dv}f>WQFZD*425v9j(ShLNaJ_!
zIX&*9O9<%q?0d{+m;L@$R_bf^G>P%^4rKCyTV5BoqC_75@+q3G71J}%u~B`Vlu5m2
zxzVns@|ePznb@6(FEmZ-`k_|gyor_qNvlxeuQn=QZMY7}1>GfGY!X{6*P=5QISUS_
z%&%Z3I6on@c=A)o-NBQ!H)<_?WelYceH^hJnVr@Lt{1$EWOq2pdSdhGo$oYJZ{N#9
zKf36UjwznnjOdLvj$8xxrt~^y2_+n%bIZJ1UaVzoUv;)}l#{*+&}Cw9YoSZOgWuDR
zNhYB@HVuN;p_(-zy{M_NzN}m?`@rS;_eEB<6}x30S0nMSx80fsqUaAvJZ0jftcflG
zsZG@$I7Uw-0IimUQuhX^x7>eO>K$&opc;8bm8#Z6xQK9ORGi)}SNDOg%0kAPrlsss
zmTv{=;#=O1t>-$f&mO+we)h7og+eN~xJOF%S2YtAdA&_9G`a9l9NYOy#>Wk6;!k4v
zqvB6NA8X5!h3Q;czF^gGM9p_~R_IZcS7U|HnX9!D%gVm3>l{gu?2AD+^sm-y7KKIM
zmhf2LG|}%SC1zUfe*XDpSQbntesN}O()O%;lyYIF&wtuWeJG~cI(JN(WK&AM;+C`Q
zIO!C3ppGvA6Y&pzhU5>~79X;IP~_>CbAE5P#3g6+-MGg%R_moCb*yEf{&>X0PwWbF
zzJMFu_p1h5*9X$POm8?2>kon$rAF~<G7enOQ<A*(gq@)C(c{Fsi^euT5C2^28+_ZH
z^o)q<Sh)Z+H1S;4-L#o_QvJl{4sX445T@ISq;zuD5uX+_6H;fK3pyL*uYf2wuQ@zu
zn)^kO$PnS|HM(@m(*~!%@#rT%X0acJ9g1@hzYPDv8b$kFsf)wQr-Dy4iEfs;#0IPC
z6!XrK3#)IM4?Qo~Dix@CVRDK29PVc5w8TSgdLEh>0yBCEQm+56vhM(=y8Yu$S!G3`
zj2uNu#@Pdf?37uG%05;Z*<0CVMy1I1NLEr=p^%wPvdbpP-s`=Op6B^L&ad~quGf{z
zIiKG>zx%#_UEgo}t+TQQO8c@?m_w5t3g3p(%}3K^Ys^teH?rR|jUf7a8&9G3IUXn6
z6{a-`8fY&!EB$mSww`AsY`)jg!nL|H=VC`u$`D6B_ak1{?4G}pSqd2njy&`<^IGSw
zvyF~ghn2<W_t>l2`zUHmPG^g2XE;^xj9|O0e|9Q3{)|bFj=r=uP?1;h(YKxjzUBQs
z$tT|~*B<7<k+|@66z6nCL@T;<J!tR%*U0f3D!xJN_gNGKx1>1wy;8>n!is~oSHC~?
z)~5>5ucXmTt`#aa+GcS2Cg+eAk|5)krpIKTb~PmCbwU@NpJ1Zy!5`;q5AOH-Ui7^N
z76LmQFxqTW{<$w|J!Zt@mQP8S$78RD?y(N{HeHt&x3Zhxce}+cyYq~0RLnDdQxKwV
zVP~uRNzA@?KDO_mNWLmtHgo^yb=-DV_Cz68m+zF+kl2^rgsCL83RKDEmOw=AHRpP7
zhady<*Kc*4QQpnvgFl7)gL`I#PAEOe6z?<S5ISn(&3xL#B&Mp~A|uBq2gaKxz{Ofq
zoAdlM%~9p2=2Pk4pUyNP{2l}`xBAUG7SjpLn%4*D$E)lO@r~#U{^it9|GZ2{pBu%5
zaMU2uq4IgKAhvvSh7MJ!D~7FC#4nA6m0TOE`&8fDiO_P2kmFp!5@U;JoOs6%W=nlO
zp?;8s`s$;x$Q#^pbPw=RW8RwF%U-!gmHipZLO2b*&AIP}8ib*KOw*S8VzjBW`^s{j
zQjhNSXKTpCrKXus8PqSaxwY3<L)F9<PTBlQ{26mm;Fw7!oIxyAyska)qC);l0<&HB
z+PG?}h+O@BwB$X5!p9@U2M_trvX;wB&(wIsW~D6sxO}tN$_vr`yw~`a42&h#4N~MD
zc{8p%vOBs+csBPMrWf^j%RCYL%txmXTO*G_6-28L^A57Hl^NHXc9xyz7D86gnP6V8
z*xqRJz!|=DA;h}r>j@p-|K(DGW~}}l#gceAF+oA>gl*Q*D89+1g3Jtx%uc@fprag7
z_AMfReN!5=$UD-`EP5|B=k<wq3Hml^t~LslfjoM3UP}Rz?soG&dCJp6F^yAV5(aU#
zVJBax-s#)08Lr;$4wGnCY)C^?==+U0wo&R2zU{4c)iQt2fEJ{~HXG~T;u?$vuLK$9
z*lvG*Y;02hwH|-Xgc&}h(K&Wdq2Il7;SHCS$cy{kVO4@0j8qCE!E+ZsKN~f#HJ{z^
z-SBm*Su5DWZx+<P5IIg)C|7P_`Rv`7HQ%M;TvZR<w%%^}sT1X02TXdRx~=!Ui=>LI
zqB$;hibLgsOtVTto1(Pid#am9jKT$dJY<5pbl<UeUo+0jg59-wwRo^a&1dnpD7y{|
zZ}7bwqlzbcN{w@vj?z~pQ=?Q&bGXfOrtqPb=Ouf5qp0nOZB|m^W5~=#VF^J43nkv8
z%KL-zBcH0DGtxv%o$=ZGn0;?$14Flfg?r_SdCTm@{ErKf=4LnV_+L1GrjyU-@NnAc
zwiwlN9y`4<t;Xoe+|kI3hwpUA$+ZM#^u;WXi1sUQnpT=Rom>9eeC(U$8?5B!3U|=2
zGENCmu1c3{9&C||ZpZcumHrx$EZJ;js-I@})y|2UlA8DMM{$)W8*7R<jITQKx#dO}
z>qUOi{)o4D^B{orwuZjn{=f$pCUVNhbIK`|t422yi-R!_2>Ttdl55*KIU7x0g_-jo
znus1t-nn1TT*}SDKc#ybpEHXTT`Tq!WtJ|xoRxqaE4ulM3nxI0SEUrU40jpPr+j}!
zf%5fA8Ousm^=JTNLIvLLCgpJBHDAHC5<T(n)^X1qZVjbBK4e|AT;t!ad&6$JiRO#y
z%B;hoc;ymau9}AT8$a4xDpXT7R2xovS<NJ@HN~wAOY*P6mt!>OR%w443Di}K2VaTq
z*ZUyL^J?B<!1$?e`Q}?QT^B2t{+eRqz?6YYnyJ}$WE1h8{OX0Q+P1^j_(VI{eke->
z?YlW3S=hf^I=!vArS!FS<IsS8C-=x9*W>vQc+$fLMB7X!c&=~7MYReua*i?PHVO28
zG<nz%b@Q^G<F^&0f$$#IW16qCIV^&@)8`CE%MNfpOG{Br(`15KV=vqn*81km9yx;4
zbY%^4*Y>j$RIHQ>RcL$8CNsY7V*bSMhsU)vPiDHa>o?izjFo<(wasX+ohl6sSjuhw
z^el3_;q1|M`}PH59HC25T@6pWh+`uZoI{w$9OH5Q=G{=umUYf^KGSj^mujZ=dVOSu
z)~`##hdm34b&s+pXpSkzzMq^+JUdoU9meIkne|oAEueM!R%`r$TT)C-GJ5AEqlD^`
zdGurA;m5^pzBzqZex##Nitg&jyCm_syyO61(}MWx%XZuy-*mzfBVD%Z>^h&jgceI=
z%L+L@qO3@K-SI5@jIHS!8*R|Mm1F;id!SqMl9~<9^Z8H5V&Z3Mk>Rg5i{fck*M0H^
zIZWcRMYCI`Xy@-ecMqW(o_}yGU(bKgAmQ;=c))3&XCE~&Zw83;KYfcVJ6UQ<HwrHu
zMN}?Sp`xxhRS8V%r*ooPK00=)wlCbGj=Lg8ccyNYe)f2wh(N4n>Cj)w8lqmkv94nR
zZZm07TMv{2xYL~{0#rTP-wsEHgn1~|B#1U`a_DVWhs_3;2<T3Km@HM$)aze2{P9Nk
zXneoacUGFGo(uN|4t0(5KM7*d)K3Z4nZJbH80VZ{$Ehb+^S$PZZgMb7<@xb^AR%08
z&LtG4%|fL+!FQ&oBK6#i_mQfU;0msfO-Aw!<8#_a<RVeSKQn|_*Wt=v8%=AqmnzT&
z$;H!UrIZZqv})d}Sg$11a+*@@nk>pE_qv>i7oWi6YHKAb%1OH>kM&o&@k^)K=AE}a
zhgF>3jk%`%^~1MpP|V1k^=cD$&RnM8*P)Ds8pei!LCWBt($cmR2K9CQI#00hL()p4
z^Twl&S~gMMeZj{Io_Sq2h_m!_$$PBZ<T%Pnl$@$ARX6#K^uJ1F9qrP(=F30Ac1ZiK
ziR6z4$9Ts`;;);(QpBf5`#$l<q`I?3*EY8<N_q_~N*25unJ#$O=h55!Y2)LW<@eir
zPYiuZ75RB?(0Q8uOQ6T(J`JZ=G(9J~Q=VRG-`gqJ^G15&R0}=P?{x6{KK9CJr{3;&
zqwGWCTB338PQr@)dVOCvR#e?gA{DTG5>s*4U3GnN;*>$}<2;(Q^;ZIq?y0gZ&xu}-
zw~2vgj+WBocZH_L^Rq04jD{=MTVu`$Hso$gy%G9l`b2%6vvH}|{msH!gSD7)rYrGU
zr^rucya@f790uQfzQNB=(N0_`__Cw^byI;xecB&|=1e+9d9<^)<s6-!W9qHxuc@7M
zedP82byL-mFYV182fT0Co!HFhD=D`hb!(ublMz^LR(=+SMszdS8|<r(^*)9XF(}=#
zWclT=Tv4@U{?u34cSU$xb!&6l9XNPV@uy;$6J86y;(u<Y=dQkw+wALIACo*;8&}(&
zA-PZ(cWeAT*WKHP#P%k+)z3ueq(pRgnVl|Tn3CQQG5c02IkyMpiPdDG&)>&A^zq>d
zh4FWe2@KoALy7`V{V^sRv#v{eCyCE>Zs@(x%I3Z<8+YnBbC#e6sxcE;Cp7uvhznD(
zzLTNby(YB2>e83`-0AO5H6Pu6-aH@G$zNi1^{4;)s-}@sg<2nU{Q`74hTMc~pUodA
zRkwJH?(_`iQRB%emJ)mSO<VU(N#cj<lD{^}*4Q_VzC3f#)J6~6ca~@+a2@B*#UALA
z>&#WWa=+$c<7FykJ|tttE!l^W#&TszX|xj6_X?8s?f>NX{z|@n%E1i3Hv21Y54}(S
z;H|43cueL29k1Vsj;ooS9Bop4?f5I|_|QO@w;6|q0O9q##$=YxJ&X7gg83X40*uA_
zfsvJ3CdwSd&hp-@6n&P9OMitrT->leXH@iQv)^jdX!9a2C=<OoppCm?SH<7|d{*O2
z=TyvaMa=Cr1606y!_bWG;DGds(T0rI@BnGu5UuYo2VgDpd5R&8hIMwgY@}1<5#A+@
zKJsk1$QsvdL3s9zn!pu|lzKL8&n)*#n(d{|yZYvto3ZUBE7{B6IHT8s4-d8DjA%kL
z@lma=o?)W5E@Dm?yY>>aicWp;)8jvQlcTh*f&%m6&;)w;RBVTOYCvGN3GsAK<bvz5
z{c2};k2<D45K@%UGTtZj<>5YKL&4X>$8mEo(K%kp0|_w2i>s$7o9-v<JuK&U%6~A8
zmNnTkjgns~l5p2Oe4{+FMqyi$_WXn@Z)_6L!XSE1jz_q54DR1}@w^mITm@Z=os^MY
z`HO+{vu2V%q(1lvgvm?FO*V(!&3ItO*4}$RwVYRKGb~56?_OQ=iJ4<zA3YZm&NOG`
zi1&5IY|-ZpQU6l4`9kfSycfOq)PROPu2iCg1CuzkF_p$~Gc;S_v(2p{UJuo^(uJY%
zF*C{K_x4Qn-aHL{LyBv315FbjlD2FrH^-&zxxT%SU_vh*Xg_e)%U>%YpuptVi&vMt
z=uQMCaO%@bMBfelE)sF~eUn1Gp{Q<ki1&MmCn~8-GOu73@^sBI<9o8pjg(}~E~qN<
z+&lU!tfTxUkF2E`4_EAX)cD!V{V&?WUZ_^oM<po_c!)Jm-(ipXp&g%Yv_05BXQ#VQ
zSh?j@vvmuCtMbE1WvWZ3*y#sS7h-Z8eVXZyOhwv^2&_mBYvHYibO)+a6v{cQrIuT}
z<UdGzRe0W@p4+<E8YaZgWOrr{=Y@f8X|rQGwDX&LdN=ny|F|9~A8H#m+cY!wskr_A
zTLvw@P)~19f6tJtnN)*fmhC+sLL`qT*W8{vG{?JqV(au)SSy$FWJWWKJ<gSSlSX{@
zpahlPefIAT&WB3bB?H608?78ZDxDfxIjn3&k^g+1Uy>!%eB;8Fqd~Gwl(XQMaIxoW
zGCw3I<`(49R5J!=gSR}JpNsEN4NY<yz=xjuv^P(mlgogs3^mhW)B9k$Dr~TC<#aEF
zD#2g!Q~bcInGdssz2mB~EHGw`JqnL9VYqOfhw%}~He4sRVc%?yW#3h{xpG7JYmKm<
zy5(SA#jM0KuD^+Aqz&FQQqE}bBImlZyt5Ks*rJumnD4`#t=Dl8aZDPg-VxrN`10h3
z;x@z5!M?N7ow#@KHG++h_hLWAk$jrX{kPywo;SP$hCUmZm<-7|6LjfNE;OFB+s{Kb
z*;ioot>P=nN8UW9?0QNQE{Ke{=shHej29B<sr5+lDZW%X!q-^dRd^%Ym-92mZocqJ
zZ%8krNNq`3Ns~uS>_}t9!_h0}KC#c-Iad}oVmhC(8nCLms_J)gz+u2hoi!?uvr=U?
zzE$760IeN;9HZQm;?WvoOQ%2fdE8}T?~nNkfr3R?+qtk`ysX7x8*v-QW?Zn*)t6v*
zUmD~3FItsxr>I>!!+4@%M%F$$tm4Lp^Nta3jE~?b!m8Vvk0Wb}W5x&L{ga+}9d($e
z8R+w5a?(9xv7$BiS6U(#b^|k0|IKFKD&?}6YnXT_{}%HCyKd#N-b-=AC-<>!MDU29
z6KIz;7wD`ArBr8Ce=ut_)n2Cv6BvAPPvm0t$jU8|5ImAOCoOuNwl9<|QZm`9vpS|F
zY*u1R$DS$u<7D%T@%^2wo4%8kEC}`w7ue>mD>D9)^7T5<pH0nfsA7{SZi8A5U*UIQ
z&yrVgVfFZUmM&THf@j&K@2Yf~vwJ%!@)JVLTwKo<shfS@4tzzWWP9?#tiau(tf9J9
z+DG{mSIqZD=P@}hQzYy=QLtZah^oGjYsQdTEimA_^PX`^rXz0;F0HUiReFYreVRx)
zbn{FnT#Z|w;?;}PB<%@-W}k^$EsGQDYF-I6F|Cu|L*KVl!{~lhacbavtYVnN$M(4w
z!u`2et5Vh@g@<n<Lw*)Gdl=*ybq1Xa7-F|U-f(8N9QY>Prgqcy)|&9gUxo=eOna>h
z>0^EKH}=NCLnqI(zPxX2?Mk0d-@lBHj_^csmka8Imoi>DPt(%GPtov@C8tVhL&5o5
zOp7}bQ}Q4t9w=@OgGt%lE**x2F%_fs;E5B#MFUaojGQ{Cl%n+9B=_czxfGkqhxj)i
z1P#6}H<RY$s%xU7-Z=NFI(D+|j+p)XhIH-AelLT$%F^DR6HDcP9-Pm&>TKUzu(co|
zMk6@7@X}1lKhdJT(j#JktwY%Tj_N*F-TBx!|E{+2sr!pI!s%0b9NA(1kqYt(6|v48
zkEriXALF*97kGbE;$B(L(c4sbmV0#Ni~Ur|6-vD<*{Y%1Z}gQtKARQv=>~}jidmF)
ze>gmKMR<?So(rx?pO*}qZ0h$6zT_!lm$f)UFE|kvnytE)lsrKjaU;{Sv3Pj+G{a)@
zzK4oN+pT=ZFgRBS7CD8JQ~NupLJY%{9wbMwxLtJS_29I>>TGTP^+{H&SWyvwVna}4
zOj~>S@F=>~6wfl#+oIHTNuY#XWni>Xogro|kGep3vER?YwTSpR)yDSgBmdGY=4c$Y
z{Oorf7S6U@BE5v`nTvxf<_69jUCo{0pE$oiG*~;ikX64N!;|#_BOFw&#4m;{(*K;q
zc8z2E3176UQA)!!Zs~<8%*(_1^Mbz_pEi3Sw(%%;@8tRGsr{Y5P~{-$#9Gv^FWjS_
ze!c5L-8Gq_tDm+sIykA4IIHPq%GSm#Crah3=s)Ifz{jBO{DK!9BS~rbOq{Z)>=kpx
zm0Fja<8+aAX-|aL)O1u|sUAR_<>;TYraW?RYOA^uV~4~TUfjkd!73wlFZ(PBJ-^5o
z!OwqKE=4^j6<#&)vpC&rB3gwdM5L`k?c+jXEj-_jBj8Edg2Hk8d(%JA&0lOHZpXIj
z#|5-}xra4=#Lp3#;+JPnyl!jS{G{Wy^7M$X`p03$lkTG@N1UhQZ#s>&iyn#o^lLk8
zbk)SIN|7h~TWiF#p4m20F;q{$LLM=}xG{}dL<)IuzfC4<c<#%5)LHZ92zUA|S^xHV
zG5(`D5nsN~JWc6GHr8`~Q5^PiVK$3h5Y)O+AcU$PZvIp`Rv{wx!OXdvjggu@({^J)
z`+8m)`#XyCXH3Ot%{^7g6ATY$()gk&#8K2<34Zj6FA?Er{W|#;#=Bl7S4J0-LhsS{
z(n>yv-BhmLlh~6>yoi=CQU3gd5IfP4k!*0bh$!iDzxXXt+e4Y{j#wMbuLFG5w=I1O
zb?yd~r^3vJ`%m>t5MSNHsm6TC;js^&8J%FTOqdF@INDW^f3TZl$*0ILN9X)4bN;jY
z+YX_RRVe2%KU-w_i92XP%#z5^AF~rj7&_SIF(wzre#&fn<3Rbt`Aws~!-9f2z1cgD
z*8!HbRa-UfPbk01=-E$;<9c-0tqCxc$jZ2a9RFMQ#jdM*8;+_?@5CZ7_$vt?Ug}AU
zFsNRVO}1Z{inF%<@#Ve9#s#@F7L(&t+iaGj%;`f{lX`e>Qjg_p7E*T~JE@w?poXJv
zRb)11O>3fXemir0f%duNo*BmRuat{^d#v}as27-U_ck$&4J8Ik^)YHK3+c!kyt%k6
zwJyKWvyj|uitL>>aNM+R!E7j)!Tbi|0`~MXj8KdlHHC8W#n!^Ee)O)Lmx|!<4tGGE
z&ucSjJ;Q7(<<^MotV?KF9aq!hJ>2_1tzYR#qnV;wmHwB(rsJ23ITJmbwf4?mEn-Wg
zaDt&}vtO;8PJ7*)Kj%ct;CU$V$4Orc#^Y%E>=Mej>rt|1l)=Qyyyug@@?QS-pt+OU
zw`!9%QTaM-^U+qAC3f<!@iXChUerax6qb4P4Zbasw^mulFBwZlH?rnemn0g|6nc(R
z@|7>%QXckOvXi@^+mjRCQY+UJTR5`Byh*Td5j1i+GWS>bl9U+beT6rL?rC3nKQL&V
zNjV$NC@n^<Bui`C&Efy{aI1=<fEis>HC0bJuZJx2n9nT_xV-q7wBGp(GJ|Tgb4bNV
zScCst2GH*Kq{6Ky=ZhFxc@<x12bH;W|H`=g+O7MSq1<}XWL?(;*ZkX;&tmiRTFjmt
zN_{#quH0ZH(_rNz*zkkmL_=;`yHM=wIW3*^j=5}Rt40RV3IBVdK3tI%HKB;Wm+uR1
zJo1&rBQ%X{8kfqQR~u!x!r%&cdJE#IzRCe?MzXu_h1Ox^VOicestN3MMW^=->ZNv{
zh{G~(X~258Ru6`Lc=#c)r)Iy{Sol}z?)?)7Q<B3=efc5|*>D96?VF>>ja*hgnj)t7
zhIh)>p0+hAoNw;ju-NLEO13AO1&l1bUVb+OyzYHnqZ@XdJ0>;#a9Q8X%OWHD^tYzF
zvf9+NmB_mS;S|q*&8f^)=UJ~&$X6QtMUkvKe4yFpavAH}N@_nbg7x*Oay5a~w6o7?
zr#KMd#rGq^X@iF^InTwMqBlpTuql3q-QQEf(A<;8+UltI9>&j0@kBaX=0N0ESP8|1
zCHi0lg*lS%8P_eJYWs*}%h`vC%vNg6o<S1uA%&XhYpc{Qeve;8e#@D=a%w)&J*2qx
z3D5ZxLd~JyIk+!y*CEZ=YhLxx#U?J$(hw-^*u9JCHMmoh!cAnlsg?Kw6s3EL!w*@_
z9d~6IHw%25*mP}`()F@@RZ=)J4;Af^RBiWh{yoxpsA7~#@JcAnz$24cw_p1LO=iXO
z_R79lxim?Uq`gsu+0!C)&YD>Y9n=)faIj%8GIbxNwt&luUwM++VoD`mqFlx5u67ZH
z$prP&zc>#vtx0l?bH;^E30U&;!;P4Z-uL8B?AQmwIjh(Q*Lf<l=I=~q6*!!=%Bsw|
zI?zFB#W2|6-fQu_gMIek(+66&?QhuY7&+gWyj8GB=q+N&uex)KKA&x{1D=f)Q%ad?
zJ)qV8Cdq@c&t6Rz$(0rsE2}Sm;_f_i!u|l5<bl%-jr8M(Md0G=bLQI3x*Dc&Oh<G|
z?LXn?kT+J4LKUCK@qEYF#)(qNQ3EGMD;RzP!HH&gNe5)3)z|;pF##(0jHOV%j4t&{
z#@5@4`O<4F5jFnv{CwU|O#BN17&3)W<4Oy`#q>0o99hLrHElkw=Xt6v=?vY@#XX8|
z6!=mzMQu1`UlXcwyKk9i^6U2N<3!){zj%ApjtPBQx>%Ss6;rGx;F%!2WoRZVvW2J{
zqnNZ|crbM2kxcUiM_oT}r0^N_aEX0Hm+LksZ<tsIMfo%8bCy`>jmLbiZ8j}a+57$F
z_n<_l@>mHgx)Lf((@(mRqs6EN3+)&57@DEjBM<f&bU1j~D2^9`{|dX<Jfn7fTubLC
zT^|b<rw*4f!+e8(hF1AA1ExzMO$S1J)<YO|xsh7sXP5nccwhCiXwbc~5bcq85AN%`
z|H()Fb*e6z<kg@4sC4n!y~&rmc`=HSDP<akmj&fg!XF7x@kRZ7<j{5UR<7XZ+*9+&
zhYx=ySyfU#mbh{Jkd!Q&b0g}SK<Yr${*#oSDK9S>GveZc<FPDZs*VkEL$4SGnpA=u
z4OvsvdBs=+VuxB*CQd}kundX+wa{+tVCb$9?M|%F4W2gl?dI#E*XUgES9zX#g>&!a
z>7FpS<Lv@*sn3H9PB`rGS8kVL^BW1h>L`<iWn<xI#bLLa+?bz7^&&iVWacJ{tBeU$
ztu7%$k&-D720S-d&)t-CmD~~#=HOhitC+pIsA+x{=WcH_w4x#rxhP|>p*l`;WL~vH
zmAdNUdScFV>m|3EpX@%9iF&-k3Gqn@M<&@d4|jxBzx~$#*l#g;nT;*?TpV1db}e(k
zcYVo4nA*b-(NW#^K-b7a*Dk;HT<t)nGMx72oKGg*QZj6k<&$Rzanw(Q_)NrU$+0l<
z?EMP%HOhu_9f!KWZ?nMchs_3_XNupK3_|Q;(lq*5vf`Ou^1FPErs_AI{4y}pUl?-K
zQoP@Gv6t%YbChJ)kyuGF0!~b<*y&o^G8)%1YS7Z+rmnfU;9qj7YNN%nBG_QDg^<kI
zQ>~JnSvs!mv~(`Rc5b=%HnK#U-=m}R$FzBNYJ<_loAjN3RUAfLZw^+>)-t#e(Yeg_
zc&)rcK?hd4Spw0a_LHCeQN!G9v;7=<CfKLt+0@M6jn|~GvRM9*OxmXHrgVFN?MfTr
zYa1?cxW;F*XSxwRp*9s5DtrG*#?@^3{x!ekh7XTteA2IEO!&sQ7>;Z&_~fmnAWRo7
zg#T47pqv__+Ho&0_i98!o?oektyx~9;Y*snhD@$Kk7dmHs}~(p9NxWEQAcubyKP=I
zy|6^3b;jj2H|MG|t4>!9|9rKofYgCh)64DqV9M%CIl0WbHvB5zA9uMK`^Rqb5cbP{
zBgANBHA+1zy!QBX!<m7I$6co<Hd|^hEHris7Vxe~Iynm1|0y5If6{Fsa45{bb%;>N
zKP9C@l2SeW-|L!y6f%G3&U1c#GqTJo8GcY|+TAZ~DseC8zL$r2uT1d=I9`qEW7^}U
z_>e=2kuW?RwW58~{GpVqb5)#a*!<Uu9s`c6kGJXHh}Wh2-<gvZnaAMOOP*JqZj)ba
z$+|!IHTFIK=ltQJsoc6%ID=i@w~URiSZD2uOJ|E$3Ztqoo_@Sdt6PqbZLf&`dg4Rq
zSK?~Kn~NEOxp`M~{Vj`@tyaeyljfdo*w6H=6!gdCz4c=LU>$VokhW$-Ov#NWjY{LG
zk;dzWZaVLH@?JC;&uxeFM7;I1iN6^*;7TX@Al>T3GsQ*JWqFGWHRo9`GrvsauvI%$
zd$>82mE|ld=$_b|P`eDnFpSCN)R)uEdl)jMh(&?MwQVcff^92Tj!X<!|KRwb1KYSA
zeMs_+&&;hfxuL5sYKE&BEjDg54Vbnb@g%0xOMWgj+o-!t=lP@ryYfYrW8(+og|UG6
zvZg`P*3~<VCs+Sc+(<usUoRx9tV!b?fURaw?dCJL9A7VLg!RSDcp8<8_uiE0j273;
z==`$mc}!rn)a7$=@0-DO_WL~}f2h=l+F|S88HLb@e~aXxkpIn<cG<;-2oseDiPB|>
zc1E`5Hul!GJ6V`XkcxpNcz9l3MeVZo8EIQ{gWH!b|NBthz|#D-3+&Vme)>0j+rZQg
zhW@w7`SaG!u<I~kEU0rUOp-k$9OU{18FDbNn>&q^><w<48%bN4-X_A}JBYNM5z)#X
zMu1~>zLFM2`YwzF8vvP+L}d(Y6p7}hX7)S7>_D3KL`y9g{&#=U7sY?RkoF*New&Dd
z{Z62>ljiB~I%+87Ke@6<>5%?MhTlUv7~1a;Mn*}NGzjT2a_7l;13MxK`6F3CYfTqB
zumUA36Khg)($E@2Q*)p{Buaq-Zp0l*k#?eLYfQ8?w=#vDQZfcxG`Dy8_mQT9jm>SM
zC28Y3y8;?W>Oq?Ke_R54A~Eu}-d=@WhXYFEFmM<aRH#LQd_fpMY77Ru^Go`U#Nl?H
zp-`xQaXk1;!b$CLpbhCe>GRGQf8(UjJAM8c5B&WX19g~4pE3XZ1%3aSn>5}(<6=ST
zNYdw>HGt1MbAoYh-X!HD`kNz&o&1vjBsu!OafF2bX7&G*6>?Ta*2X02ivB}gVZ|LH
z{+1|X10WfIoOXa{za>HAw?tmHzG7t#x)K3QvX%c8ng6Cd{=Gak15={i&alen#-y<j
zzY~1^E#5NL4uFM-|LhTk{9m$jAk4Nz1E6oPQ$_~nw$?C&2m&sGgq<?8x3>`!72N?%
zZ4GS9%#G|stZhwC|JE`!TWeznBjW#0xBn3th5T<8u;06oF#u|4ZMw6MogKkQJN@s@
zoo$IG2jD;q;0J&P|NR5QVlXHS%mnru!{XrtFgEE2X7x7)M<7r@&30pOI4LpXZVb>3
zP<uCq#9=_f;@ucXWe4et!jLL9>~4pKlekBQVMw{uc4HVgi5_Ga8V#8jgC`Zs+}#el
zlkb`g!;w<$@5XRQQkfMp3`felyc@$KP>{9YF{BE)yW0`qq#D#@7=~2BjtnCZ$Z3Uu
zqe(_%S38i?4@15dz%~f&5ePgA(ie#Y7Kdy+Bo?w31W0^KPE!O53!wo54V57T8Ze1`
z4m1H+DzbSoC{j7~-FpLkgX|59gsu;ZBPDp<-4_RDhF~ODM%E4w$CC3Lfk#7h0f8r=
z$a#byprLaR@EG#(kZ>faeABM=A>lYu&cNLm0!d1VO@?7fdGdB+NH~UkEl4DqR8^0x
z9RUlO1BC{boU9!RkAbv9BT0qAc8`a~L3AI90Z{>YI}DbTOMZ7>EF4%Hatsa81tgY0
zD#E$DFAha2Ge?HuAvOn;HH7d3iN|5dWeC(Bg07i>g{%)0Nr31tuo|SK-n-U<f)gOR
zj{>HXT<$?ONQlmW&<5HUiN%rA3I$Rmlgkhag+W8sf+CRWUhZBW8V#Wp3XO-z5U?7g
zB8j{EVn~qy8HPnbWC(@DkcwUH?u&y%`{K|LdxgT`N%gaK_r>o7NMsle3z>s}AeFV*
z-45`QTwc(B;3XRHl3dn+34{0#G~gvU?a>H4#3rKuU{8U?hUh*Tq;!Uihl2VFG#Yqd
zvb~{!$$?^c2<_1rDE$ECvE;l&V-XOa2ecARPG>X@4zasv90ozITWA~s;(LH)A{D;f
z#UnJH6s_*Yus8yWoGx%Aa13Pa;6UNXX#g;Y9S0T%Vmsj|G^w!DuC>5X1c)C580m<y
zyB%N%xqiUWC<tBPXaXr`FIitasi@d)3~UXuUkotNkal>8y@F$K5Z?&LA|XBsU=X_j
zA`pn40}KnHDGnGc^0fdL0NEQ33*jXkM>;i-?HBl3$lmZEsDZTm1CQ`%XbguZV8~?%
z4#-R{Ye1!;bOyeg+(v-tg_H|+H;)K-h<<>w4iFg!7-U`q90&2q0E5^t5M4oh0Kg!=
z7J<N#lE&^@9|D1e#wthzsm%E9c3?P2U*sQRI3xz*YZ0Iz4Y`~G47xs`TjVrFpn&Bd
zUkmV2koBPm5Zi<Rp*&>XKj<I=_%d>y0}Ns}5SX1>k-O=F0nV0ueZWpa_JP4cY$5{a
z7Njp0M33a-VX;vD0(FDX030jG<qv^_qaifFVIV#L0ghXcwcrR)e&7huIq+!GZPRYL
z;K3mbg8kvF0qi(rzaYGa^d;;R=h!_50SBcO0T>Rlc|rUPiC>U#1jGk`=ow-=0S1Xd
zkRX{hxh?<<8Y?3(XmTC_HG=3M5<!62Vt`@D=>lSONW1~UKZq_MK^O*^7YPC)a=M^U
zkoXS?0!4CNK!WgvoWB5r=o=D^gv2yR5a>Y0Lu1hp9)UoDTu#C15>GCZ0K-CP4{jnL
z<6%H&^8I26P}#shV+JHpHwdk;C@6oi_&=OKfHIKJi`%JBvP*W6IB>Fnw1e6Ra90M2
zk-!NSqJsc~=s7rnL1hRJE-uLDB_JU80!YG6@uA&oCSaiS11=OoX958dBOw7qF3+I2
z6~yNO4047Anh){&0E5sOgvAhF3oz(e2)q>`mmw4&DLGwGNa%eNz@YO2KS(Zr;Qk#F
z^MeaCh^+${Bt{2n36V8`L2L;M1ulcgc!@#*gG!E}Q4rq)G#?^Yz|}(R5WpZZ1fmz{
zn!)uNxg4M{Scpsl4B{)mRS=$BX8;EA$>59#@p<6Z2V#qXrb6e%5}@;fdjSZoaA0O~
z`r&}WK`<P|H=^+1HiNt!9to9kJTM%PcEHJ#V?Zw<;}M{DWZ?J#T{F;2$eRD4m#9DJ
zB^n$`$n8DAAhsP1^pc$C0E75YaQ-Eg*V|=Fz-W+j4;tttWIUjkkhT0FJ_W7^5}$&z
zGsN$MNCo2e(cn@BvOb`z<T?%12x8X&h9l=28byH69$?V5pivNgLj%%7)`G@E<Q@$U
z%8+?6Q29e+pz;T9@F2PhFo=x>E*Wx<4lszVLt{Z_a{dC>16dyqT%thQ5g;)fIH~=i
zFB)<dN8|7i8w)TDL|*VHs0`tEDv0lvNjwf>bI^G32AzD(;QkM?Hv$53?}!Fh0Ob3{
zVnHxKHXgtrcUo8+5=|aA0SqE*pey8@0&d_T{J?_!{%0Tdwg%wMsO<sLD@sjsSMa_I
zyxbwZWz?{?wg)f2z|?=gTO_^A1OU*>-|vL%><w(~cisqLLF7(2z|SwIDu3Yr0Qp_0
AN&o-=

literal 0
HcmV?d00001

diff --git a/Kieker.WebGUI/pom.xml b/Kieker.WebGUI/pom.xml
index c7654be5..64d59079 100644
--- a/Kieker.WebGUI/pom.xml
+++ b/Kieker.WebGUI/pom.xml
@@ -1,283 +1,324 @@
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
 
-	<groupId>kieker</groupId>
-	<artifactId>Kieker.WebGUI</artifactId>
-	<version>1.0-SNAPSHOT</version>
-	<packaging>war</packaging>
+    <groupId>kieker</groupId>
+    <artifactId>Kieker.WebGUI</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>war</packaging>
 
-	<name>Kieker.WebGUI</name>
+    <name>Kieker.WebGUI</name>
 
-	<properties>
-		<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-	</properties>
+    <properties>
+        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
 
-	<dependencies>
-		<dependency>
-			<groupId>org.mortbay.jetty</groupId>
-			<artifactId>jetty-maven-plugin</artifactId>
-			<version>8.1.0.RC1</version>
-		</dependency>
-		 <dependency>
-			<groupId>com.ocpsoft</groupId>
-			<artifactId>prettyfaces-jsf2</artifactId>
-			<version>3.3.2</version>
-		</dependency>
-		 <dependency>
-			<groupId>com.sun.faces</groupId>
-			<artifactId>jsf-api</artifactId>
-			<version>2.1.6</version>
-		</dependency>
-		<dependency>
-			<groupId>com.sun.faces</groupId>
-			<artifactId>jsf-impl</artifactId>
-			<version>2.1.6</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.common</artifactId>
-			<version>2.6.0.v20100614-1136</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>ecore-xmi</artifactId>
-			<version>2.2.3</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.ecore</artifactId>
-			<version>2.6.0.v20100614-1136</version>
-		</dependency>
-		<dependency>
-			<groupId>javax</groupId>
-			<artifactId>javaee-web-api</artifactId>
-			<version>6.0</version>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces</groupId>
-			<artifactId>primefaces</artifactId>
-			<version>3.0.RC1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>black-tie</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>blitzer</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>bluesky</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>casablanca</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>cupertino</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>dark-hive</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>dot-luv</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>eggplant</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>excite-bike</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>flick</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>hot-sneaks</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>humanity</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>le-frog</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>midnight</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>mint-choc</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>overcast</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>pepper-grinder</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>redmond</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>rocket</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>sam</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>smoothness</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>south-street</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>start</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>sunny</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>swanky-purse</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>trontastic</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>ui-darkness</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>ui-lightness</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>vader</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>org.primefaces.themes</groupId>
-			<artifactId>glass-x</artifactId>
-			<version>1.0.2</version>
-		</dependency>
+    <dependencies>
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-maven-plugin</artifactId>
+            <version>8.1.0.RC1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ocpsoft</groupId>
+            <artifactId>prettyfaces-jsf2</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
+            <version>2.1.6</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
+            <version>2.1.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.emf</groupId>
+            <artifactId>org.eclipse.emf.common</artifactId>
+            <version>2.6.0.v20100614-1136</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.emf</groupId>
+            <artifactId>ecore-xmi</artifactId>
+            <version>2.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.emf</groupId>
+            <artifactId>org.eclipse.emf.ecore</artifactId>
+            <version>2.6.0.v20100614-1136</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-checkstyle-plugin</artifactId>
+            <version>2.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>findbugs-maven-plugin</artifactId>
+            <version>2.4.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-pmd-plugin</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>javax</groupId>
+            <artifactId>javaee-web-api</artifactId>
+            <version>6.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces</groupId>
+            <artifactId>primefaces</artifactId>
+            <version>3.0.RC1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>black-tie</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>blitzer</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>bluesky</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>casablanca</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>cupertino</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>dark-hive</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>dot-luv</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>eggplant</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>excite-bike</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>flick</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>hot-sneaks</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>humanity</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>le-frog</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>midnight</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>mint-choc</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>overcast</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>pepper-grinder</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>redmond</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>rocket</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>sam</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>smoothness</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>south-street</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>start</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>sunny</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>swanky-purse</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>trontastic</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>ui-darkness</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>ui-lightness</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>vader</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.primefaces.themes</groupId>
+            <artifactId>glass-x</artifactId>
+            <version>1.0.2</version>
+        </dependency>
 
-		<dependency>
-			<groupId>kieker</groupId>
-			<artifactId>kieker</artifactId>
-			<version>1.5-SNAPSHOT</version>
-			<scope>system</scope>
-			<systemPath>${project.basedir}/lib/kieker-1.5-SNAPSHOT.jar</systemPath>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<version>1.3.2</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-fileupload</groupId>
-			<artifactId>commons-fileupload</artifactId>
-			<version>1.2.1</version>
-		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>kieker</groupId>
+            <artifactId>kieker</artifactId>
+            <version>1.5-SNAPSHOT</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/kieker-1.5-SNAPSHOT.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>1.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>1.2.1</version>
+        </dependency>
+    </dependencies>
 
-	<repositories>
-		<repository>
-			<id>prime-repo</id>
-			<name>PrimeFaces Maven Repository</name>
-			<url>http://repository.primefaces.org</url>
-			<layout>default</layout>
-		</repository>
-	</repositories>
+    <repositories>
+        <repository>
+            <id>prime-repo</id>
+            <name>PrimeFaces Maven Repository</name>
+            <url>http://repository.primefaces.org</url>
+            <layout>default</layout>
+        </repository>
+    </repositories>
 
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.mortbay.jetty</groupId>
-				<artifactId>jetty-maven-plugin</artifactId>
-				<version>8.1.0.RC1</version>
-				<configuration>
-					<scanIntervalSeconds>5</scanIntervalSeconds>
-					<connectors>
-						<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
-							<port>8080</port>
-							<maxIdleTime>600000</maxIdleTime> <!-- 10 minutes in milliseconds! -->
-							<lowResourcesMaxIdleTime>600000</lowResourcesMaxIdleTime>
-						</connector>
-					</connectors>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>2.3.2</version>
-				<configuration>
-					<source>1.6</source>
-					<target>1.6</target>
-					<compilerArguments>
-						<endorseddirs>${endorsed.dir}</endorseddirs>
-					</compilerArguments>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-war-plugin</artifactId>
-				<version>2.1.1</version>
-				<configuration>
-					<failOnMissingWebXml>false</failOnMissingWebXml>
-				</configuration>
-			</plugin>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <version>2.8</version>
+                <configuration>
+                    <configLocation>quality-config/cs-conf.xml</configLocation>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>findbugs-maven-plugin</artifactId>
+                <version>2.4.0</version>
+                <configuration>
+                    <effort>Max</effort>
+                    <threshold>Low</threshold>
+                    <includeFilterFile>quality-config/fb-filter.xml</includeFilterFile>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-pmd-plugin</artifactId>
+                <version>2.6</version>
+                <configuration>
+                    <rulesets>quality-config/pmdrules.xml</rulesets>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>8.1.0.RC1</version>
+                <configuration>
+                    <scanIntervalSeconds>5</scanIntervalSeconds>
+                    <connectors>
+                        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
+                            <port>8080</port>
+                            <maxIdleTime>600000</maxIdleTime> <!-- 10 minutes in milliseconds! -->
+                            <lowResourcesMaxIdleTime>600000</lowResourcesMaxIdleTime>
+                        </connector>
+                    </connectors>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>2.3.2</version>
+                <configuration>
+                    <source>1.6</source>
+                    <target>1.6</target>
+                    <compilerArguments>
+                        <endorseddirs>${endorsed.dir}</endorseddirs>
+                    </compilerArguments>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>2.1.1</version>
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                </configuration>
+            </plugin>
 			<!--<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> 
 				<version>2.1</version> <executions> <execution> <phase>validate</phase> <goals> 
 				<goal>copy</goal> </goals> <configuration> <outputDirectory>${endorsed.dir}</outputDirectory> 
@@ -285,7 +326,8 @@
 				<artifactId>javaee-endorsed-api</artifactId> <version>6.0</version> <type>jar</type> 
 				</artifactItem> </artifactItems> </configuration> </execution> </executions> 
 				</plugin> -->
-		</plugins>
-	</build>
+        </plugins>
+    </build>
+    
 
 </project>
diff --git a/Kieker.WebGUI/quality-config/cs-conf.xml b/Kieker.WebGUI/quality-config/cs-conf.xml
new file mode 100644
index 00000000..e0c075ac
--- /dev/null
+++ b/Kieker.WebGUI/quality-config/cs-conf.xml
@@ -0,0 +1,1190 @@
+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.1//EN" "http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
+
+<module name="Checker">
+
+    <!-- KIEKER default is warning instead of error -->
+    <property name="severity" value="warning"/>
+    
+    <!-- KIEKER Filter -->
+    <module name="SuppressWithNearbyCommentFilter">
+        <property name="commentFormat" value="NOCS"/>
+        <property name="checkFormat" value=".*"/>
+        <property name="influenceFormat" value="0"/>
+    </module>
+
+    <!--
+    <property name="basedir"        value=""/>
+    <property name="localeCountry"  value=""/> JVM locale country
+    <property name="localeLanguage" value=""/> JVM locale language
+    <property name="charset"        value=""/> JVM file.encoding property
+    !-->
+
+
+    <!--
+     !________________________________________________________________________________________
+     !
+     !     D U P L I C A T E S
+     !________________________________________________________________________________________
+     !-->
+    <!-- Performs a line-by-line comparison of all code lines and reports duplicate code. !-->
+    <!-- See http://checkstyle.sf.net/config_duplicates.html !-->
+    <!-- KIEKER Does not work with headers!! 
+    <module name="StrictDuplicateCode">
+        <property name="min"            value="12"/>
+        <property name="fileExtensions" value=""/>
+    </module>
+    -->
+
+    <!--
+     !________________________________________________________________________________________
+     !
+     !     H E A D E R S
+     !________________________________________________________________________________________
+     !-->
+    <!-- NOTE:  You may enable zero or one of these header checks, but not both. !-->
+
+    <!-- Checks that a source file begins with a specified header. !-->
+    <!-- See http://checkstyle.sf.net/config_header.html   !-->
+    <!-- KIEKER !-->
+    <module name="Header">
+        <!--<property name="headerFile"     value="lib/checkstyle-5.4/header.txt"/>-->
+        <!--<property name="charset"        value=""/>-->
+        <property name="header"         value="/***************************************************************************\n * Copyright 2011 by\n *  + Christian-Albrechts-University of Kiel\n *    + Department of Computer Science\n *      + Software Engineering Group \n *  and others.\n *\n * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n"/>
+        <property name="ignoreLines"    value="2"/>
+        <property name="fileExtensions" value="java"/>
+    </module>
+
+    <!-- Checks the header of a source file against a header file that contains a regular expression !-->
+    <!-- for each line of the source header. !-->
+    <!-- See http://checkstyle.sf.net/config_header.html   !-->
+    <!-- Default: OFF
+    <module name="RegexpHeader">
+        <property name="headerFile"     value=""/>
+        <property name="charset"        value=""/>
+        <property name="header"         value=""/>
+        <property name="multiLines"     value=""/>
+        <property name="fileExtensions" value=""/>
+    </module>
+    !-->
+
+    <!--
+     !________________________________________________________________________________________
+     !
+     !     J A V A D O C S
+     !________________________________________________________________________________________
+     !-->
+    <!-- Checks that each Java package has a Javadoc file used for commenting. !-->
+    <!-- See http://checkstyle.sourceforge.net/config_javadoc.html#JavadocPackage !-->
+    <module name="JavadocPackage">
+        <property name="severity" value="info"/>
+        <property name="allowLegacy" value="false"/>
+    </module>
+
+    <!--
+     !________________________________________________________________________________________
+     !
+     !     R E G E X P
+     !________________________________________________________________________________________
+     !-->
+    <!-- A check for detecting that matches across multiple lines. Works with any file type. !-->
+    <!-- See http://checkstyle.sourceforge.net/config_regexp.html#RegexpMultiline !-->
+    <!-- Default: OFF
+    <module name="RegexpMultiline">
+        <property name="format"         value=""/>
+        <property name="message"        value=""/>
+        <property name="ignoreCase"     value="false"/>
+        <property name="minimum"        value="0"/>
+        <property name="maximum"        value="0"/>
+        <property name="fileExtensions" value=""/>
+    </module>
+    !-->
+
+    <!-- A check for detecting single lines that match a supplied regular expression. Works with any file type. !-->
+    <!-- See http://checkstyle.sourceforge.net/config_regexp.html#RegexpSingleline !-->
+    <!-- Default: OFF
+    <module name="RegexpSingleline">
+        <property name="format"         value=""/>
+        <property name="message"        value=""/>
+        <property name="ignoreCase"     value="false"/>
+        <property name="minimum"        value="0"/>
+        <property name="maximum"        value="0"/>
+        <property name="fileExtensions" value=""/>
+    </module>
+    !-->
+
+    <!--
+     !________________________________________________________________________________________
+     !
+     !     M I S C E L L A N E O U S
+     !________________________________________________________________________________________
+     !-->
+    <!-- Checks whether files end with a new line.                        !-->
+    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile !-->
+    <module name="NewlineAtEndOfFile">
+        <property name="lineSeparator"  value="system"/>
+        <property name="fileExtensions" value="*.*"/>
+    </module>
+
+    <!-- Checks that property files contain the same keys.         !-->
+    <!-- See http://checkstyle.sf.net/config_misc.html#Translation !-->
+    <module name="Translation">
+        <property name="fileExtensions" value="properties"/>
+    </module>
+
+
+    <!--
+     !________________________________________________________________________________________
+     !
+     !     S I Z E   V I O L A T I O N S
+     !________________________________________________________________________________________
+     !-->
+    <!-- Checks for long source files. !-->
+    <!-- See http://checkstyle.sf.net/config_sizes.html !-->
+    <module name="FileLength">
+        <property name="max"            value="2000"/>
+        <property name="fileExtensions" value=""/>
+    </module>
+
+
+    <!--
+     !________________________________________________________________________________________
+     !
+     !     W H I T E S P A C E
+     !________________________________________________________________________________________
+     !-->
+    <!-- Checks that there are no tab characters ('\t') in the source code. !-->
+    <!-- See http://checkstyle.sourceforge.net/config_whitespace.html#FileTabCharacter !-->
+    <!-- KIEKER we use TABs
+    <module name="FileTabCharacter">
+        <property name="eachLine"       value="false"/>
+        <property name="fileExtensions" value=""/>
+    </module>
+    -->
+
+    <module name="TreeWalker">
+        <!-- KIEKER -->
+        <property name="tabWidth" value="4"/>
+        <module name="FileContentsHolder"/>
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     A N N O T A T I O N S
+         !________________________________________________________________________________________
+         !-->
+        <!-- This check controls the usage style of annotations. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_annotation.html#AnnotationUseStyle !-->
+        <module name ="AnnotationUseStyle">
+            <property name="elementStyle"       value="compact_no_array"/>
+            <property name="closingParens"      value="never"/>
+            <property name="trailingArrayComma" value="never"/>
+        </module>
+
+        <!-- Verifies that both the java.lang.Deprecated import is present and the @deprecated Javadoc tag is present when either is present. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated !-->
+        <!-- KIEKER -->
+        <module name="MissingDeprecated">
+            <property name="severity" value="info"/>        
+        </module>
+
+        <!-- Verifies that the java.lang.Override annotation is present when the {@inheritDoc} javadoc tag is present. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_annotation.html#MissingOverride !-->
+        <module name="MissingOverride">
+            <property name="javaFiveCompatibility" value="false"/>
+        </module>
+
+        <!-- This check makes sure that all package annotations are in the package-info.java file. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_annotation.html#PackageAnnotation !-->
+        <module name="PackageAnnotation"/>
+
+        <!-- This check allows you to specify what warnings that SuppressWarnings is not allowed to suppress. !-->
+        <!-- You can also specify a list of TokenTypes that the configured warning(s) cannot be suppressed on. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_annotation.html#SuppressWarnings !-->
+        <module name="SuppressWarnings">
+            <property name="format" value="^$|^\s+$"/>
+            <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF,
+                                           ANNOTATION_FIELD_DEF, ENUM_CONSTANT_DEF, PARAMETER_DEF,
+                                           VARIABLE_DEF, METHOD_DEF, CTOR_DEF"/>
+        </module>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     B L O C K S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Finds nested blocks, i.e. blocks that are used freely in the code. !-->
+        <!-- See http://checkstyle.sf.net/config_blocks.html !-->
+        <!-- KIEKER allowInSwitchCase !-->
+        <module name="AvoidNestedBlocks">
+            <property name="allowInSwitchCase" value="true"/>
+        </module>
+
+        <!-- Checks for empty blocks. !-->
+        <!-- See http://checkstyle.sf.net/config_blocks.html !-->
+        <!-- KIEKER removed LITERAL_CATCH !-->
+        <module name="EmptyBlock">
+            <property name="option" value="stmt"/>
+            <property name="tokens" value="LITERAL_DO,
+                                           LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF, LITERAL_FOR,
+                                           LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT, STATIC_INIT"/>
+        </module>
+
+        <!-- Checks for the placement of left curly braces ('{') for code blocks. !-->
+        <!-- See http://checkstyle.sf.net/config_blocks.html !-->
+        <module name="LeftCurly">
+            <property name="option"        value="eol"/>
+            <property name="maxLineLength" value="165"/>
+            <property name="tokens"        value="CLASS_DEF, CTOR_DEF,
+                                                  INTERFACE_DEF, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
+                                                  LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH,
+                                                  LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
+                                                  METHOD_DEF"/>
+        </module>
+
+        <!-- Checks for braces around code blocks. !-->
+        <!-- See http://checkstyle.sf.net/config_blocks.html !-->
+        <module name="NeedBraces">
+            <property name="tokens" value="LITERAL_DO, LITERAL_ELSE, LITERAL_IF, LITERAL_FOR, LITERAL_WHILE"/>
+        </module>
+
+        <!-- Checks the placement of right curly braces ('}') for else, try, and catch tokens. !-->
+        <!-- See http://checkstyle.sf.net/config_blocks.html !-->
+        <module name="RightCurly">
+            <property name="option"          value="same"/>
+            <property name="tokens"          value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE"/>
+            <property name="shouldStartLine" value="true"/>
+        </module>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     C L A S S   D E S I G N
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks that classes are designed for extension. !-->
+        <!-- See http://checkstyle.sf.net/config_design.html !-->
+        <!-- Default: OFF
+        <module name="DesignForExtension"/>
+        !-->
+
+        <!-- Checks that a class which has only private constructors is declared as final. !-->
+        <!-- See http://checkstyle.sf.net/config_design.html !-->
+        <module name="FinalClass"/>
+
+        <!-- Make sure that utility classes (classes that contain only static methods) do not have a public constructor. !-->
+        <!-- See http://checkstyle.sf.net/config_design.html !-->
+        <module name="HideUtilityClassConstructor"/>
+
+        <!-- Check nested (internal) classes/interfaces are declared at the bottom of the class after all method and field declarations. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_design.html#InnerTypeLast !-->
+        <module name="InnerTypeLast"/>
+
+        <!-- Implements Bloch, Effective Java, Item 17 - Use Interfaces only to define types. !-->
+        <!-- See http://checkstyle.sf.net/config_design.html !-->
+        <module name="InterfaceIsType">
+            <property name="allowMarkerInterfaces" value="true"/>
+        </module>
+
+        <!-- Ensures that exceptions (defined as any class name conforming to some regular expression) are immutable. !-->
+        <!-- That is, have only final fields. !-->
+        <!-- See http://checkstyle.sf.net/config_design.html !-->
+        <module name="MutableException">
+            <property name="format" value="^.*Exception$|^.*Error$"/>
+        </module>
+
+        <!-- Restricts throws statements to a specified count. !-->
+        <!-- See http://checkstyle.sf.net/config_design.html !-->
+        <!-- KIEKER off
+        <module name="ThrowsCount">
+            <property name="max" value="1"/>
+        </module>
+        !-->
+
+        <!-- Checks visibility of class members. !-->
+        <!-- See http://checkstyle.sf.net/config_design.html !-->
+        <module name="VisibilityModifier">
+            <property name="packageAllowed"      value="false"/>
+            <property name="protectedAllowed"    value="true"/>
+            <property name="publicMemberPattern" value="^serialVersionUID$"/>
+        </module>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     C O D I N G
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks that array initialization contains a trailing comma. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="ArrayTrailingComma"/>
+
+        <!-- Detects inline conditionals. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="AvoidInlineConditionals"/>
+
+        <!-- Checks that classes that define a covariant equals() method also override method equals(java.lang.Object). !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="CovariantEquals"/>
+
+        <!-- Checks declaration order according to Code Conventions for the Java Programming Language. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="DeclarationOrder">
+            <property name="ignoreConstructors" value="false"/>
+            <property name="ignoreMethods"      value="false"/>
+            <property name="ignoreModifiers"    value="false"/>
+        </module>
+
+        <!-- Check that the default is after all the cases in a switch statement. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="DefaultComesLast"/>
+
+        <!-- The "double-checked locking" idiom (DCL) tries to avoid the runtime cost of synchronization. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="DoubleCheckedLocking"/>
+
+        <!-- Detects empty statements (standalone ;). !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="EmptyStatement"/>
+
+        <!-- Checks that any combination of String literals with optional assignment is on the left side of an equals() comparison. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#EqualsAvoidNull !-->
+        <module name="EqualsAvoidNull"/>
+
+        <!-- Checks that classes that override equals() also override hashCode(). !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="EqualsHashCode"/>
+
+        <!-- Checks if any class or object member explicitly initialized to default for its type value. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <!-- KIEKER off
+        <module name="ExplicitInitialization"/>
+        !-->
+
+        <!-- Checks for fall through in switch statements Finds locations where a case contains Java code ... !-->
+        <!-- but lacks a break, return, throw or continue statement. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="FallThrough">
+            <property name="checkLastCaseGroup" value="false"/>
+            <property name="reliefPattern"      value="fallthru|falls??through"/>
+        </module>
+
+        <!-- Checks that local variables that never have their values changed are declared final. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="FinalLocalVariable">
+            <property name="tokens" value="VARIABLE_DEF"/>
+        </module>
+
+        <!-- Checks that a local variable or a parameter does not shadow a field that is defined in the same class. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <!-- KIEKER ignoreConstructorParameter, ignoreSetter -->
+        <module name="HiddenField">
+            <property name="tokens"                     value="PARAMETER_DEF, VARIABLE_DEF"/>
+            <!--
+            <property name="ignoreFormat"               value=""/>
+            !-->
+            <property name="ignoreConstructorParameter" value="true"/>
+            <property name="ignoreSetter"               value="true"/>
+            <property name="ignoreAbstractMethods"      value="false"/>
+        </module>
+
+        <!-- Catching java.lang.Exception, java.lang.Error or java.lang.RuntimeException is almost never acceptable. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="IllegalCatch">
+            <property name="illegalClassNames" value="java.lang.Exception, java.lang.Throwable, java.lang.RuntimeException"/>
+        </module>
+
+        <!-- Checks for illegal instantiations where a factory method is preferred. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <!-- KIEKER on for ??? !-->
+        <module name="IllegalInstantiation">
+            <property name="classes" value="java.lang.Boolean"/>
+        </module>
+
+        <!-- This check can be used to ensure that types are not declared to be thrown. !-->
+        <!-- Declaring to throw java.lang.Error or java.lang.RuntimeException is almost never acceptable. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#IllegalThrows !-->
+        <module name="IllegalThrows">
+            <property name="illegalClassNames" value="java.lang.Throwable, java.lang.Error, java.lang.RuntimeException"/>
+        </module>
+
+        <!-- Checks for illegal tokens. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <!-- KIEKER off
+        <module name="IllegalToken">
+            <property name="tokens" value="LITERAL_SWITCH, POST_INC, POST_DEC"/>
+        </module>
+        !-->
+
+        <!-- Checks for illegal token text. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <!-- Default: OFF
+        <module name="IllegalTokenText">
+            <property name="tokens"     value=""/>
+            <property name="format"     value=""/>
+            <property name="ignoreCase" value="false"/>
+            <property name="message"    value=""/>
+        </module>
+        !-->
+
+        <!-- Checks that particular classes are never used as types in variable declarations, return values or parameters. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <!-- KIEKER removed format value="^(.*[\\.])?Abstract.*$" !-->
+        <module name="IllegalType">
+             <property name="tokens"                 value="PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF"/>
+             <property name="illegalClassNames"      value="java.util.GregorianCalendar, java.util.Hashtable,
+                                                            java.util.HashSet, java.util.HashMap, java.util.ArrayList,
+                                                            java.util.LinkedList, java.util.LinkedHashMap,
+                                                            java.util.LinkedHashSet, java.util.TreeSet,
+                                                            java.util.TreeMap, java.util.Vector"/>
+            <property name="legalAbstractClassNames" value=""/>
+            <property name="ignoredMethodNames"      value="getInitialContext, getEnvironment"/>
+            <property name="format"                  value="XXX"/>
+        </module>
+
+        <!-- Checks for assignments in subexpressions, such as in String s = Integer.toString(i = 2);. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="InnerAssignment">
+            <property name="tokens" value="ASSIGN, BAND_ASSIGN, BOR_ASSIGN, BSR_ASSIGN, BXOR_ASSIGN,
+                                           DIV_ASSIGN, MINUS_ASSIGN, MOD_ASSIGN, PLUS_ASSIGN, SL_ASSIGN,
+                                           SR_ASSIGN, STAR_ASSIGN"/>
+        </module>
+
+        <!-- Ensures that the setUp(), tearDown()methods are named correctly, have no arguments, !-->
+        <!-- return void and are either public or protected. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="JUnitTestCase"/>
+
+        <!-- Checks that there are no "magic numbers", where a magic number is a numeric literal !-->
+        <!-- that is not defined as a constant. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="MagicNumber">
+            <property name="tokens"               value="NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG"/>
+            <property name="ignoreNumbers"        value="-1, 0, 1, 2"/>
+            <property name="ignoreHashCodeMethod" value="false"/>
+        </module>
+
+        <!-- Checks that classes (except abtract one) define a ctor and don't rely on the default one. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="MissingCtor"/>
+
+        <!-- Checks that switch statement has "default" clause. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="MissingSwitchDefault"/>
+
+        <!-- Check for ensuring that for loop control variables are not modified inside the for block. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#ModifiedControlVariable !-->
+        <module name="ModifiedControlVariable"/>
+
+        <!-- Checks for multiple occurrences of the same string literal within a single file. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#MultipleStringLiterals !-->
+        <!-- KIEKER off for now
+        <module name="MultipleStringLiterals">
+            <property name="allowedDuplicates"       value="1"/>
+            <property name="ignoreStringsRegexp"     value='^""$'/>
+            <property name="ignoreOccurrenceContext" value="ANNOTATION"/>
+        </module>
+        !-->
+
+        <!-- Checks that each variable declaration is in its own statement and on its own line. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="MultipleVariableDeclarations"/>
+
+        <!-- Restricts nested for blocks to a specified depth. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#NestedForDepth !-->
+        <module name="NestedForDepth">
+            <property name="max" value="1"/>
+        </module>
+
+        <!-- Restricts nested if-else blocks to a specified depth. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="NestedIfDepth">
+            <property name="max" value="1"/>
+        </module>
+
+        <!-- Restricts nested try-catch blocks to a specified depth. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="NestedTryDepth">
+            <property name="max" value="1"/>
+        </module>
+
+        <!-- Checks that the clone method is not overridden from the Object class. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#NoClone !-->
+        <module name="NoClone"/>
+
+        <!-- Verifies there are no finalize() methods defined in a class. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#NoFinalizer !-->
+        <module name="NoFinalizer"/>
+
+        <!-- Checks there is only one statement per line. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_coding.html#OneStatementPerLine !-->
+        <module name="OneStatementPerLine"/>
+
+        <!-- Ensure a class has a package declaration. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="PackageDeclaration">
+            <property name="ignoreDirectoryName" value="false"/>
+        </module>
+
+        <!-- Disallow assignment of parameters. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="ParameterAssignment"/>
+
+        <!-- Checks for redundant exceptions declared in throws clause such as duplicates, !-->
+        <!-- unchecked exceptions or subclasses of another declared exception. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="RedundantThrows">
+            <property name="allowUnchecked"     value="true"/>
+            <property name="allowSubclasses"    value="false"/>
+            <property name="logLoadErrors"      value="true"/>
+            <property name="suppressLoadErrors" value="false"/>
+        </module>
+
+        <!-- Checks that code doesn't rely on the "this." default. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="RequireThis">
+            <property name="checkFields"  value="true"/>
+            <property name="checkMethods" value="true"/>
+        </module>
+
+        <!-- Restrict the number of return statements. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="ReturnCount">
+            <property name="max"    value="2"/>
+            <property name="format" value=""/>
+        </module>
+
+        <!-- Checks for overly complicated boolean expressions. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="SimplifyBooleanExpression"/>
+
+        <!-- Checks for overly complicated boolean return statements. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="SimplifyBooleanReturn"/>
+
+        <!-- Checks that string literals are not used with == or !=. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="StringLiteralEquality"/>
+
+        <!-- Checks that an overriding clone() method invokes super.clone(). !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="SuperClone"/>
+
+        <!-- Checks that an overriding finalize() method invokes super.finalize(). !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="SuperFinalize"/>
+
+        <!-- Checks for the use of unnecessary parentheses. !-->
+        <!-- See http://checkstyle.sf.net/config_coding.html !-->
+        <module name="UnnecessaryParentheses"/>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     I M P O R T S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks that there are no import statements that use the * notation. !-->
+        <!-- See http://checkstyle.sf.net/config_import.html !-->
+        <module name="AvoidStarImport">
+            <property name="excludes"                 value=""/>
+            <property name="allowClassImports"        value="false"/>
+            <property name="allowStaticMemberImports" value="false"/>
+        </module>
+
+        <!-- Checks that there are no static import statements. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_imports.html#AvoidStaticImport !-->
+        <module name="AvoidStaticImport">
+            <property name="excludes" value=""/>
+        </module>
+
+        <!-- Checks for imports from a set of illegal packages. !-->
+        <!-- See http://checkstyle.sf.net/config_import.html !-->
+        <module name="IllegalImport">
+            <property name="illegalPkgs" value="sun"/>
+            <property name="illegalPkgs" value="org.apache.commons.logging"/>
+        </module>
+
+        <!-- Controls what can be imported in each package. Useful for ensuring that application layering rules !-->
+        <!-- are not violated, especially on large projects. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_imports.html#ImportControl !-->
+        <!-- Default: OFF
+        <module name="ImportControl">
+            <property name="file" value=""/>
+            <property name="url"  value=""/>
+        </module>
+        !-->
+
+        <!-- Checks the ordering/grouping of imports. !-->
+        <!-- See http://checkstyle.sf.net/config_import.html !-->
+        <module name="ImportOrder">
+            <property name="option"        value="under"/>
+            <property name="groups"        value=""/>
+            <property name="ordered"       value="true"/>
+            <property name="separated"     value="false"/>
+            <property name="caseSensitive" value="true"/>
+        </module>
+
+        <!-- Checks for redundant import statements. !-->
+        <!-- See http://checkstyle.sf.net/config_import.html !-->
+        <module name="RedundantImport"/>
+
+        <!-- Checks for unused import statements. !-->
+        <!-- See http://checkstyle.sf.net/config_import.html !-->
+        <module name="UnusedImports"/>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     J A V A D O C S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks to ensure that the javadoc tags exist (if required) !-->
+        <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocMethod !-->
+        <module name="JavadocMethod">
+            <property name="severity" value="info"/>
+            <property name="scope"                        value="private"/>
+            <!--
+            <property name="excludeScope"                 value=""/>
+            !-->
+            <property name="allowUndeclaredRTE"           value="false"/>
+            <property name="allowThrowsTagsForSubclasses" value="false"/>
+            <property name="allowMissingParamTags"        value="false"/>
+            <property name="allowMissingThrowsTags"       value="false"/>
+            <property name="allowMissingReturnTag"        value="false"/>
+            <property name="allowMissingJavadoc"          value="false"/>
+            <property name="allowMissingPropertyJavadoc"  value="false"/>
+            <property name="logLoadErrors"                value="true"/>
+            <property name="suppressLoadErrors"           value="false"/>
+            <property name="tokens"                       value="METHOD_DEF, CTOR_DEF"/>
+        </module>
+
+        <!-- Validates Javadoc comments to help ensure they are well formed. !-->
+        <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocStyle !-->
+        <module name="JavadocStyle">
+            <property name="severity" value="info"/>
+            <property name="scope"               value="private"/>
+            <!--
+            <property name="excludeScope"        value=""/>
+            !-->
+            <property name="checkFirstSentence"  value="true"/>
+<!--TODO:            <property name="endOfSentenceFormat" value="([.?!][ \t\n\r\f<])|([.?!]$)"/> !-->
+            <property name="checkEmptyJavadoc"   value="false"/>
+            <property name="checkHtml"           value="true"/>
+            <property name="tokens"              value="INTERFACE_DEF, CLASS_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
+        </module>
+
+        <!-- Checks Javadoc comments for class and interface definitions. !-->
+        <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocType !-->
+        <module name="JavadocType">
+            <property name="severity" value="info"/>
+            <property name="scope"                 value="private"/>
+            <!--
+            <property name="excludeScope"          value=""/>
+            !-->
+            <property name="authorFormat"          value=""/>
+            <property name="versionFormat"         value=""/>
+            <property name="allowMissingParamTags" value="false"/>
+            <property name="allowUnknownTags"      value="false"/>
+            <property name="tokens"                value="INTERFACE_DEF, CLASS_DEF"/>
+        </module>
+
+        <module name="JavadocType">
+            <property name="severity" value="warning"/>
+            <property name="scope" value="package"/>
+            <property name="authorFormat" value="\S"/>
+        </module>
+
+        <!-- Checks that variables have Javadoc comments. !-->
+        <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocVariable !-->
+        <module name="JavadocVariable">
+            <property name="severity" value="info"/>
+            <property name="scope"        value="private"/>
+            <!--
+            <property name="excludeScope" value=""/>
+            !-->
+        </module>
+
+        <!-- Outputs a JavaDoc tag as information. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_javadoc.html#WriteTag !-->
+        <!-- KIEKER
+        <module name="WriteTag">
+            <property name="severity" value="info"/>
+            <property name="tag"         value=""/>
+            <property name="tagFormat"   value=""/>
+            <property name="tagSeverity" value="info"/>
+        </module>
+        -->
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     M E T R I C S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Restrict the number of number of &&, || and ^ in an expression. !-->
+        <!-- See http://checkstyle.sf.net/config_metrics.html !-->
+        <module name="BooleanExpressionComplexity">
+            <property name="severity" value="info"/>
+            <property name="max"    value="3"/>
+            <property name="tokens" value="LAND, BAND, LOR, BOR, BXOR"/>
+        </module>
+
+        <!-- This metric measures the number of instantiations of other classes within the given class. !-->
+        <!-- See http://checkstyle.sf.net/config_metrics.html !-->
+        <module name="ClassDataAbstractionCoupling">
+            <property name="severity" value="info"/>
+            <property name="max" value="7"/>
+        </module>
+
+        <!-- The number of other classes a given class relies on. !-->
+        <!-- See http://checkstyle.sf.net/config_metrics.html !-->
+        <module name="ClassFanOutComplexity">
+            <property name="severity" value="info"/>
+            <property name="max" value="20"/>
+        </module>
+
+        <!-- Checks cyclomatic complexity against a specified limit. !-->
+        <!-- See http://checkstyle.sf.net/config_metrics.html !-->
+        <module name="CyclomaticComplexity">
+            <property name="severity" value="info"/>
+            <property name="max" value="10"/>
+        </module>
+
+        <!-- Determines complexity of methods, classes and files by counting the Non Commenting Source Statements (NCSS). !-->
+        <!-- See http://checkstyle.sourceforge.net/config_metrics.html#JavaNCSS !-->
+        <module name="JavaNCSS">
+            <property name="severity" value="info"/>
+            <property name="methodMaximum" value="50"/>
+            <property name="classMaximum"  value="1500"/>
+            <property name="fileMaximum"   value="2000"/>
+        </module>
+
+        <!-- The NPATH metric computes the number of possible execution paths through a function. !-->
+        <!-- See http://checkstyle.sf.net/config_metrics.html !-->
+        <module name="NPathComplexity">
+            <property name="severity" value="info"/>
+            <property name="max" value="200"/>
+        </module>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     M I S C E L L A N E O U S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks the style of array type definitions. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <module name="ArrayTypeStyle">
+            <property name="javaStyle" value="true"/>
+        </module>
+
+        <!-- Checks for restricted tokens beneath other tokens. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <!-- Default: OFF
+        <module name="DescendantToken">
+            <property name="tokens"         value=""/>
+            <property name="limitedTokens"  value=""/>
+            <property name="minimumDepth"   value="0"/>
+            <property name="maximumDepth"   value="java.lang.Integer.MAX_VALUE"/>
+            <property name="minimumNumber"  value="0"/>
+            <property name="maximumNumber"  value="java.lang.Integer.MAX_VALUE"/>
+            <property name="sumTokenCounts" value="false"/>
+            <property name="minimumMessage" value="descendant.token.min"/>
+            <property name="maximumMessage" value="descendant.token.max"/>
+        </module>
+        !-->
+
+        <!-- Check that method/constructor parameters are final. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <module name="FinalParameters">
+            <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
+        </module>
+
+        <!-- A generic check for code problems - the user can search for any pattern. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <!-- Default: OFF
+        <module name="GenericIllegalRegexp">
+            <property name="format"         value="\S\s+$"/>
+            <property name="message"        value="Line has trailing spaces."/>
+            <property name="ignoreCase"     value="false"/>
+            <property name="ignoreComments" value="false"/>
+        </module>
+        !-->
+
+        <!-- Checks correct indentation of Java Code. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <!-- KIEKER -->
+        <module name="Indentation">
+            <property name="severity" value="info"/>        
+            <property name="basicOffset"     value="4"/>
+            <property name="braceAdjustment" value="0"/>
+            <property name="caseIndent"      value="0"/>
+        </module>
+
+        <!-- Checks that the outer type name and the file name match. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_misc.html#OuterTypeFilename !-->
+        <module name="OuterTypeFilename"/>
+
+        <!-- A check for TODO: comments. Actually it is a generic regular expression matcher on Java comments. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <!-- Kieker !-->
+        <module name="TodoComment">
+            <property name="format" value="TODO"/>
+        </module>
+
+        <!-- The check to ensure that requires that comments be the only thing on a line. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <!-- KIEKER we use them
+        <module name="TrailingComment">
+            <property name="format"       value="^[\\s\\}\\);]*$"/>
+            <property name="legalComment" value=""/>
+        </module>
+        -->
+
+        <!-- Checks for uncommented main() methods (debugging leftovers). !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <module name="UncommentedMain">
+            <property name="severity" value="info"/> 
+            <property name="excludedClasses" value="Main$"/>
+        </module>
+
+        <!-- Checks that long constants are defined with an upper ell. That is 'L' and not 'l'. !-->
+        <!-- See http://checkstyle.sf.net/config_misc.html !-->
+        <module name="UpperEll"/>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     M O D I F I E R S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks that the order of modifiers conforms to the suggestions in the Java Language specification, !-->
+        <!-- sections 8.1.1, 8.3.1 and 8.4.3. !-->
+        <!-- See http://checkstyle.sf.net/config_modifiers.html !-->
+        <module name="ModifierOrder"/>
+
+        <!-- Checks that there are no redundant modifiers. !-->
+        <!-- See http://checkstyle.sf.net/config_modifiers.html !-->
+        <!-- KIEKER off
+        <module name="RedundantModifier">
+            <property name="tokens" value="METHOD_DEF, VARIABLE_DEF, ANNOTATION_FIELD_DEF"/>
+        </module>
+        !-->
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     N A M I N G   C O N V E N T I O N S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks for abstract class name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <!-- KIEKER removed |^.*Factory$ -->
+        <module name="AbstractClassName">
+            <property name="format"         value="^Abstract.*$"/>
+            <property name="ignoreModifier" value="false"/>
+            <property name="ignoreName"     value="false"/>
+        </module>
+
+        <!-- Checks for class type parameter name naming conventions. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_naming.html#ClassTypeParameterName !-->
+        <module name="ClassTypeParameterName">
+            <property name="format" value="^[A-Z]$"/>
+        </module>
+
+        <!-- Checks for constant name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="ConstantName">
+            <property name="format"           value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
+            <property name="applyToPublic"    value="true"/>
+            <property name="applyToProtected" value="true"/>
+            <property name="applyToPackage"   value="true"/>
+            <property name="applyToPrivate"   value="true"/>
+        </module>
+
+        <!-- Checks for local final variable name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="LocalFinalVariableName">
+            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
+            <property name="tokens" value="VARIABLE_DEF, PARAMETER_DEF"/>
+        </module>
+
+        <!-- Checks for local variable name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="LocalVariableName">
+            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
+            <property name="tokens" value="PARAMETER_DEF"/>
+        </module>
+
+        <!-- Checks for member variable name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="MemberName">
+            <property name="format"           value="^[a-z][a-zA-Z0-9]*$"/>
+            <property name="applyToPublic"    value="true"/>
+            <property name="applyToProtected" value="true"/>
+            <property name="applyToPackage"   value="true"/>
+            <property name="applyToPrivate"   value="true"/>
+        </module>
+
+        <!-- Checks for method name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="MethodName">
+            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
+        </module>
+
+        <!-- Checks for method type parameter name naming conventions. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_naming.html#MethodTypeParameterName !-->
+        <module name="MethodTypeParameterName">
+            <property name="format" value="^[A-Z]$"/>
+        </module>
+
+        <!-- Checks for package name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="PackageName">
+            <property name="format" value="^[a-z]+(\.[a-zA-Z_][a-zA-Z0-9_]*)*$"/>
+        </module>
+
+        <!-- Checks for parameter name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="ParameterName">
+            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
+        </module>
+
+        <!-- Checks for static variable name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <module name="StaticVariableName">
+            <property name="format"           value="^[a-z][a-zA-Z0-9]*$"/>
+            <property name="applyToPublic"    value="true"/>
+            <property name="applyToProtected" value="true"/>
+            <property name="applyToPackage"   value="true"/>
+            <property name="applyToPrivate"   value="true"/>
+        </module>
+
+        <!-- Checks for type name naming conventions. !-->
+        <!-- See http://checkstyle.sf.net/config_naming.html !-->
+        <!-- KIEKER: modded -->
+        <module name="TypeName">
+            <property name="format"           value="^[A-Z][a-zA-Z0-9]*$"/>
+            <property name="tokens"           value="CLASS_DEF"/>
+            <property name="applyToPublic"    value="true"/>
+            <property name="applyToProtected" value="true"/>
+            <property name="applyToPackage"   value="true"/>
+            <property name="applyToPrivate"   value="true"/>
+        </module>
+
+        <module name="TypeName">
+            <property name="format"           value="^I[A-Z][a-zA-Z0-9]*$"/>
+            <property name="tokens"           value="INTERFACE_DEF"/>
+            <property name="applyToPublic"    value="true"/>
+            <property name="applyToProtected" value="true"/>
+            <property name="applyToPackage"   value="true"/>
+            <property name="applyToPrivate"   value="true"/>
+        </module>
+
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     R E G E X P
+         !________________________________________________________________________________________
+         !-->
+        <!-- A check that makes sure that a specified pattern exists, exists less than a set number of times, !-->
+        <!-- or does not exist in the file. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_misc.html#Regexp !-->
+        <!-- Default: OFF
+        <module name="Regexp">
+            <property name="format"         value=""/>
+            <property name="message"        value=""/>
+            <property name="illegalPattern" value="false"/>
+            <property name="duplicateLimit" value="-1"/>
+            <property name="errorLimit"     value="100"/>
+            <property name="ignoreComments" value="false"/>
+        </module>
+        !-->
+
+        <!-- This class is variation on RegexpSingleline for detecting single lines that match a !-->
+        <!-- supplied regular expression in Java files. It supports suppressing matches in Java comments. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_regexp.html#RegexpSinglelineJava !-->
+        <!-- Default: OFF
+        <module name="RegexpSinglelineJava">
+            <property name="format"         value=""/>
+            <property name="message"        value=""/>
+            <property name="ignoreCase"     value="false"/>
+            <property name="minimum"        value="0"/>
+            <property name="maximum"        value="0"/>
+            <property name="ignoreComments" value="false"/>
+        </module>
+        !-->
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     S I Z E   V I O L A T I O N S
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks for long anonymous inner classes. !-->
+        <!-- See http://checkstyle.sf.net/config_sizes.html !-->
+        <module name="AnonInnerLength">
+            <property name="severity" value="info"/>
+            <property name="max" value="20"/>
+        </module>
+
+        <!-- Restricts the number of executable statements to a specified limit. !-->
+        <!-- See http://checkstyle.sf.net/config_sizes.html !-->
+        <!-- KIEKER off
+        <module name="ExecutableStatementCount">
+            <property name="severity" value="info"/>
+            <property name="max"    value="30"/>
+            <property name="tokens" value="CTOR_DEF, METHOD_DEF, INSTANCE_INIT, STATIC_INIT"/>
+        </module>
+        !-->
+
+        <!-- See http://checkstyle.sf.net/config_sizes.html !-->
+        <!-- Checks for long lines. !-->
+        <module name="LineLength">
+            <property name="severity" value="info"/>
+            <property name="ignorePattern" value="^$"/>
+            <property name="max"           value="165"/>
+        </module>
+
+        <!-- Checks the number of methods declared in each type. This includes the number of each scope !-->
+        <!-- (private, package, protected and public) as well as an overall total. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_sizes.html#MethodCount !-->
+        <module name="MethodCount">
+            <property name="severity" value="info"/>
+            <property name="maxTotal"     value="100"/>
+            <property name="maxPrivate"   value="100"/>
+            <property name="maxPackage"   value="100"/>
+            <property name="maxProtected" value="100"/>
+            <property name="maxPublic"    value="100"/>
+        </module>
+
+        <!-- Checks for long methods and constructors. !-->
+        <!-- See http://checkstyle.sf.net/config_sizes.html !-->
+        <module name="MethodLength">
+            <property name="severity" value="info"/>
+            <property name="max"        value="150"/>
+            <property name="countEmpty" value="true"/>
+            <property name="tokens"     value="METHOD_DEF, CTOR_DEF"/>
+        </module>
+
+        <!-- Checks for the number of types declared at the outer (or root) level in a file. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_sizes.html#OuterTypeNumber !-->
+        <!-- KIEKER 2 !-->
+        <module name="OuterTypeNumber">
+            <property name="max" value="2"/>
+        </module>
+
+        <!-- Checks the number of parameters of a method or constructor. !-->
+        <!-- See http://checkstyle.sf.net/config_sizes.html !-->
+        <!-- KIEKER off
+        <module name="ParameterNumber">
+            <property name="severity" value="info"/>
+            <property name="max"    value="7"/>
+            <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
+        </module>
+        !-->
+
+        <!--
+         !________________________________________________________________________________________
+         !
+         !     W H I T E S P A C E
+         !________________________________________________________________________________________
+         !-->
+        <!-- Checks the padding of an empty for initializer. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="EmptyForInitializerPad">
+            <property name="option" value="nospace"/>
+        </module>
+
+        <!-- Checks the padding of an empty for iterator. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="EmptyForIteratorPad">
+            <property name="option" value="nospace"/>
+        </module>
+
+        <!-- Checks that the whitespace around the Generic tokens < and > is correct to the typical convention. !-->
+        <!-- See http://checkstyle.sourceforge.net/config_whitespace.html#GenericWhitespace !-->
+        <module name="GenericWhitespace"/>
+
+        <!-- Checks the padding between the identifier of a method definition, !-->
+        <!-- constructor definition, method call, or constructor invocation; and the left parenthesis of the parameter list. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="MethodParamPad">
+            <property name="allowLineBreaks" value="false"/>
+            <property name="option"          value="nospace"/>
+            <property name="tokens"          value="CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF, SUPER_CTOR_CALL "/>
+        </module>
+
+        <!-- Checks that there is no whitespace after a token. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <!-- KIEKER removed ARRAY_INIT !-->
+        <module name="NoWhitespaceAfter">
+            <property name="allowLineBreaks" value="true"/>
+            <property name="tokens"          value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS"/>
+        </module>
+
+        <!-- Checks that there is no whitespace before a token. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="NoWhitespaceBefore">
+            <property name="allowLineBreaks" value="false"/>
+            <property name="tokens"          value="SEMI, POST_DEC, POST_INC"/>
+        </module>
+
+        <!-- Checks the policy on how to wrap lines on operators. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="OperatorWrap">
+            <property name="option" value="nl"/>
+            <property name="tokens" value="ASSIGN, BAND, BOR, BSR, BXOR, COLON, DIV,
+                                           EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF,
+                                           LOR, LT, MINUS, MOD, NOT_EQUAL,
+                                           PLUS, QUESTION, SL, SR, STAR"/>
+        </module>
+
+        <!-- Checks the policy on the padding of parentheses. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="ParenPad">
+            <property name="option" value="nospace"/>
+            <property name="tokens" value="CTOR_CALL, LPAREN, METHOD_CALL, RPAREN, SUPER_CTOR_CALL"/>
+        </module>
+
+        <!-- Checks the policy on the padding of parentheses for typecasts. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="TypecastParenPad">
+            <property name="option" value="nospace"/>
+            <property name="tokens" value="TYPECAST, RPAREN"/>
+        </module>
+
+        <!-- Checks that a token is followed by whitespace. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="WhitespaceAfter">
+            <property name="tokens" value="COMMA, SEMI, TYPECAST"/>
+        </module>
+
+        <!-- Checks that a token is surrounded by whitespace. !-->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html !-->
+        <module name="WhitespaceAround">
+            <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
+                                           BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND,
+                                           LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
+                                           LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
+                                           LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT,
+                                           MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN,
+                                           QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN"/>
+            <property name="allowEmptyConstructors" value="true"/>
+            <property name="allowEmptyMethods"      value="true"/>
+        </module>
+
+    </module>
+
+</module>
diff --git a/Kieker.WebGUI/quality-config/fb-filter.xml b/Kieker.WebGUI/quality-config/fb-filter.xml
new file mode 100644
index 00000000..d1e9e128
--- /dev/null
+++ b/Kieker.WebGUI/quality-config/fb-filter.xml
@@ -0,0 +1,73 @@
+<FindBugsFilter>
+<!-- Example: http://findbugs.sourceforge.net/manual/filter.html#d0e2103 -->
+
+  <Match>
+    <Class name="kieker.analysis.reader.jmx.JMXReader" />
+    <Method name="read2" params="" returns="boolean" />
+    <Bug pattern="DE_MIGHT_IGNORE" />
+  </Match>
+
+  <Match>
+    <Class name="kieker.common.logging.LogFactory" />
+    <Bug pattern="DE_MIGHT_IGNORE" />
+  </Match>
+
+  <Match>
+    <Class name="kieker.analysis.reader.filesystem.FSReader" />
+    <Method name="read" params="" returns="boolean" />
+    <Bug pattern="NN_NAKED_NOTIFY" />
+  </Match>
+  
+  <Match>
+    <Class name="kieker.analysis.reader.filesystem.FSReader" />
+    <Method name="newMonitoringRecord" params="kieker.common.record.IMonitoringRecord" returns="boolean" />
+    <Bug pattern="WA_NOT_IN_LOOP" />
+  </Match>
+
+  <Match>
+    <Class name="kieker.analysis.reader.filesystem.FSReader" />
+    <Method name="newMonitoringRecord" params="kieker.common.record.IMonitoringRecord" returns="boolean" />
+    <Bug pattern="UW_UNCOND_WAIT" />
+  </Match>
+
+  <Match>
+    <Class name="kieker.monitoring.core.registry.Registry" />
+    <Field name="eArrayCached" />
+    <Bug pattern="VO_VOLATILE_REFERENCE_TO_ARRAY" />
+  </Match>
+
+  <Match>
+    <Class name="org.apache.commons.logging.impl.Jdk14LoggerPatched" />
+    <Method name="getLog" params="java.lang.String" returns="org.apache.commons.logging.Log" />
+    <Bug pattern="REC_CATCH_EXCEPTION" />
+  </Match>
+  
+  <Match>
+    <Class name="kieker.analysis.reader.filesystem.FSDirectoryReader" />
+    <Method name="processNormalInputFile" params="java.io.File" returns="void" />
+    <Bug pattern="REC_CATCH_EXCEPTION" />
+  </Match>
+  
+  <Match>
+    <Class name="kieker.analysis.reader.filesystem.FSDirectoryReader" />
+    <Method name="processBinaryInputFile" params="java.io.File" returns="void" />
+    <Bug pattern="REC_CATCH_EXCEPTION" />
+  </Match>
+  
+  <Match>
+    <Class name="kieker.monitoring.core.controller.JMXController" />
+    <Method name="&lt;init&gt;" params="kieker.common.configuration.Configuration" returns="void" />
+    <Bug pattern="REC_CATCH_EXCEPTION" />
+  </Match>
+
+  <Match>
+    <Class name="kieker.tools.traceAnalysis.TraceAnalysisTool" />
+    <Method name="dispatchTasks" params="" returns="boolean" />
+    <Bug pattern="REC_CATCH_EXCEPTION" />
+  </Match>
+
+  <Match>
+    <Bug pattern="SIC_INNER_SHOULD_BE_STATIC_ANON" />
+  </Match>
+
+</FindBugsFilter>
\ No newline at end of file
diff --git a/Kieker.WebGUI/quality-config/pmdrules.xml b/Kieker.WebGUI/quality-config/pmdrules.xml
new file mode 100644
index 00000000..825a629c
--- /dev/null
+++ b/Kieker.WebGUI/quality-config/pmdrules.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<ruleset name="Kieker PMD ruleset"
+    xmlns="http://pmd.sf.net/ruleset/1.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
+    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
+  <description>
+    This ruleset is checked for Kieker automatically.
+  </description>
+  
+  <!-- We'll use the following rulesets -->
+  <rule ref="rulesets/basic.xml">
+    <exclude name="UnnecessaryFinalModifier"/>
+  </rule>
+
+  <rule ref="rulesets/braces.xml"/>
+
+  <rule ref="rulesets/clone.xml"/>
+  
+  <!--<rule ref="rulesets/codesize.xml">-->
+
+  <rule ref="rulesets/controversial.xml">
+    <exclude name="AvoidFinalLocalVariable"/>
+    <exclude name="AvoidLiteralsInIfCondition"/>
+    <exclude name="AvoidUsingVolatile"/>
+    <exclude name="CallSuperInConstructor"/>
+    <exclude name="DataflowAnomalyAnalysis"/>
+    <exclude name="OnlyOneReturn"/>
+    <exclude name="UnusedModifier"/>
+    <exclude name="UnnecessaryConstructor"/>
+  </rule>
+  
+  <!--<rule ref="rulesets/coupling.xml">-->
+
+  <rule ref="rulesets/design.xml">
+    <exclude name="ConfusingTernary"/>
+  </rule>
+  
+  <rule ref="rulesets/finalizers.xml"/>
+
+  <rule ref="rulesets/imports.xml"/>
+
+  <rule ref="rulesets/junit.xml"/>
+  
+  <rule ref="rulesets/logging-jakarta-commons.xml"/>
+
+  <rule ref="rulesets/migrating_to_13.xml"/>
+  <rule ref="rulesets/migrating_to_14.xml"/>
+  <rule ref="rulesets/migrating_to_15.xml"/>
+  <rule ref="rulesets/migrating_to_junit4.xml"/>
+
+  <rule ref="rulesets/naming.xml">
+    <exclude name="LongVariable"/>
+    <exclude name="PackageCase"/>
+    <exclude name="ShortVariable"/>
+  </rule>
+
+  <rule ref="rulesets/optimizations.xml"/>
+  
+  <rule ref="rulesets/strictexception.xml">
+    <exclude name="AvoidCatchingNPE"/>
+    <exclude name="AvoidThrowingNullPointerException"/>
+    <exclude name="SignatureDeclareThrowsException"/>
+  </rule>
+
+  <rule ref="rulesets/strings.xml">
+    <exclude name="AvoidDuplicateLiterals"/>
+  </rule>
+  <rule ref="rulesets/strings.xml/AvoidDuplicateLiterals">
+    <properties>
+      <property name="skipAnnotations" value="true"/>
+    </properties>
+  </rule>
+
+  <rule ref="rulesets/sunsecure.xml"/>
+  
+  <rule ref="rulesets/typeresolution.xml">
+    <exclude name="SignatureDeclareThrowsException"/>
+  </rule>
+
+  <rule ref="rulesets/unusedcode.xml"/>
+  
+</ruleset>
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java
index d2655e0a..2132b640 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java
@@ -1,41 +1,60 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.beans.application;
 
-import java.util.ArrayList;
 import java.util.List;
 
 import javax.faces.bean.ApplicationScoped;
 import javax.faces.bean.ManagedBean;
 
 import kieker.analysis.model.analysisMetaModel.MIDependency;
-import kieker.analysis.model.analysisMetaModel.impl.MAnalysisMetaModelFactory;
 import kieker.webgui.common.FileManager;
+
 import org.primefaces.model.UploadedFile;
 
 @ManagedBean
 @ApplicationScoped
 public class AvailableDependenciesBean {
 
-    private final List<MIDependency> dependencies;
-    private final MAnalysisMetaModelFactory factory;
-
-    public AvailableDependenciesBean() {
-        this.dependencies = FileManager.getInstance().loadAllDependencies();
-        factory = new MAnalysisMetaModelFactory();
-    }
-
-    public List<MIDependency> getDependencies() {
-        return dependencies;
-    }
-
-    public void upload(final UploadedFile file) {
-        FileManager.getInstance().uploadDependency(file);
-        this.dependencies.clear();
-        this.dependencies.addAll(FileManager.getInstance().loadAllDependencies());
-    }
-    
-    public void delete(final MIDependency dependency) {
-        FileManager.getInstance().deleteDependency(dependency);
-        this.dependencies.clear();
-        this.dependencies.addAll(FileManager.getInstance().loadAllDependencies());
-    }
+	private final List<MIDependency> dependencies;
+
+	public AvailableDependenciesBean() {
+		this.dependencies = FileManager.getInstance().loadAllDependencies();
+	}
+
+	public List<MIDependency> getDependencies() {
+		return dependencies;
+	}
+
+	public void upload(final UploadedFile file) {
+		final MIDependency dependency = FileManager.getInstance().uploadDependency(file);
+		if (dependency != null) {
+			this.dependencies.add(dependency);
+		}
+	}
+
+	public void delete(final MIDependency dependency) {
+		final boolean result = FileManager.getInstance().deleteDependency(dependency);
+		if (result) {
+			this.dependencies.remove(dependency);
+		}
+	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableProjectsBean.java
index bbd85e30..fde98d72 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableProjectsBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableProjectsBean.java
@@ -1,8 +1,24 @@
+/**************************************************************************
+ * Copyright 2012 by + Christian-Albrechts-University of Kiel + Department of
+ * Computer Science + Software Engineering Group and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ **************************************************************************
+ */
 package kieker.webgui.beans.application;
 
 import java.util.List;
 
-import javax.faces.application.FacesMessage;
 import javax.faces.bean.ApplicationScoped;
 import javax.faces.bean.ManagedBean;
 import javax.faces.context.FacesContext;
@@ -33,13 +49,20 @@ public class AvailableProjectsBean {
 	}
 
 	public synchronized void addProject(final String projectName) {
-		/* Create a new project. */
+		/*
+		 * Create a new project.
+		 */
 		final MIProject project = factory.createProject();
 		project.setName(projectName);
 
-		/* Try to save the project. */
+		/*
+		 * Try to save the project.
+		 */
 		if (FileManager.getInstance().saveNewProject(project)) {
-			/* Set the new project as the main project, if the current user doesn't have one. */
+			/*
+			 * Set the new project as the main project, if the current user
+			 * doesn't have one.
+			 */
 			FacesContext context = FacesContext.getCurrentInstance();
 			SelectedProjectBean bean = (SelectedProjectBean) context.getApplication().evaluateExpressionGet(context, "#{selectedProjectBean}",
 					SelectedProjectBean.class);
@@ -51,7 +74,7 @@ public class AvailableProjectsBean {
 		}
 	}
 
-	@SuppressWarnings(value = { "unused" })
+	@SuppressWarnings("unused")
 	public synchronized TreeNode getProjectsRoot() {
 		TreeNode root = new DefaultTreeNode("Root", null);
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
index 8357c651..7f0424a7 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
@@ -1,3 +1,23 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.beans.application;
 
 import java.util.Map;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java
index 438655a5..df6337a8 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java
@@ -1,3 +1,23 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.beans.request;
 
 import java.util.ArrayList;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
index bb5fda66..c61a58bd 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
@@ -1,3 +1,23 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.beans.request;
 
 import javax.faces.bean.ManagedBean;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/AvailablePluginsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/AvailablePluginsBean.java
deleted file mode 100644
index 20c98807..00000000
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/AvailablePluginsBean.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package kieker.webgui.beans.session;
-
-import javax.enterprise.context.SessionScoped;
-import javax.faces.bean.ManagedBean;
-
-import org.primefaces.model.DefaultTreeNode;
-import org.primefaces.model.TreeNode;
-
-/**
- * This bean can be used to store and read the currently available plugins for the current main project.
- * 
- * @author Nils Christian Ehmke
- */
-@ManagedBean
-@SessionScoped
-public class AvailablePluginsBean {
-
-	/**
-	 * Delivers the available plugins.
-	 * 
-	 * @return A tree with the available plugins.
-	 */
-	@SuppressWarnings(value = { "unused" })
-	public TreeNode getAvailablePluginsRoot() {
-		TreeNode root = new DefaultTreeNode("Root", null);
-
-		final TreeNode readerNode = new DefaultTreeNode("Reader", root);
-		final TreeNode analysisPluginsNode = new DefaultTreeNode("AnalysisPlugins", root);
-
-		return root;
-	}
-}
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java
index 65b67e3c..8f0aefcc 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java
@@ -1,3 +1,23 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.beans.session;
 
 import java.util.Map;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/DependencyUploadController.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/DependencyUploadController.java
index f73d1ae1..036c651e 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/DependencyUploadController.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/DependencyUploadController.java
@@ -1,33 +1,51 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.beans.session;
 
-import javax.faces.application.FacesMessage;
 import javax.faces.bean.ManagedBean;
 import javax.faces.bean.SessionScoped;
-import javax.faces.context.FacesContext;
 
 import kieker.webgui.common.FileManager;
 
 import org.primefaces.model.UploadedFile;
 
 /**
- *
+ * 
  * @author Nils Christian Ehmke
  */
 @ManagedBean
 @SessionScoped
 public class DependencyUploadController {
 
-    private UploadedFile file;
+	private UploadedFile file;
 
-    public UploadedFile getFile() {
-        return file;
-    }
+	public UploadedFile getFile() {
+		return file;
+	}
 
-    public void setFile(UploadedFile file) {
-        this.file = file;
-    }
+	public void setFile(UploadedFile file) {
+		this.file = file;
+	}
 
-    public void upload() {
-        FileManager.getInstance().uploadDependency(file);
-    }
+	public void upload() {
+		FileManager.getInstance().uploadDependency(file);
+	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/SelectedProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/SelectedProjectBean.java
index 85dcf550..0a6e68e3 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/SelectedProjectBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/SelectedProjectBean.java
@@ -1,16 +1,34 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
 package kieker.webgui.beans.session;
 
 import javax.faces.bean.ManagedBean;
 import javax.faces.bean.SessionScoped;
 import kieker.analysis.model.analysisMetaModel.MIProject;
+
+import org.primefaces.model.DefaultTreeNode;
 import org.primefaces.model.TreeNode;
 
 /**
- * This bean can be used to store the currently selected project and the current main project for the user within a session.
+ * This bean can be used to store the currently selected project and the current
+ * main project for the user within a session.
  * 
  * @author Nils Christian Ehmke
  */
@@ -22,19 +40,40 @@ public class SelectedProjectBean {
 	private MIProject selectedProject;
 	private MIProject mainProject;
 
+	/**
+	 * Creates a new instance of this class.
+	 */
+	public SelectedProjectBean() {}
+
+	/**
+	 * Delivers the main project of the current user. It can be null.
+	 * 
+	 * @return The user's main project.
+	 */
 	public MIProject getMainProject() {
 		return mainProject;
 	}
 
-	public void setMainProject(MIProject mainProject) {
+	/**
+	 * Sets the main project of the current user.
+	 * 
+	 * @param mainProject
+	 *            The new main project of the current user.
+	 */
+	public void setMainProject(final MIProject mainProject) {
 		this.mainProject = mainProject;
 	}
 
+	/**
+	 * Delivers the project currently selected by the user. It can be null.
+	 * 
+	 * @return The user's currently selected project.
+	 */
 	public MIProject getSelectedProject() {
 		return selectedProject;
 	}
 
-	public void setSelectedProject(MIProject selectedProject) {
+	public void setSelectedProject(final MIProject selectedProject) {
 		this.selectedProject = selectedProject;
 	}
 
@@ -42,7 +81,7 @@ public class SelectedProjectBean {
 		return selectedNode;
 	}
 
-	public void setSelectedNode(TreeNode selectedNode) {
+	public void setSelectedNode(final TreeNode selectedNode) {
 		this.selectedNode = selectedNode;
 		if (selectedNode != null && selectedNode.getData() instanceof MIProject) {
 			setSelectedProject((MIProject) selectedNode.getData());
@@ -51,7 +90,21 @@ public class SelectedProjectBean {
 		}
 	}
 
-	public String getFontWeight(MIProject project) {
-		return (project == mainProject) ? "bold" : "normal";
+	public String getFontWeight(final MIProject project) {
+		return (project == this.mainProject) ? "bold" : "normal";
+	}
+
+	/**
+	 * Delivers the available plugins.
+	 * 
+	 * @return A tree with the available plugins.
+	 */
+	public TreeNode getAvailablePluginsRoot() {
+		TreeNode root = new DefaultTreeNode("Root", null);
+
+		final TreeNode readerNode = new DefaultTreeNode("default", "Reader", root);
+		final TreeNode analysisPluginsNode = new DefaultTreeNode("default", "AnalysisPlugins", root);
+
+		return root;
 	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/FileManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/FileManager.java
index 26ba8ae5..56459e0b 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/FileManager.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/FileManager.java
@@ -1,3 +1,20 @@
+/*************************************************************************
+ * Copyright 2012 by + Christian-Albrechts-University of Kiel + Department of
+ * Computer Science + Software Engineering Group and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ **************************************************************************
+ */
 package kieker.webgui.common;
 
 import java.io.File;
@@ -22,234 +39,242 @@ import kieker.common.logging.LogFactory;
  * This is a singleton class for the access to the file system. It makes sure
  * that the necessary directories for the execution of the application exist.
  * <b>Do not</b> remove directories created from this manager during runtime!
- * Directories are created during first access to the class.<br> Currently
+ * Directories are created during first access to the class.<br>
+ * Currently
  * nearly all methods are synchronized. A fine grained synchronization should be
  * implemented in the future.
- *
+ * 
  * @author Nils Christian Ehmke
  */
 public final class FileManager {
 
-    private static final Log LOG = LogFactory.getLog(FileManager.class);
-    private static final String ROOT_DIR = "data";
-    private static final String PROJECT_DIR = ROOT_DIR + File.separator + "projects";
-    private static final String LIB_DIR = ROOT_DIR + File.separator + "libraries";
-    private static final String EXTENSION = ".kax";
-    private static final String JAR_EXTENSION = ".jar";
-    private static final int BUF_SIZE = 1024;
-    private static final FileManager instance = new FileManager();
-
-    private FileManager() {
-        checkAndCreateDirectories();
-    }
-
-    private synchronized void checkAndCreateDirectories() {
-        /*
-         * Make sure that the directories exist and create them if necessary.
-         */
-        final File dirProj = new File(PROJECT_DIR);
-        final File dirLib = new File(LIB_DIR);
-        boolean couldCreated = true;
-
-        if (!dirProj.exists()) {
-            couldCreated &= dirProj.mkdirs();
-        }
-        if (!dirLib.exists()) {
-            couldCreated &= dirLib.mkdirs();
-        }
-
-        if (!couldCreated) {
-            FileManager.LOG.error("Could not create the necessary directories for the application");
-        }
-    }
-
-    /**
-     * This method saves a given project using the name of the project as the
-     * project-directory. The project-directory must already exist.
-     *
-     * @param project The project to be stored.
-     * @return true iff the project-directory does already exist and the storage
-     * was successful.
-     */
-    public synchronized boolean saveProject(final MIProject project) {
-        final String projectName = project.getName();
-
-        final File dirProject = new File(PROJECT_DIR + File.separator + projectName);
-
-        /*
-         * Make sure that the directory for the project exists.
-         */
-        if (!dirProject.exists()) {
-            return false;
-        } else {
-            /*
-             * Try to save the project.
-             */
-            final File fileProject = new File(dirProject, projectName + FileManager.EXTENSION);
-            try {
-                final AnalysisController controller = new AnalysisController(project);
-                return controller.saveToFile(fileProject, projectName);
-            } catch (final Exception ex) {
-                FileManager.LOG.error("Could not save project '" + projectName + "'.");
-                return false;
-            }
-        }
-    }
-
-    /**
-     * This method saves a given project using the name of the project as the
-     * project-directory. THe project-directory must not already exist.
-     *
-     * @param project The project to be stored.
-     * @return true iff the project-directory does not already exist and the
-     * storage was successful.
-     */
-    public synchronized boolean saveNewProject(final MIProject project) {
-        final String projectName = project.getName();
-
-        final File dirProject = new File(PROJECT_DIR + File.separator + projectName);
-
-        /*
-         * Make sure that the project does not already exist and create the
-         * project directory.
-         */
-        if (dirProject.exists() || !dirProject.mkdir()) {
-            return false;
-        } else {
-            /*
-             * The directory should exist now. Store the project.
-             */
-            return saveProject(project);
-        }
-    }
-
-    /**
-     * This method can be used to load all currently saved projects.
-     *
-     * @return A list containing the loaded projects. If something went wrong,
-     * an empty list will be returned, never null.
-     */
-    public synchronized List<MIProject> loadAllProjects() {
-        List<MIProject> resultList = new ArrayList<MIProject>();
-
-        /*
-         * Try to get all directories within the project directory.
-         */
-        final File directories[] = new File(PROJECT_DIR).listFiles();
-        if (directories != null) {
-            for (File directory : directories) {
-                if (directory.isDirectory()) {
-                    /*
-                     * If there is a project file within the directory, we know
-                     * the name of it.
-                     */
-                    final File projectFile = new File(directory, directory.getName() + FileManager.EXTENSION);
-                    if (projectFile.exists()) {
-                        try {
-                            /*
-                             * Try to load the project.
-                             */
-                            MIProject project = AnalysisController.loadFromFile(projectFile);
-                            if (project != null) {
-                                resultList.add(project);
-                            }
-                        } catch (Exception ex) {
-                            FileManager.LOG.error("Could not load project '" + directory.getName() + "'.");
-                        }
-                    }
-                }
-            }
-        }
-
-        return resultList;
-    }
-
-    /**
-     * This method uploads a given file as a new dependency. The file is stored
-     * within the lib-directory of this application. If a file with the same
-     * name does already exist, it will be replaces.
-     *
-     * @param file The file to be uploaded.
-     * @return true iff the file has been uploaded successfully.
-     */
-    public boolean uploadDependency(final UploadedFile file) {
-        final File depFile = new File(LIB_DIR, file.getFileName());
-
-        InputStream in = null;
-        OutputStream out = null;
-        try {
-            /*
-             * Get the streams.
-             */
-            in = file.getInputstream();
-            out = new FileOutputStream(depFile);
-            final byte buf[] = new byte[BUF_SIZE];
-            int count;
-
-            /*
-             * Transfer the file.
-             */
-            while ((count = in.read(buf)) != -1) {
-                out.write(buf, 0, count);
-            }
-
-        } catch (final IOException ex) {
-            FileManager.LOG.error("Could not transfer file '" + file.getFileName() + "'");
-            return false;
-        } finally {
-            /*
-             * Try to make sure that the streams will be closed.
-             */
-            try {
-                if (in != null) {
-                    in.close();
-                }
-                if (out != null) {
-                    out.close();
-                }
-            } catch (IOException ex) {
-                // Ignore
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Delivers the only instance of this class.
-     *
-     * @return The singleton instance of this class.
-     */
-    public static FileManager getInstance() {
-        return instance;
-    }
-
-    public List<MIDependency> loadAllDependencies() {
-        final List<MIDependency> resultList = new ArrayList<MIDependency>();
-        final MAnalysisMetaModelFactory factory = new MAnalysisMetaModelFactory();
-        /*
-         * Try to get all files within the library directory.
-         */
-        final File files[] = new File(LIB_DIR).listFiles();
-        if (files != null) {
-            for (File file : files) {
-                if (file.isFile()) {
-                    if (file.getName().endsWith(JAR_EXTENSION)) {
-                        MIDependency dependency = factory.createDependency();
-                        dependency.setFilePath(file.getAbsolutePath());
-                        resultList.add(dependency);
-                    }
-                }
-            }
-        }
-
-        return resultList;
-    }
-
-    public void deleteDependency(final MIDependency dependency) {
-        File file = new File(dependency.getFilePath());
-        if (file.isFile()) {
-            file.delete();
-        }
-    }
+	private static final Log LOG = LogFactory.getLog(FileManager.class);
+	private static final String ROOT_DIR = "data";
+	private static final String PROJECT_DIR = ROOT_DIR + File.separator + "projects";
+	private static final String LIB_DIR = ROOT_DIR + File.separator + "libraries";
+	private static final String EXTENSION = ".kax";
+	private static final String JAR_EXTENSION = ".jar";
+	private static final int BUF_SIZE = 1024;
+	private static final FileManager instance = new FileManager();
+	private final MAnalysisMetaModelFactory factory;
+
+	private FileManager() {
+		checkAndCreateDirectories();
+		this.factory = new MAnalysisMetaModelFactory();
+	}
+
+	private synchronized void checkAndCreateDirectories() {
+		/*
+		 * Make sure that the directories exist and create them if necessary.
+		 */
+		final File dirProj = new File(PROJECT_DIR);
+		final File dirLib = new File(LIB_DIR);
+		boolean couldCreated = true;
+
+		if (!dirProj.exists()) {
+			couldCreated &= dirProj.mkdirs();
+		}
+		if (!dirLib.exists()) {
+			couldCreated &= dirLib.mkdirs();
+		}
+
+		if (!couldCreated) {
+			FileManager.LOG.error("Could not create the necessary directories for the application");
+		}
+	}
+
+	/**
+	 * This method saves a given project using the name of the project as the
+	 * project-directory. The project-directory must already exist.
+	 * 
+	 * @param project
+	 *            The project to be stored.
+	 * @return true iff the project-directory does already exist and the storage
+	 *         was successful.
+	 */
+	public synchronized boolean saveProject(final MIProject project) {
+		final String projectName = project.getName();
+
+		final File dirProject = new File(PROJECT_DIR + File.separator + projectName);
+
+		/*
+		 * Make sure that the directory for the project exists.
+		 */
+		if (!dirProject.exists()) {
+			return false;
+		} else {
+			/*
+			 * Try to save the project.
+			 */
+			final File fileProject = new File(dirProject, projectName + FileManager.EXTENSION);
+			try {
+				final AnalysisController controller = new AnalysisController(project);
+				return controller.saveToFile(fileProject, projectName);
+			} catch (final Exception ex) {
+				FileManager.LOG.error("Could not save project '" + projectName + "'.");
+				return false;
+			}
+		}
+	}
+
+	/**
+	 * This method saves a given project using the name of the project as the
+	 * project-directory. THe project-directory must not already exist.
+	 * 
+	 * @param project
+	 *            The project to be stored.
+	 * @return true iff the project-directory does not already exist and the
+	 *         storage was successful.
+	 */
+	public synchronized boolean saveNewProject(final MIProject project) {
+		final String projectName = project.getName();
+
+		final File dirProject = new File(PROJECT_DIR + File.separator + projectName);
+
+		/*
+		 * Make sure that the project does not already exist and create the
+		 * project directory.
+		 */
+		if (dirProject.exists() || !dirProject.mkdir()) {
+			return false;
+		} else {
+			/*
+			 * The directory should exist now. Store the project.
+			 */
+			return saveProject(project);
+		}
+	}
+
+	/**
+	 * This method can be used to load all currently saved projects.
+	 * 
+	 * @return A list containing the loaded projects. If something went wrong,
+	 *         an empty list will be returned, never null.
+	 */
+	public synchronized List<MIProject> loadAllProjects() {
+		List<MIProject> resultList = new ArrayList<MIProject>();
+
+		/*
+		 * Try to get all directories within the project directory.
+		 */
+		final File[] directories = new File(PROJECT_DIR).listFiles();
+		if (directories != null) {
+			for (File directory : directories) {
+				if (directory.isDirectory()) {
+					/*
+					 * If there is a project file within the directory, we know
+					 * the name of it.
+					 */
+					final File projectFile = new File(directory, directory.getName() + FileManager.EXTENSION);
+					if (projectFile.exists()) {
+						try {
+							/*
+							 * Try to load the project.
+							 */
+							MIProject project = AnalysisController.loadFromFile(projectFile);
+							if (project != null) {
+								resultList.add(project);
+							}
+						} catch (Exception ex) {
+							FileManager.LOG.error("Could not load project '" + directory.getName() + "'.");
+						}
+					}
+				}
+			}
+		}
+
+		return resultList;
+	}
+
+	/**
+	 * This method uploads a given file as a new dependency. The file is stored
+	 * within the lib-directory of this application. If a file with the same
+	 * name does already exist, it will be replaces.
+	 * 
+	 * @param file
+	 *            The file to be uploaded.
+	 * @return The new dependency iff the uploading was sucesfull, null
+	 *         otherwise.
+	 */
+	public MIDependency uploadDependency(final UploadedFile file) {
+		final File depFile = new File(LIB_DIR, file.getFileName());
+
+		InputStream in = null;
+		OutputStream out = null;
+		try {
+			/*
+			 * Get the streams.
+			 */
+			in = file.getInputstream();
+			out = new FileOutputStream(depFile);
+			final byte[] buf = new byte[BUF_SIZE];
+			int count;
+
+			/*
+			 * Transfer the file.
+			 */
+			while ((count = in.read(buf)) != -1) {
+				out.write(buf, 0, count);
+			}
+
+		} catch (final IOException ex) {
+			FileManager.LOG.error("Could not transfer file '" + file.getFileName() + "'");
+			return null;
+		} finally {
+			/*
+			 * Try to make sure that the streams will be closed.
+			 */
+			try {
+				if (in != null) {
+					in.close();
+				}
+				if (out != null) {
+					out.close();
+				}
+			} catch (IOException ex) {
+				// Ignore
+			}
+		}
+		final MIDependency dependency = factory.createDependency();
+		dependency.setFilePath(depFile.getAbsolutePath());
+		return dependency;
+	}
+
+	/**
+	 * Delivers the only instance of this class.
+	 * 
+	 * @return The singleton instance of this class.
+	 */
+	public static FileManager getInstance() {
+		return instance;
+	}
+
+	public List<MIDependency> loadAllDependencies() {
+		final List<MIDependency> resultList = new ArrayList<MIDependency>();
+		/*
+		 * Try to get all files within the library directory.
+		 */
+		final File[] files = new File(LIB_DIR).listFiles();
+		if (files != null) {
+			for (File file : files) {
+				if (file.isFile()) {
+					if (file.getName().endsWith(JAR_EXTENSION)) {
+						MIDependency dependency = factory.createDependency();
+						dependency.setFilePath(file.getAbsolutePath());
+						resultList.add(dependency);
+					}
+				}
+			}
+		}
+
+		return resultList;
+	}
+
+	public boolean deleteDependency(final MIDependency dependency) {
+		File file = new File(dependency.getFilePath());
+		if (file.isFile()) {
+			return file.delete();
+		}
+		return false;
+	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
index b5ac3306..4970badc 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
@@ -1,3 +1,23 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.common;
 
 import java.io.File;
@@ -16,50 +36,51 @@ import kieker.analysis.plugin.port.Plugin;
  */
 public class PluginFinder {
 
-    /**
-     * This method delivers all classes which are available in the given jar and
-     * has the Plugin-Annotation from the Kieker framework.
-     *
-     * @param url The url for the jar.
-     * @return A list containing all available plugin-classes or null, if an
-     * exception occured.
-     */
-    public static List<Class<?>> getAllPluginsWithinJar(final URL url) {
-        try {
-            /*
-             * Get a classloader and make sure that it has the system class
-             * loader as parent and that it knows the url.
-             */
-            final ClassLoader classLoader = new URLClassLoader(new URL[]{url}, ClassLoader.getSystemClassLoader());
-            /*
-             * Open the jar file and run through all entries within this file.
-             */
-            final JarFile jarFile = new JarFile(new File(url.getPath()));
-            final List<Class<?>> result = new ArrayList<Class<?>>();
-            Enumeration<JarEntry> jarEntries = jarFile.entries();
-            while (jarEntries.hasMoreElements()) {
-                JarEntry jarEntry = (JarEntry) jarEntries.nextElement();
-                try {
-                    String name = jarEntry.toString();
-                    name = name.replace('/', '.');
-                    name = name.replace(".class", "");
-                    /*
-                     * Try to find a class with the same name.
-                     */
-                    Class<?> c = classLoader.loadClass(name);
-                    /*
-                     * If it is a class and has the annotation - put it into our
-                     * list.
-                     */
-                    if (c.isAnnotationPresent(Plugin.class)) {
-                        result.add(c);
-                    }
-                } catch (Throwable ex) {
-                }
-            }
-            return result;
-        } catch (IOException ex) {
-            return null;
-        }
-    }
+	/**
+	 * This method delivers all classes which are available in the given jar and
+	 * has the Plugin-Annotation from the Kieker framework.
+	 * 
+	 * @param url
+	 *            The url for the jar.
+	 * @return A list containing all available plugin-classes or null, if an
+	 *         exception occured.
+	 */
+	public static List<Class<?>> getAllPluginsWithinJar(final URL url) {
+		try {
+			/*
+			 * Get a classloader and make sure that it has the system class
+			 * loader as parent and that it knows the url.
+			 */
+			final ClassLoader classLoader = new URLClassLoader(new URL[] { url }, ClassLoader.getSystemClassLoader());
+			/*
+			 * Open the jar file and run through all entries within this file.
+			 */
+			final JarFile jarFile = new JarFile(new File(url.getPath()));
+			final List<Class<?>> result = new ArrayList<Class<?>>();
+			Enumeration<JarEntry> jarEntries = jarFile.entries();
+			while (jarEntries.hasMoreElements()) {
+				JarEntry jarEntry = (JarEntry) jarEntries.nextElement();
+				try {
+					String name = jarEntry.toString();
+					name = name.replace('/', '.');
+					name = name.replace(".class", "");
+					/*
+					 * Try to find a class with the same name.
+					 */
+					Class<?> c = classLoader.loadClass(name);
+					/*
+					 * If it is a class and has the annotation - put it into our
+					 * list.
+					 */
+					if (c.isAnnotationPresent(Plugin.class)) {
+						result.add(c);
+					}
+				} catch (Throwable ex) {
+				}
+			}
+			return result;
+		} catch (IOException ex) {
+			return null;
+		}
+	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToIntConverter.java b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToIntConverter.java
index c4b3d1f0..1103a930 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToIntConverter.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToIntConverter.java
@@ -1,3 +1,23 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.converter;
 
 import java.io.File;
@@ -11,29 +31,29 @@ import kieker.analysis.model.analysisMetaModel.MIDependency;
 /**
  * This converter can be used to convert an instance of <i>MIDependency</i> to
  * the size (in MiBByte) of the dependency, but of course <b>not</b> vice versa.
- *
+ * 
  * @author Nils Christian Ehmke
  */
 @FacesConverter(value = MIDependencyToIntConverter.NAME)
 public class MIDependencyToIntConverter implements Converter {
 
-    public static final String NAME = "kieker.webgui.converter.MIDependencyToIntConverter";
+	public static final String NAME = "kieker.webgui.converter.MIDependencyToIntConverter";
 
-    /**
-     * Delivers always null
-     */
-    @Override
-    public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
-        return null;
-    }
+	/**
+	 * Delivers always null
+	 */
+	@Override
+	public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
+		return null;
+	}
 
-    @Override
-    public String getAsString(FacesContext fc, UIComponent uic, Object o) {
-        if (o == null || !(o instanceof MIDependency)) {
-            return null;
-        } else {
-            long size = new File(((MIDependency) o).getFilePath()).length();
-            return new DecimalFormat("#.##").format(size / 1024f / 1024).concat(" [MiByte]"); 
-        }
-    }
+	@Override
+	public String getAsString(FacesContext fc, UIComponent uic, Object o) {
+		if (o == null || !(o instanceof MIDependency)) {
+			return null;
+		} else {
+			long size = new File(((MIDependency) o).getFilePath()).length();
+			return new DecimalFormat("#.##").format(size / 1024f / 1024).concat(" [MiByte]");
+		}
+	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToStringConverter.java b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToStringConverter.java
index f84d6af5..b503c342 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToStringConverter.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIDependencyToStringConverter.java
@@ -1,3 +1,21 @@
+/**
+ * *************************************************************************
+ * Copyright 2012 by + Christian-Albrechts-University of Kiel + Department of
+ * Computer Science + Software Engineering Group and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ * *************************************************************************
+ */
 package kieker.webgui.converter;
 
 import java.io.File;
@@ -10,24 +28,45 @@ import kieker.analysis.model.analysisMetaModel.MIDependency;
 /**
  * This converter can be used to convert an instance of <i>MIDependency</i> to a
  * human readable string, but <b>not</b> vice versa.
- *
+ * 
  * @author Nils Christian Ehmke
  */
 @FacesConverter(value = MIDependencyToStringConverter.NAME)
 public class MIDependencyToStringConverter implements Converter {
 
-    public static final String NAME = "kieker.webgui.converter.MIDependencyToStringConverter";
+	public static final String NAME = "kieker.webgui.converter.MIDependencyToStringConverter";
 
-    /**
-     * Delivers always null
-     */
-    @Override
-    public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
-        return null;
-    }
+	/**
+	 * This method delivers always null and should not be used.
+	 * 
+	 * @param fc
+	 *            The faces context.
+	 * @param uic
+	 *            The component.
+	 * @param string
+	 *            The string to be converted.
+	 * @return null
+	 */
+	@Override
+	public Object getAsObject(final FacesContext fc, final UIComponent uic, final String string) {
+		return null;
+	}
 
-    @Override
-    public String getAsString(FacesContext fc, UIComponent uic, Object o) {
-        return (o == null || !(o instanceof MIDependency)) ? null : (new File(((MIDependency) o).getFilePath()).getName());
-    }
+	/**
+	 * This method converts the given object (on condition that it is an
+	 * instance of the class <code>MIDependency</code>) to a human readable string.
+	 * 
+	 * @param fc
+	 *            The faces context.
+	 * @param uic
+	 *            The component.
+	 * @param o
+	 *            The object to be converted.
+	 * @return A human readable represantation of the given object or null, of
+	 *         the object is from the wrong class.
+	 */
+	@Override
+	public String getAsString(final FacesContext fc, final UIComponent uic, final Object o) {
+		return (o == null || !(o instanceof MIDependency)) ? null : (new File(((MIDependency) o).getFilePath()).getName());
+	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIProjectToStringConverter.java b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIProjectToStringConverter.java
index 34e1475f..104b8ecd 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIProjectToStringConverter.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIProjectToStringConverter.java
@@ -1,3 +1,23 @@
+/***************************************************************************
+ * Copyright 2012 by
+ *  + Christian-Albrechts-University of Kiel
+ *    + Department of Computer Science
+ *      + Software Engineering Group 
+ *  and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+
 package kieker.webgui.converter;
 
 import javax.faces.component.UIComponent;
@@ -15,6 +35,7 @@ import kieker.analysis.model.analysisMetaModel.MIProject;
 public class MIProjectToStringConverter implements Converter {
 
 	public static final String NAME = "kieker.webgui.converter.MIProjectToStringConverter";
+
 	/**
 	 * Delivers always null
 	 */
diff --git a/Kieker.WebGUI/src/main/webapp/main.xhtml b/Kieker.WebGUI/src/main/webapp/main.xhtml
index 3cef4dc5..4f108d78 100644
--- a/Kieker.WebGUI/src/main/webapp/main.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/main.xhtml
@@ -151,7 +151,7 @@
                               resizable="true" collapsible="true">
                     <h:form>
                         <p:tree style="width: auto"
-                                value="#{availablePluginsBean.availablePluginsRoot}" var="node">
+                                value="#{selectedProjectBean.availablePluginsRoot}" var="node">
                             <p:treeNode>
                                 <h:outputText value="#{node}" />
                             </p:treeNode>
diff --git a/Kieker.WebGUI/src/main/webapp/projectDependencies.css b/Kieker.WebGUI/src/main/webapp/projectDependencies.css
new file mode 100644
index 00000000..22b55ec2
--- /dev/null
+++ b/Kieker.WebGUI/src/main/webapp/projectDependencies.css
@@ -0,0 +1,22 @@
+@charset "UTF-8";
+
+.ui-button {
+    font-size: 15px;
+}
+
+.ui-layout-center {
+    font-size: 15px;
+}
+
+.ui-layout-north {
+    font-size: 15px;
+}
+
+.ui-panel {
+    font-size: 15px;
+}
+
+.my-picklist .ui-picklist .ui-picklist-list {
+   height: 120px;
+   width: 520px;
+}
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml b/Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml
index a4813ae3..6df8485c 100644
--- a/Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml
@@ -1,26 +1,41 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:h="http://java.sun.com/jsf/html"
-	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:p="http://primefaces.org/ui">
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:p="http://primefaces.org/ui">
 
-<f:view contentType="text/html">
-	<h:head>
-		<title>Kieker.WebGUI - Project Dependencies</title>
-		<link rel="stylesheet" title="Standard-Stylesheet" type="text/css"
-			href="main.css" />
-	</h:head>
-	<body>
-		<h:form>
-			<p:pickList id="pickList" value="#{selectedDependenciesBean.dependencies}" var="dependency"
-				itemLabel="#{dependency}" itemValue="#{dependency}" />
-			<p:commandButton value="Ok" />
-			<p:commandButton value="Accept" />
-			<p:commandButton value="Cancel" />
-			<p:commandButton value="Reset" />
-		</h:form>
-	</body>
-</f:view>
+    <f:view contentType="text/html">
+        <h:head>
+            <title>Kieker.WebGUI - Project Dependencies</title>
+            <link rel="stylesheet" title="Standard-Stylesheet" type="text/css"
+                  href="../projectDependencies.css" />
+        </h:head>
+        <body>
+            <p:layout fullPage="true">
+                <p:layoutUnit header="Navigation" position="north" collapsible="true" resizable="true">
+                    <!-- The control panel to get back. -->
+                    <h:form>
+                        Click
+                        <p:commandLink ajax="false" action="/main">  
+                            <h:outputText value="here" />  
+                        </p:commandLink>  
+                        to get back to the main menu.
+                    </h:form>
+                </p:layoutUnit>
+
+                <p:layoutUnit header="Currently used Dependencies" position="center" >
+                    <div align="center">
+                        <p:pickList id="pickList" value="#{selectedDependenciesBean.dependencies}" var="dependency"
+                                    itemLabel="#{dependency}" itemValue="#{dependency}" >
+                            <f:facet name="sourceCaption">Available</f:facet>  
+                            <f:facet name="targetCaption">Project</f:facet>  
+                        </p:pickList>
+                    </div>
+                </p:layoutUnit>
+
+            </p:layout>
+        </body>
+    </f:view>
 
 </html>
\ No newline at end of file
-- 
GitLab