1
0
Fork 0

manual source files

This commit is contained in:
j4strngs 2002-09-08 04:13:01 +00:00
parent 1dd472e394
commit 4607443af8
39 changed files with 13433 additions and 0 deletions

178
Docs/source/FGShortRef.tex Normal file
View file

@ -0,0 +1,178 @@
%%
%% FGShortRef.tex -- Flight Gear documentation: Short reference
%%
%% Written by Michael Basler, starting May 2001.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: FGShortRef.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
\documentclass[10pt]{article}
\usepackage{graphicx}
\usepackage{times}
\usepackage{hyperref}
\usepackage{multicol}
\pagestyle{empty}
\usepackage{a4}
\newcommand{\Index}[1]{#1\index{#1}}
\newcommand{\FlightGear}{{\itshape\bfseries FlightGear}}
\newcommand{\TerraGear}{{\itshape\bfseries TerraGear}}
\newcommand{\SimGear}{{\itshape\bfseries SimGear}}
\newcommand{\PLIB}{{\itshape\bfseries PLIB}}
\newcommand{\JSBSim}{{\itshape\bfseries JSBSim}}
\newcommand{\web}[1]{\href{#1}{#1}}
\newcommand{\mail}[1]{\href{mailto:#1}{#1}}
\newcommand{\Cygwin}{{\itshape\bfseries Cygwin}}
\newcommand{\longpage}{\enlargethispage{\baselineskip}}
\newcommand{\shortpage}{\enlargethispage{-\baselineskip}}
\makeindex
\begin{document}
\longpage
\centerline{\large \textbf{\FlightGear{} Short Reference}}
\medskip
\scriptsize \noindent
%\footnotesize \noindent
\FlightGear{} is a free flight simulator developed collectively over the
Internet under the GPL.\\
\noindent
\textbf{Main Web site:} \web{http://www.flightgear.org/}
\medskip
\hspace*{-8mm}
\begin{tabular}{ll}
\textbf{Program Start:} & Linux/UNIX via the script runfgfs under /FlightGear,\\
& Windows via the Batch file runfgfs.bat under /FlightGear
\end{tabular}
\medskip
\hspace*{-8mm}
\begin{tabular}{ll}
\textbf{Engine Start:} & Put ignition switch to ''BOTH''. Set mixture to 100\,\%. Set throttle to about 25\,\%.\\
& Operate starter using the SPACE key. Set throttle back to idle after starting the engine. Release parking brake, if applied.
\end{tabular}
\medskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent
\textbf{Keyboard controls:}
\begin{multicols}{2}
\noindent
Tab.\,1: \textit{Main keyboard controls on the numeric keypad with
activated \texttt{NumLock} key}.\\
\noindent
\input{tab2}
\bigskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent
Tab.\,2: \textit{View directions accessible after de-activating \texttt{NumLock} on the numeric keypad.}
\medskip
\noindent
\input{tab3}
\bigskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent
Tab.\,3: \textit{Display options.}
\medskip
\noindent
\input{tab4}
\bigskip
\rule{0mm}{15mm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent
Tab.\,4: \textit{Autopilot and related controls.}
\medskip
\noindent
\input{tab5}
\medskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent
Tab.\,5: \textit{Special action of keys, if autopilot is enabled.}
\medskip
\noindent
\input{tab6}
\medskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent
Tab.\,6: \textit{Engine control keys}
\medskip
\noindent
\input{tab7}
\medskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent
Tab.\,7: \textit{Miscellaneous keyboard controls.}
\medskip
\noindent
\input{tab8}
\medskip
\end{multicols}
\noindent
\textbf{Mouse controlled functions:}
There are three mouse modi. In the usual mode (pointer curser) panel's controls can be operated
with the mouse. To change a control, click with the left/middle mouse button on the
corresponding knob/lever. While the left mouse button leads to small increments/decrements,
the middle one makes greater ones. Clicking on the left hand side of the knob/lever
decreases the value, while clicking on the right hand side increases it.
\noindent
Right clicking the mouse activates the simulator control mode (cross hair cursor). This allows
control of aileron/elevator via the mouse in absence of a joystick
(enable \texttt{-$ $-enable-auto-coordination} in this case).
\noindent
Right clicking the mouse another time activates the view control mode (arrow cursor).
This allows changing direction of view via the mouse.
\noindent
Right clicking the mouse once more resets it into the initial state.
\medskip
\noindent
Short Reference by M. Basler (pmb@epost.de) for \FlightGear{} version 0.8.0.\\
Published under the GPL (\web{http://www.gnu.org/copyleft/gpl.html})
\end{document}
%% Revision 0.4 2001/01/05 michael
%% Initial revision based on getting Started 0.4
%% Revision 0.5 2002/02/15 michael
%% based on \inputs of revised table files from Getting Started 0.5

37
Docs/source/GSIndex.tex Normal file
View file

@ -0,0 +1,37 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: GSIndex.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\eject
\addcontentsline{toc}{chapter}{\protect Index}
{\footnotesize
\printindex
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.

708
Docs/source/KSFOapp.eps Normal file
View file

@ -0,0 +1,708 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: jpeg2ps V1.5 by Thomas Merz
%%Title: ksfoapp.jpg
%%CreationDate: Wed Feb 13 16:05:02 2002
%%BoundingBox: 20 20 404 308
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%EndProlog
%%Page: 1 1
/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
(JPEG file 'ksfoapp.jpg' needs PostScript Level 2!\n) dup print flush
/Helvetica findfont 20 scalefont setfont 100 100 moveto show showpage stop
} if
save
/RawData currentfile /ASCII85Decode filter def
/Data RawData << >> /DCTDecode filter def
20 20 translate
384.00 288.00 scale
/DeviceRGB setcolorspace
{ << /ImageType 1
/Width 640
/Height 480
/ImageMatrix [ 640 0 0 -480 0 480 ]
/DataSource Data
/BitsPerComponent 8
/Decode [0 1 0 1 0 1]
>> image
Data closefile
RawData flushfile
showpage
restore
} exec
s4IA0!"_al8O`[\!<E1F!-eJDs4[N@!!WQ0"pG,6"pG29#6kG@&./aN#mq@V%h'!
c'GqZ''G_H&*@2dG)^?=<(*G.N,:4ce.Oc5W/MJb)0I8+r.0&$%6NIDs#7:_D'+,
'[-lNj>-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n
$Jl-n,,4!"fJ;hu\E2!?qLF&HMtG!WU(<)ZTj?!<E3%!<<*"z!!!!"!WrQ0"UG(G
!#P_;!<E3%zzz!<N?+s4RG]!s&B'&-EID!!2ZDI9Ens*f+/aH6DgWU(bhDLgN2h+
[##QReakKOlm6G*c1J)o7s(O3-m:MLSGA>H6U#dkfE@NUNP_F8<_=?M&q$/p?HRE
gulZ6[mT*OO'TtTUXKV5:J*"'4Wo$VdA,!YKq<DY+m4nOX5G(I4otE2kKcIbSim`
LiTStWcUs6VH8^&TdKc7))Ed9J=i]4f;>MU,Fe!jobSO!DCT&tZYiT.kE^$I_.dE
e"FT^UkK:Y#62-QMOclD49YFi!ea#A2q7ZJp7%Y/=cQ8-bEBGsc*O]*u12*-sgX+
XHSOUf66CDlB5B#PrB<(UsRYaKddX"$bQ]dc3UaQka/dF"jUR(GKG1jRS*0PDl!>
(fb@=#,\1Wh*Y"aiUj7)!P9EajT=ZU#h:jfi`69/`S2HK37A@R^F-jdm$>bG25cq
/i.0(FOeQ,EoshU)UXaZ77!Uc;#l_jCnrjIe>Oo5bD%c9;5<M7HW4R&<bt]R15IM
MX.#I!Up\IQ<:WJ$:G)4M.4Ubk;WC;)b:S]/XWbP1jQ]@=2!9rUg45aI<8b</.rc
A,)(ThF$HYZ'WZBS`',79pY$!e=!]hDTRmn5BAO`-;H(sD'cL'jKLeWJ8%AkhX5`
FnucF8\l?#%YgdPjQ.%\[0BPW`e5mmi[^;0$u;-E,6CLeJ7*9T<`.ZjcSE&p.`!L
ik19744o=dY\\a3N=>?Hb@Sf_\](%T!oS;X]]H?+pof"UG@^q&3345"\Br*1m3aI
@Vd3PL/FgO7^T?5\^DK5O8o80Ua-[$aYMkXc&'t=4%+aT$Aqjne4<,);3bl/1a0/
@70uBq".)9o'1Dm'7"J8t#"FE2TL@0UU+U0o/;-KYNFFeG/t-ETB_,*+cE!XMEHM
;VKJ\3/Lj$n5J5T>m8mGBQ<+thI89@9s$m61[V%`p^_$Crh!WW7u-RDY)!h.MJ-F
&g"VK/cI/R5Y0Q'Db$h3h<Q/pD%c.lu%r(8S9,NCLC3ZKgH.ZpPKUb)0?HBX4)T6
Bb)b>UpLG+\E>7Pgc@AL]U22M:7;t"<iR<#"p1XAcdd^'GBYu]j,)_N0`hnI449l
(n2WfM^llF(83ZV%p)obPo8gUC8&Nk(8N97Fd;/%XV!WN.qCKhP6k5W4[LPndK)7
#!5njl%1.Oe'1'L(lPMT]3l+]_[;%Wt%`k(>9`u/.Bb`DB)[AND(p1[oYa3WaP0h
(:65T]Q&A_24"osek/?2GG!1OP9$kU6/"ON#4D%/0!5&_NR<\p/Oo6"Ve.dH=FD"
4i(R`U5IVJ;?hU!ou\9bBpYV%lTPSESu_e;.WONO^gu.0WK"-sZ&9Q7?pC2,m:FE
M8pp9rg[tBE/1N!!!!#.B$`U1`Q\N7W*jN8ZZGZa&_M]k[H\I\c;l[Tp7*h<24)Y
1meIs,dnJY;4NsTW&/$b<(j%oJB:,;]!IkXmnmW57RiGrZ_#7>D;5M&z!#U4d#c=
;N20AG/iJ[?JG);Gld@Rkm"Plo^[TQ25^c#?#Tor]L4[UFKRFMWNK[V*s-3F;M,*
N/.,bP,;K1-P&!t7nrcJLYHb?XG]$U=]*BnC!u!6:ZmF5`MQa,ON)8g^ZK`u_A3o
Og)AUJ?5L>&eBsF@7([EP$3BJf5Jg8jIBl.Rd7">f.JU'e2M6WM5,,(l"32P1"UP
Ls&WF!!(6ij1OQP/oIV&J-LN)Ls))Fq0Aks=QJT*T;=b.QJ]$ln9Hm`]>O42hKn_
04.k.=2;2%7)U@#uQU7hrX&(9lZKNU=6]dB0A3.7W1bFJj\3>T*A$m4G`Buo+@"o
d@!!#Pj)eYS;buC3q=l*bS=]V2!#%jogQS5,Uadt.RE,eD#j7E3Fa4g@e<HD;X):
feUG3?rJdNrXWaue4#[c7jHSM>d.HU+R+"$oIgQ4V[ld>GE$6?]&Q!7r">cH;,]>
lXk7ZBH<X"Nt>`!#,JPbL7]^6Jd'fbhIg1bNnbIbiZNVioA5Ij7768mePM[ad_JE
G<UIZcd:e:=#NCrFNdmHP?":u[Q.O`>*``>Y&\*J\!s)$Tfl8N%0-J1!<G,9$%a!
@!Z37U8H?a1!!!!*JcW]H4aql5?X&/</DW)E_k)=D0++03bF9AqZf(#tIZGibFN7
]*/b>eb0e4**!/a@('!sLoYYSSUU+k=`b[>1ZJ,kii><i/g%0C6ocnGG.N>."VTE
#7*!2QrnSi`_/o&fn"Dj/M6e&1<C+%&8b)84hXB,]d5S;r!l4(E_a4WLIu0e4/7=
sQRf!!#G:$C9mBO5!e*TEJo124Wk]/a,B*FIS-Q88&$[@$goq(a4D0!!%anD4.Xh
>L>Q<dIa[=SGBoqTB>6jFr["ao^V`<A_kO_jn&@05(?(qI(Sr_@^>2Xk%CH]D7\V
mLXbMDIU_U)lcf^d5l_;nTPp?_XjkDmZ:@FPNN;7K,`T([7`/CC"N2tp0E;(Qzbg
>Ig5)2?43HsNTq/Z=VI-Jo@a!luqQ^U+!0+,k9?9^ePL8U<ERZ[MTZ\M3E^:2DTh
!:`!PjH`W5+K5F-$@C&mK*MJ$t9:,!-:I<$r@#&'Rn]NkQK-&b=NU`TE"rl!/:bi
_5W0/f"QSGr@WSlNa927iKqp/MDFG>SoWY,AKBFp>b]PHWTVQ$r_H>3gu%Bkk+ca
uH@5]4kO#I/FO,Fh7na1mbpd.:d#eDUVjjP5(muNN-D_HALJgZ;1?ADM1$Ct2-mY
HZ6Nf3;Si\XhSDK+bcRul?q;]4CT?eTP&"]Ps/>=s]@QQUA]\K*.5;VYIHlUi9=P
)*"RAA\"G4Jf,rf/u2cdCh522[Ob!Y%QO!@!cVKd:]h%5M%YDJ=V18OA6`-6Z2C-
)TuhB`5^[d(fXEN,jrkpi+LFkN1#KY<G'hm`Xd'+%Heb9s[sAl\h4GQ6/0tA*N1I
<i==,i`ON%)(nNU`;O6`Iod/?T&3J5Phn#idk!t]!!!#a>,#,mT`?B]-'XQE&iq:
(;%AtY9iK>o\>#^jGFapc+1Y1lcQ8^RQPNHOQQB8B\T-^OR;l`'DEO+%kDE$$_p>
7/_rc#U+%r)_D]7dhH"o.XZO\ph)'r:kHcad+I3Sood"[;^V?2p;(=82".1VP,1^
I7tciGF:AZEsI!eqnXk`\C^/1N3>Qp4KpP:nkqY<EpN^CEhqN8gKcjgjZ;Rtj]9/
3)gi1mqOl.4fM7(JL[pW#eR1oohsi:mHt?Uqf5LTKjt5?jSe["\beh(oWVE9u%oE
`ZeH;5slKQK1-2`jG)GhD3YFiHRtp&+/`244a&KJcdNt'P6KDO1:<QB%$5"V8jWt
'3iH49>(?YY+A5U(<i/JaOpY_$eRZ0tW1lS:*5SD<)dsM`c*S4T'dbpf=r#[bfqW
.h]]"$2A-8&tSWo6ig;fGt[#&#3,a"6!$!<?F!tm$_dU42.d&K?ETeNGX5RGUO$8
a+"-#/SM>-aE!-E.37<#PnT;!?-W!\>\i$^n;nd3YTrSUmB<%]'kT$<DHcBpl4O1
kfTS!"],RVLV?6#(Vn/!L56g!):P`TTBa^;^<t5+Jiq2gc5_!XY\,e<I"bdbGK@f
\-c7`h3lQK!L>)7k`!rOel(^u385^fPuQPE_*H@%3>"ja"&shN'eP*qF[@rPBGs0
.P#REGJtslXTTP4rVJ*NKAF0G?OO@;gTcqQJW0!.!Mh.2S4#O,'ApTXW6EF$NWGP
#.FI8CuN3)<h>!_J5Fn0V>dWlSndeOR.LQPoU:Ek,7^-VVhGl%*ucQp2;GpVd@^-
VVXGq/JuSk8e*ngi<hj<N;;I#7/pSk=EX4Ht0]ne^UhjJUT7OhY(\,p'ueFaDe)D
0k^AbLrZ1^KkmTa6\H!ca/hV04P6OY>eZd%p7.&*kXUXqVkj+rG8'#4c2@bp+FZ2
rIc4n03g/le(.3a;S?dOs24mh&-)b5!<NH,!s&B'!s&E&!!!$$&H`RW";;Lm+YYW
9"X65f(*aML6;U&Lg&MBZ!<<-(!eQ/#\UWqiccgJ%*;miA1!e'bo,R\K5;CL.F7U
CLa$2<)b]E@qr5V#VccgJ%*;miA1!e'bo,R\K5;CL.F7UCLa$2<)b]E@qr5V#Vcc
gJ%*;mh\*1TDPr\oZUj#Db26Om1Sr]cEG\Ek2:"M+>gIUf";kN4f#NdbK1R-3Tlq
2To6T:"g(3Ve\aA"T.OjuN6tIUf";kN4f#NdbK1R-3Tlq2To6T:"g(3Ve\aA"T.O
juN6tIUf";;f^($E;BM6+-Kuhj46tla#S5_0^(W-d!3I%EJHm@%Y_nC$]I+_(j%A
akZhQCGf-3ELI'r1K>no6NB.RgF<3:&4CQT]_k?OT6/rH-`Z5;C3Y*'L*\ce_@F0
8:T^de'ispX[SHFj4%iBC@0^)bMd($qWL#_27)he-d.HLDVjen5i/+RCrcc]XE_u
<;bTDX1u5NDZUrr=/$:\aqi)KZHGkT"<`37FPjLI1#2KuP,@N&halF=o-.Hs+iVZ
_DGP7,lLK`LRNt3Zf,Z/hlKO@F08:T^de&j%b0FSHFj4%iBBu2!>oncoBLInV9Hk
%Y_nC$]H>*^-<Z6RJA:!1n'rqisFf.jN!I0QR=C`PbX/,\)P^RO,0!S*UXL$R3pK
KBDmt9DuTeboishdGO$f`@.M)1Nc4;)YA;Cj7jd1hm>ba&'W!T:S4I;_4H,#3dd4
/aoMJef;-gTc?+XS#8Z)j'(rdhp)5e2qb(f#8$-ETPje:[l;M('.8ZYcbP7$Bdj[
B\">Z>E"EB-injhR0!\Af,;bDe&m9k0&u.@cbF\<ubT+&;\d=t<bh/(FH0XXpd$0
Bq/>>0H?-7'1-r/MB^H]p5E/k[*T+bLXj$VF`TqZ?+&LdF0=[*`ejmDV$/(7@IHN
cZF!0/DO!A+STZ:\ANB/`8$[8asaFB].`&1'N`#l/@+sJP)>C0+u)Y8UnFN"M%l\
kaJ(8nP)@Z+2mOW,ZuJuJ@[`0A.'D>!2qrXU>#AUmn]^qj>e/"_8O>Q.%k.hR?/O
%jiVYoqnGXNJ^)t;--i6MCX+(Z=Z2?hAn:)PUQhg8j/&.MP!+,[*fjqU6I-$s=bl
.@e7GN5<YB%Yt1#e0b.@d?,\Cuh$I2bnXdqQ1`MC>66Yp*&NMDgquVUK6H6X@0q6
M+0i9Qoc,V]G)i)jGOuMWK^N8UZIH\KNW"?H8lWh0t53d9bSYbLQ<iTjL:$<(cP]
X+%'!Ym@(Xm(UWj].[>9Y1ic[=)A\Tj)M\!+a7:AksZ:fZHL\.YQ"U<CpM(Q8D7q
3b:MFUf=`]jInImC)i_i$Aa)X,+a;UOil12t72=X)?Y*r$6H^ppB9R&:g2/@Gb:K
sl?AgA?qj+^np/,0db:LCs's/ELVU6U">LJBZfjf?[C.3?o7=@i&;+5f'I2#Oa\#
gD"?iD9l^82N@72=X)f=Lt;lU9@h?ZsWZn9?Lj_.EJAYG_<j:])YKD>d*\8*+PVe
87\);DKMT;Oo&K8D8qkpU\)BmHCuN;G7#ik#o4L=^pj7?0JYtCqW`Cg\pSPZHI_h
I!R'$O(B'oZHFn)eWsRF;Gf*Yq]F5@]4[E[[X[IU-ujXbMFb[c*kUj7].Zc,ds=M
'h2WF_gQFXkTe!qq*?U?<[$F[JjHR9SrbKo-fm;%54I#^rZFsRmo(i#^k(f2`\s1
t;U5AmMQ*$?TAbOM?'N"[?U:ukfU*mKpA\MLN!8A0tO4rbaPBpA8=h'^[T+Mc=AH
)YSp/+6t9r/T$G/!i,Z-1b0#j$>bG-=:+b%VKZQ<@^Zj@_%$4s^m%,fsR:]4LN/r
lZi`^!"r;O%V%0q`Gol&kg^7g:]Kff^lc8bJ!bBdNt("/=`^2):(lMMC4uhEu^1[
Q9O"%!0W*Jh-`d2g:`L>;-HQ6nD;Kenu_brCR5Yg;:5,c'$?=fQ<@^c4sDDI'Zjp
&F#P%Kc<VBo`-Ia2hfSkucY\!lY52GUg[j66P)##WCFL[7@]7InNk6SoM.R`s/9@
NJ7SM5uZF2cb=g=6P,L73icSd`:I?X[25#M7/bOei$9?N1%V>"<(f`(s/rr@B@/(
'LeEK32X@8\c%RRFIpb1Pc8%V51,98GsWP%M_QN-caA1*r)Z7GhC7rr>6_mB%c*]
Q_LnnD<$qX@g0%08/aSDM[jOQ?%7T*0%nBUe?M2ac]&UA*&T1/?!j9A<adY=[2M(
3WB*4c"%mZq]FSk[rTmT-]oW;:!gFM/Ik2?`=FMepT^YbGu>rO7']4+=QJAgTD?r
NDe*Q[?H;B>l[%5pZ6W('/?Oq"ORjXA,<"39(_Y%QaHf@@=d\:-et;d70@>qe+cW
p3ZH".l;C.j!<lZB.)oj.P%jB21mikL=-'ahjBDuTuUAZf=/(%tfb^!&:`3PD6o'
I37a"r"d7l&*k0gQu*0j/Rp2h+PJ-iSS^lY-i=a?69(P/oYDA!#haG8DVE6S@aV:
"44nf%_IiL*OLSMJ.H%8?Zk0!71&.SRtgB=KcAfIL/U&)qa55nrFpa%j:EQA!#B5
51PLMA]UW/74NP&g9JB1UfW<s4N+Obhk`@ea^s[nn"9FQ2Mk$anp-J?OEh(mF$/[
=k>*^=J(ZZj-2T.1OEDu4N3q<];''u#QP288hpV%pm&!].^["\]3M\d4aN#Ib-'X
]_F*`'NW-OKqac>'DZHmWsa)"C%>kbZD,g:KJF!CjP4f^-KHIC+XGohh9jSo53oW
Et3'$A7Xa"be`#EWuSa!NpR7l!t#[OA2EBcKl`0LFWq=g2td!dUMsB5Di=rgW@Dm
`GJ/YM3aINa^-Q6-OBia,k@$%(=2&&m8)GE]Is75j'K__j0JW\DtV*-\NnVCnb'P
5aN2,cQpKim8\=2F7P2=]u_GY2\p9Na,k?^a,kQUelsQY'MC0%OKk&f'B3DVnP`s
C/?UH^ds%VL[;t@hE;3`p>Xg\5nM=^P.=,peHMH+fi4WrDMqN27K9LU`jDQ$Y1#s
BCF$,\IA5Mj'p1)a(M,/t[-cJZ?P@^,#3?BBWYsFWlPB`1pW2GeSlTHf45G-bI7I
G4fGo55EEu]rij;c2aar]2ub)TtX4IFMK+c^o0AJ1JuT,M.S7<k'%5bAg5nhJ9_h
Yet4H.DUO?_Ysi6p.9N2E;7WOQJZXR-%Ua1VtH(LQY>P7l_br,qWA[m#52>'JQM+
,c<X;n%Vj5:RsUk=^tX85"5'W*_1N:,Wpm.7lFK33K?Ignd]/t\G7QdaH5R39-d@
)N_Pk:N^`Z8G[B"X7tGkjW=3)@o;D)b2Y9eg8&E]36^qYQ3K@_1aU]NVDDr>6]Tf
3b/4Z+kPC9T5DsX659AP&]?BsPC..D_.I?*uqpg9WpBo2YL&EZ!4N^LlML?!8tV2
dpd"A:S=hgLcl($tJSDmk]/5FT8%@oO_2.'h%FjSk,\bq*lTa"q^HT-[Ck'MCJ5Q
;#$i/?:mI?V[f8C:%/hm]S"%i*(@HN(N8?I#H*V@Mu[l]f[6u8T>/a)_]`3OY:V"
p+^6fY0,AV\XmPn*g`m2T>tLXVXH)OYFQYkdH!iDR,._qFl9!mq*$XL`3a]8N:;=
HYMh&a]fbOqPBs#b)lUBrQfi)PP=Na!q:8H=RQ3>#Su]?]\lMmeKQo/U`MK;tISZ
LsT*!L:KJq"?H7^$JTkQi'BD;?7#1IM=^N[\i*R0T=9^ktI4:&7[r!;%ed:f92M2
YaFm@FgnlGlGBBi^;9Q]EMIDC!15-9*chr<rI?jY#-VrgSt3T"]@HpFhm)<3F/;.
&tbnjM*=n3^(NIFUmJ6RX]1>fYsug/rR'Wo^^/P%C>,i/&a7,r90N)I&RFEhh6HY
5K.1hO6=WlW[X%b8P%Q3W>-aE72/Th_-0c"qA4(Ahh1"b.3BJA4s0MknPh6H$Vun
AlE<YIkkS18H8m`\O7.[q>!(-Q>=qGrSf#sehO^$9GGY*g7.g:*9%A*r/<db2%gR
aM8j?8L]F>WZr71^Zj_<i?W:71aYQ"T0`ULT"UN3O_Tg2/G2r_gIH+O]cmmkE:cA
eRk7@tst4Xd^27#;YT3i/[<j7PO?XEm)9NIF[R(3sDY6BrukeWY0NeV_AbhMRAF,
,@m)<nScL6Bj-N0;d_iDBl#fY*jt-\;lu1l*sKVK^"k!R=sglNgGF`Qqj'&l*ubC
M!::%R=sgl:7$XuGYXZ[l'P56K^$",RtuQQ`6Oj.l'P58K^"k!Ru$==Ngkjh\;m&
7l*sKXK^"k!R=sh7Ngk^d\5&NLl'P58K^$!ASVZO_:7Hq$GYX`al*ubEN*hUbNgk
^d\;lo/l'RL!K^$!ARu$<r7JP(Tl'P56K^"k!Q\=UjNgG:\\8/!O3d*<V@QIg/V;
XII';f3PRtP.._LMU(!$r3W!Wi?+!rrB)zz!>,qG&/-0?5TqjJ"&WHFEW=_m#QY#
.!C$Va5-ZK#P0II+Sg:Y6[$$=kB8)808L5-WO@%\)&4$F2b6/AHp2#YY12'=4H.\
YZdsE?fhg77''Q0M3;mOSu@'VCI:NB$H2*=WTn[8`k`d)*Da[NX+^)ss7@i!afTa
aR28EB=5ZM6OVjL6j><X9HT4KOYE!$OI3HONHcO7Z4)M\P_X)GFiU%M?_<4ndgG)
fM574ClFk4/?U%'7K+9eGT\4mlR91T"JsP2$n1XP4h,]?1m6"QUAde:MOrf,3-W9
:Nt1UNtZl<L3h/bks>:TmId"=XJ`6>7o.7fnp*?UXVlH-1P--+)+IJfAJqAf15s[
oRjcN>BsN\m1tb?4ZAd7D)+IJfAJms7P[t`0br0:AN72>U9LThrbr0:Bs24m`&HD
k6!<WK+!!<6%z!!!$3&crUe0`rRQ5XA6\,#E:Zg&MBZ!W`<d!J1S"Jd<KN#U"^)+
dHVA<`P7&A25#2X")8tXJ>\Cb-J+L+cscV=]SOa6R-sia<O4go$3CoJolS>+(8]P
)EcFp7`CO:4HebmE%KB^P#%*0-Z+sN9YM^+hc;]r)]kCal.\]*1BinPa^hsPUb#@
K>.r9Led0qj@1\5_01#GUlpnSh&[k9^1l]jPUBGCr8L0j-Z;0Z4G0dE=m?2m!PRG
3fk(2MC80`6PQY&/Xc+fb.aICjqpcf_@=mrF(Z@$Z"M^]_C,dA^XY&puE8NnT[nX
Z"BFH7U<+B+ChX((.<`JRoFRZVi"r7AC#%jSVPqVk\'40kns;Z&b&/>_]J7(/taO
HGXr-+su1rne'lb8(CtP\p7O:TGoT.I9G5,YKSM(J+oZiqqj+4/B,iZ;0IHO%m>Z
O"\nj(/s9s9@?HK,]&[,p*<EX9>?35^37,9h'_)*NKtqe`1/#n_>G:$()+Kp9bHO
b^.BkXZ!p9W94Q0(JqGF%JRKbeZ!`op)TcG[,b870[Qt-B;9@Y`/t_@39@]3EM'S
WViC;/R*a#QOSInp%+3"(-;Y=j.Yp>O-72t;i-)Oh@4Ia`?gD<G0&kglJ-Uir&l2
HSD[<\QZe<+.k\j)q./j722JTTPK96]nL@$]r3@XbWIY=\I,r%XAXr0iLk2U:CE.
JbJXYc$sb(.F?r=VaGgA6B[:O^qT17?M+`(.F?r=VaGgA6B[:O^qT17E^uJ=V`QH
,/o[TJ,dFe3Y28l!WrQ4!<`E*!XA`+!!!!"+T`61!t[4R&g/AP1I+fWP+b\T@?Jr
('7mD5_%]dT@W7FWiW%U3#QXr+#!W1c\GiDl/Z`?3dmZ)l9!eI-rr>RSD(ViaK1Q
h*r_iar@uG'^EG[gu/Z4`M[.62bSjsRFaPtp!**Z2`MeV6lD*3h1Vies*ni4(L7i
'RpinAYt>>HK%C#j8N4H;"kOi=]u34>DK(=U@ag3FZB:Etd3jDf$!N\./k`O,1q[
[ou)e&^P&GoU$a,E$9sEG[gu/Z4_L'OO^O&+lPdYuTnR&+mT8FB20W8sRd'!:6ts
?`[BuYU"!AAVtu3"oeRY[>HJ*@ZD.VE_5q2Ya.rT)cXci;t`NUDlMKLp`sW2MeV6
lD*3h1Vies*ni4(L7i'RpinAYt>>HK%C#j8N4H;"kOi=]u34>DK(=U@ag3FZB:Et
d3jDf$!N\./k`O,1q[[ou)e&^P&GoU$a,E$9sEG[gu/Z4`M[.62bSjsRFaPtp!**
Z2`MeV6lD*3h1VigW@7rN*S"A&&-k,"'.^XP`]nO5ST<L/\dgHl0f/L/].8IG.hL
p=aSROKg&PK^l1$m*d3m0k&__<hXPd)#)X*mhgl$m*d3m0k&__<hXPd)#)X*mhaj
$m*d3m0k&__<hXPd)#)X*mhaj$m*d3m0k&__<hXPd)#)X*mhgl$pN%Sm0M[),n+W
'9cQ]u:[1Q.Z1e(p!8<%EYq5$pd3_i=mR\.)h$N=7jG'56gf0`\L(A"q0RHUKKA(
du*n0gjp7JYrZnQho#IH2^6P$OXqa1n$0`+3JZnVAE&%"%f6P$OXqa1n$0`+3BZn
Qho#IH136O1!sQp%A6_<hXPd)#*6Ae/VQ0RH.tZnVAE#IH%a/7Hqd"I/V+YO$iK9
rK1m9dZfAU+L#>TB(o%G'%=H:dnV7.i!+O/EBAP72.U+\k;N:dRd2C74ATO5cZHW
=e_XScrs,"<Y\1>d9=U[8:Qqd]93rWVtUcL<E(3#1h]jGE4dH#4&G!@76F1/bnUD
N8`W/gifUWK<@jl!O[U])ROXMqr/r[G3;nRiS<B)[RNX)XHR,tt-(q<gRM(f\<k;
F7n*`&):+tJ"8^q2`aXAjCPu/ok:Um$06`ThZ!5n&r0#VF[8e\lp?gL1DUrAm%AU
8%2MB*LY'>4`Q(g5q*^1^.gaEmd5TfH(fdV2!NUL-!DL6S]006@r/2=>0M`qZo?L
3$KsM'YG+Usqi!;^2)P:/C6_]cu71]Sa\':Upt\+skX7;\)Z8->:ROM56<%Mq=1h
[F-$\7@&;Ch,:(APqsKHRGCc;9ZjKf?2Y>!f!D?P24nn]9uTPkPb7X]'cB706VZ'
9^Zc$9%(ts7+[d`4&4iUU;'^i,U(fqM;*!F@(f\@@gYjEBhr.K@Qrfc;?PPG)F$I
[F5-/%K96;[23hnW2rY8t40/O8%CFTlHUp?/DP%=LH=LgnLGe8>^:&]O"2c98t08
ada9i[@tZeJGZas&ZB<Kc1(qR>Y`e8qdoID."tE[4,.PrkT32<:bl?$NtfOQN:$:
0rRUl_2pO1eEp'14Di,1uH/OrrBmd@hmLj[!f-4.F?#/\OArEP+f;*kl'VCNBrbK
g:]s+I1<-N12./QK<DS0^,C:pX$RPLTk--o/QUBSR[G='Qud)rKWMe'U[3K-Zi:"
-ng]Psh,@NmR2\BJHR0e^-q+qV^XQC>9:Juoan[_BK<O4Vr/=\>)g*6?9ss#4CK-
U54R1DN38:B4"J"799^bJA.Q4'#dnu5=gPfR7r/SOEANqEC+Wk2Y`R)NP?(C"SIh
>YAZW<Un&keK%LcV:AF\S6Q,K2:Qq_h:7LJaF]jQ#WR/ndjaE_4L(Io3Tkq\__;7
&jcQ%_=!,.*.3//K\kE<*@`e>_<dB7i"I_<+bO==*5U&D3A,gh"T<>A9Ar;8J@VT
[m&Q8hRC(g]iRLS-pKF.@k45:R-;(Vlp!&^:o_)V.qXOel)IHql)=IH1<c]=bX^E
WS>NbZiT*d<7+")Q23N).%[*_i^M-/'R+b^73/g72N;74J]';!7I>6@>S6?p<L+O
Ide4Php,bE"__#3h1\R(bl=Wu:**ae'ph'=!u)$a'Cq<-L50&2_9/uS&Ee:2#1dn
*97k0i[7U8i<&AfVu$cD>,h6hrX7jr\q#lcM9Df/h^41EZ$Boob`4C5ADe,H7u*$
+.&6(*'4A`nib8rIuEHnIoUW7Ub_T9SAT'./dU$!FLCgeY_`'FS@KGNMr'<WW)rQ
ZB@-*2H!n)*H`_MDKRi\r/NmH$'ALcDB!W6htA*E^sKhrES#0M=H/P'U?<o9IDp)
5]AA?QT4;FX3rD+'>Gp7eAT`4/.5P[KAu<`]];@+$[inD5kIS.9e3]YIN0?/o6n#
<a3c:GH(idP;<eH@#appIkP:O1Pe8KrA^/q_uDQ]j*/uQ=[Kf,e`?>HN78oA9iGE
%#Eb2:^j2&L=pTgUqV1Cqg>c)k:;NI;H.\XJA\1l%C)7\/3MN<nacN&pk_$.PO4=
&PKP];>>[_Z$a6h3HZX-rA(OrX)s)mVKseppu^>l#SDq.(@dlj`NGl+\@nJX*%$o
"SH!Z.s=?l4.QkVl;9dVQDJM16FUQn@N55P9C$b94=WB9T>\['?\+lfld2d,.!4f
f;X(.@n&jp%nir&)`p/^:<D;h#Y,LVKe2e?>)+s&AcMAjR<Gne$e2+]m17-@\`CH
TB9bkdMO#!%VRb_2<@IEI&Y54>C>inORO\0sU\WZ3FC=&^jOXZZqF.G1Z<pWmKrX
?e>RdA1&-G"m;Et>5GR9`\XAQuC<74M-OI4hJIQ-q_KjXtnY3@Q+E[Y>e3OlT?3j
]:`t_E'&[SZ[71aN#0Y1E:!g6QMk\d)R#a1E:!db]\_&6QMk\1E:!g6QMk\d)Tg0
Zn^8Oj"]861"mK3%!IC=d)Tg0N5lfrd,J4K91'\236ihDN\_]LN\_]LNmPfaMDH5
a36Y6eUG9btLrC6ld)R#a5=Z@5CJ.Gm36ZB0m0n/m4$t!"36ZQ#4$t!"36ZB491+
PL@Z88DN\cN*E@hT=R-b<*LD%tQ)3-NQ_uM4t!!30'!s8Z-!s&B%z!!*ZC+Yc8[@
3BQPJYDT'0X8IAiB[Fs!!iT+!!,;-]M0h%h!>bEj#);(mQTi_d/0O26gf`c&%Wj)
53RFAqk<aOmYBU/\fZ#Xk^ChTU%^qBLYWKP+*9^1IF.kbpI"A(h%.(=F?\o:d/0K
0e-3<69TmJLB(Wll'rP#;KJ'e_[)1@"@sY].RL_"7IL+UgD/r4EiGlRl+XNjoeR%
]=2a6GRd/0O26gf`c&%Wj)53RFAqk<aOmYBU/\fZ#Xk^ChTU%^qBLYWKP+*9^1IF
.kbpI"A(h%.(=F?\o:d/0KVbIN7F\=;=]acQ=0$1`EO$dmmK\%&%kN/F)2o$/&pP
D/Sgi-`'pT.WkdbEIeRjPkQt31hfu0?]Q9o&S_V\N!qK:,g@[NUl/gI/,ao5#*KO
PE#.oj*\Bsh_%Y_bEIqVjPtWu3+":5(X&#!o&SbW\N!qK:,g@[Jb%m[I(;5o/l"(
CPCrAcidA9\?kO63cMOCpJjp%m%rVQs92!upCtq!CaSMU"HZPRfUhjY2W,F9:h_L
Jl6M.3\#KahA*8G%CNPmahkK1O8no;BKS6qU1#N<eDq/UG'>b"$F-Qh<h`V=InIN
4t5p)IFp-Qh<ha7s[oIN4k2QR<a6ai=-sE'AZ>6Z<LSq/UI=I%3QD%EA3aEIM/_+
,;3WjiEjNd@3LI'YT4\7Z=_2D_lD3P._K<qX3T2=]u9!26e(D(5X@YQ;aCN2E8fm
EBZ:>r.t\pB;"`;,!:hd>1F9X0e>CddU%oH,cm"fX-:3u:IW7Z069CADM;]u]FVq
+pUh*&L6<LtPP68>(^a\DL*8HK2:Nqa:Q6T10W`5bOqW]-@Obp0CrY%NJYnaW@<"
k%i3mkfO(N#p"!t(;!l@qh+X.!t+O%HUM@S5^('_eBJj^2=7mr?aN+':gf\"q&Ud
[Z_Jgf9'X(-0j,-`A%n.FfJOjTn?WEV]4p#V'g#b7=BN@#r4Mb,7m+`95FD$a*8>
VqVu\JLHpS=(Q4%-/`Y-F(C*"dX*UdLanm1*r\e:@5ZeZ-nj,aFki*L9d)WJrM)J
-0L!ZKXJe)o#.Y6S_kV`&M3DfRO$HDP1+[cGa,AkC5i]!R:12d__6AGF4?#G>n4.
u0\m\AYpnq$3[e,?Os)"u'Oe7D.MkmRJq'(XUYqStP"?p_d0'fWTs:mm(qB_h'06
I&+C,PsM3tjf7Nop@$3KKl-72;0oZ8AB;fs@SOsIBXgWM-?>@2G=UdWF/9LXh4gh
pV=M3XZbO\oeWBbO-qe8^9gJi4]2WL0uKP15[iUrOIm-^7k^C,)B=2(Def:119s`
/N9CE73+T#t6)3,[bGFTbNq@<ItK'"\>F#+G'kE,XDQ^"u\6SW0&fB-8S_u!dWFD
&L<&r+d5Uh)J%CVq&p+QYS>-6N6;Hlj8jp.'V(-oiS5n.KM<[!.%5dMV8akE8q[h
XF@_LY*>noF>qChN8Ju>D&eIA['T+UgSk2'b*Q!Us1$L4Zm9tV[*O=<TnKMOB`Tr
m&bS(0$+A03M0Y=O@Ye=-)?ZQ+2=h6N#8+BXH&"m=]5/Pj.Mn+qWMbXJd98nL(@o
jH>%qeCs8Mk;ha"0n4O>9Ci;*.c1Bs%TeB*l9'T_1#"JP@ah,j-'Op9$C!5hfK:#
bsk$PF9sKoIWHt8L;b2.L?Cm,XE-9L`2N/is/L=CAX?pL/RDW3Ll9^,s+I6BTn+D
-R5"6H1rnL8m*/`$>%qsm'^9%0?[q[@f9ElW4slDl5dDF9'efW4JYTe2lQ)d*46T
aKtXbEOJSnf;;NTqi+/gdE6&=!>8#_1L,2+>P"<Y:Fqqk]h?B^h5aJi)*/39ZB$L
c'bso7&8@K$sa0&*&q!;40_BDK%+p]Bs5m15&":C>^aVu6/1%bT765:W#5m*lL+@
/m2WZ<*OF:p+O\g3<*MM)SmJj1GL;F]$N-AmLF`$$b"d1f^mLmgU4&4"7\ihSUh2
G"A)K'7s.<0LIdF?p%,\kNi/+Cg:%)J"[:`DB/<6$5AW)k&%j&u#Rh6Y&,B$AQYH
7#!2p;IGogejP=pk_c`5"E]T_BORWA`L7AUPfO+QQUK4F'c>a=;,W:mf^<-6WtKY
#]S[G]3[^XN1rnR'&QtpWONBHfNCaXH!^a^H5)@.ER$f4_9bOI3&iW;"aV,q9.:V
.(9ThT:1.<GYaMTR<W?h<E+G;%.&L1LW0ogrc`/CHi7mgd/JganRU1fr;8rFjOO\
#C+8Z9gPZ&m$A/P0.Z9@8j<@0BRgL,Vg&"H%lN:IL.&D4,^kKOR?g'-rN2,&'A)+
@qNLl?s*mQ=$@8M$+?hPS$CL2I&$fUd1%D6:=^A!N"G4&;<Ts\dASV2/J.I696BC
.Si`\Uln<Ok`CoI!?qdoV9m4e;nX;B"[W?K-B+'b.fqV.\HELD]&TqX&#Ef()o<9
IMmF)To]Ul4+FS'9'4U1h,-?epOG"06@#Da^'OpE\;*UBePJ\c&?Y3(d[*]C,W<c
I/0L6G:7#2t;#U6Q42;JgiQJbWO'Q/rl:?4ca6Zc)a7s%+?8D,kh8TlFiLZ>l%=E
PfU`q'>@LY,!l;)DPk8L&=LZ:QlhF<k+Cfm#]bqLe#CU`^]&ZkU+<H"YP;r^5t3T
K]SP)D!-[<p5-48YgjPh;Bh:[Ij[a2g\Z7WOk0:M3&l]7D]j/Wb+h%>nT]\kX$-Q
+I"Y*Ot%dl63sY!>tHB),t;TO2LU0)oc)!Brr<fEW$$ZnBK&nXJdHP+5o!@d+u:\
pYos6"(h-$P84Z:'#U5)+Zk>3aEh9:m,tXitME`P0p`o:ba.-7;)l^XVF;M_Z&\Y
!hB'gncS$/d@,`B9NVS]E3Z<;KD1i=YrA5sa?N*MRD#SJ8C8Ye2R1R'*mMg2KKfl
BJ\\n=f*_!oF!S/a;To;RcH^l>[H0C/Tg&FG[2%"l"0Cq4jd#uM^!7$<<l88h[>=
b8Ob-N`ib`@O9;88a6Z&6PAdgfYuLjk)oghN?2MK*Aq@hjpLb85EAH"4TVuCi?$r
5mm"k\?Odl;)27Q'I'PW>JERJ#c-$CXHQ3>8M(a0Bl(5k/rZC0'[i'VE*[s'Hk6L
;/,oT!n@7KW"(MgJk\52s6O?DK0FuQ!&P"'%:I7IkLaqWP9f.'g'!0Tr,XT\aS?*
=LQVSj1PJR].aP,;RKek=['CbDaq$&N,_l-Jh7'W?GaQtXlDN#,]MVYN?0rf8%PV
SXbiMDKj:&uij7$:8;UV.gJMi^4RXM,(I%d!L.Z%,6m/r&072FHT/bF>)1KrpG?$
>U'6)L@;DK_d-T4DX_;iS't6ZMU[r1cX6<p>,ZRVDE5Ef_I9[.i+s<DDXJU7m]WX
=t`_lP;+>\4JssYb&6#/E_.mH>_35!OuHpI@dci2d"Dk36aOb>YOFH]AZ:!X.i",
fKSeA"o't(_*X%f5<^>?lT>>@jg`)?(Z+.rB>"5FR(trV*N?!Y*rhIQ1*`1XP-rn
,(gjR</6H;Jk'U!4e,e/Iq*W"2'Bdn=U9bp.Zokbu/_@qN8as3bo([PG5(FI84B%
!S3NeS>VOff@r6VDE:WH';b1HRPooP4!MIhCepb*)0)UioIZe[_&[5r[HR@TRSTA
Vl>;B)_j_am6;20JU2'd3;\XF\.(?;rfB]M==#%>n^>7b(Xe-=3;Q)L9X=Er@hF4
A4t>kaDWV#Z!o5(YM_;h6Q[D][i..lC6rBjh=LCYViCrA2%j0^?I%&nEt0rc8"?W
+)UOoTEJ[Zd?A*55\\_LgKX?EC)@^K=j@4f@]pF:$=LM6UK\SK6ft&,ueHC]2cG\
:[-'pV(8M7q),3V[$cpWtWW?""WZ%2K`m(6HGaO7?AV.h4]=A+)YiA\$%'mhVb&k
Q)<]4lYL9o]BR/9t_n.Bnak]HU"u9;CO`HRHnWPkSlKa1M6orO3XRP"fI^*JWl:9
;IC2j<hd/$sT.PL?4Z#(,j6)6c3+>5oju?'-5.@YujTA?`CE<`92Wh2iH'6O+S5_
8ES=$"OaN>Of](6]2@^,VX,OFdQ?5Nb7K.*.Rs+RUQ+$b/H5^c0Vu2:&:&/,LcLb
V8LLF@4AhG,Z;MVpYmc2!>Es#0G7,e>=@=?_"hHO7r,#K(lmCT7jDMo!_Yai[;J7
?Y6.4#/W!q45=_8B*JVj@lK^;LfUO/-(XUfN@)"s1SQ>Q1a1n)!7d-5^!7b!m+@Z
X#&PL4D3FSG\Q9=U6%.EFNX`1^AlM6o&CVPPWTaA==eNLh[Ul<_^aI#:K@R`\%D)
=BXt8@H^q6T29TG?pA',hF&QKH<Vtda^`_b*]F[qB1[;4^*43#*Vb=.?K62<jAc1
+eYCFL?LASKaAt*r<@ElYTG*pfmD0&"c6ccK^FN)E))cnYr%nF=+6)Ai4.>+5*Rd
a]+QKhCemIu2Pc,=IK'9\7GMsjeF%8YWdN;7od/,&%28/MS;6ef+gu,Bg]%7_)g[
J2rJ@ACU:AorKTJ0*+Wec8GreA8#)VQ+hk;")g/WqDef!]!4pSt=A!TPoRV-hpYW
3#1:PT&G`nN8r2a]>pjl^?e<.D^*-'DN(R5"D@D.T2ko%&Ps,=F][06o]:R+W@X&
sU.Nn28,B^@%J7_DsO3"F!rig*)`B7^Y4LO'+(rBk8ni0!=uIMI4_rhEjZkV2EqF
10c+,c)Qh5\;T:O=6N;?Ajf,TP4h8_Bcm'7<a$Z>7N$0n8\IUY'WL\_G`fGVgl5H
-]=*&1'_Mt,Le9;A9,?l?GpHN\p=#!-fNlkjQlK6:*#pN!n@OZ*d1:F*^MO(3HUk
B]mNQEl]o0-?dYST-mA_PaMYK9<\QR0(`$BQTNu9r!%Te4==#UG1?DQ3NhpDn;m^
<e0&rp-HNa>jrS=BrFq@"aj`r>aI9%.Lg#/u>9rPZCk?-XZ.7VS%=>Y-]tE<3PVR
om-.@X@BmDg-3j+gEi"4&O$GC3V]]N1H(MN9nXIBOPq)8E4L8Pce-/:Uj;PiG"Je
_JJ-:R;L=63Je4"'(pDdV/)MbP$15s]a]\N.42]o4/,q(9KD:FEUqc.6ZO$90J3P
G<Z<Tn;h'5?@QP2K9+tNdE]sWEC.u:$LEsPH*1K[Y'0;:fatU;7Hk2>eT#)lrn;d
H2iVAqM+!C=fL[$cfmNlpGXE)g$QG05K"i1l6M.&:`!QPrh/klXph2CXh+i[?LOS
7=i#t`;mb9QR/fT@FeEg#Mq[h>L&jDf2;$_)kej'p!+fom,)7BS1L_q<&`KR0o0=
s_hNloA,o=a8bbI=tqZ)A39fCSCGmC@I?2[9eQmk'BlZYj=k2mUpK3X'CdU=I[fO
KIooNEJ^kXBN\l59To]s2\h%]-SP*Jq?U!XEm7kE(76`Xr`j3V/T:M'dce<"TI4_
,V52!rFiHhVCkhYCoeIHm/J3Q>CVak$jB3Q#'"3q/:/#&Tc"Nq`)Mu-4j@+uE-p;
4*E3`07R-ht\?fB+!>-g0'm':34[?R%^n&Ws'$Wouk@q/M-KkeQ+I)C+ROSf[mh*
J[dpEJq5j<?*Oh@QcNgfW$D_5:;W)Tt&7*s*gulH+]*_CjM"24G+",h$N&'$+28_
6Q.&FEVeJTl\XU`7U";4).?X$.s=4LhoUP3%'A^YIQ$&a^dP%^e)gB]u8c`=rNPB
jOB=J4q&3tL@8nB(:PrJi0DK+1oR0j@",3=,k-Z'L:l75&lps7Z6/bcjD`sOE7\<
5BYSN`ReT9jgUP9:k4pY!3=8uDV6\WMV&YS*2Z/A',jtX9Za7(PqKWE/-XuaXfP<
lEjJY3M.<ZunCc8e6ha'Zf4;5mW=ra2R991EDJg45Aa<<)Yb3n=7`UdN:H8['153
0GsPE08jD'O_<?;u84SjQ%=P@S2E\e.Eod/E5red_A,[?.9:n.iM^f)1R2H]anH.
hXaVd+]7YAF`*Akgn\I?JV#gjsX=NXO>9>V*2l5%d(2CN^DftLmi*f*L)[:Sd2P_
/gMtS`-V^^6)K#:`HMBCXEsc-)'P6XbOGn#?>%V`U6=nYA-m1]&DG8gZWMdZA@=;
8l'G(q$0#(C#n:I#:pi2NYq&adG4_pMBsA1%P7MlQVIPaV#(;-r3G"4g53!88AD'
=^m_kEnPHg7JS.^.hc3\H$mn'B,,,NlmmRZ-(biV=l$1*B'fXcgFN<KkP2R3tFDD
EMQ(iIB`>ZnZMbU4oM&9<*<SSlC5GEO_LoGm'dFqQM<b(e#PhE+;[&6cI;Z6@8N9
)eloGF1#D*[J3^RdPM?#,.8)\db65QD1`)oc3LAmW>g=YdYUX+JfCf'@m'oUE\8o
qiWj/+p7HN3H-KXP%qj4EO_p[/9[q##0X:uOJ:oHjs4di7W;cV`&>.>92q)2A9\t
O)oaFCZQ(P2l<W]&`)'NtgcHd.%;sR36VIhR:o3tS^#\u7F#P#FP!aFc&Rpt;M-<
I$Hm*/3^U@j,TAW8NEL+HQh$1Ns.oCU&HB#qXaTekdPrkV;*X?7t"Qt>S:-0W$bA
tVE-EiQX%XTFa3(e?#&Np_+i1'.:p,E^9AP8?EKs<'?_4YU!2e_n)lR)m'7@<fJa
_iOT#&`+2@2F5L1_$Kmp_k`&,>UcVGfb=^R/u*1eohBV$[4cH"UQaL2HkAF:C)eH
K99B$c+l%kIn1`b_Jt7lZ'bOk#YUE[M-?AnhP6Im[rJSA,k(I;iWs9kf*'DSR@#R
k&kO@38C:sc`3o`$Ur[He/`]rJkuT];aLdW<ZbXVEg6X/JVE\R7Y`ud\*M(U7g_*
3oL[!aci_/mAiI,6)rrB="gd)7WRV4ci?3\kTPVZUW$+4=!Z['a^1ph;o@1OPd]u
FsIYmn4ME^E"T#6]rrbKs6-p`h1]HBYr7+Jg+l4eKN&PAAZmB^RJ730I-N/jr>a,
;%\uUg17=C<r@kfOfaK8Neg`h.rAHNQ+\'\Vf-=fTOMZ!(GOR,\@2""Kt+'aK\t!
0o(B4%XuK0bChrO]T9T_8NqmDiF]GK#6`8`GqSYEi(pU,_OCh'qEnAI"LBE]@?#U
lhVs:#)oG^=0'uF_CA,3Z(<,VWrhu;t5B:[d$\V*bH\Td;Idq!MDm==cNo&!q-Q+
1B;/Rdo99pkW(F>V:@k2nn;U&s')cpFuQBk)fP"d=oFr>BPN=,oE`[/50mU0=u-2
CEj^FAk-?H35)oFsBn$Q%ShL)[(cF)e%m0$Eu8\<Jg3Q[rh]>d>sq5,'oO1*\A86
<QjKHO6$KoG1'b\@.7UMa8P5Z>H!>lViA^r.C.9Rc.^b%;`_uLPq3$RG`]i,J.I-
Ns)GH;qtQGrQADdiJnU_mPO(I>?rmm2HZfsp/o>Vrr@VWFr*!hNf_I+_rQu%:1.@
`fP=DBc&c]0Hru8!`/,e%a\;]Q\S%*kK_'7=RU;aIK5)"3?.(9g?uQH?p_mdU/]j
-"^iGEm-0N(,g[mHO^AZ"h-'O.JoJ!Kpp@*a:jI6DqT!BVIMmmEi64hd5>8k^GDS
f%ZCQ-6F%@DU/07uJ['!XZ56(gSYPHlHsIg"1kl!dFU_(o7e`S[?!A<D;&A?nq3#
a$RkG?GSBfnJodRm(6"OsPLkPhMAQ0K(sdn5u"dG(M'Fi->bO'$G+.q(6[c$.FC>
ha#W3lpJJ*a`%W9).`0qZ5`/NR$dM!K\C2-Ml,to+/&@^A!buT.2L3><^TUXM+[c
"'%BFuOf-]"+g2"^$$qcg[t5>sh3rt[6mc!GWnQfGm,4:#`2Ajo2I>D\rJNamg"!
BX%+<$0@e*,YAa+Ha1RsSE7(a(s7[IQtgs]%s(oL@<[U^r(WOSS1QHg'Lk$G98\#
CuJW@)XWp@JW"?@ppb='br3']Tc.>iR*.M`9:.'#BK0Y/J<NYq<"ZpDts:G931Wm
%N0]%Hu5Nlm/Z]-DT40nR6H1+]#)@OQEQ&KW")f:nrPXSk3%B(.KYZZm=1bB42Pu
GHdc[)b)H-&>c&*`eM*E\GUNI#2LJn@#L.g;*0r=6?j6,n0BHFDK7fJ^"B#9AD_C
V9+<Ae[b(!]el3:!qcL]p:'Muh+gO`l2f,.OBS^ECQGL")km0@@@%<^Jd4aY+b<?
e$Mg-C(>A5aa5o\`R-''TH&sm&H%B0tEgmLCc%"H_>C<r".:Qe3&\:X':Ab[SpQa
.aF*1&?HACN;kXT##4O&7MIGoTZc.>1qbk]tCCaZ"8g3H/4L+ZVLpdSufo[#pt+U
3$r_3"[Qa,rh]P9_LEM/s-KO;"1<MgqNIp'ul_md2S(Z8@7/F6@P\(5OQBl2;jBq
6KHQ-'"^T7N%FZG23\Jop`^>`/pJ#;+i1HHYtBA&5Musm+/*QMaEs\%--_BEFC"H
!fUg$;msL4"C3U\ebJA!/4,nKj7ea-)1M6ihEU.(Np+Y$dB&Jfq"QkAX8L,5Z1!3
USJ\`$O_)@OJ9XuE@\[u8'PTe<A6=DG9=G\eUO3)^e4iu!4/s,k+8Z\)VAt;dK,E
`]o?8ZN!94NgA.T#hk68Ip*M:q5Q[baU.F-)-]2C.dQ"EG_fGTL\Rdb"2)mF\ki3
"fT_?tuI@Q+<pR/I_jN:&]`]+q_`*C9fGq$b!^;<t'7_Z)#EPT1kB;q[)PMj8C:k
E\B<o)nX0oCJGG2f^H?$UX2c?kCtE)B]*X[#Md7cB:[!sgP@D%Ig/o?RSWP^=?e(
<pH\+3CV(rN#d1#ZM3k/"/cA=]ON05E0dpha5k]6:D"SdLZ\15nn4V8:1C&Pr!HS
-;`A9nA7%(>S9'+b9C)gr27s<3*0d>]5mO1p=IE+5sdX.0-h@^mh1]A=E\Ui^]:'
`?ZW@a'sCX=m`^Bf?Ib7O[R8jZ](?-o:T:_T`4jc(?mbed1>#m`lXMiV<m"C#!hB
o#F<MGq9oQ.k^[:F%?B!m=(sKV`75O_$\r2e-hn4dIK>J']+>'C7'&6GYR<",>h@
85qo8.NF<0!?&N*LhPb_k(t8#gdp.S@'Gl7B[9Ob\=e"A5'fD=1:?.0i?RM1i?RE
YiM5A,i1o<Wi?Of\5O_PA;=fnKM"sTLr<8hY4q\Jm`4:[_3I]BKa@lO5,:2[_3o1
/`r$^S&(T6p4?fl2Y_7T*,4WV"I(;HYB8*W9Q5#OR"03u:"o6[c,Pohk!5Cj,5(P
rpd^Ut>sKb!gc#h`:1/cPeh0$<^BrrCVA6BL%&,AN:fHt7&o^m+$T+!hKYgDdHe"
r#WQ8j6uR8fPO`ZQGu8fC&nF;XB)OHYD++$i^4T?+YI"n;u?&8#9ia,PmLST4&iA
g&MN`!<<0$!rr<$&CeQ#+Ar[T@u:Q-J/n=8k0OD[EmHQU7m,-m1pcr5ZINNKaV;;
//_Jm0-EpFsFt.gch&OkB%&a9)+MF#@,E)U8L7IhCrrB8A)hY'C>b:SF$]6sk\,Z
m]2&_A4mlXAP1RD8TQY&g63j!!,I%`n?#l1.>X,?L^/A[3@:_[2/[86?'#9iSP,b
:gUCcq9?A\Qnp3H$=m9aKBWalR?Jk7m:+@h/41Jg%:Ko@R-)NS?W93ZI.[6M<pRB
p:-cDWtATiFN4?B_gCj=L!+oepSG[I@f#1_NIGMDr<$3336!c2;ht(O[23+F16]-
[e"=LgB/.W](#uC^'cAL@:1)P)p@I'iuT]=<A4YENU(M@*"-A]"6mBVD6Uep0!;Y
3:H??LL!Sm[QC<j.<ammk33;(/+rBbZA-sljGL)knrSR!Z+GPR/XAEEhUoUYcYQk
RHFVdMq/S0+O^]&ZEBi'Tq?;XCN4.laKVNaD%Qcm2D.I8MXrrD^]rqfan!3:uU4+
_to&fS$-&.bcf>q=WZYnalWhre#bNUUj3,F=hV0pJc/O]/Ntl&h9Qb_mMlhqh)*#
N+_2b,R9jFFfOkN-OZbeO*$PKMfG6'-L.-:s8-2#C>">>%u?TdsX%A?[C2K:DlrT
CnZePi\,gGW'd,8O!Ab!r&!RgqpaJABgOQ+k#O$>$kB8$JQTY0m+t\>FRs[`j3B>
D5W$Ma+]uID_d38noQZFX\2"%Xo8#Tj7W?fb0Z+=V<>YU6LQr<7QL[U,mlt.kpW$
O"qpPZZ`uJ&pE^@m-bdK1RbZcIP"oJ7a$XODtA8aF]S?Z,.EEsq.ol@"EGKM:m2N
q1*o`SXMId$kQ1!^/d//L&LA"-qcUW<@Q_<1O0Vq5<mrr>/m8gP<[aj7,+S2@==f
S\llF6r^XXTLCL&SAf!&2d'+PSOo#WA4W&QD_RjGl)',h!;=6:iYaW[$;%iZltH2
4F(\V5"(-so8\a!jW=t[YX/>`ST6#6`NnhsAgQouqr^\fe%]3_;%m])2Nn;p@$Zi
_lj+"AO\i.Jb<5Ip]Y35lb';<:(n!U.A&FHZXB.8GI-LH,T!nPQl^1QY9]KJ:KYd
cL)Z46OTsX&pYu,,m+A[5@W_DW=VsC<=dY/s.=ger3jeoOXRl.h;M$M)fs24ma&H
Dn5!WiE)!WiH)z!!!$3+YaNN0L8QE5k&d`:iMPjs4RGY!<W?'57luII!$/='bn;Y
Pnb#K'bqGu'bqGu'bqI5QYn9,Mh]/ZFD`QOU>oW/<C:b,-#S/e7OMb'mLggO*-c'
-7[A"/"6'di!/2=\L\<!sJYF:+7ZE>EP$0#T5+s7+\V(M[";!j2&J5TeY3fSj,U6
-#p:o,6kFS$!'W^`WV+,=Z1XQ=l)MAlL6prYe_E98i=Em2$4eksFW5Hcu/[V`0D(
%71X7(nfrI<_BS6</S)iBIk_5Du7_8X,hrr@Mk2C*Tt9CQSj1;rN*0Xu!M-9.Ci6
*!I'dJQhmZ+%m1rV7@-As%<3dNoUs;rHW\@X`rNR<UQ!pe#C(`-%3WX;:C)1-E,u
EH*s1KUbKR9G#Ws@RdlK@;PcaUReA9%A<9FSQ=E<?po9h7cA^%7#OF?(kYP/.XV_
QA(DLh2g]sc<O_GCQ90L.Zlt$WRY5_6KH!)L-WKXr<)Z6BF\:Fo65-]-6mK-"Z@o
rF9fpn;_A.[(_0E0A>L/U5:7L?c[+Oi"C!jZ`Q/Ft?KI7IA7ar%.A8Z3kIfsR0C!
,G%+tkX@+Zgu?]]e+saLOJ>JY6o-g$b;'Q^B'iL\=Mr6[,=R/'DXCB[GM^*oecu]
H\W;4Um$\n&79>7`7TKHbcp^&Ag(P(<3Hb'[%c]U6^Q1c=]Y"!YI%fNZ(>RU](\g
`shLF)Yug-q+6DX,Nr_5]M;o/<$EDq.tnQLV;Z:u=#b&5-#:(h>O$uMR9J8SM9Yf
.+\'kB0o9BEOKZJ+fb'GsnrM\`N+d(@^=/M+U)q=C@?X,b1e5A5(3!ApC9f*n$!`
@]5@p_G*]1i/&#JSc(Q6/iEL3AUHk5RXZq'J:OYk0SBN];!7U?[=+^W0kfU&ocL=
-`'91/](GL:Y6p(R-QZ757!dYa6Ga-,@URPISZ@XeS1grBbaPWCJ66\q?=8BYqgr
rC`eZ>5Dj\.Z_2nBQIY`d^2lJ+b1HgfnF&&BN$@(H&#uW,DU\s24mb&HDn5!W`E*
!WiH)z!!!$3&2>=N5uD&En3E+UJ[*&MdJqo##QXu-!C%.!"aDQ6?4-1'K"MiVY6B
/$_-RK<=+\(#m!916krf9MocBmXHB1AV4_LmgdHbGHoH&Y7HB1qe4XZo8'LkP]7R
fjJ$7Lk,f9$bcTcsdL65"*dNX&^s8>X0HTS+Y##UD_G*#4NH%O2Z;+KH?t6&ZB*6
5$PY(,*i82K4E=-7MHK/2gCj:=34BTej5)4p[0&gmT0^('ImPBPo(7F`N?sbCZN6
EcFM;%M;EsCU$6W4eZbLE/Ith-"oZMQe4]j=JJ`h1l-sDR21^"dMbJ>#_](.0t]%
rFuYq[-,^b4BXsrgZ4NCT6Am0F^8-K]i?=H=YE__#9I_M;L=.$P*@;>N`@`9pOO4
OMF$:F,";2n%&CAd=;0.C-Bd'Ro"d<Q>66h*B7I)*icn'!<-8%d165;%(%H`r'IN
-KY]Mb'f6Hkc9'd;M6]aO!i=8iD@IeP'8CG;-#Jj^R9Mnq'NQD#VMaRD]N4q6M2c
&qLl*be*j^@G!+i]%mf=I0/q8')5J2k>sm<(4]E2MB)3GeOo>NMLf=7EP;L-:i)\
0./r';0lLm((1Qb@Tk!_[YSM(EKo=9U?"aMI#Xu-1MeJLKJ`3)2Nc'^U7@%.,nsI
!.`Bh1HKf+I.A4b]$F[mU`EHD^?[RZm1S7#,?:n)K0d97+)sO7)%SfFZ6+F/S)Bu
(,"J+44Zk;*'0)%TPXVD;:S*Lk22_jo0#_F9F`.S]CZI1'VRZ(*=htT6\n90G5?i
(E*-JU.S`i0DI3[DSM53td!&RR2O^ATY.Qbh!:(ua*[0eAf7$@<GY#k(2?BbsB?V
-<cZiU>/S0*5DnC5/L-TrVfYj%d)['tgdTiZup!$`,i?I#(D6]M#DLV?jM<;3kq+
8]5UjED'ubdt'*^-_,--I(u?k$.@D`$I3fFhkIaipO1r>@+PdK]?ocq%:4eb]8j<
u^(lkR^i5bjZM7A3.rMj8N&DM]ZQ(.(NF`2iO-202#AC*o3W'l(YH%6?W3DY(L)r
6ik]aPj>9U'X>7r5gL>N]T'\.lE^Lri.2,!%qLt>R)57u8c'_Hl+9'JdP_(1hs"a
M%EAL"^Wj7X-Lc$K2_.(ULVggRf3B$lZ1>KD/"7A14e2lt]tKY39gl+[H`\ZD4Z6
ZScR-D_1>3u3$VHH!_$6G(JMnDQ*/6Y-l"61)54gDaET9<"CSL<u:+pfBlqnPVA+
Q$:<48h\"L_4g+h)KgP9YkZI$>Y^`,58[kmAG,`Gm"MSJ36Q<CBO'P=V+C*]jeOf
J]RS>V6p'TkH4u9_rrAh.^FV>5>]B4%?7BKGr]*tY<E3%E\ft9,3tOtCV^0kOs24
mc&-2b4!W`B*"T\W)!<<*"!!*'3+Yc8[@;uj0OeK%rdI?,b+>EiL!!iT+!!,:q.8
%]ZWW`LjK`T6%)U28.1]'D\rm11#Zi&/9rr=kP5Ks,Qo09SZcg:Z31]'D\rm11#Z
i&/9rr=kP5Ks,Qo09SZcg:Z31]'D\rm11#Zi&/9rr=kP5Ks,Qo09SZcg:Z31]'D\
rm11#Zi&/9rr=kP5Ks,Qo09SZcg:Z31]'D\rm11#Zi%tIPT<fr7kSPeLNlqS=94_
7U2^L=#TOfl$uBg_%)b-l>@k*?TNFmW!MCiJ>dB(2>LQ\HOHI2LTEVZ>en0DEq4H
@>BD-hCrL`5%BDJ1Qrb(qSRJic?IqSSLg&>XXJ!p8-k'q%>T@s3Vp4&M/TB:W9q4
H@>BD-hCrL`5%BDJ1Qrb(qSRJic?IqSSLg&>XXJ!p8-k'q%>T@s3Vp4&M/TB:W9q
4H@>BD-hB'Osd>_Ad$eeY'EAKJI+290o4-D&c2<Q;!:LL^#oUm`tec#hnT_rr=`\
dGr9.*^4hprlF&n7L"ekB[NSENZ7uuOEfa%7OGeq%>`KjXR"nEPT\'mg5dK[=C2a
Z)oX/n.Ze(K_bJQ%3dOt,mQ$Y$m(`W/'+Q6A[?k#(cHb+M]Fprb<(efiebB(D`Pm
lUEBX/<M@_2PVs-8;I4%`,1cI%ZTu6R;O0;KkmP^o[fDZ#9*?9,+DBO?nM^&!WE1
Z(:hk]S!W&k9SPVah2;cYn6$u`.ErH36%-.:qZ1J_h'5a3r-O];J#LGo@VGaE/sO
)2VW+?,FgnFISc]O7I44i&8[C:+ElWmeP>RgQJ#*A83L?)q4@^D0OdRlE1,@+W&s
$^ONpXAgYT-r\N"Bs/0JG?Zg0.J!]`*@3*mop&r68#`hS1S?\(ZsGN)88k93\9a>
OV"Z,90)$g)./^C:I-)]mL.f,PR,(E?UFrrVMo(/(S(mC.q\+6h$EqZm8gH;E.J\
b@J[&dGQ>0<lZ[l]Gh@3):QrNKV`h:PNRlDqsN3WEa6Blj0ls\]`c$9SIHLFCqQ[
"Mq847=$Y7[%j#h#!+0@6f<:hEOSeNaSK@X@l4RVj;U/`maYN2J5);&Y$g@gbP11
:WA@A5p\Obd&HEb5c5JD"QIK%F,T@[fPJg*FPS#)fJJ)%'OFR;m@#$'&C_GRpCEX
K*JL9\ALu_'9ZTdd7SR?I7]N:g5$QF>s_EIBGJ9b=I&7`Bt1ZC#_:mW11#,6b-/t
.Fg<ib%A-d/UPl#u;=p2/%TRAnUAITI>-,7DI"VMTWg:hVb/t.(?%HLPXAHp34#q
]N;k,6k`/>Ha2HoNJ@dX&9n!H<pJJtueW7>Z$d[Xl[A[de'<FI^5']hp^A[qo+E`
&S.5_)1ql!:]tMPMgCMC&4'/H?A69oY.p0$nW3G%^*_'%!9j/SuJLQUM@=5);f`0
1]<%*eA.+JT3/S?D>qRASVso440Zm,7;JCKP<80h%@b(ja;B1Sn4HfWrX[W+AS0?
NPT3OI[SSDP#*!e:gIM]#D^_QJH?Ih)OQ7%on>mWM\okpMO:po@g`&A/cm@SD\0H
U]I<u]QlViQ]OEGU9Ms(LG>V==`/TSa,Ft\O^l(7>Ga:8'H'FBl<NX6AbV7.:V?m
#R\;Q/CJ1.-B=Ad^@]RG8\K##S[5GC+c=qQBbj%a)7\DnNC>ZelYM1N02CRuWgV4
7[!13)6]1@^(cR9omnLg=;DM+NT&R-tS;>BXTE2:@CeK']G0FobYRf]!sH>GGGq0
J4Y<PYF6EAYjK#AV^>B]IMMBh\*`$+fLnUbfcB:4(NFmZo=^]iJ(t\:Xh/7#7qg7
q1X#0DR'jL4gjE30o[eTD]AO@EE4>d7cf[YiIeSs_6Cq&'5XmD[#!PTkW$Ke\=oj
]A!C1LE"n.bWLjfXj$k@uL&44cTKm-'3fAqbO8f3=8aMb!b*Rpn)t\2*Pe2GV=F;
iAI[`IZ&=9o--P,7aE!L_P?i5GYMFR19l2j,X7peL_(+mGCebt>5_6kj**[NStFE
Qmda+W+9.U_hsW=buEWUhNjAK>796MZ0o+MKWC2[bZAqne(/#tgpRJrOp%W,"Gn1
Z.R1"=n\BX;F^IL09C!.eadq-2<luEf``rC2&u@":E/<Q?iO+O[;os%F%NbJZM6Y
guq.<aEipj8-B2`9g&Zu#S8C9?6D/[U5o[:SM(hJ:'W,"3.Y$TPos(N?\kRe^iJp
2YUpn"?MPG5%GGKtW9FK8*1ObC@R\jd!/)MjZhT2RO3j+K\itp,^Yhd[+37(p+0^
_ZF+80J@\[PJOLF_.aK7ldIH>1Ng%U@b`j7A%"jYtc@m8sQT1!``bkj*B)iW]1NC
d[uB%*Oo)JW<n7VaqXTiPS@B8B?)p6CLYV=41e@UYeDjT_ski\PNr'duJ4:^AE`E
m9:V))g;oJs]X\R^W)S`WpC7=.UhaYDB4[H7PN4`?1iBJP0cS:TV,N=K`](lL-MH
<g>KXFCQi\31MGGa[.GTMmb(N/)27`K./L#.4cbfpREoi;?`dmXD'd^;'H_;Aa7*
r9+oGoEYU@<_Q^\2&#.(kNbbe*!/3`>2IB_O,1r$j*35p\?n[rJ!0AMa=GP<I<9>
'WnLY3F>Y9NiNqu5VgE#q1^g!*dkqQ1"*Kd9Kmr9P</EE%XVYZJX;=[>De)jk(T/
,@#0VMsAG-0Q'kWiI:Z'V0[k&Af33)4APYY;e%au$fn"DRHW&Z+n`dUIQb>l^cW&
?JAI(]"coE&D[g"!)'2_HfbFAKujE"*oD@4Ju0@K)=[CbBd"Orb`(BS#@?&@7DAN
.jK53[D(\#/mhjc&W3UY(=jkK-kBpHP7S>+&u"V[*[bdL"p^iH<a$40>+.mi=qp*
,Kb<O,kV6U,(]_`/(n!'1,Ra8R^485.$pk!qPZFVA7aPm+[0%2TJNP+r_@L03)g)
Bd;B@P(C)4&,\XF.-J-KN2/_MVI&.q[H#4;X\<X2ku#[)uO".;MSSA)N*:k^3lUO
k#\\/<=._=Y72(s%T0'U>ZK5]ncF`#E\(IA&ZL"$.%3F-FuCkM@T:DDl)=2GBL&4
3nd["MubNd"ha+W)L+HP57Hj%E'Kd(DOgB$il(g8CnL2#XM3d:hj@2_CW4Y#GE*)
68=:cCXGE[e6]kO9/0Z#I?:/4HEcLu[2C2f5%1X9'/5^*)oBU0&l]<.PeqM-A]kQ
pgPEF1,cIP)+U8XdLrc+_,SDT#OU^GUWSe?RoRNH(U)"aUb*3;H@r1s-!4\RGi.r
\_M-XW,M!bE;!ht?@W"g_F6tS/./W(a>6#Ipp1.=5lG`B*?$"QD#%]J3K/E8Ds?H
U-q\.%W=jqS*_-8FtT==#2j!XUZ&/FHCK*?YYUe+XDKS.<rFao\CP_?m1##\GJ]'
"n_d"@Tl#Wo\f[=%R%G#FN:X.PBmuQ<.>6U]1<#i]`ij,u,\%7<r@:]jOnSNKV<p
Sl+]E<<+`W^/:@?a(H9?d$6p?!b\I`R%6c(GkFBbkA4*jR5GBa-WAQO-1P;a#,cJ
uNJVW=&E4",aop2oLM;c[``Q<da%-jJTkQ2tJ];946`O8sJ$T`*desO=kf%04/i:
`U)(O#F_*+ZCKNY<bd$_^PPfQ0NP['<ROo_F,p9?W6&4\,Sn'XS;Ob9SQ<D!Np%@
5;lQkG$M*5T2&C*V)3X>?BcFWWDY24.qT_B!4n675mK,8*]*6`l4'R4!\Y>sNHZ-
U<Qj[fKX"i.kM:2)<)O?Uu2>TrE5elTCj#EUJW-=LEt07!?a7MEu?:Zid!?E>4FM
V)Yb2p(A)mU7B3$&;V!U-Y\O9NAWKeQ:C.&KZf<IFG4!cJ?V)SETjnqT[^gZ[KdB
X=Y2mS1Ic"fZB8FcP++t;Qgft]:!AJ;Fj.T-+k8&bl;W[ii1;-s249(pji/n]c7O
_8!8!smDa'B3MpT\\9$X7J)earrZAkrZU*4Y1Jp<UGL]`]'4Wtpp#[obKSO$elMl
;8\&KNPLVP*6=R3G;('So.s!(:QO75LtoL`;ld;JD$WdNSn*PhQh[&dat-U*b^`:
i7pXjuj8mg_iVJ4VH;296_aAR?lbP[F`iiYZsYZ2[&FO]X7e&]aQso[[o/aDc3,N
$jT@%]brH,Fd+4J/<k&$)'W!\3tg5%:n*oA+pm!@[PHVk!^aSt3^dQ3#3Bes]h2L
:I*50*L`9_3Ls,i^(+d";4hqRsL4(Lt5S5<cqTQ7+1?HYr/&YZ?$:<)a^o_d2rr>
:=7K05+Io"i=jEZC/'j@18BQh7+7FF5U0@s&@6Z]N#F"g?9\V=:=.W5fK"Mk53$'
UcckYQkUK:::YlfdVGU>4$m1<cCI.):-C2VS5]/]XU)kpncF$R5c-;^aQI3$ga5f
_@o8!3uEeJ'7R>r\*%=rZAX\^*!:J_)t[*GP!?`N'`\kQl`K7iAlEf":EX<oLkd)
QC$g2A\3bYi*[$BKGR5;29_doU`dnb5OOjpq1AG<7=WE$q]Pn=W`Aqn4FE8eh'tW
GG^`6a!.#D37.a+h+`,Y8&UMBaQC+-I!buUP._TTmQ&0o6DdlQ"Aar[Y.c.MO-$g
Yb<6(mk_\GMeaV`/"!!u\%FG<rR4URnm6+V^*2KeZ%OH$"C1?s"U$K_>QSWR6_"#
?5k`%Ak]!(AT4aJRjK!nYAGq8aHKOZ\%;h3j6Xp[Q"38KDn.T7Qk4M>j<#c:)mF+
j][&)YfDE5smqD@`fuOU?=ihop96B['5DH>4F\B>pTX<7,/'t^4`?G&r8pT!#HX/
Vp"fuR.RRc42mmZ;hLM;KD(hO5usme]YGpHJd[>"`$6rf`t`2@GDIIVVB+ZSg`lK
N>f=1/id=XVWs8GBJ9c_5$Kj-,,<aZk7>]G(_")p3%E\rGU+e4Q?3k@NJdol<'?&
*H4rF4A)icm%gUV5,@$`QC98^Cc^T;^]rcs80bPOWM(FnD:PS3pEGUJnb-8&H`>N
0XZ?!649V/+QD,O'3$Zc!DBWWH!K6`i(&RH=SdQ6a#+OJ6*,Z+$.VN8R1X&.er3?
:91iVD*Vj"Ap1JQ#Kfu$!4'8*Hs("i<%/DAg^/fODltHN.>7dQLW].+Ef&f@S=$1
(!`lfLa18m#:<eL=\[pn^KHn"3kgo*QI\2JcOuh!pW'!6E-2%7l(ZI9)1pJn^0kL
Xe>n@_T@ok+In5)-:ts3/Ui_@V\]n(E/:e7\"DsV9?Tuor]1ZFd*l8Hko/A*HP\M
Yq?Y"&[c(QQ@#-)JT;9SWi)Q?0D(Y0BGU`Y1boHt,XWFIo<36Vn+SXB%7&qiplU0
G%"GFh%/Y^g(M.9I)L(b5>'Phf_DeNc_NKX+V#X@l)^e3r.QQI$=j5,F79Yr=D7U
IFBlZf544XDHPkNNVg>O:nJCe*.D@TD3!\e**M0TK9C>p6tfDURiXm,1T*BbRj0!
nalW6XXH%`bbKt*TU'V]SRNdQ!$_3)H1V,!=9V,kJurU_5/4R`f)Au!L.1g[%g5b
R6,[]c[h.>'8.Lt9G^;'3l70W^Q5-;aO-fAUR0R<<0=MMT[FJNYJE@,PAL9s`.@:
,H'@3g)<Z%SSH],Y:V_RZ4ShW5)!67l>QT8^0nX=R3&.Y%,PuIo*,'dKsO#`$0]Y
k5^`'rfog`rj&nik8c't[??0h.hV4A6sH7nML%Ekq7]QZQ!d(S&WmO$om"7N<^\U
)moP@ThjG?ZN@^#86l.jp]JN.FA5XJe7.+;_0ttWGJYIKbB!V0["?k3R"NI`)^G)
K5A8`*)^[//A.]fZWtdsUk$.;S/'I1P(OrJcmThA,B:^<ET]N>n(Lo,qK)Z:LV1B
&Md8Z2hrud"*AE&pSN'22qfeB[4-u=CM.RR9;VX_1q1+\V:neigrL(Mlgp+#!RGo
gC7Kq395ir<=%[/jR@$_VHbILgG73K;l<`!Ng&4FaL79m_@=bKP&Z^9Al_Cqlb>d
FG^cSI[Y8ZpM3M3^+QBU1Ik[a1L<j:;FKmjoQ&B8CZGdqi'eEf)Ge"K02@o*"0n\
QsVuBcArcrI=K\r@/Gu)E9&)\=GjO3R.>i7\C1!R=Imd2Tl+_Ya6M/9HrON<K?YW
7%kR9%YUhafn-k9n`C2p$!9Q?pE6[p$RJ&$```P1UngJBpDM(,9:Z<iObCd'Br["
+k^X;&P\=q]L,Rl*[M#mY%%2Dbec#iNm=l]V^aP7\b"H'ZV0rHaj"YDh0GJhKk&:
F":RBsp=>r]dhKmb/)Qe<e/A,Fj/$/7CXMagReX#5T/bY,rSp]`qCJb?b&DkXB5I
eaL:N&nE]uSJ_*"pU;*B!F>_m(BZAiR^jclfc^`^;Zi;73,T-Vj,eSC!@$LCZsFe
ot1K02@j%GF4FGPAi&XC6+b32KiscH/-E"/ie%`-$/r>Y_6u:%$u\HLa@\^2aPr*
r5c$??WJYi!I9:TPkTu,h'dK77cK0BE!V:qM+b9\YY-+p_'KO'W#?#?J1H1OG_m`
b!D"f7C4TOi;XRA;'!nN[65RI$i"9tI[9t_a]]9"l$)mV5$QX;LQqfd^?YhQsg-.
V&1fgm(Fc1gMY*ite>3iAd_nC3bWEu-,i.k<e<e#]I8p_J:]4r't@!60_WF\di#Q
r[pH$mLIb^N6`TmdW:d;E<`BQ\H=6]^V%41bsZ=a]cjW6^in!X<68GM/3.&N[nq#
.]F;'I=aA"KrHicms*2P2$X2-&uCT.7#Zqkl\;kr?)hp)19DYLsBBK,N+,pEkrS9
go*@BSn#20C?UBtR1l!DU$/2<F+4'O@Du$c-uD8mr\Y#2cqm?_F%kcHQj2"i,aH\
er62SgTI?R23fO<A#2YIA!4sKBSNRr.ZpC1kiY?tbY$$!\lEIg:1e9O7LhTVYO-u
#T@b`09a&TY<16he=6#`c(<;Qf;WB6%-rP4PUZk'Dq"\YQh!)^Uuj^Zc,Z!rm`&6
SkGUJiC1/SDC&$8.QjS9mHJq@ms#,M(!sQe"<^n4Qh6%]$Zi77C?Q)FBtj#iZ@$V
/.**#h-n&g$Jbc#d+JJLWg(Vd8`*q+72_F"1pc/G'C3DpC0B48k\Cui%UZ7oc;<g
IhZ3UNXp'kIO3mHckuDFYEF?Ae1Vb`S^(Jiir(io5Y-d.9es%u0\W;cZFdoT/MmV
]T!!:k<E*abBN[cKWhA,-3VW<<HbH,S!>F2_LpunL6D0d5'qX_DgNAGN9M8Y.^Te
BGUPAbR8'7['q/Ir^>3>Sg'#<b81PED&&s8Ea"13<'rje=G\=h>gkYIKd/-A_!/h
ln2bb.e-Te`*q3sa!S@+L2$5^f<95SCpaJl^"DKG\=B05\U=%0WM_U?1B>;V7Gh(
^mskh_572=:(=0ccj3f6`OOPHBmC9b(du:JCM>/TD6/fE)9gD^;MQ,ATXc;hK@O9
2FcsmN)17&2U#mBXaV:%(ilDk8%]CqCg10SH9t[$bZKMRWG8#V6rS>9YR=2lKHcY
]9`/3\nLt"6%pTb$,<?kDHO_6-(t)OVdQZ'#0ROJ!VHq/s@b?h/(>?^a1?,r>^2<
rSLcLl<=j>:Zb5$OIOLRW4X@2%a"rOB/em_:7SVCnpNk:>6;e#)AQfM^(3dN9R*g
H`8=&2/mR:XEj;jL7"'kK.jb32*mb5a-&ZGtN%1BA5'0hMi<bc+u4Q0?BJr\)eJ!
cN__)nmdKUi]nIbC4\kH\"0rYY=3:Q4\Y_1^)[-"D6t2aj]*F")JmP=^KjLngdpk
)uBM9AGhQD's(U!?K>&FEeXVAYH5g>md.H,:J=^H0C)]OQh;&"=6&D%\u2"+jc1%
!J%EYu@k3Jg0/6cX7ch94(;`8?X)eh8Am-Z/:sc>\i+9SME`!!!%kk7&]WCdd8q]
M\p\#is1oX*Th=\91PG295>;J(p=&sQrZ@Z@.MhuKRo',(sEnh=[AaS`=I4(B0]c
"55!oJS\JfRqNQZp.t5q!6HoBY#ZU27!_.;7]-!r60gE#c\%_)?l2:#@0Ml['4h!
:MHoF]O?AljLP=RS\3G(F6Rt&.Ddi/dBiia4##UChA^?A`L.#8#e!5gf^E>hotKi
Q-Ed4a"L*(;TLf-G%2-K"ZR\@`aatXZcV3<bOq.ZEl247H:q^*omN7c.]'dM)jP`
",1_RQ-<L\fR7hTL(jn_3Sd6%:_I/_#'([]+3:p%b'<o_cf\BOni&D<2Lr;5Nd:i
B%JNsH*osemZl?WKS",TXs'4lB$f0C?YL.AKhg)a@MA`tgA!Tn8;iW2=;CTd=<i3
I9,]"lbIBsU<^pB(+VdI;VHWms'rbPqQRRN3$UhIA!'@kY9<]aN[EGc1=kG8KCGF
f<no"_nN^@Eh%e_</gs<X[\^_tApfJ+a49d4NS:i.k:)T/-:!i%#PNG*,hq.U>\Q
9<^P&''0=%Ju(TPMI,ItE<\N<V+bkeb3Ki\oJSt19+kg'h$9eV!8pS,A`aY)OG)[
WYbQF42)2]G6*]f1jdGpMoCSFC*]/qi!T3eNV7R60@TgM82P,5BbB&I7]R=C.e#!
'E_GPa2p`cL=!M>4A(UO^XT<(GTkU7Yl>m^(k@i&r]etk!/L0MLc!Tihi3;JS1hB
;<mTodSi0(=32ol@==Y@:E7CV1P0Hs@ZqnYq.Lj.ts,RYA&@q;5d]/4Rp]ojQL>;
2hflZ@Z44[*5U_R,VJL?Bj6?r(?thKFDKXq7lhd9AgT`9RNI#">V%k&`TB:29a`\
<Z"&;=&7&m6X#h`+<YXbnM\pYN[Eb@A);'R=VWXph82LLps6Q*<j*V2+%R,(%MJa
ocO`!3m>&mI2.h"r.Dl-u3G#-:6>@<CaGsH62]4/aa'4oa+B3eFq.8T[#.]dC[`g
Apq\#mRicMqKMbYnn2%c*g'jZ/TJS"S05Y&1L]*C'u]=3UMEdf,MBtbFTWP,iM9G
3qM[WVP:?gW=#G0A,rNZSGZ*mS<sl8>lS<Z:4IM9'HE8e@V0Q.J3d4f(r-`U_:IP
YNPQM11M^qG]Tl!HP,p^jo]B=D$p%3d6lK<0((#D`[2C"meQck*rBfD+!fScI3A1
QaG)3a'$r1XhSP&L'eA$*boRhcmn^(l+*Y,rcdP$!ri7?e[@>iP@_&d.;Y)!)?F(
r0ih7:>eaFG8lFFGk*BCo9Or9@O,/Ndn9od_*"JjBkt_B?@OnYH*mnlE72D-]N[d
'XoS3%;e/Z]$&rTqmC++OT)$*k+m9c6G-.qf]qa(A6/),Q@i-Z`J8_qY1/l5Z_ba
^`r@\gXlmN'tg1V-CTLZNrP7&uOn\WmN]>e+pJrH+D+!1M+?bF2Gf/VGPT'7g"50
>,tFG%_hUe0W^dDcJ]Qm4@ApMm.<M7#_^gf='XC%[=R(p6K=5g@.Hq',4jNHb_ZP
C#UUa6;1SX_$pAt?=u?q1V27=0<8E,FdGo/$<lL)5%[iLkQn_/bKn"l':UgC1=+9
U5$c,n2j&%%'diU-7:,c!iIX$@1YNTP/\T=aY#a=j3Qu<5op>Z5&4ElfYT2%Veh;
9M>:q$UmhQ\*g?!5EG)HM+hIX:a^*Y*Saf#KAhhb`ISDt:(l#('08U/7g1I4O1`;
]gfrD32!e?O2X5iLrFTI,/%9ZimOXQ!*;J+.sIl<_.a4_o&1[fec9H=[*RX9R0t@
#!e;Kcuhr;m@5'SmiPId!d8en'!4G6FREn4la&)W8$_4js>8!g%[9;(bK_%)!`%S
)utQt1>]k,4msp7g]PJdQK$e9[:@B^jY!l,R?e1uZ]T#e-4jN3cNB2u,mj&N<:=%
P&aTe#mE[1/=T_ff8+OS,=2i>J%IGjW?Lib$4eN^kh'NpRoXkdF%1Qc]eZZnDU`B
&m$E)T_`LX.5Y7(,V/!_Im(PZDb/p<"QNnkM]'r"XQ&^'S_<`nXF]5l_h`$.;h93
+gTe>O"VbeKVUe9FEOI4AV'Dq;\m<KTLM&sar&6dW:VBqrnHrrC":fo2"mkXX]W0
B-9+4q&tGNL73P&rl^lF#s'*q.;b0o5.*#ds#Bd3;Q5nCItu2p4spaO1</0DqaO>
A3c.AjaaUi/`XlrQ+!F-]C@aEf8l<YLF"V>WDr+j\'kpeK;.p"NCQsmeR(XJlKNt
#Q1pSV^9RF!D8eQIiId$"p6hUp]q]'SnI]hO$>WC?Mfr*CN,i^r.,7b=$k,5%"c,
5P!,Qk<(d[[I>MO*Yi4`g2p0K$KG>Yr945pQhVpUkNC;"cW0hgnc5f?VYXJ[h4[(
V49MR"ClR)"<gT+%]*SGrTNR?\&OZok[2I@rDF#)BfMk^-&li+@?Om_mc+B"%.aW
.WeHd_6nfPNse0SX^?XW8_(L.R&OVY"/?O[7c&=O,bAs:<.Q2@WW+uIU?e[h^e.Q
eLiRXG#:4:i4mKPg,K:"G>UF48:,0^OrQftEU:&JiItr1:oO21atT$F54]AA>otW
*TR7]+\<`ie9E'_bm7.]hIZSW;4s_''R7P:r;[c=3"t*Jg`n<Kt]T`,H=OMFM/BX
7HW7\[.(=N%E[bR;laq3BOQ!eIB6A6o7bg^'K-DKU63\\ZUpL;3Wmt(!gQ#1FS-n
<<pmTRDBAJq*?m@k_@q(;uM[^#Sm.&[6+JYp;rrC;$4QM9MB.;%#]o-l0]&@dma:
O/MY=,()\jfe:%il\GTk$5YnoYY5'7(<:CbP@\ufLI^f102ihqQSbt3L8[_M\Mg>
Z.iR>+';@id$I:ragN4bh8@$@m1ScH(J]DXYtENX1&C<Ef5e)pnObuI.qglNcg"Y
l>!g`oK6Oh8OnoZ<f_nog.X.k`0-kDk>/BXu*#tqObLWO%.,rR=fX&@0nm\V_G23
"lQl;R_ZblmGDg@VgdOo3[_OXqc`+Z>f4I2@P`f3]p>bqlB&re7C.Q)TWSH694C`
`(ZLfZoOC96#r>'CcJRj%9Li%@Nc?bE/!K?*`C'L:?l/-<;T$b:7C.-rFY:^CO1Z
ejWU"g^_r$loY?lp*Sk$22jujM(`kL5\<^99rZ!gA8cJWn"WL(0!-FEsJO6oWLp[
rV@5$43M*r=&:A]l(W;B5SKRQ5i%KXY579`W/.^XGR;]kh99pmI*iV$fGF47rcEF
hIUQY]C4PVY>rohC-kl(b+1YJZl65QjM'kulmRn&F]4/8aUFj"T1dl<f[2raf60M
RQ_m=9t.@]-H56pU9NN]Psnkq.!IktG-6XO-<"\lUTa!Tn1`H\>Q=0r=81$2mu*[
+:9Hc;ui5C$sspmZ(`n,]uSnPRBl2H"WOd'&,$J6hcHJ^F*:KYTXShM%=NVN1Si*
*-<A)25+YqL_cJ%X@;@0WBh4-=s24k2LulC$5't!lj=MEq>)T'JDntAFC>:ap8dJ
rrD+3-MP0n8%q__;$")2ZGOLVfeIN_'oTF0n%9\')n5DAa9bpt>^tbpq?No2i-Pm
-8O:sEYYoaK%3uE#]kE/V]L+=XccF<*HX](Boo<$91B@/<E<QPr@/_9^'AO+@*&5
);fIHf,2:It6G/96hbQI.lc@2u)eb?gUWEe'9Z1OPfX&(eh`a<SfSQ\Hc_IIDjlc
^;_pJoi)>+t`'o>-7#Za:e\BG0N:p*T"+N=ZL%ZR8N]qp\I)qn^hq(GnBkccjA^@
J>f,53ukE@pHpW_oi6A:?^L(.>T+:3K43VdaF;kZ#Xcf&1gb:?kS)h,77cm19<Cd
LoW)s?Sc[T@$E[2p%q'K1uf9Bcn"!iF2e\GrkVe>g29(!,s\+sF74p8KoFiNJ;eY
$AQ0WdVDV_'rr=/QWABi()/W8Eb#Z34R@/,6mM;WU%PEP&2o?NLQk"dq[cc@C=rj
Z!g0^[KoXsq<B[q8R&>!*YVhAH.).uGoF..fp]NX87G7<kMap[8('\K$Y-^MeXrr
?q8(Wt:J[!LGN=8[o`:']9BiC@U*UL/'s7fn<0NF9\Oi.Pm>?.e^^@i$<`J2cmVM
@4*>\4kW<d!:pYgSNM2'mhQ/Vu2V07uPF+UQiJp264Yj0`s3o9KAS^K>0-%NtH%S
*MV5$E,r*W!>AR[1@X?>`(LtP^rjS]W"d=d%8$egl..G$a)9;:&%&@1b&iL`2#X(
beG[0_\socjWpT;DV75oLA;u?p'"3iEcbpBO7j*Hn;5KKmdk:b0=PYZY_0Xe`(\E
rK==sg.pm$,1B;+huYukb]g0074N8-^.SDc?ne?:nM:mS[T=*XT@+M9A3a,J6rJ\
tso5RC8Idf/c&(V%9DhGCT6)<t1UpKpW/I*Eg]'cVU!be([S1em8[oP]a^DDLhkg
f(XApK_o#MY81);N%r-Jl:u&5WXl<1[PG/T.]A@].K$:>jb$7KrDI\:1/1R@dJ?=
>DkHke^PVd*EdS-8nYUgnaR13^.pj8N>,*eahr8`C$2k2iI[K6pQ!Fh1<Z?TEnX-
o=Ci/GPg-+laH3(j`5#c($&co3gP/Al3ea(m3![1X!Rgg38X/t$/?>khD2/U1)&W
:eKbUu.ZMeUAen$@cD9E@u,D,CK)>>87l3ok1ju[HU>)3Nf\A.hhM_s+@:/kP8&?
r`5SKD"V+iYp`h]UhT.TVfu3D?icAs(kq#7r44Vu=Qn<R&9L1d0sG5*,ctI"bXR.
YEkB516#sF>N7q#7ZWEm`Ve[9HNtnXb23%QWH?1+;V=ZHJ%U8bh\H%a+u7p]+!E-
P3"?-X%D%4NUU<3.;\Ls")8g_pX(T,lh(elkWrSC_uW5J$Y>D_<QCtaZ%b23]aV4
_^?/?N\'$2hYIqIsbF:fcl5<<ER<L$i%Oe*j:?H^4]!DdR['8hg"qd1k)MZ,EYnu
5Mn1#fJ6n!\8XMZMd$G]_eM*U5"!ET??8"lm,AmcB[`,P-6K`LkG5W;2%5FGJbm8
Qa:Y=(,[3"+5H=PiN:F&e_E%bX9H?kUGI(MsrhJSpEG(K=D5&JPTLM-F@Ge\A'B>
58EO)Zs/BbO4odG0FERP=.`S%T`O:bX%./g]pF$e@JeO'gq1XLmPCDRu-E/rkr*-
\h@q4Y';S%1pMJME!YPXibf,\XSjI=<U]q+gTIes1sN_.Y=Z/?ZQ@eMe(oRf%bcm
.F]s=EDUW("e]b&3*=qFp*q<8$Aa8Hh>^lM5(D'R->WDP3;N#RD7CUZQKo=<8Z@M
Bqdm0J%Jdu1gEa.6(eLt^Q8&AV8pA2hS&]7TOWZR&TYl2Rn^F5$mn<d6,Tei1BFc
I8bk`E?-\J7V`cnN=[M-W4TY9*C8>5cTLLgnqAj9bmHqoh`7Ei*<2=+ZUO[>\`)#
=nlAXMkL@m_lUAdF':b6L"`90*.F(1;O&OW7O<eE)^V:8"<2(DQ8-5R/U.d!+eD<
q"N",eS`i+QVfJ(hHHkN>gBdM15K?'_A]N>).?pA1Oa.r/\l@;:M`Z0hiW^uO=Mu
kb.GWBfIDg8qLDs[V!I=\p4HF]qb5?u.4m<.cr'B:Dp#52ARohAJ:8[VF/G.4B=+
bXh-lf)D+<X_S:p<,mTQ"<Y.pb8@h<K0dGrq]#TJ6%%n*;!*ln2GG464\`Y`-SUD
qQ98>E7bOG5bjXAqPn3h00:<>3T\hYY9n41-UJ(C#ek$:W,Bdsho1eN:eONO'fI9
eOTUWg"I7j)GqOpV`gro6>"J\^*Vt!GT9,VZ:f`Ki-UsJC,4b.cO=f=8=FRMi%h*
]8)#GL_4P5?hjk,0&Mo89EQq_Xu(/"jS;NcQ^'5?6p,8he$$\^@qQ6>0G%9ffTmm
[/]#:V<rKO[fR3$ukl[a&]foheI0&e5-Rl)[JoV1+T@CDG(J[X"Q8UUY_S4D!KJ]
ZG/f'A?ret8n!Tj7mLo!72*[+Bqc"-m.)&*`"Xa?u9/?]Qc7!C6mf!-qDks>OWA#
ksATpRG<_s&Xp*8Qo<?s#">ZnJ[(j;qFHKY#4:4[Uc7[Ck'te:)rD?h+9^N9'f#7
Tj3^b]UG0hLm7PH!RE'`uY_CLk\J^<[O2!m5Y'^#%a,(D:jY_0=T0%]@=^'HP70n
kf8Gi6#0`S,T%TMH2*8d.Dq!91DXBEFChcM63h2q9:)d`X1uk_*7q5+.j<UHg&U`
"dKGDQY+Pf-pbrh+HTr+h@=83R-tGV\XTO<RGZT"=q_04b0)knae@4S.nMh2R!QV
PoDR3RE5t\_+rr<pj`1s1n`)$Z\mYr@Z]&TU+2K;#<,L!U"dLl[E#!T7sD&hOX"a
(_I3J,n<meT6Ma42ZQLboCqefnNpjgee#NSjp).,`Qt5=Ej'9.V]0(Ff]cZ%g<;<
jX*/>Sn#s(EZ1:<,AhXd6b@;&6eJP@nP-0+gL7-5=7/sL2nk0A^h:T(]=&bC`N#G
i4$LE5Ahh+^5i2q54LO2ea;rF,H/'g@ItV"b?iT[b[.@lR$J4hLo[7K[V)^1Y,n^
/7'cJ_9>fkZ&Yk27eZR<oU"3T[PM.TECYi8eL_dl!!5NcFE$XHHDT<c8*eJRs#E\
UcM9nWA0<@Nr/fnJZJsa,I=l?3/A8,@4/]EBVE#FJIGA`$a5#?/lB>d2Q\"`EbP]
A^JFT?9JBEK=GG81si2>!5PV^`H;d!g5)/I10^`8EQF<.8C4"j94-M^mp!51!]!0
\.GjN+kY.$^ls;RLc5b!.,L-Mh>@<Q![';..0=6OFs:u+nWuB42?;I+atsF%b<VG
'(,bE)Eqd<>GV4o:G6TLO:V`^(cr!T%HH)sNQ];hifJQ_Ne@dZg&j@B`7UaHX+j=
@<LS@`G:V<0AXPtua^K'PiW\RcF'%'T+QuphT]G6>>4iZSZ?s1T15j^6ehZd6;jK
(-Dc+&8rL!0p3^r!!cJOPLmkbHYg;*:]2hBCUQ\$WY]'@GA06g^Em0]rd_%m&7#d
7HR6k:`^1"%I"e\&[INB4?!^U1lD9V?;c@L,TOMAu8C(O1F?9gWY*7%bum@.]cgL
6i93dFRb&Z67Uc/Qe^_W!R-q?ZZTnZ*hCeM-!AC9d])]]80[qY<'Fo#Q\idW<GFG
^o;Drm3uEFmd]t$*R0gioS/KV^oI['?%>7P4Uc^BW#`99PtOu^f28WU]Heb[ec,W
Za;3kFB@6pWqj`):NYICne4PF\gVG_-0t8Do**E?n;d4&3"B%2X)+k<UFQOW:nt7
_?NS>.3%soIp:+1Ob]gFfTlRZ0.!]=VT]"F;/"XmOUaMSB"QMX=51>`_^RGf^_nI
l&G)bF\0g0fW(B*Ek5+qnm`Q&ViW*8?-g=1udH*(tr%<8]i3h>!^e4HAFNalreQK
#@sipB[(#_fD.km05'F$tY=E4;Mo?"$h?8&U3_L].LX;EE8g[3f8O_bu>6^`o12$
ra8EH:)md,*T8g]a_1@T>9uDLnLd4K<JSL1+k&:fF"UI)IchY>%@n>&Q/F.P'NJc
Vh.AO$[8;>"6jCN;!?_V?([i8$%Y9[tGd^hL8*qmq:rQth1(/&VaV5lH#gKAU=8%
I+7pH2.X4?VG!U?&**0mSK<[[SD<]W78iHe[6+';?@V(<]"]geG3n;Rh'XntNOSF
f,j+Uj(C?GiF!f[9m`;@5Wo5gY:2.#LB>>n@JAJm!,OpL">1B"FSlbEi=4m$pPui
[-G)7K-om[Esh:&@'eaar>c%QmX,]n/C'"kVL4fX*B?25fbdc$pg.@7i\qb=$raa
!KoY5>KHM,.o-:[>WuSX?q\iqfII\%6$U#0OU#T$Y0YGB,tOVE\;L2t"jo/ZR9iT
h>hi;/9:Mn\P0i%t/0a\N`2tp-JS=h01?mY*#pacQ][K6j0>&r(?B&US^C[@/G,p
GG"+![7D/$u?=fA47[RS+jYc92f]NR$SC(WeK>r<!.VY.][78r<u)WPt<Ud,e8D3
Q=\3Q#he')#LZ5@AJM\<ZkD[6grlRLLo"]7SSYLm[rDB()g,TZLur>c>+/`9qjPm
_StAK;;9.XQUu'9;Z0c<TJ$Ook_8L.H:EYf8F(1/g?SK_!lb)^=/[D<#L(cR'CS1
2(tbCY$FJ]c''1#-^J*h\>+S,b+^MF=*=*h0#QCCjaDu$<((UQ\sra\l\U6GS@X7
1Ha$"2Xjkf"^/uB-^0F(":cNdD0_<(p0ohu;*"N_qfNRoQ7].REWse3T&\,Q:A_Q
@HQa@--E[afp9r:<rLIYIs=ug<'l']k"'Ho!2*)rp\[E\^O&HLlS!HQ,`lmi'*^B
Hu9^$YW^Xit9flOLEEA>iJ6lp#IkV!FG-,VcBc$A#I)?m3c[a8oX=i"k'+/lJb(O
(i#YlN&=SPfad/]\En-d(]i1..EFlDiKnQ(@*'0a4@;cmtf=``Kg;>Lb%Orjc)l.
io1[T@C/1laK4n_7ee;90>aOp"lA!%MD`S1'gh,"lOdU2TeLgfI-/WYP5bN^\,Z[
gAB>=`CAqWaf,.On$/?t_D5TqP\;>-[("tkBi8F3N"LL!i`"r]"AV^MmZSF)3hI<
^&>\0pl9+G7$Lh0V"A?iodeUrqkX.lfO0Vn!FJ/2>Q[m(G1!V6oc_<i\%HW8WnRQ
.RuFuX!;7(a`,<AmNuTudO_XpZ"tgYrOFQc3/?>#4:WJ/iJn)R(lQ2uVkb!IIJ+J
9^)5e9K[G,3$G`(EP/f+`Y(pnLcbQRQm1P-!V:q.^Hd*Li)W@5T_OY6!%>5`!8RY
==`\p*-4kNbVLD"6pC.XMdI"Y7E#YV?WaI`$j7HS\[Tcb>\UMra/QGU[ooD?.U0L
RMCp\#eG;c;-t-tE[?0WD(A<b!Yi/T8>:K!1-[;_>Z"7%oL(I;W\<T*s"7:*<=mq
fGd<l=d'#<F>C1XAa_$(G@\)okqiq3DM]IRgHImLW41YcD(agqJ:#I.N-(6B0;gP
K$FOasIE`__Ho`+\2s2\FugH-7+@VVJF,2t`'1;(cg$b$Bt"I"?[fRcHC[Bib;a\
-f5aHX4R*=VUGBRp*GIQims'-`ERYp3"^H#48PrV]"K>iE>l('+HG6Y.Ku<&I*RG
&I.IeO^,uVE56S\h+OWLmobNlK;Bn7?*70b4LOg3X#N+BpmG5Jk2h46)&BF!1c-H
aM;ZX,i+Ls\V,^Qu"gn^e/F't^7Bt%'FW0a<O>fFuq19a9kWg2#XZVp,=]Ic!g[Q
#OS;X#p59oV#X'9>t!m<MsI$PP:A!Z$5.l84o''9Y:^d/F$<]Q(U!SAP"J^,)!1#
'ef@9#+Q(a53lbnVEr])]>h%thW?3D8hshn5_N%90[1n57m@G*e$;!pj<=\>#i@;
WUbWV[*dS>u=R'h%^YTgm&Nu?@ZKhTK0H0o"^:H.WnDOi@4nH6K0&8C*X?E@@<A#
VT*!NSC0Q6FCL7cb1^$2aIUG:@hAH)-m0pljso-rd0db/b?O8SZ^[2Kghf@FR<'m
DPqdD^oTjZkNX8&hm1l^dCC[B(?%I.TilJOmgLFZOoeQTJ=V)>j5ocQ"k)9nhLq[
A4E!EZ,R'92?Z?>/H'L'U=(fs-0EEcR_r5>m/n,#D&-m3XT2:LduZjd^R.&M%)#d
j-C.lEO@CAbs^%"K."G7+ric=1'IH+'k#L9;3YE>#imB:>2G-up(hCDnL&YPjhVG
d&!u>DA$&j,CrKVJKTN^s$gV?Lm@g\]Vl`cDYUtL^loChc#Xb3So1X<+2WD`5!A#
Kg*r!7CZc([(798b8htDd]@I,S.o*se2U*X/PCHm"ne<\JOnpl"L';e>-T5>]=/%
H%-_nh`We7l0Ln][:_f;SL?%+n/Oqh0:l^QOET.X98t.SZOFn35TSiu_2f-/7q5D
0'q-o.TU>L,l;B5su;./d9N;N#tMZ+DChAhuVnUFZTfA#te6d#Rf4ZgVI8*^73jK
I-Hr#`!?r-tgJ!/(-`$4#>YTCDj\=cG.\rF1iJrEsKV62JR3%\McGj8QAEK_@W4V
VAb4ZTn3\7gLa?qS4OuJ,,L#XQ$utD-?_!\9NP=Up^M=rF9FFkRZZ)B=r]"j,[!a
!M8h9nQo;e)Q4H^op?V0Dq4p>IFW8E$+D),r5FOhPP(IYHA2@I<el9>!+'Q96r6L
1<U,d?.HgWJ&TMu`mGnQZ$6!"D:%jpgpqR75'&#&d6Ag3[IaBPPZh97)@_l*)I[C
+C3ZkH7(3f^2$3T&T9r/s#8XC46>NV]4hK)iu,MH5??gTQPQk/E$lS?9M5?PAn5L
p*:Y=%uMEk4"@)!NV$?2"5)"app4@6hlBlR4L_rr=b2Y90k',H-.*/H%7K.!>JB0
a'WMegkRohNH&Hg%rKka83s5$KurC`)A4u;!HgC;fX\IVLSX!~>
%%EOF

BIN
Docs/source/KSFOapp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

691
Docs/source/building.tex Normal file
View file

@ -0,0 +1,691 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler % Bernhard Buckel, starting September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%% & Bernhard Buckel (buckel@wmad95.mathematik.uni-wuerzburg.de)
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: building.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Building the plane: Compiling\index{compiling} the program\label{building}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm} BUILDING THE
PLANE}{\thesection\hspace*{1mm} COMPILING UNDER LINUX}
This central chapter describes how to build \FlightGear{} on several systems. In case you
are on a Win32 (i.\,e. Windows95/98/ME/NT/2000/XP) platform or any of the other platforms
which binary executables are available for, you may not want to go though that
potentially troublesome process but skip that chapter instead and straightly go to the
next one. (Not everyone wants to build his or her plane himself or herself, right?)
However, there may be good reason for at least trying to build the simulator:
\begin{itemize}
\item In case you are on a \Index{UNIX}/\Index{Linux} platform there may be no
pre-compiled binaries\index{binaries, pre-compiled} available for your system. In
practice it is common to install programs like this one on \Index{UNIX} systems by
recompiling them.
\item There are several options you can set during compile time only.
\item You may be proud you did.
\end{itemize}
On the other hand, compiling \FlightGear{} is not a task for novice users. Thus, if
you're a beginner (we all were once) on a platform which \Index{binaries} are available
for, we recommend postponing this task and just starting with the binary
distribution\index{distribution!binary} to get you flying.
As you will notice, this Chapter is far from being complete. Basically, we describe
compiling for two operating systems only, \Index{Windows} and \Index{Linux}, and for only
one compiler, the GNU C compiler. \FlightGear{} has been shown to be built under
different compilers (including Microsoft Visual C) as well as different systems
(Macintosh) as well. The reason for these limitations are:
\begin{itemize}
\item Personally, we have access to a Windows machine running the Cygnus compiler only.
\item According to the mailing lists, these seem to be the systems with the largest user base.
\item These are the simplest systems to compile \FlightGear{} on. Other compilers may need special
add-ons (workplace etc.) or even modification of the code.
\item The GNU compiler is free in the same sense of the GPL as \FlightGear{} is.
\end{itemize}
You might want to check Section \ref{missed}, \textit{Missed approach}, if
anything fails during compilation. In case this does not help we recommend sending a note to one of the mailing lists (for hints on subscription see Chapter \ref{landing}).
There are several \Index{Linux distributions} on the market, and most of them should work. Some come even bundled with (often outdated) versions of \FlightGear{}$\!$.
However, if you are going to download or buy a distribution, \Index{Debian} (Woody) is
suggested by most people. \Index{SuSE} works well, too.
Contrary to Linux/Unix systems, Windows usually comes without any development tools. This
way, you first have to install a development environment. On Windows, in a sense, before
building the plane you will have to build the plant for building planes. This will be the
topic of the following section, which can be omitted by Linux users.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Preparing the \Index{development environment} under Windows\label{preparewin}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
There is a powerful development environment available for Windows and this even for free:
The Cygnus development tools,\index{Cygnus!development tools} resp. \Cygwin. Their home
is at
\medskip
\web{http://sources.redhat.com/cygwin/},
\medskip
\noindent
and it is always a good idea to check back what is going on there now and then.
Nowadays, installing \Cygwin{}\index{Cygwin!setup} is nearly automatic. First, make sure
the drive you want \Cygwin{}, \PLIB{}, \SimGear{} and \FlightGear{} to live on, has
nearly 1 GB of free \Index{disk space}. Create a temporary directory and download the
installer from the site named above to that directory. (While the installer does an
automatic installation of the Cygnus environment, it is a good idea to download a new
installer from time to time.)
Invoke the installer now. It gives you three options. To avoid having to download stuff
twice in case of a re-installation or installation on a second machine, we highly
recommended to take a two-step procedure. First, select the option \texttt{Download from
Internet}. Insert the path of your temporary directory, your Internet connection settings
and then choose a mirror form the list. Near servers might be preferred, but may be
sometimes a bit behind with mirroring. We found
\medskip
\web{ftp://mirrors.rcn.net}
\medskip
\noindent
a very recent and fast choice. In the next windows the default settings are usually a
good start. Now choose \texttt{Next}, sit back and wait.
If you are done, invoke the installer another time, now with the option
\texttt{Install from local directory}. After confirming the temporary directory you can
select a root directory (acting as the root directory of your pseudo UNIX file system).
Cygnus does not recommend taking the actual root directory of a drive, thus choose
\texttt{c:/Cygwin} (while other drives than \texttt{c:} work as well). Now, all \Cygwin{} stuff and all \FlightGear{} stuff lives under this directory. In addition, select
\texttt{Default text file type: Unix}
\noindent
In addition, you have the choice to install the compiler for all users or just for you.
The final window before installation gives you a selection of packages to install. It is hard, to provide a minimum selection of packages required for \FlightGear{} and the accompanying libraries to install. We have observed the following (non minimum) combination to work:\index{Cygwin!packages to install}
\begin{itemize}
\item{\texttt{Admin}} skip
\item{\texttt{Archive}} install
\item{\texttt{Base}} install
\item{\texttt{Database}} skip
\item{\texttt{Devel}} install
\item{\texttt{Doc}} install
\item{\texttt{Editors}} skip
\item{\texttt{Graphics}} install
\item{\texttt{Interpreters}} install
\item{\texttt{Libs}} install
\item{\texttt{Mail}} skip
\item{\texttt{Net}} skip
\item{\texttt{Shells}} install
\item{\texttt{Text}} install
\item{\texttt{Utils}} install
\item{\texttt{Web}} skip
\item{\texttt{XFree86}} do not install!
\end{itemize}
\textbf{Note} XFree86\index{Cygwin!XFree86} must be not installed for building \FlightGear{} and the accompanying libraries. If it is installed you have to deinstall it first. Otherwise \FlightGear{}'s configuration scripts will detect the XFree86 OpenGL libraries and link to them, while the code is not prepared to do so.
As a final step you should include the \Index{binary directory} (for instance:\\
\texttt{c:/Cygwin/bin}) into your path by adding \verb/path=c:\Cygwin\bin/ in
your \texttt{autoexec.bat} under Windows 95/98/ME. Under WindowsNT/2000/XP, use the \texttt{Extended} tab under the \texttt{System properties} page in Windows \texttt{control panel}. There you'll find a button \texttt{Environment variables}, where you can add the named directory.
Now you are done. Fortunately, all this is required only once. At this point you have
a nearly UNIX-like (command line) development environment. Because of this, the following
steps are nearly identical under Windows and Linux/Unix.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Preparing the \Index{development environment} under Windows\label{preparelin}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Linux, like any UNIX, usually comes with a compiler pre-installed. On the other hand, you still have to make sure several required libraries being present.
First, make sure you have all necessary OpenGL libraries. Fortunately, most of the recent Linux distributions (i.e. SuSE-7.3) put these already into the right place. (There have been reports, though, that on Slackware you may have to copy the libraries to \texttt{/usr/local/lib} and the headers to \texttt{/usr/local/include} by hand after building \texttt{glut-3.7}). Be sure to install the proper packages: Besides the basic X11 stuff you want to have - SuSE as an
example - the following packages: mesa, mesa-devel, mesasoft, xf86\_glx,
xf86glu, xf86glu-devel, mesaglut, mesaglut-devel and plib.
Also you are expected to have a bunch of tools installed that are usually
required to compile the Linux kernel. So you may use the Linux kernel source
package top determine the required dependencies. The following packages
might prove to be useful when fiddling with the \FlightGear{} sources:
automake, autoconf, libtool, bison, flex and some more, that are not
required to build a Linux kernel.
{\bfseries Please compare the release of the Plib library with the one that ships with
your Linux distribution.} It might be the case that \FlightGear{} requires a
newer one that is not yet provided by your vendor.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{One-time preparations for Linux and Windows users\label{preparelinwin}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
There are a couple of 3rd party libraries which your Linux or Windows system may or may have not installed, i.e. the \textbf{\textit{ZLIB}} library and the \textbf{\textit{Metakit}} library. You can either check your list of installed packages or just try building \SimGear{}: It should exit and spit an error message (observe this!) if one of these libraries is missing.
If you make this observation, install the missing libraries, which only is required once (unless you don't re-install you development environment).
Both libraries come bundled with \SimGear{}, which links to them, bus does not automatically install them. For installing either of them, get the most recent file \texttt{SimGear-X.X.X.tar.gz}\index{SimGear} from
\medskip
\web{http://www.simgear.org/downloads.html}
\medskip
\noindent
Download it to \texttt{/usr/local/source}. Change to that directory and unpack \SimGear{}
using
\texttt{tar xvfz SimGear-X.X.X.tar.gz}.
You will observe a directory \texttt{src-libs} which contains the two names libraries.
\subsection{Installation of \textbf{\textit{ZLIB}\index{ZLIB!installation}\label{zlibinstall}}}
\noindent
\texttt{cd} into \texttt{SimGear-X.X.X/scr-libs} and unpack \textbf{\textit{ZLIB}} using
\medskip
\noindent
\texttt{tar xvfz zlib-X.X.X.tar.gz}.
\medskip
\noindent
Next, change to the newly created directory \texttt{zlib-X.X.X} and type
\medskip
\noindent
\texttt{./configure}\\
\texttt{make}\\
\texttt{make install}
\medskip
\noindent
Under Linux, you have to become root for being able to \texttt{make install}, for instance via the \texttt{su} command.
\subsection{Installation of \textbf{\textit{Metakit}\index{Metakit!installation}\label{metakeitinstall}}}
\noindent
\texttt{cd} into \texttt{SimGear-X.X.X/scr-libs} and unpack \textbf{\textit{Metakit}} using
\medskip
\noindent
\texttt{tar xvfz metakit-X.X.X.tar.gz}.
\medskip
\noindent
Next, change to directory \texttt{zlib-X.X.X/builds} (!) and type (where the configure option \texttt{-$ $-with-tcl=no} is at least required on a Cygwin system):
\medskip
\noindent
\texttt{./configure -$ $-with-tcl=no}\\
\texttt{make}\\
\texttt{make install}
\medskip
\noindent
Under Linux, you have to become root for being able to \texttt{make install}, for instance via the \texttt{su} command.
You may want to consult the Readme files under \texttt{SimGear-X.X.X/scr-libs} in case you run into trouble.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Compiling \FlightGear{} under Linux/Windows\label{compilinglinwin} \index{compiling!Linux}\index{compiling!Windows}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The following steps are identical under Linux/Unix and under Windows with minor
modifications. Under Windows, just open the \Cygwin{} icon from the Start menu or from
the desktop to get a command line.
To begin with, the \FlightGear{} build process is based on four packages which you need to built and installed in this order:
\begin{itemize}
\item PLIB
\item SimGear
\item FlightGear, program
\item FlightGear, base (data - no compilation required)
\end{itemize}
\begin{enumerate}
\item First, choose an \Index{install directory} for FlightGear. This will not be the one your binaries will live in but the one for your source code and compilation files. We suggest
\texttt{cd:/usr/local/}
\texttt{mkdir source}
\item Now, you have to install a support library \PLIB\index{PLIB} which is absolutely essential for the building process. \PLIB{} contains most of the basic graphics
rendering, audio, and joystick routines. Download the latest stable version of \PLIB\index{PLIB} from
\medskip
\web{http://plib.sourceforge.net/}
\medskip
\noindent
to \texttt{/usr/local/source}. Change to that directory and unpack \PLIB{} using
\texttt{tar xvfz plib-X.X.X.tar.gz}.
\texttt{cd} into \texttt{plib-X.X.X} and run
\texttt{./configure}\\
\texttt{make}\\
\texttt{make install}.
Under Linux, you have to become root for being able to \texttt{make install}, for
instance via the \texttt{su} command.
Confirm you now have \PLIB's header files\index{PLIB!header files} (as \texttt{ssg.h} etc.) under\\ \texttt{/usr/include/plib} (and nowhere else).
\item Next, you have to install another library \SimGear{}\index{SimGear} containing the basic simulation routines. Get the most recent file \texttt{SimGear-X.X.X.tar.gz}\index{SimGear} from
\medskip
\web{http://www.simgear.org/downloads.html}
\medskip
\noindent
Download it to \texttt{/usr/local/source}. Change to that directory and unpack \SimGear{}
using
\texttt{tar xvfz SimGear-X.X.X.tar.gz}.
\noindent
\texttt{cd} into \texttt{SimGear-X.X.X} and run
\texttt{./configure}\\
\texttt{make}\\
\texttt{make install}
\noindent
Again, under Linux, you have to become root for being able to \texttt{make
install}, for instance via the \texttt{su} command.
\item Now, you're prepared to build \FlightGear{} itself, finally.
Get\\ \texttt{FlightGear-X.X.X.tar.gz} from
\medskip
\web{http://www.flightgear.org/Downloads/}
\medskip
\noindent
and download it to \texttt{/usr/local/source}. Unpack \FlightGear{} using
\medskip
\texttt{tar xvfz FlightGear-X.X.X.tar.gz}.
\medskip
\texttt{cd} into \texttt{FlightGear-X.X.X} and run
\texttt{./configure}
\medskip
\Index{configure} knows about numerous options, \index{options, configure} with the more
relevant ones to be specified via switches as
\begin{itemize}
\item{\texttt{-$ $-with-network-olk}}: Include Oliver Delise's multi-pilot \Index{networking support},
\item{\texttt{-$ $-with-new-environment}}: Include new experimental environment subsystem,
\item{\texttt{-$ $-with-weathercm}}: Use WeatherCM instead of FGEnvironment,\index{weather}
\item{\texttt{-$ $-with-plib=}PREFIX}: Specify the prefix path to \PLIB{},
\item{\texttt{-$ $-with-metakit=}PREFIX}: Specify the prefix path to \textbf{\textit{Metakit}},
\item{\texttt{-$ $-with-simgear=}PREFIX}: Specify the prefix path to \SimGear{},
\item{\texttt{-$ $-prefix=/XXX}}: Install \FlightGear{} in the directory \texttt{XXX}.
\item{\texttt{-$ $-disable-jsbsim}}: Disable \JSBSim{}m FDM (in case of trouble compiling it).
\item{\texttt{-$ $-disable-yasim}}: Disable \YASim{} FDM (in case of trouble compiling it).
\item{\texttt{-$ $-disable-larcsim}}: Disable \textbf{\textit{LaRCsim}} FDM (in case of trouble compiling it).
\item{\texttt{-$ $-disable-uiuc}}: Disable UIUC FDM (in case of trouble compiling it).
\end{itemize}
A good choice would be \texttt{-$ $-prefix=/usr/local/FlightGear}. In this case
\FlightGear{}'s binaries\index{binaries!directory} will live under
\texttt{/usr/local/FlightGear/bin}. (If you don't specify a \texttt{-$ $-prefix} the binaries will go into \texttt{/usr/local/bin} while the base package files are expected under \texttt{/usr/local/lib/FlightGear}.)
Assuming \texttt{configure} finished successfully, run
\medskip
\texttt{make}\\
\texttt{make install}.
\noindent
Again, under Linux, you have to become root for being able to \texttt{make
install}, for instance via the \texttt{su} command.
\noindent
Note: You can save a significant amount of space by stripping all the
debugging symbols off the executable. To do this, make a
\medskip
\texttt{cd /usr/local/FlightGear/bin}
\noindent
to the directory in the \texttt{install tree} where your binaries live and run
\medskip
\texttt{strip *}.
\end{enumerate}
This completes building the executable and should result in a file \texttt{fgfs} (Unix) or
\texttt{fgfs.exe} (Windows) under \texttt{/usr/local/FlightGear/bin}
\textbf{Note:} If for whatever reason you want to re-build the simulator, use the command
\texttt{make distclean} either in the \texttt{SimGear-X.X.X} or in the
\texttt{FlightGear-X.X.X} directory to remove all the build. If you want to re-run
\texttt{configure} (for instance because of having installed another version of \PLIB{}
etc.), remove the files \texttt{config.cache} from these same directories before.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Compiling \FlightGear{} under Mac OS X \index{compiling!Macintosh}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
For compiling under Mac OS X you will need
\begin{itemize}
\item Mac X OS 10.1+ with developer tools installed.
\item 500MB disk (minimum) free disk space.
\item Fearlessness of command line compiling.
\end{itemize}
This will need a bit more bravery than building under Windows or Linux. First, there are less people who tested it under sometimes strange configurations. Second, the process as described here itself needs a touch more experience by using CVS repositories.
First, download the development files. They contain files that help simplify
the build process, and software for automake, autoconf, and plib:
\medskip
\href{http://expert.cc.purdue.edu/~walisser/fg/fgdev.tar.gz}{http://expert.cc.purdue.edu/$\tilde{~~}$walisser/fg/fgdev.tar.gz}
\medskip
\noindent
or
\medskip
\web{http://homepage.mac.com/walisser}
\medskip
\noindent
Once you have this extracted, make sure you are using TCSH as your shell,
since the setup script requires it.
\noindent
\textbf{Important for Jaguar users:}
If you run Mac OS X 10.2 or later, gcc 3.1 is the default compiler. However, only version 2.95 works with \FlightGear{} as of this writing. To change the default compiler, run this command (as root). You'll only have to do this once and it will have a global effect on the system.
\medskip
\texttt{sudo gcc\underline{~}select 2}
\begin{enumerate}
\item Setup the build environment:\\
\texttt{cd fgdev}\\
\texttt{source bin/prepare.csh}
\item Install the latest versions of the automake and autoconf build tools:\\
\texttt{cd {\$}BUILDDIR/src/automake-X.X.X}\\
\texttt{./configure -$ $-prefix={\$}BUILDDIR}\\
\texttt{make install}\\
\texttt{rehash}
\texttt{cd {\$}BUILDDIR/src/autoconf-X.XX}\\
\texttt{./configure -$ $-prefix={\$}BUILDDIR}\\
\texttt{make install}\\
\texttt{rehash}
\item Download PLIB\\
\texttt{cd {\$}BUILDDIR/src} \\
\texttt{setenv CVSROOT :pserver:anonymous@cvs.plib.sf.net:}\\
\texttt{/cvsroot/plib} (one line!)\\
\texttt{cvs login}\\
Press $<$enter$>$ for password\\
\texttt{cvs -z3 checkout plib}
\item Build PLIB\\
\texttt{cd {\$}BUILDDIR/src/plib}\\
\texttt{./autogen.sh}\\
\texttt{./configure -$ $-prefix={\$}BUILDDIR}\\
\texttt{make install}
\item Get the \SimGear{} sources\\
\texttt{cd {\$}BUILDDIR/src}\\
\texttt{setenv CVSROOT :pserver:cvs@cvs.simgear.org:}\\
\texttt{/var/cvs/SimGear-0.0} (one line)\\
\texttt{cvs login}\\
Enter $<$guest$>$ for password\\
\texttt{cvs -z3 checkout SimGear}\\
\item Build Metakit\\
\texttt{cd {\$}BUILDDIR/src/SimGear/src-libs}\\
\texttt{tar -zxvf metakit-X.X.X-32.tar.gz}\\
\texttt{cd metakit-X.X.X/builds}\\
\texttt{../unix/configure -$ $-prefix=\&BUILDDIR}\\
\texttt{-$ $-enable-static -$ $-disable-dynamic} (one line)\\
\texttt{make install}\\
\item Build \SimGear{}\\
\texttt{cd {\$}BUILDDIR/src/SimGear}\\
\texttt{./autogen.sh}\\
\texttt{./configure --prefix={\$}BUILDDIR}\\
\texttt{make install}\\
\item Get the \FlightGear{} sources\\
\texttt{cd {\$}BUILDDIR/src}\\
\texttt{setenv CVSROOT :pserver:cvs@cvs.flightgear.org:}\\
\texttt{/var/cvs/FlightGear-0.X} (one line!)\\
\texttt{cvs login}\\
Enter $<$guest$>$ for password\\
\texttt{cvs -z3 checkout FlightGear}
\item Build \FlightGear{}\\
\texttt{cd {\$}BUILDDIR/src/FlightGear}\\
\texttt{patch -p0 < ../jsb.diff}\\
\texttt{./autogen.sh}\\
\texttt{./configure --prefix={\$}BUILDDIR }\\
\texttt{--with-threads --without-x} (one line)\\
\texttt{make install}
\item Get the base data files (if you don't have them already)\\
\texttt{cd {\$}BUILDDIR}\\
\texttt{setenv CVSROOT :pserver:cvsguest@rockfish.net:}\\
\texttt{/home/cvsroot} (one line)\\
\texttt{cvs login}\\
Password is "cvsguest"\\
\texttt{cvs -z3 checkout fgfsbase}
\item Move data files (if you have them already)\\
just make a symlink or copy data files to "fgfsbase" in {\$}BUILDDIR\\
alternatively adjust \texttt{-$ $-fg-root=xxx} parameter appropriately
\item Run FlightGear\\
\texttt{cd {\$}BUILDDIR}\\
\texttt{src/FlightGear/src/Main/fgfs}
\end{enumerate}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Compiling on other systems\index{compiling!other systems}\index{compiling!IRIX}\index{compiling!Solaris}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Compiling on other \Index{UNIX} systems - at least on \Index{IRIX} and on
\Index{Solaris}, is pretty similar to the procedure on Linux - given the presence of a working GNU C compiler. Especially IRIX and also recent releases of Solaris come with the
basic OpenGL libraries.\index{OpenGL!libraries} Unfortunately the ''glut'' libraries are
mostly missing and have to be installed separately (see the introductory remark to this chapter). As compilation
of the ''glut'' sources is not a trivial task to everyone, you might want to use a
pre-built binary. Everything you need is a static library ''libglut.a'' and an include
file ''glut.h''. An easy way to make them usable is to place them into \texttt{/usr/lib/}
and \texttt{/usr/include/GL/}. In case you insist on building the library yourself, you
might want to have a look at \Index{FreeGLUT}
\medskip
\web{http://freeglut.sourceforge.net/}
\medskip
\noindent
which should compile with minor tweaks. Necessary patches might be found in
\medskip
\href{ftp://ftp.uni-duisburg.de/X11/OpenGL/freeglut_portable.patch}{ftp://ftp.uni-duisburg.de/X11/OpenGL/freeglut\_portable.patch}
\medskip
\noindent
Please note that you do \textbf{not} want to create 64 bit binaries in IRIX with
GCC (even if your CPU is a R10/12/14k) because GCC produces a broken ''fgfs'' binary (in
case the compiler doesn't stop with ''internal compiler error''). Things might look
better if Eric Hofman\index{Hofman, Eric} manages to tweak the \FlightGear{} sources for
proper compiling with MIPSPro compiler (it's already mostly done).
There should be a workplace for Microsoft \Index{Visual C++} (MSVC6) included in the official
\FlightGear{} distribution. \Index{Macintosh} users find the required \Index{CodeWarrior}
files as a \texttt{.bin} archive at
\medskip
\href{http://icdweb.cc.purdue.edu/~walisser/fg/}{http://icdweb.cc.purdue.edu/$\tilde{~~}$walisser/fg/}.
Numerous (although outdated, at times) hints on compiling on different systems are included in the source code under \texttt{docs-mini}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing the base package\index{base package!installation}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
If you succeeded in performing the steps named above, you will have a directory holding the
executables for \FlightGear{}$\!$. This is not yet sufficient for performing
\FlightGear{}$\!$, though. Besides those, you will need a collection of support data
files (scenery, aircraft, sound) collected in the so-called base package. In case you
compiled the latest official release, the accompanying base package is available from
\medskip
\web{ftp://www.flightgear.org/pub/flightgear/Shared/fgfs-base-X.X.X.tar.gz}.
This package\index{base package!installation} is usually quite large (around 25 MB), but
must be installed for \FlightGear{} to run. There is no compilation required for it. Just download it to \texttt{/usr/local} and install it with
\medskip
\texttt{tar xvfz fgfs-base-X.X.X.tar.gz}.
\noindent
Now you should find all the \FlightGear{} files under \texttt{/usr/local/Flightgear} in the
following directory structure:\index{directory structure}\index{FlightGear!directory
structure}:
\medskip
\texttt{/usr/local/Flightgear}
\texttt{/usr/local/Flightgear/Aircraft}
\texttt{/usr/local/Flightgear/Aircraft-uiuc}
\ldots
\texttt{/usr/local/Flightgear/bin}
\ldots
\texttt{/usr/local/Flightgear/Weather}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{For test pilots only: Building the CVS snapshots}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
It you are into adventures or feel you're an advanced user, you can try one of the recent \Index{bleeding edge snapshots}\index{snapshots} at
\medskip
\web{http://www.flightgear.org/Downloads/}.
\medskip
\noindent
In this case you have to get the most recent Snapshot from \SimGear{} at
\medskip
\web{http://www.simgear.org/downloads.html}
\medskip
\noindent
as well. But be prepared: These are for development and may (and often do)
contain bugs.
If you are using these CVS snapshots, the base package named above will usually not be
in sync with the recent code and you have to download the most recent developer's version
from
\medskip
\web{http://rockfish.net/fg/}.
\medskip
\noindent
We suggest downloading this package \texttt{fgfs$\_$base-snap.X.X.X.tar.gz} to a temporary
directory. Now, decompress it using
\medskip
\texttt{tar xvfz fgfs$\_$base-snap.X.X.X.tar.gz}.
\medskip
Finally, double-check you got the directory structure named above.
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% employing redame.win32/readame.linux
%% by c. olson , b. buckel
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections
%% revision 0.10 1998/10/01 michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% deleted some obsolete stuff from the Linux Section
%% revision 0.12 1999/03/07 michael
%% changed Windows to Cygnus b20
%% revision 0.20 1999/06/04 michael
%% complete rewrite of the windows build Section exploiting Curt's README.win32
%% revision 0.21 1999/06/30 bernhard
%% complete rewrite of Linux build Section
%% revision 0.22 2000/01/18 michael
%% added hint to "missed approach" and some more hints from J. Berndt on Cygnus stuff
%% Corrected path to mesa libs
%% revision 0.3 2000/04/20 michael
%% Complete rewrite Linux and Windows reflecting split /SimGear/FlightGear, numerous changes and updates,
%% made Linux/Windows more similar (for later merging???)
%% Removed building TerraGear and its libraries (should go into Scenery Guide)
%% revision 0.4 2001/05/12 michael
%% Chapter Completely rewritten, Merged former Linux/Windows sections, added separate Cygwin section
%% Separate description and reference to base package
%% Removed reference to other compilers
%% new section on nightly snapshots (more people are using them)
%% revision 0.41 2001/07/01 martin
%% enlarged section on Irix, Solaris
%% revision 0.5 2002/01/01 michael/martin
%% General update on contents and links without re-structuring
%% Paragraphs by Martin on rewuired Linux Libs
%% Added section on compiling for Mac OS X added based on Darrel's Readme
%% List of required packages
%% Modified section on CVS (former nightly) snapshots
%% revision 0.6 2002/09/09 michael
%% update of D. Wallissers Mac recipe
%% added selection of Cygwin packeges to install/not install
%% Installation of ZLIB/Metakit
%% added/removed configure options

546
Docs/source/flight.tex Normal file
View file

@ -0,0 +1,546 @@
\emph{}%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: flight.tex,v 0.5 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{In-flight: All about instruments, keystrokes and menus\label{flight}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm} FLIGHT}{\thesection\hspace*{1mm} KEYBOARD CONTROLS}
The following is a description of the main systems for controlling the
program and piloting the plane: Historically, \Index{keyboard controls} were developed
first, and you can still control most of the simulator via the keyboard alone. Later on,
they were supplemented by several menu entries, making the interface more accessible,
particularly for beginners, and providing additional functionality.
For getting a real feeling of flight, you should definitely consider getting a \Index{joystick} or -- preferred -- a \Index{yoke} plus \Index{rudder pedals}. In any case, you
can specify your device of choice for control via the \texttt{-$ $-control-mode} option,
i.e. select joystick, \Index{keyboard}, \Index{mouse}. The default setting is joystick.
Concerning instruments, there are again two alternatives: You can use the panel or the
HUD.
A short leaflet based on this chapter can be found at
\medskip
\web{http://www.flightgear.org/Docs/InstallGuide/FGShortRef.html}.
\medskip
\noindent
A version of this leaflet can also be opened via \FlightGear{}'s help menu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Starting the engine}\index{engine!starting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Depending on your situation, when you start the simulator the \Index{engine}s may be on or off. When they are on you just can go on with the start. When they are off, you have to start them first. The \Index{ignition switch} for starting the engine is situated in the lower left corner of the panel. It is shown in Fig.\,4.
\medskip
\centerline{\fbox{
\includegraphics[clip,width=12.5cm]{magnet2}
}}
\smallskip
\noindent
Fig.\,4: \textit{The ignition switch.}
\medskip
It has five positions: ''OFF'', ''L'', ''R'', ''BOTH'', and ''START''. The extreme right position is for starting the engine. For starting the engine, put it onto the position ''BOTH'' using the mouse first.
Keep in mind that the \Index{mixture lever} has to be at 100\,\% (all the way in) for starting the engine -- otherwise you will fail. In addition, advance the \Index{throttle} to about 25\,\%.
Operate the \Index{starter} using the SPACE key now. When pressing the SPACE key you will observe the ignition switch to change to the position ''START'' and the engine to start after a few seconds. Afterwards you can bring the throttle back to idle (all the way out).
In addition, have a look if the \Index{parking brake}s are on (red field lit). If so, press the ''B'' button to release them.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Keyboard controls}\index{keyboard controls}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
While \Index{joystick}s or \Index{yoke}s are supported as are \Index{rudder} pedals, you
can fly \FlightGear{} using the keyboard alone. For proper control of the plane during
flight via the keyboard (i) the \texttt{\Index{NumLock}} key must be switched on (ii) the
\FlightGear{} window must have focus (if not, click with the mouse onto the graphics
window). Several of the keyboard controls might be helpful even in case you use a
joystick or yoke.
After activating \texttt{NumLock} the following main \Index{keyboard controls} for driving the plane should work:
\eject
\noindent
Tab.\,2: \textit{Main \Index{keyboard controls} for \FlightGear{} on the numeric keypad with
activated \texttt{NumLock} key:}.
\medskip
\centerline{\input{tab2}}
\vskip5mm
For changing views you have to de-activate \texttt{NumLock}. Now \texttt{Shift} +
$<$\texttt{Numeric Keypad Key}$>$ changes the view as follows:
\medskip
\noindent
Tab.\,3: \textit{View directions\index{view directions}
accessible after de-activating \texttt{NumLock} on the numeric keypad.}
\medskip
\centerline{\input{tab3}}
\vskip5mm
Besides, there are several more options for adapting display on screen:
\vfill
\eject
\noindent
Tab.\,4: \textit{Display options\index{display options}}
\medskip
\centerline{\input{tab4}}
\vskip5mm
The \Index{autopilot} is controlled via the following keys:
\medskip
\noindent
Tab.\,5: \textit{Autopilot and related controls.\index{autopilot controls}}
\medskip
\centerline{\input{tab5}}
\medskip
\noindent Ctrl + T is especially interesting as it makes your little Cessna behave
like a cruise missile. Ctrl + U might be handy in case you feel you're just about to
crash. (Shouldn't real planes sport such a key, too?)
In case the \Index{autopilot} is enabled, some of the numeric keypad keys get a special
meaning:
\noindent
Tab.\,6: \textit{Special action of keys, if autopilot is enabled.\index{autopilot controls}}
\medskip
\centerline{\input{tab6}}
\medskip
There are several keys for starting and controlling the engine \index{engine controls}:
\noindent
Tab.\,7: \textit{Engine control keys}
\medskip
\centerline{\input{tab7}}
\medskip
Beside these basic keys there are miscellaneous keys for special actions; some of these you'll probably not want to try during your first flight:
\vfill
\eject
\noindent Tab.\,8: \textit{Miscellaneous keyboard controls.\index{keyboard controls! miscellaneous}}
\medskip
\centerline{\input{tab8}}
\medskip
\noindent
Note: If you have difficulty processing the \Index{screenshot} \texttt{fgfs-screen.ppm}
on a windows machine, just recall that simply pressing the ''Print'' key copies the
screen to the clipboard, from which you can paste it into any graphics program.
Finally: Starting from \FlightGear{} 0.7.7 these key bindings\index{key
bindings!configuration} are no longer hard coded, but user-adjustable. You can check and change these setting via the file \texttt{keyboard.xml}\index{keyboard.xml} to
be found in the main \FlightGear{} directory. This is a human readable plain ASCII file.
Although it's perhaps not the best idea for beginners to start just with modifying this
file, more advanced users will find it useful to change key bindings according to what
they like (or, perhaps, know from other simulators).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Menu entries}\index{menu entries}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
By default, the menu is disabled after starting the simulator (you don't see a menu in a real plane, do you?). You can turn it on either using the toggle F10 or just by moving the mouse pointer to the top left corner of the display. In case you want the menu to disappear just hit F10 again or move the mouse to the bottom of the screen.
At present, the menu provides the following functions.
\begin{itemize}
\item \textbf{File}
\begin{itemize}
\item \textbf{Load flight} Loads\index{load flight} the current flight, by default from \texttt{fgfs.sav}.
\item \textbf{Save flight} Saves\index{save flight} the current flight, by default to \texttt{fgfs.sav}.
\item \textbf{Reset} Resets\index{reset flight} you to the selected starting position. Comes handy in case you got lost or something went wrong.
\item \textbf{Hires Snap Shot} Saves a high resolution Screen Shot\index{screenshot} under\\ \texttt{fgfs-screen-XXX.ppm}.
\item \textbf{Snap Shot} Saves a normal resolution Screen Shot\index{screenshot} under\\ \texttt{fgfs-screen-XXX.ppm}.
\item \textbf{Print} Prints screen shot (Linux only).
\item \textbf{Exit} Exits\index{exit} the program.
\end{itemize}
\item \textbf{View}\index{view}
\begin{itemize}
\item \textbf{Properties} Provides access to numerous properties managed via \FlightGear{}'s \Index{property manager}. This is actually a quite powerful tool allowing to set all the values in the property tree. Obviously, this is a good place to crash the program by entering a ''bad'' value.
\item \textbf{HUD Alpha} Toggles \Index{antialiasing} of HUD lines on/off.
\item \textbf{Pilot Offset} Allows setting a different viewpoint (useful for R/C flying).\index{viewpoint}
\item \textbf{Toggle Panel} Toggles instrument \Index{panel} on/off.
\end{itemize}
\item \textbf{Environment}
\begin{itemize}
\item \textbf{Goto Airport} Enter the \Index{airport ID}. For details on how to get the IDs
see Section \ref{aiportid}.
\end{itemize}
\item \textbf{Autopilot}\index{autopilot}
\begin{itemize}
\item \textbf{Set Heading} Sets \Index{heading} manually.
\item \textbf{Set Altitude} Sets \Index{altitude} manually.
\item \textbf{Add Waypoint} Adds \Index{waypoint} to waypoint list.
\item \textbf{Skip Current Waypoint} Self explaining.
\item \textbf{Clear Route} Clears current route.
\item \textbf{Adjust AP Settings} Allows input of several \Index{autopilot} parameters.
\item \textbf{Toggle HUD format} Toggles figures of latitude/longitude in \Index{HUD}.
\end{itemize}
\item\textbf{Network}\index{network} (supposes compile option \texttt{-$ $-with-network-olk})
\begin{itemize}
\item \textbf{Unregister for FGD} Unregister from \FlightGear{} Daemon.
\item \textbf{Register for FGD} Register for \FlightGear{} Daemon.
\item \textbf{Scan for Daemons} Scan for daemons on the net.
\item \textbf{Enter Callsign} Enter your \Index{call sign}.
\item \textbf{Toggle Display} Toggle \Index{call sign} etc. on/off.
\end{itemize}
\item \textbf{Help}\index{help}
\begin{itemize}
\item \textbf{Help} Opens your browser and displays an overview on several help options (including links to this Guide as well as to the FAQ).
\end{itemize}
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{The Instrument Panel\index{panel}\index{instrument panel}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The Cessna instrument panel is activated by default when you start \FlightGear{}$\!$, but can be
de-activated by pressing the ''P'' key. While a complete description of all the
functions of the instrument panel of a Cessna is beyond the scope of this guide, we will
at least try to outline the main \Index{flight instrument}s or \Index{gauge}s.
All panel levers and knobs can be operated with the mouse To change a control, just click with the left/middle mouse button on the corresponding knob/lever.
Let us start with the most important instruments any simulator pilot must know. In the
center of the instrument panel (Fig.\,5), in the upper row, you will find the
\Index{artificial horizon} (\Index{attitude indicator}) displaying \Index{pitch} and
\Index{bank} of your plane. It has pitch marks as well as bank marks at 10, 20, 30, 60,
and 90 degrees.
Left to the artificial horizon, you'll see the \Index{airspeed indicator}. Not only does
it provide a speed indication in knots but also several arcs showing characteristic
\Index{velocity rages} you have to consider. At first, there is a green arc indicating
the normal operating range of speed with the \Index{flaps} fully retracted. The white arc
indicates the range of speed with flaps in action. The yellow arc shows a range, which
should only be used in smooth air. The upper end of it has a red radial indicating the
speed you must never exceeded - at least as long as you won't brake your plane.
Below the airspeed indicator you can find the \Index{turn indicator}. The airplane in the
middle indicates the roll of your plane. If the left or right wing of the plane is
aligned with one of the marks, this would indicate a standard turn, i.e. a turn of 360
degrees in exactly two minutes.
Below the plane, still in the turn indicator, is the \Index{inclinometer}. It indicates
if \Index{rudder} and \Index{aileron}s are coordinated. During turns, you always have to
operate \Index{aileron} and \Index{rudder} in such a way that the ball in the tube
remains centered; otherwise the plane is skidding. A simple rule says: ''Step onto the ball'', i.e. step onto the left rudder pedal in case the ball is on the l.h.s.
\medskip
\centerline{\fbox{
\includegraphics[clip,width=12.5cm]{panel5}
}}
\smallskip
\noindent
Fig.\,5: \textit{The panel.}
\medskip
If you don't have pedals or lack the experience to handle the proper ratio between aileron/rudder automatically, you can start
\FlightGear{} with the option \texttt{-$ $-enable-auto-coordination}.\index{auto
coordination}
To the r.h.s of the artificial horizon you will find the \Index{altimeter} showing the height
above sea level (not ground!) in hundreds of feet. Below the altimeter is the
\Index{vertical speed indicator} indicating the rate of climbing or sinking of your plane
in hundreds of feet per minute. While you may find it more convenient to use then the
altimeter in cases, keep in mind that its display usually has a certain lag in time.
Further below the vertical speed indicator is the RPM (rotations per minute)
indicator\index{RPM indicator}, which displays the rotations per minute in 100 RPMs. The
green arc marks the optimum region for long-time flight.
The group of the main instruments further includes the \Index{gyro compass} being
situated below the artificial horizon. Besides this one, there is a \Index{magnetic
compass} sitting on top of the panel.
Four of these gauges being arranged in the from of a ''T'' are of special importance: The
air speed indicator, the artificial horizon, the altimeter, and the compass should be
scanned regularly during flight.
Besides these, there are several supplementary instruments. To the very left you will find the
\Index{clock}, obviously being an important tool for instance for determining turn rates.Below the clock there are several smaller gauges displaying the technical state of your engine. Certainly the most important of them is the \Index{fuel indicator} - as any pilot should know.
The \Index{ignition switch} is situated in the lower left corner of the panel (cf. Fig.\,4). It has five positions: ''OFF'', ''L'', ''R'', ''BOTH'', and ''START''. The first one is obvious. ''L'' and ''R'' do not refer to two engines (actually the Cessna does only have one) but to two magnetos being present for safety purposes. The two switch positions can be used for test puposes during preflight. During normal flight the switch should point on ''BOTH''. The extreme right position is for \index{starting the engine} using a battery-powered \Index{starter} (to be operated with the SPACE key in flight gear).
Like in most flight simulators, you actually get a bit more than in a real plane. The red field directly below the gyro compass displays the state of the \Index{brakes}, i.e., it is lit in case of the brakes being engaged. The instruments below indicate the position of your\Index{yoke}. This serves as kind of a compensation for the missing forces you feel while pushing a real \Index{yoke}. Three of the arrows correspond to the three axes of your yoke/pedal controlling nose up/down, bank left/right, rudder left/right, and throttle. (Keep in mind: They do \textbf{not} reflect the actual position of the plane!) The left vertical arrow indicates elevator trim.
The right hand side of the panel is occupied by the \Index{radio stack}. Here you find
two \Index{VOR} receivers (NAV),\index{NAV} an \Index{NDB} receiver
(\Index{ADF}) and two \Index{communication radio}s (COMM1/2)\index{COMM1}\index{COMM2} as
well as the autopilot.
The \Index{communication radio} is used for communication with \Index{air traffic
facilities}; it is just a usual radio transceiver working in a special frequency range.
The frequency is displayed in the ''COMM'' field. Usually there are two \Index{COM
transceiver}s; this way you can dial in the frequency of the next controller to contact
while still being in contact with the previous one.
The COM radio can be used to display \Index{ATIS} messages as well. For this purpose, just to dial in the ATIS frequency of the relevant airport.
The \Index{VOR} (Very High Frequency Omni-Directional Range) receiver is used for course
guidance during flight. The frequency of the sender is displayed in the ''\Index{NAV}'' field. In a sense, a VOR acts similarly to a light house permitting to display the position of the
aircraft on a radial around the sender. It transmits one omni-directional ray of radio
waves plus a second ray, the phase of which differs from the first one depending on its
direction (which may be envisaged as kind of a ''rotating'' signal). The phase difference between the two signals allows evaluating the angle of the aircraft on a 360 degrees circle
around the VOR sender, the so-called radial. This radial is then displayed on the gauges
NAV1 and NAV2, resp., left to frequency field. This way it should be clear that the VOR display, while indicating the position of the aircraft relative to the VOR sender, does not say anything about the orientation of the plane.
Below the two COM/NAV devices is an \Index{NDB} receiver called ADF (automatic direction
finder). Again there is a field displaying the frequency of the facility. The ADF can be
used for navigation, too, but contrary to the VOR does not show the position of the plane
in a radial relative to the sender but the direct heading from the aircraft to the
sender. This is displayed on the gauge below the two NAV gauges.
Above the COMM1 display you will see three LEDs in the colors blue, amber, and white
indicating the outer, middle, and, inner, resp. marker beacon.\index{marker,
outer}\index{marker, inner}\index{marker, middle} These show the distance to the runway
threshold during landing. They to not require the input of a frequency.
Below the radios you will find the \Index{autopilot}. It has five keys for WL = ''Wing-Leveler'', ''HDG'' = ''Heading'', NAV, APR = ''Glide-Slope'', and ALT = ''Altitude''. These keys when engaged hold the corresponding property.
You can change the numbers for the radios using the mouse. For this purpose, click left/right to the circular knob below the corresponding number. The corresponding switch left to this knob can be used for toggling between the active/standby frequency.
A detailed description of the workings of these instruments and their use for navigation
lies beyond this Guide; if you are interested in this exciting topic, we suggest
consulting a book on instrument flight (simulation). Besides, this would be material for
a yet to be written \FlightGear{} Flight School.
It should be noted, that you can neglect these radio instruments as long as you are strictly flying according to \Index{VFR} (\Index{visual flight rules}). For those wanting to do \Index{IFR} (\Index{instrument flight rules}) flights, it should be mentioned that \FlightGear{} includes a huge database of \Index{navaids} worldwide.
Finally, you find the \Index{throttle}, \Index{mixture}, and flap control\index{flaps} in
the lower right of the panel (recall, flaps can be set via $[$ and $]$ or just using the mouse).
As with the keyboard, the panel\index{panel!reconfiguration} can be re-configured using
configuration files. As these have to be plane specific, they can be found under the
directory of the corresponding plane. As an example, the configuration file for the
default Cessna C172 can be found at \texttt{FlightGear/Aircraft/c172/Panels} as
\texttt{c172-panel.xml}. The accompanying documentation for customizing it (i.e. shifting,
replacing etc. gauges and more) is contained in the file \texttt{README.xmlpanel}\index{README.xmlpanel} written by John Check\index{Check, John},
to be found in the source code in the directory \texttt{docs-mini}.
Since version 0.8.0, \FlightGear{} has a 3D cockpit including a 3D cockpit as an alternative to the 2D panel mentioned above (see Fig. 6). This one can be activated using the option \texttt{-$ $-aircraft=c172-3d}. Its functionality is the same as that of the 2D panel mentioned above, but it gives a much more realistic view, while instruments may be better readable in the 2D cockpit.
\medskip
\centerline{\fbox{
\includegraphics[clip,width=12.5cm]{panel3d}
}}
\smallskip
\noindent
Fig.\,6: \textit{The 3D cockpit of the Cessna 172.}
\medskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{The Head Up Display\index{head up display}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
At current, there are two options for reading off the main flight parameters of the
plane: One is the instrument panel already mentioned, while the other one is the
\Index{HUD} (\textbf{H}ead \textbf{U}p \textbf{D}isplay) \index{head up display}. Neither
are \Index{HUD}s used in usual general aviation planes nor in civilian ones. Rather they
belong to the equipment of modern military jets. However, some might find it easier to
fly using the HUD even with general aviation aircraft. Several \Index{Cessna} pilots
might actually love to have one, but technology is simply too expensive for implementing
HUDs in general aviation aircraft. Besides, the HUD displays several useful figures
characterizing simulator performance, not to be read off from the panel.
The \Index{HUD} shown in Fig.\,7 displays all main flight parameters of the plane. In
the center you find the \Index{pitch indicator} (in degrees) with the \Index{aileron
indicator} above and the \Index{rudder indicator} below. A corresponding scale for the
elevation\index{elevation indicator} can be found to the left of the pitch scale. On the
bottom there is a simple \Index{turn indicator}.
There are two scales at the extreme left: The inner one displays the \Index{speed} (in
kts) while the outer one indicates position of the \Index{throttle}. The Cessna 172 takes
off at around 55 kts. The two scales on the extreme r.h.s display your \Index{height},
i.\,e. the left one shows the height above ground while the right of it gives that above
zero, both being displayed in feet.
Besides this, the \Index{HUD} delivers some additions information. On the upper left you
will find date and time. Besides, \Index{latitude} and \Index{longitude}, resp., of your current position are shown on top.
You can change color of the \textbf{HUD} using the ''H'' or ''h'' key. Pressing the toggle ''i/I'' minimizes/maximizes the HUD.
\medskip
\centerline{\fbox{
\includegraphics[clip,width=12.5cm]{hud2}
}}
\smallskip
\noindent
Fig.\,7: \textit{The HUD, or Head Up Display.}
\medskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Mouse controlled actions\index{mouse, actions}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Besides just clicking the menues, your mouse has got certain valuable functions in \FlightGear{}$\!$.
There are three \Index{mouse modes}.\index{mouse} In the normal mode (pointer cursor) panel's controls can be operated with the mouse. To change a control, click with the left/middle mouse button on the corresponding knob/lever. While the left mouse button leads to small increments/decrements, the middle one makes greater ones. Clicking on the left hand side of the knob/lever decreases the value, while clicking on the right hand side increases
it.
Right clicking the mouse activates the simulator control mode (cross hair cursor). This allows control of aileron/elevator via the mouse in absence of a joystick/yoke (enable \texttt{-$ $-enable-auto-coordination} in this case). If you have a joystick you certainly will not make use of this mode
Right clicking the mouse another time activates the view control mode (arrow cursor).
This allows changing direction of view, i.e. pan and tilt the view, via the mouse.
Right clicking the mouse once more resets it into the initial state.
If you are looking for some interesting \Index{places to discover} with \FlightGear{}
(which may or may not require downloading additional scenery) you may want to check
\medskip
\web{http://www.flightgear.org/Places/}.
\medskip
\noindent
There is now a menu entry for entering directly the \Index{airport code} of the
airport you want to start from.
Finally, if you're done and are about to leave the plane, just hit the ESC key or use the
corresponding menu entry to \Index{exit} the program. It is not suggested to simply
''kill'' the simulator by clicking the text window.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Some further reading for student pilots\label{flightschoool}\index{flight schools}\index{text books}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
In view of that fact that there is not yet a \FlightGear{} specific flight course, here
are some useful hints to texts for those who want to learn piloting a plane.
First, there is an excellent \Index{tutorial} written by David Megginson\index{Megginson, David} -- being one of the main developers of \FlightGear{} -- on flying a basic airport circuit specifically using \FlightGear{}. This document includes a lot of screen shots, numerical material etc., and is available from
\medskip
\web{http://www.flightgear.org/Docs/Tutorials/circuit}.
\medskip
\noindent
Anyone new (and not so new) to \FlightGear{} is highly recommended to try this as a start!
Moreover, there are several more \Index{tutorial}s being not \FlightGear{} specific, but nonetheless helpful as well. First, a quite comprehensive manual of this type is the \Index{Aeronautical Information Manual}, published by the \Index{FAA}, and being online available at
\medskip
\web{http://www.faa.gov/ATPubs/AIM/}.
\medskip
\noindent
This is the Official Guide to Basic Flight Information and ATC Procedures by the FAA. It
contains a lot of information on flight rules, flight safety, navigation, and more. If
you find this a bit too hard reading, you may prefer the \Index{FAA Training Book},
\medskip
\web{http://avstop.com/AC/FlightTraingHandbook/},
\medskip
\noindent
which covers all aspects of flight, beginning with the theory of flight and the working
of airplanes, via procedures like takeoff and landing up to emergency situations. This is
an ideal reading for those who want to learn some basics on flight but don't (yet) want
to spend bucks on getting a costly paper pilot's handbook.
While the handbook mentioned above is an excellent introduction on \Index{VFR} (visual
flight rules), it does not include flying according to \Index{IFR} (instrument flight
rules). However, an excellent introduction into navigation and flight according to
Instrument Flight Rules written by Charles Wood\index{Wood, Charles} can be found at
\web{http://www.navfltsm.addr.com/}.
Another comprehensive but yet readable text is John Denker's\index{Denker, John}
''\Index{See how it flies}'', available at
\medskip
\web{http://www.monmouth.com/~jsd/how/htm/title.html}.
\medskip
\noindent
This is a real online text book, beginning with Bernoulli's principle, drag and power,
and the like, with the later chapters covering even advanced aspects of VFR as well as
IFR flying
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections, added Fig.1.
%% revision 0.10 1998/10/01 michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% Complete revision of keyborad controls, interesting places
%% revision 0.12 1999/03/07 michael
%% Corrected rudder key
%% revision 0.20 1999/06/04 michael
%% HUD completely rewritten, added panel section with picture, and menu section
%% updated keystrokes
%% revision 0.3 2000/04/20 michael
%% again updated and added keystrokes
%% revised menu entries
%% picture of new panel and re-written panel section
%% added mouse control section
%% Updated many keys, notably autopilot related, added two new tables
%% revision 0.4 2001/05/12 michael
%% updated/added many keystrikes, updated/added panel description
%% (radio stack etc.), new panel pic, panel before HUD now
%% short description of VOR/NDB
%% revision 0.41 2001/01/01 michael
%% added section on flight school material
%% added hints to user configurable *.xml files
%% revision 0.5 2002/01/01 michael
%% revised all changed keybindings now mostly read off of keyboard.xml
%% restructured tables more logically and put into separate files
%% for inclusion in Short Reference
%% New panel picture and revised descirption of panel according to new features
%% New HUD picture
%% revision 0.6 2002/09/05 michael
%% Several corrections/tweaks in plus renumbering of tables
%% Tweaks in menu entries
%% Added 3D cockpit picture
%% Changing numbers in radios

456
Docs/source/free.tex Normal file
View file

@ -0,0 +1,456 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: free.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Want to have a free flight? Take {\FlightGear{}}!\label{free}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Yet Another Flight Simulator?}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm} WANT TO HAVE A FREE FLIGHT?}{\thesection\hspace*{1mm}
YET ANOTHER FLIGHT SIMULATOR?}
Did you ever want to fly a plane yourself, but lacked the money or ability to do so? Are
you a real pilot looking to improve your skills without having to take off? Do you want
to try some dangerous maneuvers without risking your life? Or do you just want to have
fun with a more serious game without any violence? If any of these questions apply
to you, PC flight simulators are just for you.
You may already have some experience using \Index{Microsoft}'s {\copyright} Flight Simulator
or any other of the commercially available PC flight simulators. As the
price tag of those is usually within the {\$}50 range, buying one of them should not be a
serious problem given that running any serious PC flight simulator requires PC hardware
within the {\$}1500 range, despite dropping prices.
With so many commercially available flight simulators, why would we spend
thousands of hours of programming and design work to build a free flight
simulator? Well, there are many reasons, but here are the major ones:
\begin{itemize}
\item All of the commercial simulators have a serious drawback: they are made
by a small group of developers defining their properties according to what
is important to them and providing limited interfaces to end users. Anyone
who has ever tried to contact a commercial developer would agree that getting
your voice heard in that environment is a major challenge. In contrast,
\FlightGear{} is designed by the people and for the people with everything
out in the open.
\item Commercial simulators are usually a compromise of features and
usability. Most commercial developers want to be able to serve a broad
segment of the population, including serious pilots, beginners, and even
casual gamers. In reality the result is always a compromise due to deadlines
and funding. As \FlightGear{} is free and open, there is no need for such a
compromise. We have no publisher breathing down our necks, and we're all
volunteers that make our own deadlines. We are also at liberty to support
markets that no commercial developer would consider viable, like the
scientific research community.
\item Due to their closed-source nature, commercial simulators keep developers
with excellent ideas and skills from contributing to the products. With
\FlightGear{}, developers of all skill levels and ideas have the potential
to make a huge impact on the project. Contributing to a project as large
and complex as \FlightGear{} is very rewarding and provides the developers
with a great deal of pride in knowing that we are shaping the future of a
great simulator.
\item Beyond everything else, it's just plain fun! I suppose you could
compare us to real pilots that build kit-planes or scratch-builts. Sure,
we can go out a buy a pre-built aircraft, but there's just something special
about building one yourself.
\end{itemize}
The points mentioned above form the basis of why we created \FlightGear{}.
With those motivations in mind, we have set out to create a high-quality
flight simulator that aims to be a civilian,\index{Flight simulator!civilian}
multi-platform,\index{Flight simulator!multi-platform} open,\index{Flight simulator!open}
user-supported,\index{Flight simulator!user-sported} and user-extensible\index{Flight
simulator!user-extensible} platform. Let us take a closer look at each of these
characteristics:
\begin{itemize}
\item \textbf{Civilian:}\index{Flight simulator!civilian} The project is primarily aimed
at civilian flight simulation. It should be appropriate for simulating general aviation
as well as civilian aircraft. Our long-term goal is to have \FlightGear{} FAA-approved as
a flight training device. To the disappointment of some users, it is currently not a
combat simulator; however, these features are not explicitly excluded. We just have
not had a developer that was seriously interested in systems necessary for combat
simulation.
\item\textbf{Multi-platform:}\index{Flight simulator!multi-platform} The
developers are attempting to keep the code as platform-independent as possible. This
is based on their observation that people interested in flight simulations run quite a
variety of computer hardware and operating systems. The present code supports the
following \Index{Operating Systems}:
\begin{itemize}
\item\Index{Linux} (any distribution and platform),
\item\Index{Windows NT/2000/XP} (Intel/AMD platform),
\item\Index{Windows 95/98/ME},
\item\Index{BSD UNIX},
\item\Index{SGI IRIX},
\item\Index{Sun-OS},
\item{Macintosh.}
\end{itemize}
At present, there is no known flight simulator -- commercial or free -- supporting such a
broad range of platforms.
\item\textbf{Open:}\index{Flight simulator!open} The project is not restricted to a
static or elite cadre of developers. Anyone who feels they are able to contribute
is most welcome. The code (including documentation) is copyrighted under the
terms of the \Index{GNU General Public License} (\Index{GPL}).
The \Index{GPL} is often misunderstood. In simple terms it
states that you can copy and freely distribute the program(s) so licensed.
You can modify them if you like and even charge as much money as want to for the
distribution of the modified or original program. However, you must freely provide
the entire source code to anyone who wants it, and it must retain the original copyrights.
In short:
\medskip
\centerline{\textit{''You can do anything with the software except make it non-free''}.}
The full text of the \Index{GPL} can be obtained from the \FlightGear{} source code or from
\medskip
\web{http://www.gnu.org/copyleft/gpl.html}.
\medskip
\item\textbf{User-supported and user-extensible:}\index{Flight simulator!user-supported}
\index{Flight simulator!user-extensible} Unlike most commercial simulators,
\FlightGear{}''s scenery and aircraft formats, internal variables, APIs, and everything
else are user accessible and documented from the beginning. Even without any explicit
development \Index{documentation} (which naturally has to be written at some point),
one can always go to the \Index{source code} to see how something works. It is the
goal of the developers to build a basic engine to which scenery designers, panel
engineers, maybe adventure or ATC routine writers, sound artists, and others can build
upon. It is our hope that the project, including the developers and end users, will
benefit from the creativity and ideas of the hundreds of talented ''simmers'' around
the world.
\end{itemize}
Without doubt, the success of the \Index{Linux} project, initiated by Linus
Torvalds,\index{Torvalds, Linus} inspired several of the developers.
Not only has \Index{Linux} shown that distributed development of highly
sophisticated software projects over the Internet is possible, it has also
proven that such an effort can surpass the level of quality of competing
commercial products.
\medskip
\centerline{\fbox{
\includegraphics[clip,width=12.5cm]{KSFOapp}
}}
\smallskip
\noindent
Fig.\,1: \textit{\FlightGear{} under UNIX: Bad approach to San Francisco International - by one of the authors of this manual\ldots}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{System Requirements}\index{system requirements}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
In comparison to other recent flight simulators, the \Index{system requirements} for
\FlightGear{} are not extravagant. A decent PIII/800, or something in that range, should be
sufficient given you have a proper 3-D \Index{graphics card}. Additionally, any
modern \Index{UNIX}-type \Index{workstation} with a 3-D graphics card will handle
\FlightGear{} as well.
One important prerequisite for running \FlightGear{} is a graphics card whose driver supports
\Index{OpenGL}. If you don't know what \Index{OpenGL} is, the overview given at the OpenGL website
\medskip
\web{http://www.opengl.org}
\medskip
\noindent
says it best: ``Since its introduction in 1992, OpenGL has become the
industry's most widely used and supported 2-D and 3-D graphics application programming
interface (API)...''.
\FlightGear{} does not run (and will never run) on a graphics board which only supports
\Index{Direct3D}. Contrary to OpenGL, Direct3D is a proprietary interface, being restricted to
the Windows operating system.
You may be able to run \FlightGear{} on a computer that features a 3-D video card not
supporting hardware accelerated \Index{OpenGL} -- and even on systems without 3-D
graphics hardware at all. However, the absence of hardware accelerated OpenGL support can bring even the fastest machine to its knees. The typical signal for missing hardware acceleration
are \Index{frame rate}s below 1 frame per second.
Any modern 3-D graphics featuring \Index{OpenGL} support will do. For
\Index{Windows} video card drivers that support OpenGL, visit the home page of your video
card manufacturer. You should note that sometimes OpenGL drivers\index{OpenGL!drivers}
are provided by the manufacturers of the graphics chip instead of by the makers of the
board. If you are going to buy a graphics card for running \FlightGear{}, one based on a
NVIDIA chip (TNT X/Geforce X) might be a good choice.
To install the executable and basic scenery, you will need around 50 MB of free \Index{disk
space}. In case you want/have to to compile the program yourself you will need about an additional
500 MB for the source code and for temporary files created during compilation. This does not
include the development environment, which will vary in size depending on the operating system
and environment being used. Windows users can expect to need approximately 300 MB of additional
disk space for the development environment. Linux and other UNIX machines should have most of
the development tools already installed, so there is likely to be little additional space
needed on those platforms.
For the \Index{sound effects}, any capable \Index{sound card} should suffice.
Due to its flexible design, \FlightGear{} supports a wide range of \Index{joysticks} and
\Index{yokes} as well as \Index{rudder pedals} under \Index{Linux} and \Index{Windows}.
\FlightGear{} can also provide interfaces to full-motion flight chairs.
\FlightGear{} is being developed primarily under \Index{Linux}, a free UNIX clone
(together with lots of GNU utilities) developed cooperatively over the Internet in much
the same spirit as \FlightGear{} itself. \FlightGear{} also runs and is partly developed
under several flavors of \Index{Windows}. Building \FlightGear{} is also possible on a Macintosh OSX
and several different UNIX/X11 workstations. Given you have a proper \Index{compiler} installed,
\FlightGear{} can be built under all of these platforms. The primary compiler for all platforms is
the free \Index{GNU C++} compiler (the \Index{Cygnus} \Index{Cygwin} compiler under Win32).
If you want to run \FlightGear{} under Mac OSX we suggest a Power PC G3 300 MHz or better. As a
graphics card we would suggest an ATI Rage 128 based card as a minimum. Joysticks are supported
under Mac OS 9.x only; there is no joystick support under Max OSX at this time.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Choosing A Version}\index{FlightGear!versions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Concerning the \FlightGear{} source code there exist two branches, a stable branch and a
developmental branch.\index{branch, stable}\index{branch, developmental} Even version numbers
like 0.6, 0.8, and (someday hopefully) 1.0 refer to stable releases, while odd
numbers like 0.7, 0.9, and so on refer to developmental releases. The policy is to only do
bug fixes in the even versions, while new features are generally added to odd-numbered
versions which, after all things have stabilized, will become the next stable release
with a version number calculated by adding 0.1.\label{branches}
To add to the confusion, there usually are several versions of the ''unstable''
branch. First, there is a ''latest official release'' which the pre-compiled binaries are based
on. It is available from
\medskip
\web{ftp://ftp.flightgear.org/pub/fgfs/Source/FlightGear-X.Y.Z.tar.gz}
\medskip
For developers there exist CVS snapshots\index{CVS snapshots}\index{nightly snapshots} of the
source code, available from
\medskip
\web{ftp://www.flightgear.org/pub/flightgear/Devel/Snapshots/}.
\medskip
\noindent
While theses are quite recent, they may still be sometimes a few days back behind
development. Thus, if you really want to get the very latest and greatest (and, at times,
buggiest) code, you can use a tool called \Index{anonymous cvs}\index{cvs, anonymous}
available from
\medskip
\web{http://www.cvshome.org/}
\medskip
\noindent
to get the recent code. A detailed description of how to set this up for \FlightGear{}
can be found at
\medskip
\web{http://www.flightgear.org/cvsResources/}.
\medskip
\noindent
Unfortunately, the system implemented above does not really work as it should. As a matter of
fact, the stable version is usually so much outdated, that it does not at all reflect the state
of development \FlightGear{} has reached. Given that the recent developmental versions on the
other hands may contain bugs (\ldots undocumented features), we recommend using the
''latest official (unstable) release'' for the average user. This is the latest version named at
\web{http://www.flightgear.org/News/};
\medskip
\noindent
usually this is also the version which the binary distributions\index{distribution!binary}
available at
\medskip
\web{http://www.flightgear.org/Downloads/}
\medskip
\noindent
are based on. If not otherwise stated, all procedures in this ``Installation and Getting Started''
will be based on these packages.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Flight Dynamics Models\label{flight models}}\index{flight dynamics model}\index{flight model}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Historically, \FlightGear{} has been based on a flight model it inherited (together
with the Navion airplane) from LaRCsim. As this had several limitations (most important,
many characteristics were hard wired in contrast to using configuration files), there were
several attempts to develop or include alternative \Index{flight models}. As a result,
\FlightGear{} supports several different flight models, to be chosen from at runtime.
The most important one is the JSB flight model developed by Jon Berndt. Actually, the JSB
flight model is part of a stand-alone project called \JSBSim, having its home at
\medskip
\web{http://jsbsim.sourceforge.net/}.
\medskip
\noindent
Concerning airplanes, the JSB flight model at present provides support for a
\Index{Cessna 172}, a \Index{Cessna 182}, a \Index{Cessna 310}, and for an experimental plane
called \Index{X15}. Jon and his group are gearing towards a very accurate flight model, and the
JSB model has become \FlightGear{}'s default flight model.
As an interesting alternative, Christian Mayer developed a flight model of a hot air
balloon. Moreover, Curt Olson integrated a special ''UFO'' slew mode, which
helps you to quickly fly from point A to point B.
Recently, Andrew Ross contributed another flight model called \YASim{}\index{YASim} for
\textit{Yet Another Simulator}. At present, it sports another \Index{Cessna 172}, a
\Index{Turbo 310}, a fairly good \Index{DC-3} model, along with a \Index{Boeing 747},
\Index{Harrier}, and \Index{A4}. \YASim{} takes a fundamentally different approach since it's
based on geometry information rather than aerodynamic coefficients. Where \JSBSim{} will be exact for every situation that is known and flight tested, but may have odd and/or unrealistic behavior outside normal flight, \YASim{} will be sensible and consistent in almost every flight situation, but is likely to differ in performance numbers.
As a further alternative, there is the \Index{UIUC flight model}, developed by a
team at the University of Illinois at Urbana-Champaign. This work was
initially geared toward modeling aircraft in icing conditions\index{icing!modelling} together with a smart icing system to better enable pilots to fly safely in an icing
encounter. While this research continues, the project has expanded to
include modeling ''nonlinear'' aerodynamics, which result in more realism
in extreme attitudes, such as stall and high angle of attack flight. Two
good examples that illustrate this capability are the \Index{Airwave Xtreme 150}
\Index{hang glider} and the 1903 \Index{Wright Flyer}. For the hang glider, throttle can
be use to fly to gliding altitude or Ctrl-U can be used to jump up in
1000-ft increments. Try your hand at the unstable Wright Flyer and don't
stall the canard! Considerable up elevator trim will be required for level
flight. In general, the aerodynamics are probably very close to the
original Wright Flyer as they are partly based on experimental data taken
on a replica tested recently at the NASA Ames Research Center. Also
included are two more models, a \Index{Beech 99} and \Index{Marchetti S-211} jet trainer,
which are older generation UIUC/FGFS models and based on simpler ''linear''
aerodynamics. More details of the UIUC flight model and a list of aircraft
soon to be upgraded can be found on their website at
\medskip
\href{http://amber.aae.uiuc.edu/~m-selig/apasim.html}{http://amber.aae.uiuc.edu/$\tilde{~~}$m-selig/apasim.html}
\medskip
\noindent
Note that the 3D models of the UIUC airplanes\index{UIUC airplanes!3D models} can be downloaded from a site maintained by Wolfram Kuss
\medskip
\web{http://home.t-online.de/home/Wolfram.Kuss/}
\medskip
It is even possible to drive FlightGear's scene display using an external FDM\index{FDM!external}
running on a different computer -- although this might not be a setup recommended to people just
getting in touch with \FlightGear.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{About This Guide}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markright{\thesection.\hspace*{1mm} ABOUT THIS GUIDE}
There is little, if any, material in this Guide that is presented here exclusively. You
could even say with Montaigne that we ''merely gathered here a big bunch of other men's
flowers, having furnished nothing of my own but the strip to hold them together''. Most
(but fortunately not all) of the information herein can also be obtained from the
\FlightGear{} web site\index{FlightGear Website} located at
\medskip
\web{http://www.flightgear.org/}
\medskip
Please, keep in mind that there are several mirrors of the \FlightGear{} web sites, all
of which are linked to from the \FlightGear{} homepage listed above.
You may prefer to download \FlightGear{} from a mirror closer to you than from the
main site.
This \textit{\FlightGear{} Installation and Getting Started} manual is intended to be a
first step towards a complete \FlightGear{} documentation\index{FlightGear
documentation}. The target
audience is the end-user who is not interested in the internal workings of \Index{OpenGL}
or in building his or her own scenery. It is our hope, that someday there
will be an accompanying \textit{\FlightGear{} Programmer's Guide}\index{FlightGear
Programmer's Guide} (which could be based on some of the documentation found at
\medskip
\web{http://www.flightgear.org/Docs};
\medskip
\noindent
a \textit{\FlightGear{} Scenery Design Guide},\index{FlightGear Scenery Design Guide}
describing the Scenery tools now packaged as \TerraGear{}; and a \textit{\FlightGear{}
Flight School}\index{FlightGear Flight School} package.
\medskip
As a supplement, we recommend reading the \FlightGear{} FAQ to be found at
\web{http://www.flightgear.org/Docs/FlightGear-FAQ.html}
which has a lot of supplementary information that may not be included in this manual.
\textbf{We kindly ask you to help us refine this document by submitting corrections,
improvements, and suggestions. All users is invited to contribute descriptions of alternative
setups (graphics cards, operating systems etc.). We will be more than happy to include
those into future versions of this \textit{Installation and Getting Started} (of course
not without giving credit to the authors).}
While we intend to continuously update this document, we may not be able to produce a
new version for every single release of {\FlightGear{}}. To do so would require more
manpower that we have now, so please feel free to jump in and help out. We hope to
produce documentation that measures up to the quality of \FlightGear{} itself.
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections
%% revision 0.10 1998/10/01 michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% minor corrections on platforms, satellite data, OpenGL
%% added Navion pic
%% revision 0.12 1999/03/07 michael
%% update on recent development
%% revision 0.20 1999/06/04 michael
%% updates on recent development, corrections of links
%% revision 0.3 2000/04/20 michael
%% Rewritten for version 0.7.2, many changes, added development since summer 1999,
%% development vs. stable version, split into SimGear/FlightGear/TerraGear
%% Proofread by Jon Berndt
%% revision 0.4 2001/05/12 michael
%% update on development during the last year, corrections on requirements,
%% new sections on different versions and on flight models
%% revision 0.41 2001/07/01 martin & michael
%% comment on external FDM
%% hint to FAQ
%% extended remarks on property manager
%% revision 0.5 2002/01/01 michael
%% several minor updates, corrected links
%% Hint on YASim by Martin
%% Picture KSFOapp added by Martin
%% System requirements contributed from Darrell
%% revision 0.6 2002/02/23 cameron
%% Many, many corrections
%% Rewrote several parts
%% Changed section titles
%% revision 0.6 2002/09/07 michael
%% Added contribution by M Selig on UIUC models

122
Docs/source/getstart.tex Normal file
View file

@ -0,0 +1,122 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Master file
%%
%% Written by Michael Basler % Bernhard Buckel, starting September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%% & Bernhard Buckel (buckel@wmad95.mathematik.uni-wuerzburg.de)
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: getstart.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
\documentclass[11pt,openany]{book}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{times}
\usepackage{hyperref}
%\usepackage[html,2]{tex4ht}
\newcommand{\Index}[1]{#1\index{#1}}
\newcommand{\FlightGear}{{\itshape\bfseries FlightGear}}
\newcommand{\TerraGear}{{\itshape\bfseries TerraGear}}
\newcommand{\SimGear}{{\itshape\bfseries SimGear}}
\newcommand{\PLIB}{{\itshape\bfseries PLIB}}
\newcommand{\JSBSim}{{\itshape\bfseries JSBSim}}
\newcommand{\YASim}{{\itshape\bfseries YASim}}
\newcommand{\web}[1]{\href{#1}{#1}}
\newcommand{\mail}[1]{\href{mailto:#1}{#1}}
\newcommand{\Cygwin}{{\itshape\bfseries Cygwin}}
\newcommand{\longpage}{\enlargethispage{\baselineskip}}
\newcommand{\shortpage}{\enlargethispage{-\baselineskip}}
\makeindex
\begin{document}
\include{title}
\include{preface}
\part{Installation}
\include{free}
\include{building}
\include{prefligh}
\part{Flying with \FlightGear{}}
\include{takeoff}
\include{flight}
\part{Appendices}
\begin{appendix}
\include{missed}
\include{opengl}
\include{landing}
\end{appendix}
\include{GSindex}
\end{document}
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% incl. Linux stuff from b buckel
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections, added Fig.1.
%% Revision 0.02 1998/09/29 michael
%% added Chapter takeoff from b buckel
%% revision 0.10 1998/10/01 michael
%% added Chapter missed approach from b buckel
%% inclusion file splitting
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% corrected ~, _ in URLs
%% revision 0.12 1999/03/07 michael
%% changed Font to Times in print version
%% dropped .ps file
%% working URLs in .html version
%% corrected misspellings
%% revision 0.20 1999/06/04 michael
%% updated for fgfs 0.6
%% added sections on menu and panel
%% smaller and updated pix for faster download
%% revision 0.21 1999/06/30 michael
%% Linux update by Bernhard
%% revision 0.22 2000/01/18 michael
%% Minor corrections
%% revision 0.3 2000/04/20 michael
%% Rewrite for version 0.7.2
%% Discarded TerraGear which should go into a Scenery Maker's Guide
%% Complete Proofreading
%% Chapter Freeflight proofread by Jon Berndt
%% revision 0.31 2000/04/22 michael
%% Added remarks on OpenGL/Matrox by Alex Perry
%% revision 0.4 2001/05/12 michael
%% several chapters completely re-writte, others updated, outdated stuff deleted
%% changed (hopefully) all addresses to point to the Sourceforge server
%% complete proof-reading and correction
%% revision 0.41 2001/07/01 michael & martin
%% added Martin Spott as contributor
%% Numerous corrections to all sections by Martin after proof-reading
%% reset all links to the FlightGear site back to flightgear.org :-(
%% revision 0.5 2002/02/15 michael/martin
%% Updates for version 0.7.9, plit into three parts including appendices,
%% re-arrangement of several stuff for better clarity, updated links
%% OpenGL stuff as last chapter reflecting most systems being OpenGl ready today
%% clickable links and bookmarks in the .pdf version using pdflatex
%% revision 0.51 2002/02/16 michael/martin
%% Proofreading corrections by us and others
%% revision 0.6 2002/09/09 michael/martin
%% Update for version 0.8 if FlightGear
%% Spell checking
%% Several 3rd party contributions (see landing.tex)

634
Docs/source/hud2.eps Normal file
View file

@ -0,0 +1,634 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: jpeg2ps V1.5 by Thomas Merz
%%Title: hud2.jpg
%%CreationDate: Tue Feb 12 21:04:42 2002
%%BoundingBox: 20 20 404 308
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%EndProlog
%%Page: 1 1
/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
(JPEG file 'hud2.jpg' needs PostScript Level 2!\n) dup print flush
/Helvetica findfont 20 scalefont setfont 100 100 moveto show showpage stop
} if
save
/RawData currentfile /ASCII85Decode filter def
/Data RawData << >> /DCTDecode filter def
20 20 translate
384.00 288.00 scale
/DeviceRGB setcolorspace
{ << /ImageType 1
/Width 640
/Height 480
/ImageMatrix [ 640 0 0 -480 0 480 ]
/DataSource Data
/BitsPerComponent 8
/Decode [0 1 0 1 0 1]
>> image
Data closefile
RawData flushfile
showpage
restore
} exec
s4IA0!"_al8O`[\!<E1F!-eJDs4[N@!!WQ0"pG,6"pG29#6kG@&./aN#mq@V%h'!
c'GqZ''G_H&*@2dG)^?=<(*G.N,:4ce.Oc5W/MJb)0I8+r.0&$%6NIDs#7:_D'+,
'[-lNj>-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n
$Jl-n,,4!"fJ;hu\E2!?qLF&HMtG!WU(<)?9a=!s&E&zz!!!$$!!<?-#62UA)$'a
=!<E3%zz!!!!"!WrQ/s4RG]!s&B'&-EID!!2`$[f'jaNHmBtD^X9th92JYbBcZ&F
lCE4G]G0<*/W:&,'DkcSTo0&?6"gRLE^m"aIRQr-XIdLf7tPmiQ.R7E[P05M:[M,
FlCE4G]G0<*/W:&,'DkcSTo0&?6"gRLE^m"aIRQr-XIdLf7tPmiQ.R7E[P05NI*Z
U9:ni-)04ng/H$&[T@nY*WUBT\;opcF4JHsG/fdO-1!pug>qsM-;K@J6B.?t`EhV
$RW-)`&*E1'7eNB^hU#n_>3N@2a/0.=*("AbPFf-Q,C!)33EhV$RW-,!da&6sbd[
[gi-S?E<b%%AqN?'Io/'p7^29^qn>_u[^#b1!@*<C^dL-!RL"B%kR3f\E=&_ih;;
aiB4aC:qh8-"NtMNH(S+TsQd&J0S``FN(2q6K@iD&">Zf0FD'6j-IObDif#,gA`j
)-qfGPF#\JH@Z;]HnqHGK#mH,XVMhtfP2Qr!#c4^M(E26XG^5).lN!h`9.4]((ik
N5fjRn(aKZ#,a8g'lIS&-.ob\/*J#Mu(]l%%=-G.@JQakI9;ad&'hXbERPriLerV
1b.0]O7AMe$SI1R;h_4WJg[N1L(i%iCt-8KA,k;j'5%!NYId5DWs9)t+(75Yq?D8
cqf%Okh>KYiX5>]E=P<db$L;X%04WWEfj9Vm^U/(Z!kf*mjB>c1.eZWsSiZl%rI)
.oPPB"2B?iK.i;QHK[n"p?&"Z7M9X_c/6FR"=11[GWX\[:trE]!t_4[C&?Nb@XW^
`Y/D6MT(KG8Ke]j3f"eu=@SCoA0?uO:kM.L8m2Q=63[u0KJHL]Kb":r"XX3a+G2*
gM'S>%#XkEjJjFot,:nR"$Z)]][b@gKk,I=X@\pV-/(%XDc%f.;(aMWZig#'=\LC
aEXtnLaFHFa4d>1Fn)]5SY[9+gh+B@'mf`WoU6O3qt+Hd!;_A!Rp)4Dh:8K_Q.,V
m7a;Fj@r%W'3iej;6R.bIu1!!WUBAS3mdD+b=S(ec-b;O@](M-sEs`2RWPP@Ec%2
'#`$3Sr!^W@Ls5.#,TLVJ=hX?i^rk,Y8"\a>-%TP0"t7?m.?-M%"4QCi$(00gjad
9oeNkQGTm/"B!QGYq&,?>3`Dj`e94W%"n]&.2i=cC]]>h723i(XLP&:.^cKYg46U
XR38dM\6?GL[9S:jXFQHH8-*7Yj,-bX+bYroP!L+_]4433QHE=:/1_/2L'8Gl#Hk
Y]QCnp"@8eVM8;*7*@hgVL3BHe'j`^30$9TgT0pHGhAsu]E\kpX(>!bM#+>C`m!=
/a,.H3\6XiE;dE)_dH\7pk`2:Z;YD02QlB<F[c$p7T0b+r@sR<5l>CDk>?g'T7[J
C`5YUS9>&;kq$$=;#%X:h&ZaF.lV[Q_e:W6bRXG&luue=G[q%Y?7($:_3UlKk..*
$R.E?eXKIVCC7.eN:lNkMe&i/m`o!Q,us5/%9oj6Ek51GX;=#=ap*r>(Y1-q9NDp
$TY^\,q!1dIW?Y5b"tF)]ElCnp#p@p)ad1\lG"4srha&j&B9fp\=2ocl,$q-]Zt:
%R]h9XqX?e=,BG(BsaKb&YY-sgrd<-6oOt`cQ.5sSEC'lL=CA+@D)Q8Q6dogu:cE
&MJPuV!!TXmri<2quYPd,'ae13m_WMg)s(`.s&@2;^@)C@W"Mlt7#)=(sW/;:VPD
6foT%WXaV6ToXiS@?6/b@QO'P%cnhV2D..1="U6<:6dN?KAV3(;NeE7T#frq7X(Q
qaCTl>3=A`8/DnHki(_?+el*AUo-KYNY593S6^P$QTcIf@\X.gP%c(S<fL\-b4t0
N"BD[+=SLc+]/@!,af&jSMeo)mdaVJP7T-hb>:X262Oq?f/VMD+$D>-fl.MHDV90
6AMb16N1;g3kb9c""cubbGdF=]aa&tD#6';Sq?U.$ol)M;m%Xuc(a^U$W["/i!FU
kl^>/A%dMGgRT$%8)-=<pg33TI-7W[Wm#47UJ&e%"F[ZqE3G&>>Tpd&iEIA8)>jN
c!$`R:_/Qg&\4Z5S7`_NMSE*:gZ50B@JFGMs\;iUG:FSRkhWmCsHJ.gITOq,ppoL
ncVT:>3-A6,fgB<^]H\=Z5TOFART.N/J1jb%Z9_(GElND:-n*CK-t:4PG%Xf)a]g
J#a7WChaf5`P9Olk$+_+9$dgY&Q'g"r._]gk*L9>LgH!c!2OJ;;g^Nm9'/m7b,h-
k-lPO-tkKt_(SD$&a(peALXq+/`TbYP(Y*8pN7$M)@A-6;mOOj'W6qA.'&fNiKQ*
YSTS99Dg5Gc[Vd:J*!ok<DoeK^6SZ-%d9cFT75[3mnF&nn=,fjZ)$!tB+4/SR4VC
4'27oi#7!&>811db/K\?+HRd:rh*A9k\S<G%lKG.k^7.5V#s@ejUj(9,NR)"#sM*
kgaiK]#/5TBR$6=H"].9C`n!tAa>j)E*J:SZ_$=@`!t&<LJbT5SVoJ1]r'jsF=YR
.1Y<1!=UGs=ZS]4-]Xn2KYq'I8.@OGGSLIO?[Dc^Y^fiA8LA_<nG._H^("Wn@[Dl
e0=j5QW9b]@5Z6aP4,<JP#ZkZ46Pj$&!d@S6KjC:a%L;_=fg8nke1)8DU=Lg>!1g
P`:CuBUG:g#?P1o2bMelQ[helZ!`YQFs'HH!&;1/i<A"%9IWgtGW$$@%/sR?4HEP
$9N'XB(1,4,_\#<+\#-Wf'qCV9[^qW@W4pQGHak)BLIfP/*))IFq#pb=pAa19RY"
"iA1\M]<*ni6P`J'("=cOO2SAL<%,@];Ba'<@*r0@;MkQ>,Z0MQ7Yojg9t!$<c'k
i;O@Mc$YD!D+_E$Edk8Y+"j%17Y6Rt3M-j_US#E3ZJAS@E8Rk1f7BqjG,d^%BC+Z
**._'8/-0CIGWjOE_O:8@$8QArYc[IT\[EEtY8/5VA/1"lWO9!s2/sM's<)KC4AV
(>LAX\19CTt\1m$@mFA77Q%`-5Bq4'o0MfO\jFWKs:>VP;;r#g"X%<sr2fChufug
@HJ9=`#_3Z9l:+.h(0(SS\F1@A4PgCKRET<`)TA'sfo(gk?ro<Q>B-_$jnX4@K`p
WI-+[W.fb<Y3aSSK`]0p,*rXfEn!F;%sE29dE6O1GspppObM,`%&2epUZt2><>*4
M.1ojZ0,I9!MAWm;,?@*!)JUZ9K!N>C(:)tl)U:$Q9[8t^'"&^">nnV/gBtrU0o`
RYbGC.o<InQ\6",9uZV)e]3ssAmWRG!9FeK+1Q3gU2?nJ1IBL8B-#2;!k%1#rO?q
4p/>/_jVR9J<6Q'%I?b2BCp/<rQ`WYVJ)A/eLhFK%rQ,d7P[MP[P[14g>J%RNGs.
27mJZHB#g)31)p>='(J$!WcH?KPCbZC(,[@4@KTPC,0U'FYG6(95s%#k5u?Y[6">
WauC`Lmfbp8KabU<@h>c4%bgY&f:]:<&?s!d\TXQGG#l"0P[9]"2_TZ&Vqtq&gK[
gc;=4c<Jath'WpY#/L>7A'JgI5&C3!q@kh0DV'>%XS&&5MMSMd0=R\lN6L6%ViM'
lelViI=`^-^697[2\bL!=p$I+7"?4(8:XB>n`TNP]6X\359+om/q$PeSaW4WaF8u
;=+VJp7;M5k3ag:;;.XG:O%fJ73<%g81a=?ssCN_0M/.[EE0E`TXNWFRNF6Fgb[N
s%$96jsWGcreXklr>V=7fioAB#lMW=R\l"Y#n;UO@[`#5mW)u6IeU1@TLeYagN$F
&f=2D>bt<UL#A*OU=`Hs!_7hM#un>Jb99`g'uqV4aAskrEPR:$,=,"U9)s[&>d>*
2JkQe9c?)*'LTou9fZpJWm57X'As>D./Hq)$Ns$d;(mUG>7tMBS*XNko*XNko*XN
kn=pl5V)@7Gj=ooNlBIn*JGTg`OBImgJE$8mGBJdP4T,fY<=h\9uo?So\jA"Cqa#
A*Cbd-)_j-"2a$81]c^#bE8;4sdjc^0rDF62BG-_9+9k;"\cF!9#&aE5H\*@]6g9
_./k*8#A22B=g%LJDn6e""L$k;"&4c%f&8+k)t#3jYCfN5sA(@(pBDU8sN4o4s=C
(0JO36o3(!cSS#*@`lGEc.D0)lhKYOGa#J^F*W&9Nh9P#H`oq33;WJXhVL<mVd!F
hm6-FJo$pNFH2V!=p[^"VBM4c[k/a]q%`^4!M`Ej%[JCqGVd=3(8U7Y=%W(AsRlX
C.cBL>qV%.>+6^p,5k0B2OZ_\.JksLq$;!-&f3O>OlD1-.LSG_g#U1N*)jm(p7SR
-c/ik<+!h`42R8'[N@VSB%gk&tcYm544gF?/"=o_\HM+907Z/eA!`"9AW,!<`E+!
s&E&!!!!"!Ws#I":u4\+<`E_,;M&?"Viag,XYs+E<"Vl#QXr+!<iO8InQGU=Y,Mg
)_>kJjCZf\aU0GjMC>3V.&)SIU5C@nMC>3V.&)SIU5C@nMC>3V.&)SIU5C@nMC>3
V.&)SIU5C@N38De-6qEduMj2;c7Qq5`XG_WQdl#PB[B.pBh))G$VX3MTP>L`8Zaa
9^Z!0DM?EiYcNa]eDS0nW[E1A9^_Jl"m$,UYO-OIY/S0nW[E1A9^_Jl"m$,UYO-O
IY/S0nW[E1A9^_Jl"m$,UYO-OIY/S0nW[E1A9^_Jl"m$,UYO-OD>^$:Cgr(4XjZT
i@;E721^[T,7/;d2"lMXClih]eS?-mRh[L4-H/V:?8<n;nFd?PjZ\<VE<6Il&P\^
IUg,Ahj!S%GGRCLSb\<<a*L[t1#A;cb]b?pP+C9$oV["F]eSB2mn@r&44>57NqB5
q;nXpBR.!XkV*!+rl&PDVG%83?hO*b*GG[I.*SHJ6a)4hb.GL*S9Qm9p;]VitgrF
GF\M;m,mS%gO4-L]<NpO[@RuG(FrrAW+*)-,Y^]+98:R\pHr<At`A!^>VToi]pZa
r)=*KJ9`98%@:V:oRmK$,;VZ=_PM?Q3.I=$L9prrC!3MCZQYRk#F'c=Cc][B**4R
?fSab*J!CN'<!(Mj$ZNa/b>^@O3AV&Q;mTH[jrNCAp!6U.DhlTutL=iY,;AR<=mp
P5bDMkad1HUn<kN!,)8pqjI=*rr<W00mu]moNLmar$VC`^KUX0rQ4r3r8Jmt=82W
V:5k%X.SSYcPrYD)AcDakrP>!ZCUi,pSM`+i?46ZP->_>edIFL))`$?3]Um&^X=1
$OU8#M^/1@D'?OC-I?OBt'La4C$?u&LAf)oto;+60Q=A`.R082'5/KmLp'L<p2)]
Bs8$S8u^)][CbMQCPI]Fft>f*#4KiZaAeZcQ;K!!RgB-]3i^!/WuEnuqsP#Uc(+r
/04CePM&GDMdl1?PRrg]kj\2?g(<S.&)Uj?f=jg(*`-Wm(_atXf.tI5nHF4Y8]#m
'n;EYmsjOLU5Vc<-q"Y0/@*GMYug"ii8=A65mf$D"Rr[>ZGf`@6n"eD$LjdIntNS
6^P7UriNE@ti3LR\EFnrC?;C.D8ugE5;5pO>TAZH$0ek3R1foAJR$:H:'t&Ft=_3
n%pJ8AKdJU+]/Z.*%@XJk\T1!%clpn>-1!fBaMC>3V.'JPk<HEGTba`58-]7XBXH
#e]o/E("jA[P%Kh[om^C)]AhL8-9pj"6XM]t0DI]nL=(ZE'd.&)UQ7cqchb.Hq'%
B*<bd87cUMV<s_m':!Jcbmb[/@*GMj(RWpk/V/HG,&R(pS,<%b00@2`el1=MDYk?
FAYI7[\@q1ZTISD'4d*m`mrQ8FsRhPHrNfa,8p9%?bi`:@UHONLo#nTMO%CVQfVf
HJd<Kg;+2=d<qKj/9rDNrC"eW.2TEcbe#)d9e5D1WI&6d8:SZ3m/&d!K8LGRW4p5
$?HP&YDpS#Yik!9+^6shhA;H[-@Y,3_/m?+_G`hne:\"^=:pKpM5_6.RE7),^nLW
`$`aM2)>$+92rOAmWE9lmgS)TK,&]#Qt\5E[SQB&_ncQp_KO2I!8\1Rua3.BcmQO
tBFe;#+F"WbXGne=AG+=iAoD2bLVFHPK!>Sj$8&DQ%[TE]Js:Q3b"Tpj@:t^LR\P
*pL7SAk#+s?(i[M'l#.Q,&W8^LaS`.j!34pb8ArR47Ua*C8.\:WFbk!'tiG'^PBi
uCqm8/fAU:s^+6mYpfE/d>G@*S'LaRYrZ+sUOVS[2M^HD!>,e9;A?%,:^/Rp_MmV
ds%/`6>b(kGuSDH38(uBFCMJkq.6iKa8[WLq/@"0G,N]C?b\E.^B69%K'S=[9%3@
$U2&kO`X45tFA;#-#&`U!0\QJO)*=,iMKAaMGADrL:Lp;I\)gtQUdB[VbdYC_WU:
CAgeNJ\o);pNQ;aNR-l(5aKAOJ?(pT%P9NQV?!i:ErifIVN"sQf27Lb1'pN&".o`
DcT8'7=:2];+25_7OB@^<ORhE@OYlE,*lQXUsdYe[_7,m*g*m2OjV1@7<m3M)1d[
1[;;i:FRUY"Kc$2ELsm"N'*Al':rK)^g;iIuO+pD3q+a;=jk]=tf)$9]E]E-"Rte
W.1S334Am&EIR`0VP-b8_p;!MN71bHbb\$F1.ZM0KK`l7d-cAF>9`JhUNEdd.Mm*
UZ@M*`@T,nsDP@RKe&&qr^g"Vfm+[1TD/TWDpoX@E$-q!%eY5FQ8\<\s77U5I[J/
A9m:U#t@a3Fddq>gA@e.)a&uMC>4.NOJb=GcrkR^De`=JHS7MXfSj-1SRY:L72\>
.:/m;ZMC?q9`-fNlYA%I(OkRt:W5b=U6-k)jKm:QoTDC=S?4eTEjSUWoULq%*$a5
rm^ZZ/]1o5,AAmLfa$eN!0o23lrr<KU[s6MY&iScc-8^^E,]['])n=Sr;1XR\72V
EZAX6JfNg&pGVaj1DOdVW"OcYSY06ItK+8Jkda0*C&(lWBe'N^/7La!@\P**Q"3f
4X'lJ&.*b9h0],Z:\3BsUn0?8PMJD^p16e*'-A/BHle`^T9,7R`74@SaD>Q=OO'C
1\`C4@bg-(U@Yn/"ANQ.nV5.XluL?73P"b722IQ6kE)BOc4TodAYVS7J_-*T"\4f
AC"Kupj(k"e1,@N[P-0C8`<*SJo+^7SeN\K8R.C`2l)T-2!/Mre![*p#jY3OCS^-
-cI""QPI0Zil?JGTB-(YSUJT#Mm8Hm04XFXb@oGmX>L>lbf$^JM@XSqf72VDV,E"
4oIr%t0)u[2s/<*Pd8gpEk&42=Jh+KL<jJ\5!NC_an=_3ml)eDE09&!@CO&1nd[I
9*S'-=n`S]\.Ab:KsB07,?tk(t=CYd?Q<d9]%ZWD":b?`RoQ9p$"+$q_qA4D7Xd?
O2%_H4ct?qfF"fKl'/`Og5=X'epY4e_5oPU:.@=qbd=o#^SWLK"H=WXl&nfdJS>t
el[u1*bK"p,EU.Ybfkt[7Iu;Rm_P#EM8a:cU\0FhhTHU4YuiJoHVm6V0Ld4C$A^>
+I]38H$7fqN/A;!'O$snHr#oFTkbR)5XKp"]`^WEdQ<AYV9YMjD9fQ6o0^CGgZta
`PFkUu,FddGT=+qJ.(mVFh<&$*V2mG;F(:Tk^X!@Ri;+2=h*+fC%-#T\qOM)UR+b
YGsNU(=0b.\cBU4c;M1.*90$8F7i.qNt2SAue@O_T6s\$I;2\E"8O"GT4rBcP^A8
V!`leqQY*psKM$m:H:t&rK#5/)X]q6u\:po.qT2.,p-RY6sbgW0*'q7Nq!#>V!cn
(<S.S4W'P'$GfhR@UO2CWF$)K@U`eU=+a=;fm[1bPg)nGOL-SChLnV)aM.jT*+WC
*@T!Q3=aO"7Tk6e<b&SAnOqrbFO^a3;;2Ua??5?\+OaBr0jL]af9M>VK<j.Js;+2
1.<qK6n?_&&$AnG[!R[1Qp?r@[g-Iq3H+^9:EZHEhRM\KNY\&cY7btQVg)0u,5b8
59kU5VcBUtKR\0ekBpVBp(oHgo!HpunmhgCfAl`5Jj2MVlhIk-$g/(58IJF?Ks`e
m?j,oHOi5,X.JJ6NXo6`5PDLYF:Qh%Pn2*g<2Wr87I8q^B^q\.6!uYpaDkogY)&4
bh'baNL"0gL.HV+Ke(@24U^482,@l".Oe%j_+YQ^9N8u)8gpkm.)`<C"@A;`4VfN
=pTj]JZoo8"JVf4fhoA0%PYmIl=_Lt[O'?.,Au814VIi:dQ=O-0QA)6S>LDZ@,58
4Q(58IGp#/=SnPP-p'Sk+@953Ub'IaAUMX[?t.t:'af(J.jb0)HTMC>54MC>Z[N)
6CCO%(E:c[QrVrYd;%.&)S^R8.#Kb[iMM),;a/jQ,?nQ:$qX/'_4dY;mWd72VDW]
bFNAiC5.?DaeU2p[d:]AX6Kc[4gITk=DkG5EfHlUaVsppo(<nU5CJ\U:dSBK@0#D
p/71TU5J_]q:&Kf7=8C"?-_M\As,aC)Y]J.TjK>3<pFd1cGNqfHUX'A>H)t5rr<D
;BZET_5HPd,`j0`\UkOeS`moB'`"j3F,],q[0sgiO:1Z$,kMIb0V^c_b,]o/)Yg]
o,ZI?PgR`O9tQCX>4L5sg(e$@LYINgO9:,tnPL-P*^Irn'TU*&2&Mu&?<rl\'S:;
]iM:<QDM:;]iE:<QDU:<QDU:<QDU:;]iE:;]iE:;]iE:<QDM:;]iM:<QDU:<QDU:
<QDM7qtqteAW,_RgC4*,amG)D`43=N=''SKk-?;+rKO>CZL&!,_>'q-Q85dRSuge
9IY`Ybu:4r9/G53GuaCsWMYf`2AW>r4*;#tW+m($AS9\E5\V(<2,)H_[+ZA)DLSH
X2:=M2Ru!D)fb'<'N1/gFUJI-.=32MO-8f^CBlr]Y`<6NDVhqb<C"`Ld,Db>=N['
A>30#5>i])rCLuLCS,Db>=N['A>30#5>i])rCLuK\?R/J8*?8lmZ\4`lblKqO3P$
)::R[l!mFQM%Jh+jXkSTL=g(tFd6qO]7?WNg2>qK*4e%5PU="HIgA=V^@j=2c0)=
Y3'``]?T4,go=12,^iae]cUIY!j;/Q*/Bk7er0k<K,AEKP:R*l:&g\E_WB^7FT3Y
-;bXKAIu2T8'r$0@sOG*<k^IBQubq]>ikZn'E1a()+8$JPX\Lf6tHsp7St$kAJ(.
r;&Mc5&X5a^)+8$JPX\Lf6tHsp7St$kAJ(.r;&MbskkMP#/?hbdh`R%/qN]Op,)/
"oO-<?/-]&(B+FBO.8D,>TN-`G*_Up)[U=1VkKd":C_'DlIP%i;a1bMO:1@3#1s2
4mb&HDh6!X/].!rr<$z!!*'$!tc.K&/-3A+@&4h"X6fpT`<^G#QY#.!C$T"o[.RG
JGerPn'gd6?@;bQ!]O22Y?.dO2<q,'W"hasF-WZ(%uSgmXX]:2&(p6V@nrH+'L->
sf$btalgHhGZ=r+%b*`a[#pU[Z(\#.*GiZ5#^fVK6Lq?c*;eKsS3<0:Ss24me&HD
k6!<`E)"p+l,z!!!T3&cr.H+>?%o'EfR'0gSVk?r:?ps4RGY!<N9&5657F=CW2f0
oTTZ`\EE^(re:h@i33?N;N"/n_0(&$:.35"^n,?Js`.$-`;gc_+6!Y@&+KgOAZEO
81=]bU_SKc;@:6B.g9=^'nWYj$Gfit'ZY@Kpq@F&Z'LCXVL'D<KHUUf&;227M@dN
n]S8YuZ130)$tJH^57NQuZ0]N;(rsJgXCE*fZgC'qQGu,/]_%n6L&+=]e)JE$a4h
UHeG6gL65Kg4F@OK'$5XTA*`CgTGonHob7%nG>aY?2o8^6:XeVmWhZ_gT1$q+TI>
iR[?0FWF&A0nbZn>%#:\51oU]/U-0g3N(\A\+YR-,?8[Tg&a=p?^?@i4oL(re:h@
kA6u$UHh`j7b21TX5JdcpVSoH!27rK0pNo(lXNObP`Liiatd,_)XeBR*r2o&"hof
(re:h@i33?N+B7n)9X+aUSj><)VAVaU%-hTRbpeHrrD!oo^Tis)S4Y6asJ;T64s7
9!(7@u!<N?+"UG>;"p+i.!!!!"!!3670bPWbOWlSJEKUtX0L.p$@<)J^JYBp-i?M
/sPG5<=?t+2/Z>dYpn3^]Is4RGY!<E0)56>Eck:+PGf@c;EV\I$VnQ-KLG'BWpaI
/;/c:IM<)l6[e2^LrSW8*XWP,!%sDG#o1;7S/8,t?sogm&hAUN0=O8r^qi\LKNa7
c^N'PoGm]E`?pKNQG&..Q8YCjJ^k!)j6t:<,P<fa\fSu2^LrSW8*XWP,!%sDG#o1
;7S/8,t?sogm&hAUN0=O8r^qi\LKNa7c^N'PoGm]E`?pKNQG&..Q8YCjJ^k!)j6t
:<,P<fa\fSu2^LrSVY5UR[::tdEe&1ImmKHu!m*JIdWMNm&$gW*Nb^XU]C='(%AQ
tu-9N(G=sf&=1Hm>:jY58qP!SS4F%+[4l]5S[7N8m>Bf*D3b2[uZ2Upp3`.pER^?
$%rD^$`_)f"hNoPiKM2Q"u[^Nte$PI0MaY+=%Rq#ng*[%rM"1;srfdIKWA,jS1=`
4J?bQ(h!I:#2KCpKN"5O>K9S+)W&j?[?KVR/nchS<hGnB-jmIfu\'k[W5S4/Y&-P
94oQWP1drnjL/+3fiot<Coru.[T:Q(a_^%HEa(OUS<hGnB-jmIfu\'k[T:Q(>:X9
$jL/+3fiot>-*rcfa_^%HEa(OUS<hGnB-jmIfu\'k[W5S4/Y&)1P,iV'DG%%QCui
$F><+:*QHi-9-*rcfa_^$rL_Dr#<;2U[L"k5/V`)_/lIB;\T:3<chu<ZtK%XQip*
U)'<_'l&:(@>B1:u-9&6^#7P7>qe:@RBI""%:siep@=q0NO`D6O&/U5LA*fqN8_1
$a+j%#fkO;`$n$^M3PbPl:0gnM+SP&UA'".5X]K?"?XZ#$If%\J-U%#uNl2>CHM#
#k\8]b_dW"EBh$rVlYdX71pPdDY:K]IdN&gK>siHY`#B0$kp$\;aO3H1L-D;c'q^
,[*2J9V`gVMn52<E5B:\0."6)c:tPK?Gt5hA8'Fj%+5KSpXsE.[1j/))^QYk+HUm
LZRD6=g^YkUC56O*F43B`:0:Ul5r5e\pmY@&!V<sK.gf97g\oX<Yfc//<]gNV?Ln
*ib<T;9P+[UR0hW[Y_&U,UGrr<o[&.&Hi:"@#.,Un&f'3;2m<18q_kC\"(\I`$A*
u-!_bBgkJbmc&VidnK6]N"8^HdqFHHdOaDIu:e_c!9GoNKX1_l@n]=`EA\sb#MNR
q5`<Kd*d@!.X%FIl?8d_l?8d_kik;2!#9RIR^pbh:1Tt1db-5"7*>'GDc1EcY/OV
l*Sop;_dkDj5[LOr8\O$\E"[``7K3AdAJ8pYr-kWO17Yde1VI.&^3,FnqQ47PI]H
T-'MZ$lr?r_XgQOQ?dmJ-c4e6!6L>sL2`N")iC7U_qVe-^DfnHDK@/s]Hrr<U_Go
'0LKrK6(C0d31QY$f:%DY_ESS@Z".44KIh^V6tS%@*F2`b6XLqVeC4e:BEkAU5-[
/J+Y\luk-U+JTgW2qecUUGU8[X3d5M<=$BS\OMOljg([JRcrjg<jpNS+#d$<W'>1
]Vp?aOSi&Po^<E857('?e&CkgMIu=h"gL'83*MfPH4=8l,@=o<F+rWdT2,@,]=N7
$61I[uD*JAO-&jhGNp\Qeh+\B[W"XjRpaNTd^!)lYEKnsW!Z2Rf%)k7fRN\I[U*(
"<ofmJ7m[c(nHrDtH#_gM+g/o9#5TJA[J2G/3_J>-%>,PsJWS)uVS:<tZ+!8t&U&
dG.<t"U1a_Kd`@JMK[5Kl><HQgSYoNmQt1td5Oj!<RC0k;<F]9q>B7B,!Q=3JHoM
9M,S7*\CZZlOD($$LE.AE>[$;nRH(X]h++?ILbZ$&&6]d5Q8F(W\chZY=:4]g=*9
T6M1F;/O.UUrmo82b(:(!n/i#Pl6IsX*#8Uh;QhtEc1<:09CQ[2g#CtDRdtekCYe
h.-8l0I5`JXRCEXI/pC^lP)EqrVC:^$muV@^hOD-TMrYrogVjbGW"9Uu4rlIU2a,
BHm$G+;e=+n%h=Fg:qn?iFrr@8fC1$E)o<)9#e?qZ#C53G9+6l\(b"a]B:0:]c]-
l:X.P:8)G"\`^jPAWS?Qf-@BJuF&K\[kp^"kM@2a#?E^VNHG3ebFU`YLJ[CT*t1C
tN"@DlR3%N`W47H[MJ7\%(9L$$>VKI6S$4h:'@6%uP9R,UJ7FW'p6!p02`d<aG&T
3Fo8%N%-C4f&&shet-CcUb%@>-LU-Xrr?k_;[_Ai)%9fA678Csk1CCK)>BfcX+!]
Br0FJ\/R.f=g28S">';RRf;a>4k-\"ZI+G:rn!_ckh=FI\,\C_ci%WlsR)79k?3N
snM\0i?\p]8e`cmHsX4l/a`i:HWr%dNmah#aHlqQ<b`r=Wj!4$4qe08'72XA\/Q#
AU\$\qIbRL'[3+:`\#Ysk(#]ODmCabJKl\Mn_.)uF.Eae*2UK5]tDk-VXU!21'1+
Nht].<NrFNRmN9>\Of[Srk41gtV)PV'I$r74Sim]F^gsW5N>t^N+5[Sj2qhrKB@=
W($=LiX7]Q_7Si^Jtr)JU\G1kp^3ek%mNtl!-c\&?gd`l9M]lWC7[3VW'XQKel@m
d#u"taArm4&l/-+-lZH0q,S?r^7?M#k@&HKQ8WLa6(CEe7!#tmYf'Q(2cb=/R>Ic
uc?V_2qDXO)Tp;d,qANPF@,H+$%oA4Sdlfs+,:7\i3m+sBab\W->0p@jWA>4f5Y-
Q`X^?bZ^M]>N=Mf,jAP3Ll72g8%:qd\WR];Rs\T'<h-')AXt:Xeo:Z-D/Y[3kr@F
i-hM253>\?Xeq7L#Wc;:@ZFiQ+8ht:D_)9.@[oVUO'?`,&e8en.eKa"]?]K</JD9
oR?m@M83+8ITr)^Lk!4B>YZ!d2J(bpVS#dCI^!0@bcXeHQY6pFVP;\QP9Q#:/Y5^
9fV_LCah,-/^-V9_dX==l6mbZ1=nZ4Q/<se[6jNE7$@9`Bfuf,\QV?5I[97>Y;.h
\0W0^9k(lXua1u6t?-=jAKiDCTc%,3:eoZc3,-_$kPG5hQHkVNZqTjhXA`6K(Vnd
.J8481)il.rm.e>OhIU3X;FX![^Fqg3U`cJS=9C&=*<FRIqP]<)aCIri\2M8iP)I
UQ65``6JfPUCC.XhHQk'D!3Yq*-UVYs0tcYs0ta@m.<6or"4lT8]Z8l,Z*qVXF\j
3A"se?[produr;]Q*(!5N`=p7-kErTX8`/^=8B_*GYqE8.\0n'T758b*f?S2e"&p
&\#O?gd;#/koNJ-^r>)BFImpAU+44hka7NW+gL,37)6QR>D$`s9VuFqJ!1tcnrZ3
HOq6/c:B&B'V*[g4JX[Gt6o3-sBVs!u@nj\IL+1blod1('n^Z>b!UHi?QTN@nrb`
RffkbFN)&r/g&3N."R1ka)4iCf@Mp\t4ee0#X%p=c&*)q6if\_uAU5<shR>Wc)`c
)pjdBF3N^[+:E"b<RI2Cc>QR13GgDXqI5+*u*<d:!KC"6:+#hW@MPk<19.#fdgL:
FVA(NPA!mjgf7.>6+/'-'Ek?[&@0Y/:VX;ra\.n0pFTl1>/k*\N6,iQP1DE8NL;:
mHY(rP`ctN?_Qf[Ir'PL+7A'@VB8'hX.iI;L;.[G@k_Fjq0*$7!F>YcA6GsI_cA:
lqO2re8+K53iU[ec;OT,:qN:<o]Kk!4q)<"]D$H@<k1W$Dg'o_X`B8'hX.iI;JcO
.[:<\qUtSe[4RXCm5s4=_<.=O.>oGZHW;Z(;\hn>p8V@lu7ZiE4D5`ctM01\.Cu,
Z#KY+\95On>eIE,s"UlcB.KE>dGg?=1V#&YXB8G><C3n@^VEt7S;,N*':u?E>mZp
BLHXF'oZb-EiQ.C19$9#EDY9qWI36^^)nqAOZPmVT4gVI/-%a=[L>aO#s:gom;q(
^9r6-uWg)$1CnTET2kL6dEjKH$61hKI=L;0GbfQ#aDbZ&Jau#Egm*Q$CUrnm%8@X
NQKs&VGCMj/-P+CQ[Risi[Vd?%6D:kb!HE)ib&[]FPW3n7,jUbj6Pc).CcG!hZ?N
mSb&i5\5TU!>&a5Dk['#fq<TDnU6/X_G)[tjr.o+YUjT463^,`RmaiYJqaVg81q?
Aa.WOPPc3G;eOc2"GVJ?KTG:e<FT2f#*6o2Ur7:[tCQthC1H<8[/mA@1r<+e$b'O
GV'RP7CjbjAXlNo]9M,U7!mFo?aDS;ar(E*1*csM4B*ma(IPTYHTbg#8mU`:RKm:
2jPd\lRnJGK7@(H=>I80'WeHLuVeV$([G7W.WZVgdP-]#2PcD+h.IZ-c)TON@l3k
g<"Mtdfg\"9_=O<%h5dD^+n3li`Vn=TpF2&BG`n]-'k-;BQFa#"+0)gPRP'c9%;q
`]fRr&8cZ,Fm"lUGZt6RL_=?-=1.=PK:agt"CGZ*uTM\ZBYm@r?'$F'.1c`n]-'k
-;BQNOc--c!tX,)fo-9R`=.62Wh9R23#/JD9ZR.CE%=sgR?.;ei)Zq[l'/UVb-:#
#7j@P"Wl%UK]67j%c-BHdqF19[DfSh(NQh=9%!'1Fpc/%=$Ae81EHl:?L('"Ckl2
W/SeL"ep"%%7WV5'Ab&T?.U=hn-Vd97j]fPrB.RZRHfo^_rrAT.f7&Ls#'./b>u`
&iXWkW7Zn2d<LbJeH!%AHZ!rr?'"9nr/!<E0#z!>,kd;)(@Fn/u_%OjW-]Z,&-a5
l]O<#QXr+!C%aTPm[q7:3mEh7_q*HibF_sC\:F3@]ALL!ee2?*)8>n?4I2ZmR9+X
qPAU<^8YI=YGt[S/*`Dm9)>B4;SK,;<3N<'eLTpMoh,(WI8[eY?W=5/=4JhdQ1[c
GV0u7UWF&W.W`R_$lBV$7qPAU<^8YI=YGt[S/*`Dm9)>B4;SK,;<3N<'eLTpMoh,
(WI8[eY?W=5/=4JhdQ1[cGV0u7UWF&W.W`R_$lBV$7qPAU;K!OY;`Y/BOW_OPZ)I
Wd^954iQZQl7a^5'00#rb&#CbQKXSrZ0Y6B1LGNA)fX7>A2iF@?MXac]3*McR!N3
"Ta\gUDLAFjP/W*nrOEdDE(>,)K.QTPu9oo^aGgm6oOP\1JS&'sUsXZ!.sJ>8=DI
'sUsXZ!.sJ>8=DI'sUsXZ!.sJ>8=DI'sUsXZ!.sJ>8=DI'sUsXZ!.sJ>8=DI'sUs
XZ!.sJ>8=DI'sUsXZ!.sJ>8=DI'sUsXZ!.sJ>8=DmVa5WlYq*"4Rn2;l-$V,!N9$
$>DHdiW,Sm7/'bb;J^Mse:[@tspBTp43`SZ'6Ia9gRg#dF(4O1-CRFgfs4!.t?p@
)H[E?0^U&_]`h*TVF,hFCup`SeNAa4T_OH(BE11UZrG+9um,`-2gK7r`$#aR1:_N
q32M4?s/P!03siRFLTp3rPX_?aIuAp3E4HjQo)Y@JMtiajf\K3h;jT>I2Q>G'TWR
cSM]Vk&n9ucH"T(I>7>b;L_3?'^b0HO&m[1HIDHQo+P<L;QKXn[$H9_PAR50nC!X
LrrC!M&,uVr_SQkM=rJOi64FJs8;&,h]JQJ00Dhh%dJj4*^Z)Iac@[3n'*po1:]7
a@L6dl&e6&87>OW>l$QP3qrrBUd,HXntPa,Bm:K?AF#Q6*t.6+rCaJQ"q:Ee8I)a
/TQD+g]AI=74dC'RfFR%LL^r8,9mJ[Bg^ilssWr>1:r9Vj12iIiOG&;*@ermCl$O
3DBNI(;RPVbHaU[c118b>V.r6P36oTb:1.JNcp9]-fgPCnokoFi9mq@AE*mgB^[i
9bLT$6D\Is0\7C-Hp"moF']P3YOFjoAe9X5AH)YFQNkbQe`]37C-G:`eE22bpck3
;)5:)'Yk=H!4[lTOZ,U%?Sj)bUm@+MX9r=CWRSr'";f>r,bpqr3^;iHU,IuVi5,"
HGd5=(BDXQ`f7W-NLZgV_?^V7Un@n&*KfD"(`DDnV1G-*Zpn/[F#jL"PrID`SH3'
O%+m[Oee4.UGFl9>tVgS\NigRGr/mG"fR.'ZF"dT*f5G;;m1\0e5NI?0hLM<as-k
=1F=-NWjcBJ(3/F-)L#\1OGu8s?Zb:,K/tW8mTi`.Wu2)]QU!:BW&&NLdLP?/`[1
)c`=jYDN3GBja@9YhMRWqu6XYD.?DjD)hOq_9E7F(H)`A(_fJ5#'=U<@hdia#YJ)
XJrTNi,p?#.<XS(Y&66JJVNi*-(*t+qWn3s.0YRUU_W"P7'i373*Ao(8dhGTm6_T
?3VcZg1rC.3oeX@%N=^)M=^KJEQS50bHE*+T"g=<5s6'Z=qC5(uLh7*8#P.-EKok
'"ZP>sWkThZ*GRb?$UIpt1ui1App=CW;cfUn%4&;2G,_@VAD$2uWM#Yu3*gsJ54R
$a8._[20aCht"3MA%KkJ*dM8^DnC'rrAdX9MB7>\S,YbX=QX]&86_EKs)CA-]Rn6
MA$O#!&F$H+V98m$qqfq_4hSR2`&?*QqnD7+UCDaKDtqmOKo"BYTtNL6'.!Kn2=-
+6&(1QMGdkQJg,G,A:=YT+Zq\Brr=N86=<oW6?lVL@X4Ae9ViU2L54_'"Vq=3CVZ
=/)0!cV;O@>Z$'GQ:]DrO26&h39iM$u!_aO!!VhTucd>_rh68YkNK^f=<Q8VX27_
CPTOG/jL$c)ls(hJF=GRaF^98H7b4;SHOB\jC7WTFN'0kIJA`r?&/5qE9aYX'EU$
&6KOZ%ml!D[8`S$%sMlBne_s9I;-;E"Igki2m@r)#Pe-PJmZX-5.5)1>rNI6B!Vf
?7*^\OWk?i1^=_ncR#<6N)h'%#:Bl(m0HtNI*F&si&-f3B\+%SKZ1kP`?S5W0,0]
V)Ao%K`<okD0k"4$_i5^Q\c/&D6Z`7P[O[*P++u"t6"01IIBVk=o;F*.@mos/eV#
XhGX7X%7"-OX9qg-FOkCi*Z9P77Imr$4Z$%M]ePX;rmVtXUZ(9#8+(B]Ei;T"iP,
iSDE>Dk*?f48fPYWK7_6L>)[9QYC#PJ70H'i&L16bI!%<1)@59^!/lNfls+G<E3"
sD;J$(<#VRea_BLnKlM*9(h--?)>k<Yok16kGLpr'7PS_$5aR;)4,qAX<'TTtQ1g
OI,_\DJf+HA;\o!=R-)a7dI6&IRnB&[at!tR%@,?GRS#cNu'+\_IeScrr<2?+Y;r
qCiE\`bTP:g[:O>,rr>m0%>/u@_C)"f[JM)GfP"$bb&KCeL#?H.=A'GEC5n>-<k(
/:_snU?'Y$@2_E/-np5eF6a[*4GBO_I`L`#Z^/dP@[Z7(Ao&`B`W$o5ijc?#$Z=u
R9l-OCd+[,B@.$`iC43-hhs$pcYb#.$oT\c!Sbn2);QBZ=/G%e[Brg"TAjdCo31,
7,Y*`qZ&!AS(067t?45BlKK5elGhq-\R:B$(VMZ?k1Qk[O1V"]![te\TbSfF[hh\
.[P\L/]e%iJeGsA$p=e3UDZ(S2/S=eg:oA]N_)>t1\r'CAsWhl22d8VV2'BPrYP6
\/3u!a5r#]H;2\of>4Oo@(,ar'G\$AQm1W`3Yf,d)7^$7g0%g,\Om=]>[(ns_KBs
<"A;D!-:Ka`!R>L-%:QHYuPf-L'rr<3D"'<tY3HT<<kd;@SMUlc.DpMC&d4.cCVN
W0CC8=#U2C/3g"u_8LPJS!MbbEUeX]4(dH@$.$&="WA--!h:hRpEAL`_3[6UOtcB
L9>6-VYJ(2>2;hA11+`76!&WC*CRYrr<7^Ap>h+buYMb,o-Wr!8&PB9KrO(`^(rS
9bh9Rq*3XiW0L(rB^<d;S*<E#LWnB6&WQPjHm1<U+.<'8m5tcleep/dGHK&8?e9u
cYS/G*K.Fe2o7)E3)An,?&5*=aA^XA)6Go18BJNVKrE=7T%[.At9n+?PqR7<QPC1
D:f(hZ%hnZ:'&eQf`E+,9^c7aEf%IFCV,XN&Nk2D?>\`gZOTYhtSd+.?7NOePj@0
q`l+flWER/E$7\7is<)AV'TXRtM+oho`Tnrrt!rrBK7p.6!^,5!pf,]ql?L#.<2m
Q\P;8P8:D%77Is0'`#1._^aoXL'_n:.<00_+NUTH[?3H%VFY']G1:)kkmm]OeGWA
`]V'g,45/k2NK3*"uT=Z7r\,kH.-R'i!:W^b#44,cF9;@)Ds#V6UA%4po8'O,pS"
/A#+P\//0HI$8$qb9s+nr!k&abJgrM0M>?FD24@()lW5,I#B*Oskk.pgi5bAo;to
D/2Mbf#A`/F'6=Wj2/KD9=&&r#rNAFg;RM3S%^Co^u]\X-F#puZpGSD@?GZ7u`f?
aF*#$uDh2&"*)f]&geq/md;IkTH:&Fc)r=;rQP`X"tZd^ne%>sB90%jWjUnq9o*U
MgQsn$4UuY7oAoSjO6cYm-RLgh7XC6AWq3k#0UTdl`Ks@1^uJA.8b'D#3"4o>$Gt
JrClXMUPHuV;tVkMU8FriNGS79mA#/l3H:V)5_+,d;pDaQi1t)!4GQFBMY+D6;Vd
YELbbR+&l36Q*h^<O^UR`e0o_PL4[qW.ScGW3.$n#BlD/V4gBohZ5#uGp3)7%-,G
oT.'/YNW:`Wl')1m4bL#s;/X3(\7=k(?*_2I]?=U7N@b$E>SR=m>id;=O,a"j"G"
VSLa'kXm!C@&;frq@!?/VTeNX6#JKI;K5$":gS#-8h'dIE)k-7!7O65h2uc:\$>D
g[6d_kJ%r)#jTXV)3=s57uh-@"Nh=D%6iDDlDU`hX"(LZk^#2B^IWTVr3.pUg[`N
__e^%b.H_:[<mpSbWH]=;ojY0`r$)u!Y1KJVpKMepCfX3O8BM_VUL9[$)_%98Nkc
V1n@(QHH)'YiYs!7_*--.?XQ2+,U=N9&7Uo6$f1Cpo3mo@ZAIRtiacg0+T0R6`n8
qb6X=\8nSirrV%_speGET_\c2YbF8l4MkPbogC?rTcA]-G:>rFq2P5A/S@5<\@q7
!.HaQREW7fNI@ROi*La`.bW7PlE+WhRKirX\`18dO@<KCN+oa+r0!fC:m(6Y.]#K
I.W2kZ<TIEB[#ac?f'j,i$%LWq:ohds1k_7JUd.m0-t9Jl8hKE"_0f(_,hVKISXL
:813Q-mH6URtq[`99KurWr?CB64hL^*D14G_4`\R+UH3=_Ad_m.,fg.gd6s+Sh,P
$#^r%-gsW5&!$mk@NRltiEHC8<ae1XG&LNk+'PfoEo4&_D'&a*_$c#StpQ+P3+UC
Ub`_aQTMcM_rn6(1bV-]M\26j,_Z.'=4an5gu=X^7[@Q&]\m,58"GO"m?/XF@#;a
M=YN^lqA!sgUa<[rBp*+C-l2.K$r.uU>m/dW`5D5RStq(]OC0B'TS4OOgLP""S=S
T%oo<eie"a7bm%%C2<Ij<%D,Z-'iYS+Jq?9%7#_X`t<7A=,W8_GF[&RN*55_/$:;
LClu"[h+(UQE!+tV]Y,NL\a(SpibQa>`R.(hLEBE<^"qbk(O`F*=lF6<*c^((Oc:
CpjS:^A+h2F6ac?%=i$U".thAXN)M]F2+_,P*!f-:D'_()-e^VVigOkEUYn1,UhL
<#^bgj)Jhg#5BLG.@KmMY(m6\rK(<%)@Q5^ba420j8PP0[qarJ7oY9Q!p8=hY@7:
MYq##%S+Ua&5mL3-gCW_PUbVO\LXibe#+[oh<O`64%XNDWD(Jd<QT)lfZIY$?f3L
n[<OTS:m2-c:_U.7ke4N?n0`Kqc8+\#@gKg2iFlJb%%Y*lDIV=BVq_d8j681*Kd-
lB^o]dBFs4)]NUPCjD"4b/uSZ8'gaUe9mNEOGY#?h+tugZ@ZJIGuTitSV2n,0sU"
%)@X'YG<C=mn<g__TuKB!"UZOhJKU+#("u+%ch\mW^.7lMOlo/P:-sUZIO_''E5A
-ToJa.p+u^k/8F]lTKQor[LEUtI[NMfN(*GPVYahFW2%2IA7P$Qbf?O:+R8b*V"h
WiM/^_T+j2]qGTd#@.9T?t?.$T;PSimW[@7h4"-J3+nF'-f*OSk1':M;9cUd4JgT
UnMO4bC*)"`*N('ugh$&36:SrWWn/OdOdP_b<"'/ZXTlRGWMC]RQi!rr>L?J$W+U
F`RK^-Bd/,J)'E%l.>9E42^nIo_k5;oU81jX'Nt4KXqI%MYQrK/T_T0d3)%Pd%XC
!Tr&9M]JS-9U/qf&T"p#)-qqPu'NnWJUl?(sF&7Th7APE)5NYCK'3=prBL)_kR@$
bQbUg&RMNm0FA0hkJGm_(g80Dk1#S@nk`ltLuC/Lt/QqTDJXC"72k4Ta\Y[h:,kW
0QRUlR'3+=5\2PZP-R6pr^upfr3ACLQC2XMQRZ=aUcR\@7.$[il<G1r>"DNJJ*Ma
('ZN)MoO)UMM(VOH>-+HXP4Z0-R%e`,cJ.6)N^'i,b1k_@T6``/$5!*/;>CBPQU3
jD'FmPYpbfZcXnZB6!TQ#)#n_nf+GDl>*p:$9UW]c=1Y]MfEQ,)_7[.9nk*V0d/Q
uDDc"n<r&2F3=]ZjCU!8iX"+F\:EnBlf&FL=L@K0iGY,Emo+Ktp]oJC/)L/t"j;i
8#PYhS;i#kb!K],,6^-b;EcU+ao4L-4FN*/S#7T!8N$J_h4-&P?VW*1*YZAT11Ce
hp=fci@6"%Zl>R[T'@$?mcX;-9o:'+^mL5n?9q(DNs864(I<OYPr+RSt0NKf'J]i
+8,70dG%2N?P#%,.`KP(EjH&-tPhbH%b,:D6-`sEm;'KGU]U0)6'T($"C3"=K#>t
Bt>A*;EZ`?6X1rhOA?(66md%62)Q^i&eT@*OHX`N[LSCgEZul.(H*t'o-3iHNK$Q
LX=>gDi3sDC&Dt_D2&aHQCf/VA")Wk85pRo/X/Vc39MVD@!bX=5H,`jYal\X-&@W
.BpOle-+aRWboG$F*3QYkF\^VNc?3)c`?KHO!mROg!Qa,Tak]m[]mM"efj<YD>BR
,Rr4`O$F81<ONJMa'RZ&.C;R"X<cpk15gU+\=J=,dKA:q"<tD#.6S,.WkD,)>5G@
LFX*NZOQ&Yim7,d.8;f#'(`%5sc)*H=8NU1bFh;jBlp6,B>_".7IfmKI9*.,;gf]
-GiP4oYu&8#=NCU<l0kclnI`2.gB5E?H86Cndon<LuuaO=g$dQ+Y\_.JKYC*`Fc2
;,do?k_2EY9+]cQ*j=b#a:GVTSI8+oK84!kY,\#OAN>t]R#=S$3iZenP1>.!fTr,
klne5L\;$Cc&'<%6p9ub)(+U%W_6caN\ct9+bTf5=7'NW89SI\C\&;%0.)%L;EPa
H<O?*\btK-:LeLc$=^d%(KiKFgU9L>*J@6=YX92L&%m"Ap;>k/fb$Cg8g'M/#nJm
g<\er<0ki5B-W&]7<QO&H;a-$1EN4JeK2Y_Sg)-&D>"n*dhI%'r$T.c!KMu;+2%a
@AsFcC2;bWe@:lt7=18"C2-(Xn7dTB;+F#KZ7G-'0r;D3;A0b)HN*u8GPaj\%iY%
Xi5Ah<CefUg#!rlSa/L-@Hh]HA4:mlRHCh%LL6\3rmtp+!6`<cT<l^;VRi31dK]m
/c8$Q8>6?kGQ#YaMuCPe2qLS9##XbbV<^FV]_+p])T,9nA/,:3R-WB-6B(??VE64
een0aL)Z_4dR"@j<5;02pAR+[m'\#XVr^&=A+o0aX:p*eYa]#\[q?P%#*@#XW'n)
:4o[6K*V]<TC!L%rsn-qNRqHC4,XYcf@g4<:Emp/f]ilTf?ZNfMuR^\K4'F[Q:fk
5"jM,<.CeX,HTcp%X^5qC\7sPZH>5`3=Oj+bE3+Xo^GVO+sJ0:i1:C%2)Xp@&;2A
R%8D4+TfNa<-\`1crr>PAL)T"Dlg(LW\rq#QY+-H_qWTjWqAUKa583Z]\>iaVI,:
1)]b%4:1#kCG\Mb!I?;QA/qUBPuEsPIcn@=3"qa(t4$3(!hYl()D]@4"^PHk+XLZ
Ied-Xlg40?HLPf9>V[3;\/;D>=iiGC7Y\WO.&9QZ7j(o^'=?D>?8caTIC`ImgSY-
c*!s'k?i'^SQEhq(@ooP!A"J6X<LPgL&F=^Sc"":>5]'D6M3Zrgei*mXHU.q)^g_
g&=b0nom<^\br"jjQumH-YN6:5KVUX:<2pL5EiYUS^6BbIj]=54.jXIIST(sG<_:
tr10J@m/I&5BDFVRak?Ygn+%UpEaQ?8XVeR7+%dH:\=lOKmk9g_gZ1h^:uJ!lb.(
Jp!s2P#Z06:\,@9P*5+3>cAr8W^)6lD\`rO2"F(Qb<*Dt?-7Wk-MA)E-+>-/jD&^
]6f;LJi!*#Dd9F,qb#?,d#hcBF^H?.i47;jUF)S>k)e=+2Xs%/-'be^j&cHAVN):
)LTNO`8sNK'rqd1Rb@STRt]NeC>*X/Z+?dU0C4-M=Mj6Wpi"V;e`?\W?KsCdT!tG
0s2q=@hIRkVBo:r&bR))?dX0q7l0=40rV&>InYG"+G'kAJd<KN#U"^)+G'kAJd<K
N$B?8pi9#?OX-lu7V5eq"`ffN^Jjd@**H&@IJpu4?e`t]Bi3R,up]FQ[Tp>2`JV.
_+E2)tb)Q(q@q!m>e'"*LA&)XXemg'?%r?M&(eX&Vu&'3t!c;D8>"Qb\"f!7$H_7
06#XYk!b%4kANkf``L,K7)D--9l=cWqW[Mt)n:1S1O2h7X*%F$F`I0Ue(uRW0rGd
@rs3*(Ku\^J02iS.d4A3KUT\dSI&I]JUcoH54\1jR*51$3jV`\IJa5Mi]S8jTB\+
oC2(k1l?&1)Vp)Yc+9qQku#mgNUk/Di$TkI\uSZc*(&W8qM?b[\)o_nrIr,9/#"&
d(G:7`JiuPA31K%gl89qe;<[0B!8\k)64een#XT)U+UCCGKHUUf&oXWTbYle[eTl
I]&8`/c:f!o8+&K0hd;cOiB\-L_b&jd#iI:Ru/`nIkn#jR&#UhV7T*Na),_jk46r
[;jkfR>E3QDsqn]<U@?g8rK+q*_EoGd)P4a$0jbnf&SVVU@r1*I=]Um@cb5kq5t3
._FC<.ELas4RG]!s&B'!!<3$!"bSp$j[u-#U"^)+G'kAJd<KN#U"^)+G'kAJf.5D
Up,!D'CX+^Z/<6CSj(2RFjFmubq)2Y@$AWb:bfLM-HA@%e?XQp<S)q(THBl"olP&
S2^m(UX/!uHC@"'lnAqkoRn)i-BWN85Kd9]eo;:"sTgZ+7ke8qH9jKqjQq]Z/o?S
U@9e:+RBnLi(en5+?)TY7/<>agcp\g7Y_\'rk:4##m$]Q.=XIq%OT6P<Wl\#MknW
fC.-s=ISR?V<#*]qKMeL,jEM;<?b;WGlnDHb#o4^mbG*lUMdI[/Z")rm[u\4pAKX
9Q$d"pf[?ERheDFjPS`C24-X2Q9?6UB4nBGqs-p'PJoT9Z.2Rc\D0so1\&^]bpG:
><l6CFcG&+F75\8kn7(kibP]siiSFh[s_#e3_5&h_LPdS&^=:B8Q?5&\$3&bm05@
5XgIJqOu=$F90@h3TLqMOc84uZ'G`n*+<EW*nq+2iB.-@KYb8.Za@7Z69JV!!!qa
Khn3(9B\mOc8iDt9Ncb@fEc\?[3\8g?VCsJjATuS:)esKS2_T&Up(/nLFJq;Bi$-
7oH3d%n@bB/ZH,HeOb-_So.$t(7qHRHkh8p)=OZluYV7=<j=Q[LU-VE1\)ZbmokR
-Wf@!KHM6nB7o+Rs3qZc*t$fn.%90DM(iA0VGah^)nm6pOLE(T$]fOqkK>>0;DFc
A+sHWD/VPS7Nh+9`0?bn.0Kq*)Am4E&0jl>>T7HXQWg)9/Fe;%c$@RZ\M-rO#_as
X7U``Oa9H)^,4)r!FA_A1\5t:DBKNB0_8ugNPX.iT!^ha?Ee=XmO$EVqc.tTn!D=
t/i05D#2Wg7u++cTg`eG*,)l=ni;J/F)HUd#@(bu[Wo7`%iFhAq,Uf%C&O[tejTH
#FR$l`RAL^4P:@QqBgn]`>ROpX1igk[a4Pe]QfJ0BZJU)3o!!.b57_2\Y+m>a!D+
Ht-W&OJURNAT)p-pS.snViDnUU5QT"G/u`6,<[Y8gJD.$o-':J<)8Ab:mF^&-Dn8
JO]tG"Up"#&<f?fd\njh.#'4%/E.$cL^OnQa:^6/30;$7&toSm8N[I:9Khkeap^J
JnA5GVZAU8sLa8,h+U]e5OPrtt9hu]le1J7=StW>OqsV8rn%S\f^A<jq37bVC1Ht
iW!%AK[!rr?'"9nl1zz!>-Id0gJQ4E?IPT@=dpQ0Q;Q)nc.;C#QY#.!C%.\/Km+m
,i7(#7(1Nc*9d:TV(##7PcUsfV(##7Pbfg$;O"",9;Q2PWOAa>7e=7SF-]_i8mat
]=ZG+2;o(>EjH,$B!I2[PBg6"gL3d`V1Y#E[SA,"'"&iUI7n-!<7n9;RcND0hYS/
0W:p[sBU,MmSaNPE-KHUUUW@T)QL."MMQ9(.OTmM$QARG&,ej@T:b!,RJXh#Y]64
een#XT)U0RU^5T(C8CI$F2EfepB:[*m.ka5D/='-$AR,iAG3Mr@gNn'o<mfETJss
24m`&HDn5!WrE(!WrE)z!!!$3&0N,N@6maE5]Mp[J^Nueg&MBZ!W`<d&9@[J!&=H
Xn0F/g,a(_EP"?p^8L0Hj,a(_EP"?p^8M<IWd.+$\WbJBW+$CYmM;WV"8"&?iXR\
Ia"2s^OdWpc84@Sn6B:7n-SnEoBH(HCOjEM^NJ`:pG-^^%E+rW<V%T3lmK31GQ-5
md@)D2l;)kDi5&BHbq)KmP*ea5t6d5'im#m@Pn+#mqII@25paH2I]-c"mi&Mc_]L
c)"t6YR+eg52&j.%$\?&IF,R8<B!++Hf3h:Q2Sm+UOka.<:(m/LJht)">p,CG:B.
d[+,a+V[V[,Um]@@q@'mhHLp<fons#-4rpG4Ac7"V*ug'..EWs0lWuBCJ1$s+G('
"2[!+p[=oZ/,*]Sq4eW"3ZV,tV8lCnMd7,c[U']eQ@M"29"G@DH7RAhfnFCTcTbg
5M;o[*O/nQ"u84=J,.AfB;`=o&p$"/E/@A3Z-O+DG-RT)0mKI)9u2bCgY9OoCsc1
K$Nh4ZAgL"7S!aK`fW84te6C)fElM3WaOd";efZ(biegd3"a>X=I'#nUqf\7/og$
`[_W@3KT0Q%g2(3>7%<OTnmC5p9iT;N6Sk\>9ieM0]e.&gG5\0meb;QpO2.84-Wn
NbH?W2b6J+-.na,)DRo&@Wr8:E-*4[>SDMpY[Zi$KL-AI'7pKL`8I#eh?H+6U6MK
&hB8,;5"NZW8iO>g9I.b"*?#i/-TL2L$,IM$))Bl;-;dBlE;1Fu-I@>Vd%`ErVPm
=F=YA/q/6$G^6pjM5,V1Db`$%!kAJ@uZ0\t3Ke2YAn83/nG-F?H?\@3F.QSTm6.9
SuHgbJ)]fX`4LP]';,1Dqo><`59"KgeGaPbfg$64fT)<*W=fnA5mOdf'SZl$l1]8
lD#F;O8*4Y=naM'bqGt>lOV-C&\0'MuJbrr>mWg099O7j8:AV,nS#u&4$G0W.G9t
Ji!d9qgs<"PujU"9kp2.e,KCUmimkVkNA2qgFc=eUl]a1#9e-Fhq85S^4-$;$U`$
'2C/s>j@P?<;+20r72/Tf'N%235rT'uiYG)?(*du%!(*a:2!m^+T.\ZC]/jE'h"^
a7rr@*;*[;-'4*;g_^:WH)&h'OT_uM7u!<<0%!s8Z.!<E3%!<E0#!<<]T0gSYJ@<
$j\nF7WpdBVZH0L0%Gg&MBZ!<<-b&A=0H9T9+W=T#`7Q-3E)^;sL9\NmV*:oIESQ
;e/*Be?=o2iB?.;JE2l,l[iYjE"LSr"oD6zzzzzzzzzzz!!!!UPSP\KTEGqg+8[H
Jm%]!GQWbut)FWq'D$F3KC*,?dR2e5h.m$!3Of`tiQ[rp5L?3,`"LtP3Q+e1lNAC
I_5YKU##A@&c>pUH$dQO>LG`'47*m@K0EE@s&C5/_)<c4KB,S@(b>)\/%TI/&(WO
Bg9bGFE&DG5p;i^hV"]ge[/>VuUMTE&3T]lKZE3hb>6"p"+fp_iQWi+KjOJY*$.#
(-jS)=TH?B>DiET*%7]Hjocfn2'-<aNp!@,<eSEN;4@^1ZW2ic]OhE5"9pYq&/`Z
jCcQ[Oe3j^7XU0j)=fTEB?8DMT*%7]Hjocfn2'!8^s@S("$Qp:%/:_01Z2o]c[h\
j4pHBCDe[\K?*?bZgn:>Efk&0Y&X][7S;\B+erE!5=q030Xi"!:^t,@LX@q_p2fi
gprr<2,_!;X)Q;Ha]*Nbf'$G$T,I&m-.(&`dRmseoL&Uj3CW;Csjr]^>^#lam(4J
)1hrTHb$Hi"njrl=B?Z/YNX!4/s!rr?\Ahu:pI^\s^qJ,;ERrLZ1Nc^k(9B4Kiuc
I]i0T,R^TQ%*26pAVn;pRqNd\rXNkHi)1\qqp)tYO)'dp-33gSZdP?4'qpep3+.L
!:9*"rrCaBYO"dYrrCa+p\t6"iIBPN^[1aIp3c3'4r+$g$NAA:IqQX5Zf,9En?;1
BbPMcFHi!sFW'BXAJ+&H-a5>fnl\#2Z50XC`>UB@<QhADOU[1kP./O^,M@e\%Nq^
3f<gLR.BI$#`H"fq--ANn*\f/T*,pfn;!oaZR[k\FQNk)DtJ7Do9kuJ-r\T6WX,j
5e/6s-^'`]XW+V+UXk5m_O5U@iiqTc$]g&:jm`,PVd7`<H^&TTLn*PG.7YZg]Rp8
bgQHqusoi2N&FO'e31^;PV`1#86&)n:15_We;Ne@i4hT6%]j#:gfIGYY(01<-ff&
7@o5q8sPd,V00M**gIe*Y(o9-/#>b/_?N(rU![kIeS^F&m1qsd>XgDsN1m)R>7-_
NSrmU(9.;<cX;.8i_uRt^KE@U"fkrjH@Y>HBHH^o-C^TR[Z`u!n&dtYQ.t%Is/D(
B:g2L6Q&>ZB[<g6>.[^X0u(mAtVA`fi3NTQ1RY*H$92?*Z>]oMA,SMis!QPN_9X2
W#B%Ymk(d2u!s9-XKL89g^<>Xa2lD(LU09BaFe)1<@oB)N4C7O6HU_j*O/<l]B%-
(<n-[Ni2'ct^bfWY@!&C9nA&)e!l7Z<orfZ8>'L#dJn;,rOqC84ue\$9^oI%7"g=
*05/36li>0]j5t+d*g>U5qVb&LM]:)"(EP(&^W%:(S<^9iYZoT.hiKC*qJFbUUWO
@#V^j3>)]sS6#[)@ZoSBN#S<#LM%WnK>r+9UO%'[T3\I0FYi?Qioncoo93&F%k8a
2^!u#B=;X^H\K`hqf-u0O'9X6us#6\sK>5nTTkQ"hM]j).M[)Ou<_PWLUQ`lai,%
?)N@U>=NVQ@HRQimES>u.C_O8t.LiQG=EfDWWN,n"*b?d\6P$)&s[1lUdO>BC8Zg
rc*j^`i(KqRB],;eM=r$6=3dTDD?(=h20,pR#,)NAQ8%`J=Nqe?^hr#0jBK0CAM%
?$'q;ebuaKU4og'YNY\?;ehO#\eJU0-!dY2&G@WT4MbFB#Z+q4@PRp!X+6'e3&*m
qH+K:+Z_`Wj!4Wtq7!`]!6(h&lap&qa]`C"$Eb\HoRB/IZVp7NtE)$BLWb/MgT3*
40gju25Ca#;8&?u@BL7d+iSTd'A,tBHNUeZ]=;P8+]<2u!K;"M(-X46M'UsqpX`.
G**X`C<*]r<U;NN6]H]?1??"X:$TTej:3,um@5h:U%f;Pd!N.O`XKKbXJ0j+AC@U
kcZu*_:_g)gG'o[e;fAUq^L8NJDPXM^aDX[2gmb$oNs5Jt`'g_S`?SbnNKpaQ_ej
?[25u+SA@@lN%(6o-LT@!,@_!ch3p2Y/76nAA/aaUM&p9;8A+?#lB9GoMYHu5K/M
[eT6:15>Psk<KXaZ'`ARs(bB\7L[FO7T#Z5c([N3j2ks<pb^,),HDOtkR[`lU"W"
e4`/&r&P^t>5U'T]phPs]n)`4\6.B\QN.['&9qSK:*.=G+D:7X:Z];rh]eHgog(D
g;`]f3G_gM6S9l^2iXeOKe$`IZ%1@2biUC;4N[onif1k;V?h&i-1Lkbo%dUF`X3-
BN^,rrD%pOZFKa,d)kO<3E&cM%U7a0'.1$bNQKQ3D+UF^B-(d7NRJ>?7!DnF<t9]
#uEYil/=CV@S2F6&Em)gn.cLd@T3hj&&9l\+@M/t`Z6Z?=`WWIr(&sQO4G+8Mn"l
qZDj1h+j_q8"<B"kU-p2I&NUPu#WaFH&1'r-@$T*(cuc6a,6UsXN-aVk^W>Y;V88
K(i*_G;kn(liquU%5F98>e^I457#a)Dr/\m<Dcla:CYZjJW"gl0M;2Z2*o`APL5_
,+4,d*1p7#\*N/$2F&+o$gZm]"n;',!,o0nU;U;A>L?\Sr]_'+Ag/=]gLc]E92d`
hY:J0W(Wg.AUm]&Bkj>180N#)9eYim$6+2$SS2_`]XW8JI&Sa&39rm+,9N,dNc0J
-E)bN1DhB(F28_k;7O:J)X3HUUE@:GL^=AZ&;%\Y6m6"A.)NVhR=cpOh8NPml$_\
+ZrS]NkZh6P*A?n.oG581$#+'KA"hVE\m:`I!/2W\.cLb>BY;1o<2L$;?q(d(1N;
L]oTk]()1_o]f0QB%R80`]6Zms%@TqnkQ",U[YQcIg3!:9nK+13nD.SauaJ2;3qR
o:r;Me73#[)72@/-:LfU\FTjJlY8ZB)ppqCKJp,/OZ0UMc\0Qp='!RR<=kTT;Gp\
>!+A39rT9#II.X1lA!=`<:uON5Cb&8=-.#@I5Kf?DM/UQS?@//#*@ddeuZ!E/\7J
"ot)W+u)AEMT[r:d\ia-jEajX$s'VfL9ZuGTVF*i;2C3RSmiQ/Qj#ur'.D19.+0$
d&.\:pk'[so<tMY<1BGoTg09BI,tuKnbfau@g//+_k]4Ik#[;l`TSYU]bT5>%4-A
/B*-]&qR`<d;RX1Pg/N?rNfS^pr?r@k)e5lNO&]6Mgi/[64]PRZ]7Y"h]e-7VDh4
qq@`"At'dOI(E["g&/6&2HE%$m*k@H_+T0ZQH^7&%8S%*N>X`UV<:__\XH#g,bm/
`MMR9VB8R),))Z2P'UQAU0/m1s`[%rPflVnsF3W/rQ]OYa%>7&4-m`L(AO2ecj*e
Aers+#kWL+ApdrraJdgiP+9Z>Z60Rt]e,F&0LBYCU*VdTi]XTl,FZdO)5B`H-#j?
/#3?8pCS]')1^K2933_iekip^0l0[WNT8J\hU=Z2h]L8K]"q[hB=F/#bEciVV(E/
B#?r![P3h8?)i(1]u4$e(EZMVQPV"9@k7fj-cb+$1f%H!hE^h*Z(kJB-Ab@:V4+H
p[+WC-l"H'IbK;BVpFh7'P/c5/?Na20B5V-TkNdBMUhLb;_+-6a(qg`@X`&I`BLn
jMIGel`<s0DYBp$,NE9BZ@@bh/W/e"?bos<5sq:b[nNl2Mg?'&tD;;J3h=$g0LLp
EfnNJn<TE2ZJ?[_>Zl;/XKP`-U8^OM4(lN.KP_HM$(RP/4X$&&PWPYt':1;X#I03
g>HN,8C^2%uMH($aK51'db02qnT((hLR7m]&_6^Jq8sKu4J96tg(,Uk,Q"=NcVT]
b*"LXpT$h4B<)!rtfSI&e<,KsLbKWmnO">PFoFH3'`1HK?F;Uq]EP1bO&S#SqUm<
><05cO*_<&Es.B)ACrKaAek2A`VIN3c4:kbi*SdZ\roA\>hI$Ud<9a?.e0b'Mk<N
[8f.KgM@YC`lca\7S<N5isDta"<*b:SeHf/I!mf+?Dhs),em+/k7('d;'C0N-&Wj
F"6g.(P4#X!J"mI>8#-7d=X(**##^\`2=0De$1WmQH""oC(M;6;o4c5aO+X6o8?T
&"q.1,Unu(O0!2[)[^+o,]HtRTb'VelBkSM.jptQ]_?LeI-7,7LZNNRLG`\^/W=A
V_7Qs9f<%E5_;\1[Z9X+b?$,[I7i[&Hg;E:TY#+bN9qDJACKe.GKMD/"CWFn'8W%
"!86mBQY0RB<0JhnG-DCZK)NOgC3[5*_&&M[Uf<@`0YA^\Xd?smJ$7Ec6M#tPDZL
kTto_6J=&lO0t$$ESpa2eA`i8:m'd&L-In(`P8TLJ8Y1dIXf9R6<S[:eMG2\q)Ck
Ua\`/TK-D4[i3a<l?gdoj,'4SG_K`O#:Q2h8B%Mp)u#Y-11Nl70[rH%\T>ZGgG7j
;r1/r5:fo00=H=PE?;"\$"#?^C:nVXCcs\$lfs_Qf^:,^qAI.!M;`B5-U`\Y261*
B;!XAL`<]R].YQraGqTX[T;.b$No!feS[Qqp?h$1Q\>REV<n4KK^_7CAj[@Um1>l
dRuG&_G==]]8lfrhgh\bDO=;)sIU'pNBuVMet_FGO-Rq[+M#dTha0fXFD%/Q(.=T
Sdou1-1DN@[-i2VNB:3Ypc^[L>m=*ZOLCNC&Om1$CHW;[u;oPA+Bd?eZ3"l8AVjD
Cl#nOLj;VjN?TZjbd8K[g,\"J4-2sX:#fpVAu?228h+El=o5.##H<;$2X0e":.0H
%)pR@e6stDuUL9ThA>rJ"jSC-,1qm>tJ=m5Ug40`$;[o'\FXi_p0TSXQ"iRf6,=n
s\LaV!`BO7d9#),)MVcGUt2OJs@U-"GrNqsoFn6_\P<RAsl3Ag]N6d3)uBZ6I\d'
RMD>!k$sr(?75Bb:3tVLe4\BCQ*3LdgBTM27EbH&XVue;pF/nLF=!$QLjk1LP80A
7j%]0sK_jgjo>#72^hBlq>ND8flGNZ(i6\)51k/AiEa0#oQ)]=cW'5nZ%<TKI)a?
bgMinQ7Sr$M+P6%@m\3&-LUBW)!(s5ojVDD-A($J6/JFF40Gd''6XZo@P^1/0G08
;g^puI=W@u#*<e%(ofaP+=3sfQ,VT`rjt*;s,=7c,:fDUd,BQMqTQW*8Lj1td$Q>
/.RH@_!6P.3lFb^mTNM/7iG3D2I4rth#'$=LUlu[)@\pBhmiQ:(%D3>h@;?$V?U_
GaDoER;Ho&6>Mfp"PihR/(uAIJYVb.!;_$iEi9jH''e31^+%2eoZJi"N_0%GS<)R
Zs.ag8LjkRQ/nieg`>^9*dmfF=g<I@p3[-41dr3V\[U[[W'2Z-54r:bY5:;CWe:N
/nM*dnoBBDD(5p`YQR<bSrksdi+4[?(rhNK8BRa12Cj3RBsoA94\b%4R6]XPfGtq
::#XApd4m-$R1Kt@Qjfas9qpnNE271LM(I4h.1*I^<m/KsL/qu0#67/CBc[SD>dt
t21=#AP/e_6EbY$G8][\Mt.H2;HQ*^p,3j;*W/41NnKh0RtX3SqjR0$_cB:?GTM0
Lg!4>,hpE18eq)U6^NZ0`Xu\Nbf4-tQ(G#$htSAe!r2?kjXL.W6_lPS^`;ALkI4H
jqFl4$\<dPdY7VFWr%Bit>;rAdc7%*0g`3+V`#L\YM69J;&iB,o@+<@S"<pkQAca
+MD>U\Unl*K`&JLT[(bL\A8bs/Ek:tOHp(;!:32KL=*M:LtL1s0Cc*IOCm[6_sq>
a"-$->.Dn)8m^%5tp0qeRQlss(CEI4!ji$fo7YXYM`P(Qp\WW^VBic[X[n+`R($]
<?&IbI[4Vb1l6kuf*#Bb3I3_>PfTh=uJ[.pCeZUc[2+Yh@V&Qaq,]Ktd>6&'F_ic
ZKT9r866pM<+"!"O.P_'tg-F"!E+>/KDHc4tuB%LB0CZ@RTRaR@6h.@25G0F01Rb
%:Al[/l"&ke'8Oc7-=n+5"_5ASr%FZX7SJL4e0/@K-<:rJH5-fnOVmL'-?@b>-B^
\?cVHjJV;!hS:"eJH[I9_WZm.=d95'P>23WgsUV,+OtsWQ457CI?!4U'AEr#^\%l
h'ko5GL#%BTE#&j6\mX)A+qts)@mHl_h&Hr]"V-&9^dBBId>i1KS7W(mM?;JdhR+
ad4X?,DO9B9k'^-+;5p1\$8<tO>a.hI)Zf$EQ=2=%.@ALL?])fPS`"+OQ#>mCR$)
&,O)F8pQ%n#VM]6$Y%L;_UKJccg&5(_jhL8>>*gIjG^;R<T@1">-'>[^9]r(>\[B
fMh[1CP$'^mZ3##^4LEK:tb5Ss!i`)I`iFEtJc;dQ`Gie&Fi*6eXGh[!nieX4%RC
$Hk+ie%LH3a%6b!+to].<pU(D$M9"_`.miZTo\1F#uDl1mU7s7l5u.q`2QRNd,9Q
9.C:SY"QC)D-@1dmO`XWb.,cbc9qsiY+q5AERCBECBi/cU%BD%$4&D7LL;=k7!/\
5f)F/J+kq56'@b1,M!"JuWmKdpe`[i!uQk3OLn7$XPL)SeXLeC%WULGXO,dpq^>0
V_E=]pA4XeK#cXB/@Y%>+Y$Tm<da'e:/^Ttd.?<gDML?@3QofrLE!hqOt<E](nc*
A5.2=aO;,;@R4O1N=%,WD]Qg8P]uH^(.*1?UV@7k`,kcGAKa[KMj,A=9uda7TG%R
9W@P9O"`.0N0@N/Jo&\/05(He.iWCT66QY9N7CcCFc.f&A^G=o!,*[^D&4'iO]nG
HpDB!00o#TYh7Fms!`<:!PK-/:7?"JP!GG[33\Ec?[?bs.%9IUBY6-F*Ps]L<3hc
U\.]$%Ifm^0`Jm/Pgd_&Q+d4[t)#PSVZSEDR]r<re47D-7FKWT8LbhIrh>.cJ9@i
DV,4P8@jdT_18N$l0(lNFN&PY+R3_ec?hL@qJ^//Al=,Gt`&i]V878aK7&)_G/sq
*ie\#k?.?`%t:!Bm,/1YO4L9F#k\,)(ohfQSTZ*iT<9o9k2h-o\+%W',;'m/TV6U
W/]OlnJdQ"N)Q-5J[5hc9k=*/<HNiL>CN)"+T8&@QUcp["JRgucs=;ao5Ui`Uc9N
7<6o6$bT\BtM&g0S),?@56<7gU(eaO_j85pYj!rHg(*Ni!,?5+(:qNqdhG`g6Hq@
Ml\D"KSI&0nH."qm@=Z(gj6Bua1I"((lW3*)errB\TX4!08FKElAhkUagKUrcL_3
`fF\;l'H%kI9@d_jFgFGq1BeJK738kI%CfcKqGH'D>@=eG"M2+p"&/3/R1!n'lFF
*Vac@e26*4-Jr<N_sY;1'hh\4%AR/("SX[dJh:ID%K>sHAGKtk$$a_#'$QBhcn#(
JR4OZS5dHcS5KF4=H(\'DSW,X%Ae7q#iS9)Xf*Y2`(/T";%TssH4,#6&?0d^Jl.H
mg$L=>mq8$*p>gMPG.<<!jFZn%l;XZ;e:j<l9M@eH7<k'e'Q"T&%tPcfQ?$1$RSU
^C]Q>c^I2KZNBl$hs;]SnE%sj?C865FO,$E7aV3t^0XApoob?kpl)J'rPC./\%"m
;OX`Pcg2;S_+=PT`tb!@e2F!NZjc%<_^fN2[Ts=>D#<kbAf$%e%`5nDf:Z%YUbe@
eC_4Yi:Q4@G'I&&\oo+oF/G>D-s4(?G;@Nd5QRE#X'>;&JqN"%6H4GGI]A1(4WT4
S&QT8]"p[]$d0/2U=%mSb&W'9AO]f(O9=9-/i6CiZQlp40X7GFZFb[ZM'iqm$%?M
C!&GNQAK/HHZIY+CTOCl_h56Tim[@hh!5]]gp_L-Cbi;I:8oV6kfS8oINPs"2O%h
5RX$p2R`2.=ZJ*<Kb6!$BYJu1F92hlmCoOA"^SX(4I#40TsR$T91Re%Jp:+Wq]N3
A&.\fIa;1^cPMGX7B6EH\"9Q!)mojpS]MZC.>0Y/D`eM57jV#?"IIQo9Z:0JWiqX
l<SJ+sWg3PW9G)0FNI:J7q\f'#oecQ&1MmpS>/=^aZ-#%W=m]fL8tt06LANK1=ME
_d='RQka>krq$USf&4HSE5abjj#>?T8t3_WhEanG8)tM(MS$AL8,S5'3[IH3blTU
Nk&R=;7@i*"6:LR-X'5Ym90'*WdNN21Y5\LG5<!,[h>ln9R#FFN9t6)1K5D1H+GP
VT_JKhocuk(FeV5'ekde?7l@A=8UFih#WDJZ%`*oDJkG$p;%9\<m5'#`!GXqhYb;
b(l6Z"8@1aAk^a]F74<UE+5R'c8#p*@o`VX"lO-/pB-;54c#5a;_.7!4"neM"6HQ
g[AnJ)EUO\]C(&?=SQe^eOqB#4SNF4"O5YV).2%1Gc]K+"M_.O]4g`q[BZq*qOW@
@,>9sB'mjl!&Z'IZ3-muA:9lh@b-O#-Lj^PZZq5KVDIi6(T>ec:a;kT$Wf4N.!io
9DYt!KE+g9*$cI<:?/dmO(1RBS8UdpNpC2sc81hof"kk#LCng`_M&kYoV9:c+2au
r.!.o_1-C@I`JTZMdIX\9c9qX8=r?$Vu'Q"e+!,GKMUtlSe"Z1/g3MKj?rr<63#M
+pRMUN.H(i_u%-(@<^B4a>(B'_UQh\F<;DT[*eGaC7dB!Cejj.oUeQI<3H.,J=Dq
h%mj"&>99K<n[&8$>9b3Rj@>XE/f'`q(K43Tiee;^1!W0Q7121kV1_.(l>EPCb]G
!_""]@B?A/Hf6_0!FmI8:8IDhSIu(QLt4Q$b;G8MSuf,*$#i-H2\*6IgF6F.$h:G
p1a(O-43!^X3_(ILYoR>j!JKN+)D(QuA:lO5:k:7J$K;FhLY@-:rr=87&scPo8qC
ro/!^D9LFdXeCm]ih7'=nFda<*39'AiCCPXmr4f<"Ml;#G\#fgV2;C'b")c"V:ED
^gIjuB]R!SRa.O4(pV]1L:BqC=2H4kWV8kg84[H__GDg_dlNI)bFAqbMo1W3;]eJ
;D@MUol!DW'Pbr3J'(R:2$0!g1CW+Nr^l!CM4s0$+3NB\?]s\VMkhn$>_CFP9$<\
F<E\<Gj%U"[h1\iJDP95B(nBMh'uATjWeo.r5BM*m01EWX\>.P8:u5G)@:`;'=r/
_!4(A-/rko;>B!Lc4"ik$X@;78#<KT(7e6$f[5Y2:$Q"&=D(L;jOH(M)7;.BsW8r
K\rZQ?%#Qk[S7*mQ"au8J&FW#WSa;sFhR`[p<81r>Ml8omc_n&R]6+VN>-3]n$DN
oA_]:Z$+@V9-sE^2s\>Rl9OE0fT:eOk$H68T>cRNZT.!?%+>84-$=2bP.?-IU_40
6B+4`5c"N8P_.f#`Q/(Xq[X##Hc&D6P1PL8BhHVMN=,?kY#BeP#*#%?%6QXR#1>L
W<Ce>3Wp+H,+@7*6BS9aj\,#OarO.bh%-6<U)ke9CBmc"5lp2e<-tB$ZFckHXRh4
F7bK5g>U(<R4jo?:gC,#lj)GMt+h-_=BJlaj6Fnju72cbbO(m5m7G8=_7U)7G6ll
t[o<AkJ`Yq!O%C9(k<O`gR!&_MYN>.e!%ea)Nb#,ShBYK*2eiLX.R:c$BD[aKe6O
q6o2X8).RPOA;+J>Ah=^=T;B`NnD7P0(.k.&nNUt[COfFT%_\+bJm)K,^g^(F=GG
WWrcS8u:V?OX,9(32)Zr_6LIdOS/fLKZj8[AXk+'Q%p8;;Rt*&XJlP..&FK*&6Sa
Als1(Du6"2@2agh5ViTMAq:`[UVMcQ2;SAJ@9o8&Tm[6[C'iSZ#J)[C;@+Q&,XK:
6VI8aRiAV(s^tLGN-K,!m4"7^F*"4++,M_0EiD/T+m&?i"iU8U&QY=E9T(BKUj*[
$U>f,j3H5P+F;S9mY7hXDcmmOTq5]S'<N!j;'YmS;qe#%#hOTaB9/8@nt#@]bfR,
3r1C"UCJQKYB*dcEU7C)@/N'P9-iNLEK+6roF#Bq;*>pWm)>q/,P1Q$^DoS=*]K!
8=/kLi1@P/Tn$[0KTEt+i9ZK+jL^eMSX1V`P_EgCjNl,+bnVY(qnUp1@:op7^A>(
SJ^6d2MAjD!b`-8F5A!`2i%dH'uMJDKC4?Xc35]R#HF<4V\5LdCN13[6Lp$-J`:$
k#BZ9j.Bm3Kd52O*4(LGPOG9Op*@VH^A8Q!C@/GV#Uk]\?JEhr@2C0As5Vepo`n(
=!M?O6h-*j^VGJeAn)CI(Ig-JL_ds5h\F!gAs(3a*V^4PeIK)Yi#mS;%!Fr[Hm3E
mJM`4&lPa`3:NZo!AJ<),<oG9B%g.r6Q_miL?LY@nSI*2m]Y(<bqWWBDSZ6sF\NL
XKAB3,UU=!Ug-:85Yel#^1qdPJS?%d1nMB,"Z*3mcW/'l4G)UFsg\61`3>/fpUTC
i&)f#UUqPg!/%rrd*>L?[=gV@6jP_r)mYKh0A6o/M8TXeS`VnrE@KUGGQ@qQd0>#
4%`Aj5P]k1fM!X<QC`fWd1#+OTDBZ=u#[pk*dq6O640i]P*OUqb92QAU-toku4V%
*_GtZ=4_s\>X/]%sS1`5e;TW8JuX8q==h$)2%=<3I80(JV#2$OAcoUMtZ7YH"4>!
cnQF:igV1VblF$,j:P!9=V-CBN91:M;?A`\#^66[1bf^&#o/rFMEbAr:k*SuO/`I
OC'omR^H]oSpe>fS4r?#d'CGG'Dk3T"S:.<WTDk"2nfI7Z&h;*Jj22G\,\FmX:pk
=0sEn>A1[3I$6+*,cl:teL'?O6u#D$!;*GA;eF5H7ra(A&9^B&,md5g]._&R`9]7
=d&*geWTA]Q%>OM>g(![Ok"?XKgKY]",oW/-RsIS@ZHWX2/a4^kY@OE64bsS%0$e
d&%nMUEO)eH]DBR[IJaSA3mZ/(M-2C5H]-VWbmlaUcSeH'r'R'k8F@bt)Rp7#$$?
"(s\8o50fb<G+EBPF(#u5!f4VHN]>m=<QDlUeNK&`Nt^#J!UFP3u3ct4k9d2SulS
Z$P44#$fXlneKE*RB'<C[U3>l[s!1a7f]hddCTFd`J"6\kD:XD+9N(*ZFJVrFq,[
HMV!E\j)+I]@d$(O`bCa%O*&")b-4@Bl5&_7!35LW:u%7(l":pi@aJ_iU6rlmg0K
NSZ1b41H^I?mZea0-2;dSb=.qJ:CkqgDNS9*!4hBZnAj%Hjdo/N]*5mfSYA$-d"[
AWd!J9II3nmn;V)PIjBh()N18";5*/LU%h`<E4FK<dL=ekEm2N,Xe.@Z#`8tD$F<
%.fIHD_t;%`qTpRtf#12k@KX*+<TDM1pP1i@rP.4Zjc%h/9PWnd<?(m[T&Sn<53p
5'.?%b"./Q?P#GrMP8dm)&QiSoO23V0@Ua/'OpsH%q">*n&X#3tpB&;;+/gOoa+3
1qRsm)IrIbUCBa*%P]r+NYA]KN31"b0)kp-:*WU<`1tc0Bm3*F[.*:Y:=h"[/!o[
)k#="HY;=]YCs3K(#T^kFkB-lAoccWj)g4B;2jEEj=tIjt"kA$phje'?fi32t[-U
OS*/RoJJ<oFuZqeFtPMTQt46/JZE2>Ikr7kW^Z*[RSJPS&-``HVq-_bhtm-"r.dU
S#5FKYH)M^`:ISYf9./Cr_gf\?BL>^;M%D!b"TZ-:EE:rMkApZV1>M2pX(hIi7Zn
a>VDMfTWZ5^&#tKW<a5@X(NiLI!St7T\KB\d%,b/B69Rk$?m=44E%/gutnmBIBUR
Nge:!^C31Ai66@U4;6),fUdc'>!-9uBX38=;$nIS]bueq@M7[HB8rVM63,J/L:S$
Y)21X\ePrE&6Io^&42'-jl$=heJP0F9TeK:n7Wjt;G5X[+B[_7=\`-NO&CQ][@p#
%.-6e7\!i0/l^u/+`6O"8jk;*&;f3;a(:4^$WEBFQcQ.[[m.@&b8,roV$GpOi=VR
oHbb=Z>2H'J`t8r@8oHIllhcQC&/R85W^U:ps(M+k*.NYt=t6Cas,nRmbBAQN(($
Z=9MpJ35D1W62JkqU,N;(>Xm9LL;2ZrRFD79W(]$80b*?:^06bd?_=mBE[FA>s^@
Em$;-Flmo4Kl>0$nVHkcNg:@oV?gI!<i+B[d/faiC/mmkeIq+U"hA[@QQ>!O:kd"
l*lKaG_3"-@jcmpc"[1s&d_!Zj.V<:)>L@kq?f29YNC9A%dT!2DV+R$J$C#SR3I6
q6outYQPphl:.,nTJR7sSJ`5JU+c:+uINaIq;SpB@:6'?pe;aEp(hkbOQ/;B[)lL
6+$lsg8VVG,MtGp9eo\;9J;io[QAoQ2QkC803.Y/"C8<=6N0jFdl&.2SiQAd>'L#
LmD9rrB8+BXT<A[&3LUIghG`B,[>6=>+CbIn*jKO/2dUpdoV[8L0Hj2:l,Vf3_>R
!93=?P"?p^qTL?s+J;qo"6.2t!:u+m6WOYRGS6rn-Nq[*b5quQDcc3N.mXFnKt)u
NoJ147\;j+[A\G6p`!r)!(6N_D:O%0igKCX\]!L65;,CFjEafe#G5hPBSsFADdjZ
$cMUjXL9LoCd/O6F8gh5J>]Us=1b'fMZrrBET-0I8G?hPM7PQtUJ_^Z,+/K3'>X*
upj9a&fo#$"cJlq/aE)fmL8ZR@T!5`'8.SC[JGDTqj@Y8?&l]u&6sN3di"^#]e<r
(s%Q_)W3;32f8"W7uu/Z*'2qC>I)VE,/=jJM$6X1oA)mZ,9gNQ9.!:)RdPU311;A
."RG/eF>i]Jh@'/**o'Wm12c_YTLDr&WC4>_o&i.W+CVf2MA\*UHiAmZ"[1=ZbE`
4C:L,#&$j0('P+le<0nKBBY0/_)M1&1Qe7Z?_,QR5bIcI/BZ8#5#PV".nP9kh:DE
=p'_+s5nP9kh:DE=p'_+s5nP9kh:DE=p'_+s5nP9kh:DE=kSR`9P>DcGaNhL\Xp>
D4R=CrT&/l%rO0\m=G>MS<-j#&REDl#&<%Q%5UgRB)fD&8JglX7\*ZoW_<Q*B]F.
(CF8!Njcn)mS*.6HX#i$X#A?Upp[G*>bTWX&D2+?6EIRFhF%XVY#IsWC#'?bK(]B
S##p`_`AeAdW^Oe8:^rGe!b1JcOoDFa'bJ>)@$SBe3+(d4:+Ya7-YqLmhAU8M$".
lW1]k+$_`9Kn>$trMar:,I65M`G2+iFa`JSkd_&2.eZAoKo,Y_<7,7q8%0WsZ)3i
$-1^<6N/M0pQd4Yla8SYA_3PlVn>bPm`!X"F(SZ1P&:jOj$^&pP'>$"Gl(&ggMr;
n^YAnhN'^jrjl,(Kk";1)Qo>t[P8]'?gE.ns/r7n'b#JfA/<7Hk8+<<:aE?_:\d<
IJk?-E*2,fQ6L63s1(L*YBJ\<)j_/fC]2]-TO3Q"1pInQ8r$RGn#p<I$)rfeq3o%
ET).GXU6_M-'VD<0nPHp@"mH5!$H(5-eIP5kL\nKkL\nKkL\nKkL\nKkL\nKkL\n
KkL\nKkL\nKkL\nKkL\nKkL\nKkL\nKkL\nKkL\nKj3S`q/h1o'PX'-BiG!!f_f,
cK@#ro*Bk[MH(e67u;A9W61?B9Jo3'&"C+>[/ND%:Wg$KY0)e%=*Y+%.l1kN-S:L
R\6(G^Vs0Ij(Q.;I<BjCgH^TQ/2P>V)hH[AUULiftd'1dN.`_qR`Q&L0$);>h!TM
31&+P%a.97M[_ZCI$E`&Ob7U,=OPj8B8OqV2hfMBSSs+e2$pIX3^h!~>
%%EOF

BIN
Docs/source/hud2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

898
Docs/source/ksfo.eps Normal file
View file

@ -0,0 +1,898 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: jpeg2ps V1.5 by Thomas Merz
%%Title: ksfo.jpg
%%CreationDate: Tue Feb 12 20:09:21 2002
%%BoundingBox: 20 20 505 402
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%EndProlog
%%Page: 1 1
/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
(JPEG file 'ksfo.jpg' needs PostScript Level 2!\n) dup print flush
/Helvetica findfont 20 scalefont setfont 100 100 moveto show showpage stop
} if
save
/RawData currentfile /ASCII85Decode filter def
/Data RawData << >> /DCTDecode filter def
20 20 translate
484.20 381.60 scale
/DeviceRGB setcolorspace
{ << /ImageType 1
/Width 807
/Height 636
/ImageMatrix [ 807 0 0 -636 0 636 ]
/DataSource Data
/BitsPerComponent 8
/Decode [0 1 0 1 0 1]
>> image
Data closefile
RawData flushfile
showpage
restore
} exec
s4IA0!"_al8O`[\!<E1F!-eJDs4[N@!!WQ0"pG,6"pG29#6kG@&./aN#mq@V%h'!
c'GqZ''G_H&*@2dG)^?=<(*G.N,:4ce.Oc5W/MJb)0I8+r.0&$%6NIDs#7:_D'+,
'[-lNj>-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n
$Jl-n,,4!"fJ<Hik_u!?qLF&HMtG!WU(<)ZTj?!<<3&zz!!!!"!WrQ/"pb1H!#Ye
<!<E3%!<<*"zz!<N?+"om9V$j-M1!Y>GF!!!&g3P"V-0Q[*TB^'Wf[PHj4o8g[KE
sac[%8;CQ+OnIi1(?p0;]sT22)5V7K2WoBa>G^^9S67deAsL&%8;CQ+OnIi1(?p0
;]sT22)5V7K2WoBa>G^^9S67deAsL&%8;CQ+OnIi1(?p0<LZ"(0[$Yk:JG-"d)"N
#f(T%=WAtspFi$9_DIVunPFl.4H7>3#q9Q)!^Er6[(SQn^hpEdb@EJ@6T-j<'a#N
;nm&lH<_k]Aukmm&@6b<him_bh^YiuYa3^^LhORC#^4196DGT@[Y#=`ogd@K3;B6
YF7h?QMoJ^L%HFD#h=);YTfGCe/4i,iUV*?!]=7X'F2S`(S,h?QMoJ^L%HFD#h=)
;YTfGCe/4i,iUV*?!]=7X'F2jlh$%i@^l7cU65H9Qj:r).t77pNpflds$'*a?('E
cg!@I=)M9,NpCE'/`[jO2_DO/g2S"RS-)@.%2MlSdudh%]$\Ja'ZJWShY?rj[77B
lP[nMH)TeCF,ij#_am0'9cntqD<R,YtNtcUCdA`!`%uj'E,$bs_B(Lj`4;kKNie\
k<eSSDn]0,;_>VJN:'_?Ha<(eWpCg'gOM(Hm5l</P2JYFQg^hsG.io<H-jAZ++3^
\$ATt,;6R9RqtVO5lGRc@@fT,AWDM.Z9/R(4NKWq30s/<'7R;i4_A@#(Dq'J^kKX
N&35Ln]_UB`];?BL@P9B2-H]=HTr/`l<,'>_rs5W?Y$N2H^6f!8V:'\B[hbc^VBI
F69tEc-"<\[WN^+!""5rM)7W*<B2Qs0[WOe1b#.BZ2kPU1,MhNH*^#1MQ+!lEKRV
rNbKX^cAo1g7V/k^QPDED#pi6=(!R%.b:#5Y2`bXZOYl&K;,1@o'F]+6UnLa\!g@
CG;*$dn;9b/3_!EtHV-)$aj5nO<K"5l+;irMlhTdV56%Q'l3>sO[F(%%dOdV',XA
)Q]V,C,]:*e8HN_(4*eIbku3\h\pA^5&2#ut#7[:=3_Mj7%r`7V07EJ3m=XBeFYF
%f"='jQXAMU&)q1<EQ7],*?)-&,,C&3Q3f"PT10,cng2Y"9uf*:C.>PHfObX2pYt
otuu_*,Pp;#rrSP>-.(j>!b&Y)EE)5Ff\OXOrL,)"j#D]*GT/n!6!&`U=:Zk@R/H
F-l[hF`cZ-!b?,3@(1;&CE8*?>MCT?/A30et.SA+LX*'8'(pd-`\Q&p3)7C6EA??
57Fc!eR34$bZ$9>]bEndZp>t\]WC6G6Y!KrEV<&)PG6T<JN;94HbN:Ne)]b$StDc
/)X0jL#eq"E@2C?E@N3Ds8XP:>:i3QMkm\Hp1<ajd:lZSZo$EaoY)P"=/S^`+W'o
$6sc?89`<!kFJ61ZkHb4RA(ZD&-a<WM`U_hc#>PS8`84f8!V<EV6:\-SWg-DBkX-
X6&uD2m-=j]R$_KjQ_O.H-)f).45*mRA@aL/TY.-(:Zr\SguZXnoH=7c>@NQT)/B
q@cOe+SUjgO*4e*?T-k7sW8O2U3;N0.^g,PPLEeS\g'l^eBL6Qmbgr&Ea"Ml`,$j
Lq.>T9AC*\)i(f&Lh3bDu'Pk%jq*uHq=ZI%kPOsY\eM^[\3gtoYlN^Ca;G%M,Fc7
-kL`E^4;Y&%/SD^Io+Q;lY<fYO&q$V;TY'b.ER)6fX[&=%4Zp>Xl?h7EOpHf<Anc
TFq+`tORTG?ZV]BeiOD%pZ-A$5I1W.7IlE1Y/`deh"DT9i_:jA;qoJ87F+mEDB_/
1j,;7W+oe'i=$*\/qQ*nI#-tXS26WB`3%^Xg+Mu,cImmAK8-pmimuI'R'PF>*NKg
YZRdDQ<"Zk"7kZ`>Zm^*-HSTG07W<Aa&KIXd7jAk5k=(1I-L.CAKSUDT7iCoANk\
nIQ\9CPi]XUgi?m5C&kr\>6Nk24a^?fF.nPR:1H2`$^.fsdjp)Li.QF<G43-_L?>
eQ2pp44m_4,/X%X%I<F-dAro0Jmac89U[Y;qu<[#1+78qAZr9gL<QZH-mH6<t#<e
Rf6lK*bR]%Y@;m/qR(Z1OUS/lc>hA1nuF'F(:)f7,X'2Q:YMQUGI3#7EHiQ0%g`1
"NNkZZOQ5\c9]H?,<Vo]gb;ud?taV(r2b1W(`K/)h*\Q40Ef=q,(a%#_aP7nAEUN
X>0/!?.OqEj&/-sY)i:\7>cQkM;?C7Q>Kn*N4#n%B,`1V[_L0"PE@-_q2<.XQ]aH
VQUD:sl_gJQ:)Ffc;.B4^PP9jm:JC6!!U]?l0dYqqf?:`aYaq;n9kA^7O%2A)1@a
Kh/16&*K>`qtu-ra"E)(;;K'<<lG<b>MYdo^c]YV^=BX:`0CJQ!]#AnI'.c%@B?B
mb)@RRj=37Bf$R-PC@!]N<;e.ERbWH&2M1P%`'GJJ6+;&ET[GD^IoZ1KJ&YO@ZT)
R@>E6N`V"^i:\*^dd%Xi%Pulo3<@0*UiDD]0Ju=3KgTSnG%,?JSV.n:*<^s@FCoG
fc00j=,cV/"OB=ir1,MD-;CFdqQ*WEG99\!`>GD@p6_mQ[8HC^eRKR<r1S.:1C#k
$imYjkCJ]SBXh&4ZJRm`2\Ue+7uURR1pFe,,G;,U4XTTY_2W+9W\RYGF*MVKn4#"
GQ9BS\&^VFdU$)l!LGB1rMsL5&5R:o?S&Ya%bE@0M<&#&cssTP$>B"'HbE;*c!q5
r?fOW6DV@Zq4[Ufpf3FO[Pk2#q;%i-".0Xisb)0G+E8]['6DS,sa#t(4hl^%Y@mc
aBD89@@:OMKGlX-Y^ski"I-u2#&_9b$$6g6"PEs3N"W!ScndLH3Wq>`"?&hbK#.j
$<YA4PJf?"49;Y=cbg7K>6")7j,m67=0[=P`D:Nga-56G+9S1,%"HARB&A]h!2G$
1<KK;G!&l;.c/V4oQcmB$+M?t[VUe*h+a]=6I#[j%<0E<!k9p2S#ZqFeo!aq8rPf
PC!dLa5(OBNp&P(HnN$thL0\EZ/)J,fR:">E7f$j=BT&AS8Z">E1G0E;8B,6T\f"
>E1G^]oHG6Nf)1"Mb!;!!*K>_$gtX%?eL,!!FtU!+_$"_$gtW!!!/T_AUV9mQBr"
:=.p5>dKKfBHUag+CYNt@Kmra"s@@Z+CYNt@Kmra#(U(]z#[dW4z!!!';zzzzzE5
:W"q&Ct@H&o.+ffl[mB;\a"Dl6.l^:uesoQB<PH8D4_oI$2BTfi:El-gC&SPXL-=
(bubm^_KfN`j>rOCD81CpHoKKb>(B@Kmr_`%XO]0LGss6Nf)1">E1G0LGss6\:8k
3<p$(H.HUK^3r>.cQ3*,Qc(,<I<f+hob)J8kN)+%kl\94Jn<.^%[W$=!uJ=*8!eD
q>E7M(;;<doNp:qK4'0rW\U?/U0;pD/Y+d/Q^HGbH2<UjM&a%ShA'EWihjeiQ?_*
t=^GJHX4OQAIjq6l#PXhm*5d+_r@!cYXdpDUZH&[4ur68<lT?F>4HhipK9KmI$oH
WPr*pr`'H]u=VpIC$Zm>hr&eF?u7%i-5-nY,<1(o,^Gj?qJ$.NYR7C-=ZLn9VF`(
4)auLT3JAS*Ecu(4,#_3q[-M%p!s@ogb:Wo]MSXfH",*f6'98M2Tk(_1td0+k%I=
*GNiPL2q;j*#)lf+Q>h2Nk/!2\qmNOH?=?9:91jaXW=51Km$DH#<d#@F4X_=J_(X
_Se=&aLIWrT7D_B^3G2[s^LhlF?ZY?>!n*%7k&r,BO)MSeo_#mX_paO#b0M'Q;8J
I$3p.N?f/'^\BQeUM3:/5qB5Lp9Np,_[\iOIEe*/:JcDmYG3nl[X$BA9/d+"NsV8
``ic4SC/YrP<Wf6&,.'2F^;f.TXBdlNuc/EsJ4RN=g<CF=qQ@E1M!,G3!c18*ZN*
5g!?IJ5_sL;-[*q<'9XFf/SlE"9pDLL>5Z?ZFel1?O!hP^L62oKJf9X-r.qqRghT
jE_K`p7FY>:RaSF#L.;cDj!4I>Kc"4;C,S2Y"Gdoe`)U5Ds'&B;rN&_cY)lUj5_4
ngp!u==4B8eb'"/l4YE==YWG$-0=F!('C!1$jB?t1Jp9IdU#6o'NX%':Q?@FuN`k
AMp=+?T:T;:rNmBM^bI7tB01$_+r<8^DYUn71.Fas`Mro<5o/M-cC$%CHqj;cOJ#
?7nn!i](-Vr"IF`m!F5<.tiXDg@%RIlNOb4_Ur]g$7ZgOH9p:RcP,`LS)Zc-@P?M
k`Ge)s*W%I2C4TOQ:E$,II,6N:hYKQ?@VF@M9&/6]L[Uj+mb@"K;t#8QL?m8rtA>
Y>sT0p0QM3rL*A#_#!ihA[,MO8a\t-I5fn'piH;H9R+;'DOC)[T?RK(rK"kg51dX
HVegZc]^64e_"pPTq!.`'8':Y!n#nb^C[7#TRGkX\e$JjUT2e#LB;4a?cVf,-jrJ
ia=R3\&&bLOe`2`I#DB6R@:UTRcRe$H[\as^nfX%=>\O7XgkDdnkUL"b15*==ljp
t>9E@@U_NK!2RH=Otl0)'UM,Q]B7"PdtA(X0>PC5.DW<!9e,'`qp/Xp^L^#Qh(=M
;'A'03.To51@gP5C@lqo6uECNe(/KqEIn+c[>`mfU[C9IC#l5Q*5P_=.\MD*:Nc3
(`u35r_+DNhr26>m"`cr8G:kh?eNjfV4U!D5=<fna!9m)q0lc+qkeYAhjP2B)&b:
iHt/?;hai+n(X.33ht.t-%TY"f+Jbr(p1IOLpO8DjVlo)A<nNiaWgZpJ`iC^PaSG
,kk"_e>P=7p7;5"GN-ktIPes2J<JS%q@,2OlJ!7Df[3IEhMVlTUh55D+pr@.A[c$
%,jB4Zp^3hn=>[V(T`^768[i-jX=Hpmg\SNNt7nA#q/J@!jN*IhNBN7h6cHk(u*P
Oi[^qS,Vn33Q]9E*23EF$S(cE!?"!S)jMu]0:6#]@REgaJO\;#rJX+>GHrcj*Ue+
SQA[S>)m&$bV]W6']<mP[+S&J&fMsQ97iDM][%kC[*3R-8d(>(g7^8D2hPbEp"q(
Fqej.uol9:-0.7`HW<pf!Us/U^M`f$Un&Y&IW&6P?O$V6dgPte'U0jencQd'UKht
[/T`Y:_Ub[!KSc*Qi4[6CA:8>2#RKCu<:k0f01Tb6p:p-k"kBR`6o6fE/2NmA6dK
;'uQC5k9Gm8q(`L3HdC@YrK^l;2GV&Xna7j2B9V9KT1&?S@U3i%km#,WQNjrD--j
B;/in)8\JIB<7jW]S*M"tC8nBQ;'@eG6kFo_qh;99tOpfjl$=ZUY%lB;q'dI]YeZ
l$`:LH>_]OF0-<AJlUN!P,T-(b+(a6((nBT-s)Lj'j4F(\`jg/3XW2S+E=O8)bSC
/0I!'@ll:>I;)8u"lDC;6b=K)jh=9j5lnbIbMB#b+ZmOfhH)N&^C5$_!C$L'sa4U
8BL3@_58+Y%pH6\9gN53s=YESXN<HE>h;Ul5^LnZDjh4--'G@pc*6TQL?j$ogVC/
JLck;ar:<bAnZXE-%mf?EK7Rb+WoPo:<9",NneN:[iB<bHOdPgq^pS2I/JO"JF&,
%]S!kerX@b?X:<2KCXp@EZm$-<(7(2d2C&*5dogdpm*K:aW%hY]\]ESiY3"Soh;m
jZQt;1O<Ua-.po&ni]dANt^7E?:t$2hmT:47U`*c)+&G>=s9S;Rma_QUkcttN;7i
gWq(SqNAs$mR*`CFY+6_0>K+U]BL:Ef)FIS<1uP>i0m]dLPp;I6@5NfiR82-;?9M
@@a(1I:Y&R;F190r?`5/?>>f=.)FcN[h$I#/u@I:k:NT>Mk&G"Yl\F1a7Sr^0hFQ
h#K-?VdR<b8+hPt<^*195OMOXfK.,ZY>Q]#HMh3PIK=qHcZt=3AEh_iQ,n7oE1kV
3Xc+BW5I:M(8,,YY_181.'bOgt=!I2)+RS9O5VQ>\]8X5X6$`Y-V]\kmg$`Ln0YH
k)N*pBbr>(Cbj=2g%"n-"j7WqP>Y>6;jfIFOe\3s.&A4m,uR!#J];O`dP>%mO"hO
JX6T!f2'%o0d2=F$VQ-%M$V?.`.^Qf,V\r7XADG2#:nq^*LEib'WDLO,b#HDL:==
.F>_9;%TWY0?1p!cuAL@gA;T)`O&-+bApS=+%0$CEaTnuD'\sD!&0]f"4.7D.R.b
_!B.OlbXZRB%g=Q*u@`uE1idM'M1VR#Kf4/u@:R^`S[<[&F_.Oo/+\KT'=QA89T3
,hRrDNRp6<[LGE1T!tmQ<L6IcM>ECPHI@5YUt[HdOCTqAMP8S8Wa1tROd3FB=.$:
hT,j5gugDn`J$2naQ3IB-C%EI-)?sKP7s[XHrI/K]XKQ?f,LpSE/E+I`kt5E9h@'
Z"&*)&"/St^aXPF8@',j1#_f@AXpG\?=m6^A+dAFi@qdYt!([d(0rdZVLi5;`F%%
QE:2#n`Pu@[JT(GHu5/XMc^o>MJ>n]o-3>AuXV,aV78!TNB34M436uhOJ=aC!:Su
b!/GXaK5&FMsJe[\Z/OOZ=W5q8ab,3q9A-7I:d(lGE[ZkF?G.&j1FK[=FXd@h%!a
]A"CcGLs&-*S`GA?#^)<mN9hF%S-:BN%HdeU+MOp0E_dfL']@TbU0t3DpH&M:!qe
\5o!5KqLEYn.#5!\dH0L/hs47j%>UcED0&?Z<JKZ'Hg<9OHEO";be<;OYj(?)E=F
aP;\4rKUN*sRV9L$!gj'$2_H)u,<]SRB`b,2G8<(=E"sp\RoSjq=mWa1^TaE,-@c
a41/t4cRY6D0<@S#g?WBn#>o7[aM-=I>05U;28<jLs`]=t[W+gis;c65&b.+sYW_
la6bq15!9qj)[L':2G;Q=.7']tO:&.lWR$55e.l5XJr@pI74RbLRqdB8o21L)O*G
jEn#Ep`OkR;&8gH\%K0%`cfT?EE^nHDAUfW][5oW:Ha1V<*?Z*aCj$ntG?p.T`Y/
q>:`OWQ1!'5*N\?*cF89.HWJZFF!`Ogj//V6M]6s=m)EM%Y40Wo?5L9T<A.E5^2S
doB;>!f;)"$X3`ii++326B@%mL:SLkP:IJ9T4V8`[oHECY66:OH"aT4nM"?Cs'@#
.'%m=4qY<I764Sn[q^3&unH0+7Io;A<-cbB@uT$Pi[bYP1+o+0:TT%goQV1%!<CV
:6<]c+5d3tadX_uMG%!!*0(!sAW,"9SZ*!<<*"!!*06!X',>&/,a#+YY_f1-c$f,
>]X??p[7;s4RGY!<E0$"Tl$,[M\-eNanI=3K@U:juJH3R-$DhA!lC=NanI=3K@U:
juJH3R-$DhA!lC=NanI=3K@U:juJH3R-$DhA!lC=NanI=3K@U:juJH3R-$DhA!lC
=NanI=3K@U:juJH3R-$DhA!lC=NanI=3K@U:k<G@5@_/(IRN/HKraYb]hH&/Z.T;
JG?EFHHC@S?.;Q<S4X_D4TMkm2'@fG'T>.\OX#2Z5deuDWKMq`T)O]&"T!03uW!8
A_Bk-+=C.`5$XIDK3C`AB/>?Cdu=%]*4X./iIJ0ZB[;CtBmgftB[?RB+g92NlOgB
lB7tFj4i+F`>LRG2d.Xc4.GJe\ui\^?%CM&&$?E>B%u@JUrB'JUrB'JUrB'JUrB'
JUrB'JUrB'JUrB'JUrB'JUrB'JUrB'JUrB'JUrB'JUrB'JUrB'JUrB'JUrB'JUrB
'JUrB'JUp^/?$AuO<>S?\;tYVMU#ShfY-6i#cC&G%O1LV*9ip^AbLSNM!!Sj5BuG
!+0U5R0'[]]Ea`jH0rQ>rc1=Fl5ZoqsCin?5kFA22QVd!(q&]AZ/7hN[Z*(LUZE?
%I\`,Qbe&]AZ/7hN[Z*(LUZE?%I\`,Qbe&]AZ/7hN[Z*(LUZE?%I\`,Qbe&]AZ/7
hN[Z*(LUZE?%I\`,Qbe&]AZ/7hN[Z*(LUZE?%HA:(=tRo9?].%TN"#:&7^@+_]_5
p3Mu>f%"$dj1;?Fg$.lR=E7GsDAcJciKK"6*0(oHB&Sr.:)Q#cBC8!(qoPq^ZSr<
J3?1%a3?:+#3?:+#3?1%!3?0iVb-GeIGnlHE'q!K\;2o0FR+>bM'q`/;kO1Wsr^6
FP]`(:o&)JeeADs#4DAfrriL>R>)7X<^Q"F$a3+h-=L2Iuk*0)#!*0(oJB&T56DA
bEEiKJrGIe3<+]`%$^5C*.PhL?^HL[RHhr^6Jlj<Co;bUP<FB.@gaosBqIP9V8C-
ds)l+J#fKA7T4H@dPG(.Z1$cgEc/3PMVk:[$"!BaX!$[,*HJ3a@VM^R*AQXrrB7J
:#qI\T5q-paZ]2d,kb#EP"?ugPI7U>rrCZRI5"0=P"?ui7%"o*8@qB&OsqZ60<.1
_pukq0l;DB8`5KTT_h(#a8NY7/P"@ju,MO5spom&&o9`+M'+mYJ#UAi:n=Y@=,I.
RtJdC_8@Lu&84j8<>DnBQsBGCdqNMC1SJdD(d";/9X7d<OE:OF"@5mASHks5l4"]
"j[?MGY&Uls?m>5d9=5m#NJH6EP/"[WJ;JiteR*Ql*lg3/',K+ekZO@:o[(MFqC#
lHb[SC5AJ=cjtmA5;[L4mUidKML1V7J7jW(mpH<U_$%r8L0kigB8@ZaVW(n8Kq,/
nml9B]Sa>HahNC'NSqa,$qs>gG+I]WI?6aNLaMD]e7N5_,lV6YJfu((a3RPn[X2P
VfHXq`"l;>6JS>mP*pE6hS)e0n/Rkoc&B)B&Jd=(c,JFRW+G1=0&LlC%g=PL8h7b
3_,S36E&`#OiPnUSQ42?^/!n(Ic?t)Up5p(pf-3@'k,S4Em@U_TspEoB=6>\&=6I
plZm;)<mqkJ72I8S^O&[EgM&jd2FJl'Y)$qs>'$qs2H0JG6TptZ9R8k@f1hnZ*9-
71!]8Wf-tOc^p`>5[N3kS60)P"@%48aK0ENMT=-N/Yu;4IIXdR?8rS"saf6"stZ@
VkQ6b7''#&gW+\Z^<#`Oq95p?42Dk%";")(,9nCUT)%571(piB'!WnuHSQAA>WE9
]2)A/g1>N'Ua(Q1n68q1ET%PC1aH\$ATT<UqZQD5h]4j#_&;DHIi:(t+#U"^)+HL
%E7r0$)Z7./lPZ/A\;m_FZ7.16qOh.M=7RWHp,jtjJl&n\hSDW/XJftCO-t$M^T(
j$YJdCe,'LNQh6PM7B!@].D'HoAtG#T1[m"5ra#hjKT&LfFWnjt*aU9C^YP"G=UU
Bqa\;jD`B"sab7-71m[6&?\9-:VT:84jMJR2HB0OcbcgOZPiLP"s@M,#BQe:gero
]?)>qUTt::%Pn5B68t\&=oHcZ8fe8o+Riip-q;?OSkhGiOZnTiP"^gkp.7EG+XTZ
j7Rfj:8kSeC";0=DM2@&l(ml-[AdDk$K>Arf6E6VQ-]sI]a5,E1adL4j*/(395mS
q_W(6#:M$+ATLd?lSM#s?GR1`(ScpqtCAk#1OA7T;L8kP7<4g8BROaPd:l1*MjOZ
UC1JVbDWR#jT:G/4A0,S37u*M*cE+c2&,M$,9jALdCu4:m/W7sBU%,a7GU0r:B*F
T'jS]Fj@Z#jo^ST6_,A4d&A^PI_$tNRjkdjZ-('/\E,`Ji6s8!!N1q#sq5MBBM#D
D$D<l)9-Z`(`8Ck";0AkHTW>["B'IZ#k!:&P9V8?h?_sDhoQ47V?SMZ5m/$d8%Js
m&FnE!cF6U*"EmA!R@01$O!gOo0elQ?Jd=(RO2HPThF[*&&e>,.8rBWEF:^_D5mT
dg5m/$lR.g;;&i]EarpAX'TRo=)VHo9LM&Tu$D!qXSm",KcNn>Sb#U%((NTA1%aH
\lL7r4CUJi<+Cg'HBHSSe+>i05MrON>NM6brmBR$$4_n[+LhJe3M>+N246^qdm?#
jn6hP'HEbgHEnL#XT+p'TdtZ@U_gt:SNo@C%jmr&4%Ch";"(>&4%>"8L4#GM&s_m
0ejf&4!92"#YrM>-m4Pm5'='bm-o6^*XFJT0ejp#i.N6^9LpD]"F%lB2Ni:Uk^sN
]59%H!AGOfKFDh9n8%O+&5p!NYJdCaq#U#0-!%3uPjFn_;A:>GElT`#O+HPaHqS3
$q5J-bOr"p[Tn,DW+]Ddlk!4pAArrAg$SR_DDdBCj#qnM@Hk:p/f=$9HB.$#On8W
nSLYKip26:iGb'Lrj-<9=eB1Sg7Bpm&"H($$+k(:r#WX@K9&nK1,ePEph^7<X>"i
dl!$\ZJM>QE0h=Ufu:Y76++AOQ8D36]g@h:/j7'k>RpHAN>uFC,tT?lT0o`U8+Zc
97s3)KK=ucH4G6(H@qN9P(PehWA6gd,mcn7PU-V`q@usq>bM=IJR:]M(&EW-V&#g
M9Sk$X8MW%HT$'?hEj[2r\7\s8Ap'NmB3Cd<-"ef"/S@,7k;ghc17ZL..F+hPSB<
),*CWIpVbj9fVbhL@:ii0ne/^j)*C80q6.DGse=BL.;Oq!^@\$rY*F[NmetLY<et
$O+ST37%ERu4Nf,\lPC)q%0C"Ahhet$OrC)q%0@FcmXWR]L@Fe)0\2.gU#7Rfj8P
"?p^8Wf,^84jaC-qY,*TdWMK?TV4YWha8IBecFQ,/KD)R8d`pPsSPLR[G%mR[f-V
aAlE3eoE`j\8kV\iKJrF1.dWH+I0aM/E]m$7Wf>=dUre>b_J&'4XX,ZaL=#I<G,B
9eCGr#LiokWI-M#d=kB3`Q`,&*Ff/>aLK(0O;:SWg2'#D(;d%XOF]Fu4B2r*aeo`
T8;Xr8LFY=b.a&;HW\ofWqmi:d9mi:d9m[Z_dFY=,Cq:+1?7D[:FcM>c]cM>c]cM
>u&FUoK[`erkq?g9k!hG5Mi]UhnHPKDnWh[3jj$acTaRF6-(F&I'WF.pg!WQqD)7
m0@*7o<.5<-8oqoc2L"\>CmX`9G5)`8S[<`EC.;PZ36BIh@Al$#'9-6$=i\k]"%O
\0Fb*DfTf&TY0oeXs)+oe5UQ**;(<E*9qUEcDN\JLGBk!S@"fNR8RRKm0[?#jR_i
eIW`d[;+VIhTo'\\r+KW_b/)DAFY"P3-W\m/FIcRb.Fcj!`Fh>H/S9,C.4"@-P"?
p^8NkKHPouD'U")8J:E<*+4/5F6Mf3*no[X8Sqg)-9/Z<%HK^"@/OgUlT)eu.EBh
'ah6.XkfWQ46aVpO_d(&&EfUEq1KHR+bG,a(_EP#TOsl8`W?X#]K,MU&**Wi54.X
U_LdWbgsg3ee,kF-VA99d+4Tld\t7Vc6_I;u(/hCPmeomSln5kk\;p\mpOJOs$i&
K!sAMdN^WJQ>b8"RrY6;2^d#1(JCooX#arEBquOSOf'ZXZ+6f-.d9a(>TZF[>p7-
:Yt>AXDNS=!<D"hbXJ8@tW(e&cqBP"`Y7>9Hfiq$Ckt7nnKC9,?>TZ;B5(`T:N:d
;(oe\6n1;2+.RFGkH6=_sOX2iU?&#*;N6b"VnDNK'<\nG'CSWK_;<2.\oSL)F>UK
e2%gm)StFHtQb:b=OOaHWYs1oX306>94EoUCDRX.aY$ZmrJnUfo7DrM!3DLrB^"A
@3LPI8?]pMl,:&[PnJ6cCh;UJdBmVI\(Hcl^*uRYGg2RI8oP#l8c7%c94q/TY7<#
98Y'W61io(:+\K4W7+re<4&I%>,;S6Vj(I^p9QnRe"XTrVal#)1dib>mEhV([\1H
kb-(-$*7aGU/(W(N=L_8@l_aktl/B<!qM+W1)q(kP.(<rC&IPP8Oo7o.U$ZZC;0g
TilDnOOWjT:`?#[4#>A0muV)D=242)t[eZF7?;!h46^97?EY,p*K%T?Ll36Q1MBb
mi]kUJZjh)88%D65HO8D^1`f\X./%I9"PhPk?oNa'.rASYFTO_[g#LI#7&l4n$bN
K\\1:8<#!::0j3l\.CE\t*trKPA^R:9pt%7U\a5@/=`r#6q(laf80[p[k(YE=]+U
Vpm841oDpq^888CY:Cs=e1Bi6eh)ua>bJ-%XK,F5;/bm&5Ke/G_X=_#*VCl/$?Tl
VVbFOpVU:8hU6I.1RR]$5kUY49W>sL021(4<n#gFA]':6BIDN$,ij#Tp#5#NB$<V
1s&P+$ep/soYVPkTehf*T0*:.:na-PIK;2ZdS'=UoNTrK-4CTl,+Z+G2i[T[Gs8T
0'q_F!rseJ4jj9rip#$4c:o9o^pn>@a[0FR90V^!-Y*kh`^c:u1fNKf)e+;cH^t@
r5(LO)7a#Kh5U*neLD5<#&Wm2C$Pp;lJMM;lj5t::FA$[m<ckCJdgnSRsd?$`D]Z
=^!\"J#gt&FjjiA;+?[f;+?CF7Yo_mPAGq22Umtuh',>3>ni<+>>R>]>LGO7.:03
!;-iS6@b"BCh4sBIkk?qDk\)oO>0o1F/b[e%1aC_^ZU=TMO'g[%.]W3I@rV6ZUTG
al;VH'LI7aDbhfW4GeHG^]:hKR_U=39`\nU6mWA5ODQumO<Tgs2TRR_1s)XO<CW>
`O#J\>ps7eQ$Nom9<NmauKC;?^rqMX52\/(-#L/(!K1d2bQe0'\V3=6LAKUo!6'5
>AfN\(:QZG1'F_FH1*:Zk_n-kZ=mbk-&i'?00%7ePbhkX3M1=2cU=NK6ftg,BiH5
g#HXC6/1^KLNU$S+4af#EVCJZkA!k/>C@jWim183JIrR,2S?btMJmC_qU<#O*KV`
W=(LZUfgU$]>O(r6QMTVVNS`F",tV0b[]I&%U>&^3TiQfs&%!oCgI9$)NU#,;%I9
%J7_77/X(tj*c.B^^VJ)p3:U[@0Zte1jle61*c#0p>eLkSe\pC&b<U=VVpBL8JWe
U.#]cu$Y[Ma"*-aC_HCj0!jCj00a8+d7VKpC?t4Db1;39&ZUcIO_H[a<c2-_f^:8
i7O93`g#,;%uk@[WYuu&N<m;9p&JA[++DP[FO[#.B8ic\'E>\Cs.IB4f)Z"$4ghE
D2pC;7.2CX;P;k5_de#;eK]D8hR.,qh>O`k2,dfS\bBr0]<2V-2cYk$K6fto,Bg2
t@Re^i+\:A'p"M&CqVu[YCDST54R9$N&:!PA(hL`gb=P!s>%KH$8a`.>XXU/I]9.
Sc?g*U`n[.[/pTE1dk@l;gm-lfQq^ZNe<Cq,.>J*m40<%i>Cb;1ud$R\t'&o&.4,
/IYGpJX@r@#GD>Zg[,\"_X*2.^[XLl'jkOq`nVHA9JJG+0N(*)Z)il-WLGh?bQC4
<ZIafXgq5kd2J_X%a2j<$;g$qHKjo]i?OeQa%Z=]F[Qh2iX+,ffLIMr-'N>MsH*e
2;6Di<FNb"g8IWAeH<8)3'X/m=T43N,F4BK6uVp#k?EAkI1h1!/PnU30gP`G>sl(
s41sr"8H]\0a[NmcQI[Z(f'X\R7a]mPc@;rc]LSueV$5U!1@1%_1+.2XZ9'1gVe@
34ODX_?/Th-OjW#_74SmVCY0i"0FDGX3F;6V_-Z&G`DniPVEoR3!;ZY]__9;T=.^
$@=g38^'NKg9NlRd4Igb#nA>:FHI%jWSEf^,V0-i,Hf_OK0K=d>+n8G(3TZk;#L,
)ZSB4%VU7$64&khcG*/gKA9r\(bkbHfqi0SSe*CkcORB*nBZ4/iC&8G4"H`<Si'b
OE`%7+grA5D)@]G\$9eGKL,f;9_Nt1jk?\,l\at2Wg,t<:lV,G8N[WVPM$mG];f\
)S"cJX68jh!n\"Q\g[;GW]#0buqO:6E3DEhk5'Kpo]%h'lKA)g_PuQjW#^A[a;M[
rDc+Qk(Ssk9IZo4KeP'3I$W.fAg-2#\&(!)6eU8Mhr439S(lC4O8"F%]FH0n%")S
UKkgKRO77AianVQWEQ4'h`r)&'[W8L0m,C=U?4D(/,)$>:lcRL.\,`'j#n1,:-T!
(5'uH[%U:e?^FeKTk\!"@Ee-hFZQqg'NBf^o?S:a*?<3;+/]lNBu]bD.mPWVaRL#
[\'+orS'o+4%VSu:t8R3g20iUg/SiHgJL8q%jVbPO]Q3N4:f)\?/,rM[4hCh"kbt
=GU)]V^,D.$eM`tkP"\\@Y(<-4k/K9@SOpE8+)[fLVrqjq!-ZcC)bD>-X[TXfQF<
pD2O'm\8K1I"8a`UaiV5#I*ca[_d$mOA)#IBK&5M[7oA:KY-pX%t8CcO<N9XC]<R
4NhYPm:^\koCcDQ5F/1<A3Z;mcE62dM\=W\,buqM":,j3XM+Um5bJCqbTtOAEfdg
#)Frc1\pHD$1Js;MLH+m1i+WP]"]_ed<?a5LD]GW[dC4pOp/[X`d!WA=l8,4$aq[
?/sa&a(0$7kr"stHgeoBL-d)_c)k!)Bu<tBKf8RrPTg_7C+>$pqC>N3namoD<jaA
PH@?P8S"c+Pqc@JDG(MW9_>6sjlcU"p8u4,i:rSE:QJ-'reZCZb74IGP4j"rjkc1
BEo&\Ym\qDLuJ"fmW2FS3LpVtW*PI,3'9BU("Ek',\[1$/98D>RaLl&c_";"(>&a
5?F9r]gNKXu,B79Necrf2>9T1&OOP'6dOo;QRHEgGX>r.u[nWi13u;X*`'#:biI:
[KO[4+<@gf&(T:*f9V@MP=rf6`ra\^,k>?eZsX%p*Zh9?Y"";YL5WrhsUDV-Y,LS
WCJFijl,q[CT*X7qP>"92NI"oIZaHWhfjJI$6Y.(V0*S-(CnPm77n\lVtEou#eNA
*D*G__5<@Eam#js<(thlgU>aPZ_8Rp1PPY&!GphMG9BTLWgIXK$IM/VXO#[B]K9]
#3rr?6$0B@SEq:=GFp-BdRV+NgS&%F]+Q)RU`J&6Ysq:>QGG0ib<WD\aV"7?\#<2
E7dh"s<,r9J:5nPrtsU:27niTEh5.]`H3p\p<Nf&(]2.`#D%D@\ilkuDaU7/m8*I
ZjNXrr@9%Wkd_+NXn05l!8<ZMP:FUl>KBI;UnGU>H1LE<@Vk^9BTOXhWX<5"-nmG
4';/c[816<rTX[#=fNccV*$/j]$;f6k2FjW&(4fGg[=te.NGC1Z0KAF'O?erp]OG
.WhlXtW`57BW^PV6Qd0d6VCMG#Vpo!9U?V=e:T1jQ7FUN3T29Y+Ml5'15,.<7(Jh
!@I7;WM/tZ!_qMV*5%]HjS.'HUH?b!)"W*;:skZ^(PNe*t!D!7?L-I.ISU29%_3[
W./Z_M@#gH$\,M6ipmkaOUkcAf0+D!<?/2U7/cU29%_3]>9CZ_M@$-os93M6ipmk
aOU[cAAm%D!7?L-I.ISU29%_3[W./Z_D:"RlVnAKsRLikaOU[cAAm&D!9V7-I.IS
U29%_3[W./Z_D:"RlVnANO,?qkZ^(PNe*suB]pBr-I.UWUMT/K3]>9?Z_D:74N/l
/J,dFe+V=\U!WiB*!rr<$z!!!$$!"f;G+V6A)O9@77s4RGY!<W?'568MBNu09I_2
Sa$F)f4$6mrAO"aL%IN6S,3hBj#T^oou/0.q\G=4M^O>e+n:qd;kGWb<r?NAg59O
h#mis24m_&HDk6!<`K)!s&E&z!!!T3&cr_$5Yr"70HjkU5m./@!!iT,!<GCcR3Gf
/56p5McRFPZ><hb:r![*)`\EE^(re:hZ!t\1(+`Rm@`=6@/2<)n(re:hA4V@urfR
#29\XS8n3e!&TL'3C<3-gdYUC1k64een#XT)[M?HmI8sOrmKHUUf&A8[<)gOad_$
fKL#O$goQ@"bQN.)k'0ot"8T>>sHhr+FI$tCBGm^Oe+T&`C0a5Mte)#bCj7`#^i+
`LQYCjt(*5f_uIPeLft(T)PAkf,@PIMW$35EZhk>EM&!1&Vs0iJ_AQnJAMKq"\et
UE;4OJX65a`m8Ze/@Qk0bAoZq[j/3%E]Yh])/(+#QK6BQ@i8b;bEjhf$UJGX"+cM
nb<]UVL01^$jep+4NWq8XMjGtsZ"Pap]GE2*\T77F,2!JMaQ0cuZ7h>fND,=72.Y
8qNDig+/mPmPJ$K!r&,(KKl2<i\5JoTgPUKA(RW<,aVJ2K2RAU32U_JEb-l3$o$G
f7^"X)9H9[biC1JH7SaqQ$6'A:]E4e24ec<ON=kCU8oi%C%70AZ3^Z^pk%URhAlU
ONU-k5'qlZcd?3;qGS1)/2dj-0AT%&Q5>7KHUUf&;22464efL64een#XT)U+VbQA
,,I\!s24n,&-)_4!X8i6"U>)3"p4i*!!!$$"!J7#0etP)&qQ1.Ts4_3+<s0[K+fq
9@<47j6:4SD_,>:W'S>g"2,f^diF:6ps4RGY!<E0)56>;i1jhe>.]Qo5FM_YSK[%
sPS#-iX9I=YE9\hCj\m[C:_Ii%cc-lugV@tm^->o2Eh(Y8.@5E#BB'Fundg;M@'/
rT3DO=,R0U]L\1N^KGl%I=1$(Ie*2bYQ9QqZ<iRCZf_FM_YSK[%sPS#-iX9I=YE9
\hCj\m[C:_Ii%cc-lugV@tm^->o2Eh(Y8.@5E#BB'Fundg;M@'/rT3DO=,R0U]L\
1N^KGl%I=1$(Ie*2bYQ9QqZ<iRCZf_FM_YSK[%sPS#-iX9I=YE9\hCj\m[C:_Ii%
cc-lugV@tm^->o2Eh(Y8.@5E#BB'Fundg;M@'/rT3DO=,R0U]L"FN%8Ld6>_1g3o
7$[*jFnC,b0?77_A9l7J/@AT-s"b2:oM&doX.Ar%`R*OE':+(fHY(]GG<rkf0^rr
@p"%32`%NOk/9g-=_RogSX(qGsXpPu/^AM+cI<77^9ff#;fjBhoeKY`T_o'bosPe
T)n*@XLleYu)P2Zpe`XMrWmn=oSI0f,+<`l&MU^UH5GBp`F:$rTJm)rb^sf;iL=C
3QeA`kjqfr#I5OP&`4[caS'IS>.-h+LX5/_nnTW?D+4!G->Uh8<lZtU!]N`;VtA'
,cWqcl/\Tm/+fn5kdB6u$;au`a+5r8rhVS,q;&2etPj&Wq862`Yd78P*@pAqrr(Z
R:()k&">uB*M=2b+=$&]E@O^?_dM:)6l3?K9'3a0Ich`@>ESIs$+moA([7jBRjFs
0P-.U<]S)jqEiUZUsA:[_ald*Z37Uo?ud!)a_!dNhE59LYe*R14Up_O<-8`k10/B
X00J45c,CIqkV8$3("GrrB6%?gMt\#Krll#U<a!;JP[b)\$.Ikjc&Q@]I*^A,[]S
k.Jc"fUZd/+t>./'LoJYC063(059,7^,_<"HZnU@=e`c%?)E@./Q?2ZV<%H3C;Xq
I/u9<im@c9,=eq:Ra^MScrr>b+4dWHeZMo_,3N3&u2:eXa^.i,$Oudq(do`bE,d`
#'N-f%aX&dIUrJK1N<`C(d"D)Wn'eMhsrr<<%`]*jn+7fc\T+>J[d%Snf!+u=89b
uAB+1&00rrBB"?Fk=./2ssW&S4am@l0@&Rdh6EH]\p[/BGeUMXqSF/'M(^Y;'?m]
Z#/Ro+gC<p__C<(st;[YrET(0j\>%`Hd@4'uhb_<uA(p>[k@bH&D2.jt"YWR'5FW
`8G,ni+#15@mo6b7,VQCi+#15@mo6b7,VOmi*sX_@mo6a^O_:6($7$j=.$0G?=LR
dH&D2.jt"YWR'/5N@_B[*MXqSF/'M(^Y;'?m]Z#/Ro+gC<bZC180j\>%`Hd@4($7
$j=.$0G?bjX1!u:_B=7@qN@_B[*MXqSF/'M(^Y;'?n7,VQCi+#15@mo6ADmXSJ;/
I9ERENg9EcBp3c<b%8PD9#_Eq:OrS0u`t0/>i8a/'<5R3:SNdYH#iOKrlj6fmH$=
ZB3R&!r\-ADt9pS@lrK-OooGjlT*:3,d5X0/>l9_L3h[]ZCO/*gAipA:p),8fo]A
6-6ul."&\L#:BiMU%7e#*1V=Oq0A,-:-C"Q]ZCC+*gAipA:p)!qG@!5Oq(5M."&\
L#:CRW5$hcPPE/<X0/>f7a/'<5R36&#dYH$$=BYC!9729m-Q\L9?=\VNO%LKI1-i
t%V%8o\+CsN\LWdo'13`56;#,C#UZCn%?_n:"R6!N,rWW-pq0A1!jR;#6V%8o\3^
-=<"o;'kH'>#an)0Q2."%'WBMAk-;p5+]-[u2G."&XMSctZcP$]Kg8n=$k92>V&9
b.lbne[DX,h'R8>"_PZ2sE,b^9trC(RJi]9C&stV5:)@@MU,/]>V9_VhsD:?8!+V
]S32sUeO[uLW#>g:9./4\3e<U4WjMojmHq94:=un4#Rii-WSYKQ5190V1kN/db_r
sL#+-4-/Kr<9/r5W0(CRa0(CRa0(CQ6/o`L`/o`L`/o`L`/o`L`/o`L`,gtro:qD
@?/MAa)Is?[2L_</ERr1Yc$B+M4:[heinsF.(V9e"pceMc"io4f-[qTus9<HoDT4
c2Yj0\@1<@prlXk8(CKrM;h?7S$Y/Hr?759B@i\!6epb'<@kS=7XHi*LU/oCru#0
!\+Jj2YkZG*h$l]O!7YL$"`D6no)I$gL>.R%+Q^$+jVaqq,6T!.,*mj=Mr8/ba`M
o6(q>Ye8eGk3O`[@<je)agts\dhh_F^U1uYVD%<iU?9nTlm8@0[AE"%fs&38L%]=
9ZXJ9O$dd5BidOrBo!jOSUEj%L5=rN%lXKNjKrA?mGmdC]`3DrC&?u`J_!jHE*ZG
V!LPE^a@:F%*QV41'c6nA;+,>+Ke8H"uC&#-%.G@d5-4>[:M;c+&L=@M=e0N=/''
psj"c9JQfQ_3p2BE*Si-6"Q()A@ZeS0F>:pi@Nqhep[3`GU;aKZ*a\qSYd=G6;Sd
*'Wb9o&`KP2bg^M*`nb>\:jmCcjTlMoo@(hmuBN4N(/19Bok^qN^&"`.$/+[[4Oj
o.T\]dLeC0CM*F,kpX)10>q+cKiO2<Wj-aU?a.IgLnrl$92!E6?)=HR_sm)[1LYE
q$oSqs0T7dHln%'uS#*4=>7>D(NJh3PLlH%hbAoeph+]Vq\J"W$@Du.KG*`duPL*
$8BTU\G3:OADm4g%98L?TC&qo9RZ+EY3[&k)^CF@ORD)'bT+aT;NQ!!$BPd(m)H%
ksUMSchnL1;FgKU#+QP(og_9ZtX5Yf'sR1c#^[YuM1u0<iB'33=PC$d)Yd]1^:Q;
K4*77ttAZH%kAncs:3r9;nqLSTosDUI-NLL:YQ3ILW.p3@S,Fp(M36?87g>1d0hn
C?n(od`1Z.\<DO8ZQ>QlWhG6)8j#85=Kn.j7'mb5FZ,V78]#I,DqIc(RZ#099??B
s^k_nu*hRPs-1WO-IKt)Eb)ei%.!02Nl3br&elV)>BT=UTCPfTk8SIC'<Z_C=&u7
FNGVliP=j*p>nIVf6SLRl2`Z[=$,c[\3AQ3G=7FZcqQ)^,+=\0q`,&1G\IReS0DC
3%s:o.hn.j?I+8im_2V'O[LeP^HT[0WU!;qG<7>st0WOkiI[@Hi8U=fuM)?DO/o6
rLW3$hS%[#8;dH7'r.\;C^u^4fV'gE`;Q@]sS3l@[5m<;RAA+3]4;BU9,?(8^B`!
AO<:d?)44DXI<(e$IC7%!(l$hA1R:]Zis/kJ'+T#>q$6VkgcC@.&S9A87,(^<RP/
A=A-$%$)Fq,;2FU0jsb:nP?+A\0*5nM/eWic9gZ1K$,pU.=&Dj:d]Es+'hPr8Wt!
7NX[@.kaL_hk=d:-f2'3=>mqNm!Eifa#^!!Ua6P-+>M/qu7lO)bNNE<`+6s<QRP*
0+.aGO5t,J&fG8J0VriuFJb?!*+6W9hh#(;dMD8O[OF8r??&>t!VXOuYCb,-J:&\
Z/o4,&DQ<HdK`;AFrr#=rU)\QYAT.e7(4:q+>'S;%M<U)G%6++$gm[dqm+BI^3XH
bt?A%R3>`YQQg9HbtKJM,fZ^a\[`$cBi^Q8+mgPRRYoKt:!1'DW^;$s.ql7H436.
fRrktd0r_4RhR^j9V1(pW%r.;cjA1@@?+l].=pe_P&k;.]g=@$fG5]EQ<J[I`e>W
"GeBjZu;,Sp6SB?k%p_D`!YpgDs.9RSL]S*8IQdrX?;C`PdDcGGKW152t7jbO;7F
m/oYtL>BV.`WV9bdstafOqPY+[.5ksORbXRo5!,rl]DjXNUNUm2m]=t@%FFZjjj4
`qE-ZSahsgCTiSfr7jg)lpA%Zp[!a\]%0pGIcH)<&L\P.YuZ@OW<@eiFGj#r`u]K
\m"A5XL`(hLup-e1C5NaDS.m1U99\841L+5b0\aAC8=?HZMceW?5lri]Jh!_N672
MlqN;3iLpe8,oT=]N7(.#-qr]$@Ng2ZM8XScCY5TmbG^jeRAo%4h*PeXbt<q0G&6
KGj<^VgNp7&kQ(LBjM=rLdTo;m:MkXN]939oOOLci9mr_l:8l23eU;&IL\t=%M)c
omV>EYQ,A_'Ebl1-pWDf2`-Q@c2Nm3\rYBQoP].9fBSTiNrT)CgXm=EJJWhFZ<s)
jHdK\Z+FSfS%t]bt=)Mh*n0<O'TGVmmF^!O]I2[?6bfleO#Y'<CH,YgtHGLhk515
'V[[',jH),e*a)hV0FRRV`BH"CWc-OJ*49,LigC%65)?oQ-Lkr6<#=MpKZ43<DMs
#+ZP]s<cYCSQW5ae<Gtm/mY"JfTh:P!6rJiCUn!=G/baDH[7Z]`W4GE2C/:tb*gA
iplEej<=ROp0=lfP#V50$L>UHfnqph>&nl!oAP'Ldq]UBS/[&ZhpmOlu%U9[>^U%
7UG'hc\DhXX38kn?Z]X\ZG[kuA^(R9i<`Hfu>,oV(jAXRmdFS_=`TC[WNN;Y_(@:
Uo0UCnt'N?=`+gIG>7$,/;,35".jc,.!.'fl^=@T5p?<l8;PK9')k8gd'!%7\Ad$
P't2<<[LK-G5eOB92r'#6;-!_PE(XpS&mhS]'C+EnmmS+Bj@&R(6C:kdCtfi-b>X
Db6nW%7U9&\OT%eK7f#j?Sn*"77f#j?S\%"qm#I(tS&m_QeR:5Z0"W@'I4"MO>uh
UaSmQY28#*p7GnVNXPKYZ#D*AN!bKQ!foV(jI,I0H\I([PeO%LKI1-6`/LWdo%aR
l1so-:P(."&\Km#Oa\0/>U6dYH#iO3$seo(+*34Xb]j]0]4b;c0?oLLi;@5,>K--
c`@B*gAip?$.Sj<M3jL\gpJh%ol4A`(Jo"_kJV`U=%In:K+P^."&\@=]KMk<E]Po
<M<"s<fXY"1I2XmR;PIE(KasOFbSB_=C#?XL"7&B?"%l0ee_Fo@<I:T(,3"kLK1?
Xin'Ng??p>0>[$.=QFsWEXt=X/Md0HFf9X(W`NCe4CPuG$in"sY[Df:#EGLJ;>2n
-L]X?k)/U;-T?<ZpOQFsWeXt=X/b?eBCf9X(WjfU1TCPuG$in"sY[H4SDH#(T0>2
n-L\@(G%/U;-TcRjEXMd0HFf+tm(`EHlF-i_*b.hD[_!!**+!WiH)!<E3$!!!!"&
J-*.0gSZFERF9,nWBM!Z,,Ba?r6mW!!iT+!!,;-NsK$H[1@!ne30aW;"gUM6e[='
%r*084fE^(p7^k@g5!'HC*(kfW-_A7U$Y5$LU@Y-*n3?OHVjF0m6fT_[1@!ne30a
W;"gUM6e[='%r*084fE^(p7^k@g5!'HC*(kfW-_A7U$Y5$LU@Y-*n3?OHVjF0m6f
T_[1@!ne30aW;"gUM6e[='%r*084fE^(p7^k@g5!'HC*(kfW-_A7U$Y5$K5-7[,Y
H`Q^\",TqE?#\d6@jYN%H^)4hpW\htfCBXob0@V4hU,gikZ'raS?>9%NQ?PHPQmh
(q\oDicq,<s;CQVfN\S0jVC$'!kV5OD\-W._-'mdo/o\L@J7"k7p>MK$RQV%Y\#S
0(X%VM,]M4LdDZ++UCCGKHUUf&;22464een#XT)U+UCCGKHUUf&;22464een#XT)
U+UCCGKJ^<BYGlq>2-9eX,C;PTqA_(sW$+1L^5@p4QGm_0`m@%fmd8P2H7-NtVmW
"Wk^Q>j2&atFVd&08PFK-4,+@EX6JYg6RO_:W`7oL7^#.&Arl8cG(0f1dB^f=j56
e]2Of*He]Cs7\$kQ-Hg,D$qh\<bsUhbD5L>(h$BKt1jcZ-T\.5GSa<0N)TKC*)Xl
>_=GL%Qq4hG$%M7f%M$.oP_>nE(JY0@=[VQ<@db=_3n%AX6J1Q<@f!!;IZ9!<3'!
!:7#7/@*GMZHFf)b:KsB/@*Ru8]<j+1rSNGj;VYFkmqUg,dP+bq:,-B/cg7m>^n>
&HYZ*+*<u45?hA`<X,9sO1g"huN/3)4.Vk-OC.'Wd)_Vk[olE(+_E+Dg:7<at@d;
O?<@GGc)D]7aU"8JLliS(])Q@"/h4To*6cXCp+F[q.2cM(q:]<$JzzC?'nb;#^M`
TWJY<mR=mpA6Cr^FDHAGTJpPS>9?QH<bXLB/.j20'2>l5dA',[/LlRkTqXrX[$CF
d!5Zs*c`9c=i+;-Oq@8gt61<?X;7)R-$gPAGo'h!!_<ilXqTfDF]H6)%HAfW(0*e
;c*h)ROD>jn@+4364n:%PArBGk2rdGAlGWhn]obW82?4UUl4VcoI=+en,%oIR77H
!hTJUM`nI=Hf,rdG%:n3&E,d-s2Z!IBgrpH/sR_"Kl$6br=V%r8tPVta%Tr$T2W*
kC5%cNh1/4nHMUSe#)qHforEq=m+Li."JZpD8C/=+eq-%r$8O-/eE^K@X?>I<[pJ
i:[t>fNo(sGWhn]pD8J;?4TnX4[n<&(PC4D%oIR77H!nVKA'WB8U)'#pb17gHfp"
Whr3o$!/&o'!!W,3_YnrfqYh"1n9X8Mh`Msji:YD$Y':TUIK]+0oIiN0+*6@gO+>
LbCJho#SOR@\--B[G8mX.i$sf-S0d)1&$n[YR"2^TU:5`Wb_*tY,A2fFTV'r&G+V
^KMB-eE%&L._]H[u+rL/bbqpsU[2OYBK9loHiV)]QX\()Z9')o1-H"=uAe[0T&AM
2MNY;\Rk3>UZ".RI:O,f6"s)2Bat2(N*cQ2[!.bPFtB9)%eV5fX[C\")O1Shh8qb
fQfkD#)SdG)XK:+:Z+t+m^d4/2ooG-!8sqH7MBP'$\Ts%K#jc@=NEf?K#*7WLPSW
;3Ji>WJnU[k'.o("Md^3/5m<k2iXSA.?t"ns$&"+$B2Z%%$=Djs9*>fWT]#hMJ-g
p^GsWA>#UTsH%"uSJSf//m_IY>5aq0VVcsLED*XU2G`F\%r9I=AgK`2f_OFgRWJj
tA9i%[X<`MellW+"k^b7,+oATe8'+uIGE5n$+lAdBN;M`Y9mEUIrX@mnD]#fa)>8
TG_:6kVgW5lq1"N*(`V15(=U63n`#6+dZcm&%_j:C2)[,oL."0OeTAfJI!cRm_oP
efI`36:fI>@p&D0#0[;A&j.3l-&mmB2Tm$^V%BV/n0$+5E4\[I+RkJSBar:I'[VL
V#UJt,4qWH888/>`n3RctPY=c_/TAZ?f#&')Y^!jP_[0/E'b"rR`55C[E:=^3Jp8
PsL_)9IKb]RR`,q$@/M+o!.8!mQY%/_)L+%f*mFl6,A7iB^V8?>[KI4cO%Lj!6_q
JZNK[G,)Fqtu_',j34F#4e;,K*\8+UJIZXu@2N+I3HJKHUUe1:Tq(!uZ8*0lX?J#
mhN2'+@U+9.7*!icZHL-:W=LRE6U'/>C9;$RhB<'pMUQn0>Sh2B`4u&jh2%B[MeC
0qd$@FQ-d8@1`cuKqV3F1dVb,f[PrriZ01IKSO724A7/U7*7h'',]^S'bW>N!L?q
QpH`W3=KGna9PB+!K4rW$#EhDBVElH`0PDV',U=jM`hnDlR:aEpoTI96EZB$CjEq
Mk)BbUh#U*4^.Z>iZ^67H.9O\;RBSM0fK'L=cI)as]j^B^Xf5r?Q)SBorm'@L;i<
,$j64"Zb3iie#N7h=2-qN>Fjt<BJ-A9<N,>cUHaD7IT1`A*I_@YYZa2(BiK3=4C=
G4X\Au&rM@h&s=_hCI*MmE[_)Ti[.HWu1NJk@j^;[P1?>`'n)i1fEXm_QOT)CAJ#
ZK.^;.'Y'e6XrM,;Aj>.P6T6KO@,t*&joMU)NA1F$&)_!Fi/G_)i`LeY`5!m#+!1
N0l[OK8Y57F(t>9/%9Ohmcqfb9U^?*>*\,eU1o8/D&f3gV&;2AYW>.c'`=A4*',,
,f+JoI]]/;GX>p:;@:Q_Tm`Z&Qo2IbL-Z>9e$]p_t4m;g>k"<`DM0f2(fTP/,*;@
`g:$POTc.M<(#14psZ72ZpdP6N?Z#duSu@'j$62CB0/&Tj%X)?doD0[P/'V.F88$
UX1e?+B\Ei'-Qnj@nb?HNpF/=JHcZ7\tG>6-fS5>WOuSi2)7&O?g(q7Y=HF3M#q"
I*4A[iC";0)7$\#fEEH*6dTX8VL4>!fP`QXlqAPL"RJjA@d"KH8?dI.mM\<mU.1n
sk\7kk\<t,fe/1%]S47a-/8A3:>52puaO&:c,&EpW5l-4%Ae:B@/lLmW_$pP`2]E
GbCc*@C04onQRWBqj5njTl1iPG_$KLP;QU0V^^8(*OZAO$eG_f2-87f<"4sUF>aM
:?jRkRC&)B*Ec65)&B&XH:*kNE;H>llG]&5!uo.gfs(Z95#f3tBZr7;O6[f[48KL
li9*HTQu=&J9(.1rDX('qkecOOqFK`,7KMAg(\N4N:u@\cpMP/YP^t&Q(khMFZ)r
+Y]B0ZF97SU:<p+0UhSO@0f4eY#uu,`hoK)][)d4a.p-MHGJ!t,XfKTLknA2W?0.
V1bKP&)qd]WAu$bN"EMA6`plJ6P)CB#R&Fj-6US*E*H3$YVisCl`2)rkdt/MMKG#
af+Sl<=@M<>bJq@d(61P^kcT\t6g2J8!N!UR>\@equ(tW44/s6L"%69Pl_;P^,3f
t!\+^mq7#._]l(kc0c68Ge#-fud<LX\T1+kT*m5h8rtGD\FK%gA2Ai<YDJr"+HRK
Gkb=f5rI/U%3SgG_j/a(LtB,#V&+CB"=;ZOjYbG(U0Qq-8d%$pa8?Y6o9ZR7:?^X
F;@nmb^rKLN^@amVZX;EaEWnY;c9kY7X*jYR#5rY]QR0/7kpir,d=q7EZ4h%[Lii
pQrui@65-%N/&bbJgYbOkKpGmUBWbIH7rb\'/n\!rQu`pLfgL)\,Nk@,VQ?nZgd.
W[*MQt$,.SF3Tnl!06>M_92B-n;I*Hr/-dG^)GVKsSKNTJdqI'q%CQWQs7mN"Zpg
EUc@:Wk9&=P"VXHagH:l]1.gint+OTW+0;1+6LN.a,(C-iK&F"p&q@AbnV@n=tq$
Aqkb;-m`F@Lt_Sf1/aa*/%^O9af>74%n%@h=M:BIZ.&Y^LeW"N9Y.m8!ZITAYBBc
\XhIVAI9rM>`6t0O\qh/G@Lo<#;J,K'N%;aaQt9J5pnC.ZOS.aZAQfp#Y_6Bj'HD
CSfnU(\;k*)a?_2_\6J=V+UQYhFtOs_1tWJ/Nb!4aps!da64%2MYb@s=oIinT&J5
UcKHUUp+s<qKg/4p/7Pl>:+TuT)Y%Mb0GEHt!KHWC=)Li/=&MRmFrdrbpe56OX&;
7tF0qf0kTl=ttKI1:EchJ')-59U-66[(V&;8#6A\eMbU57&gFs.1=p`W$PIPs#>f
RtT"rr>E5l_oI[%8BQ<#XT2:'-n`pTqN&1%0nUD5Olr@#Y\uJC2.Ka>f%&>f/fAf
?A=,$6m2h&'.ESS!7t7o2)R672PCCCD8L/,'*ru%6=LV%3YS2J&;8.26>^M/%1P3
=#Z'H5-=I4hbBoh!j+JQ^ZOKWPi<Va]Rh16"cDJ@s#XT1YKJYO=K`;%k#XT15\%1
Z#$2b?f-JTb/o2#:*rrBi=eFS1^]6^&erg.30)Xd`:%KLp;+C0Z^_=/hoXk3RQU"
PD9A0U;YM"1D"n#k[!Wa=_,7OKn!62#g+:@LPT`ZNthg&;/K%6pg+eG>l&7D=`?(
#)SKn-P/oq\+AT)MpGSW^A+bI9F.R@1UA!?O%2Yn7Zqg3X$PF:"'Ti[-]r)@SS?>
+*9[Oji+t$M1S=Lq5NULoqX&)IuI"[$YHg;6$8f^E=dI/kX.J'dErsWTB&2skchY
==R-u;X@G*;1f_d8F%'?]^]+:LBS5TpiUCS*\\>t>?ZVC5qM]<MZ8\!FBJo6qh>[
I!q.s;8H`i')%eo%er4fp+7nAC9F5Mo\SbN?f!:Ud.YJGYSIMe?nn5G\3l3,K/T9
.Ghqo!6j,(6E)TjL.#V=T->H^,O%lgu^_^I<2A(!H5N,>S#]%tWMs6TpB$ie>?b:
WYE$G5hP(!"b8,m+;?l*K^Bdrr@])rr=FQr^dD%$.p@$gA_/"ZC(m[88WHCMUhB2
'N%AGhKPORH/<b9bjK#4"/L#KOjZ;r@-i>;a5gdmm0Cnd/l"e#\/!!XJP/qTlhhA
a'VL@Pq02fSrr?\_n:*"d+ne2Nl1kPg9=#]4Q#'O_pT4+jm/3bojZ>[Tgt_>P5*O
(bLQe_5I#YjAOkY#+5:<j','>TNTBLL[$!0(0ko6F3ZsP_$<4XCU!!5Z__"R[1cS
pBhfRL_/BKee2h/g=TNSg$\eb^R]]o-f]U&CMelu1mar$f/mB)EEjIn-1=0*QiO'
cR7.?Z=liFAMFlp'J8o,!Fi@KA:n^jaQn>^X;H63cE-irVlj*ci`73h\t+ARSMam
eG27'PLTCk:Qs<((Dko_oY+*fT#EjMHPH-$]nH<ThoWjLLXV*M08&_"&&!3Op#,`
!KC<+MIJ:W?^OYYL"0_J08F'XZ<gTg)nhoKO*J\(+a?]q@OcbcgObo)M:S8UbU$9
>_,OWt)#+dgr08+Y6dUDWp0_oc8k^Ec1*lNDeIp@)F&UkgXkl)`C5DX:Y!3.,"qB
%`o+5TBG^D!O3l?'^F:[ePY7sFKZ49>Ecp&7V*e>l*^2iPAB%N^Y)p>>*%j83m<i
q@1Fl^qn5?.@ju!/D*(S53TWM[Q7?!HW_LikOXol:3K+"O7,srrCQHR#h*7Rf&E*
NhCt0aN2HDaN[FR9he?*'Z>dN+'*emoU*Z`nIL_*K3&!PaG-;edJbGiK448;n/hh
K7gAn+pc^uk1l'84*5</N*L%N@j*q".au40I\Xg\g"CVH"jk-E"!;JL'^)"SHVuH
b4<+"!IR\)+Hbks[/rrD6^!0T/3A%1p3Xgl(:'E61ngkoBunFZt[-I]Ikcfl<FNr
K+KE1=R$Cu4%3&j?l_^&F%cARS3Rasa!mJR$L*e-UK:+GY"k^7nCF_L%A4=#VS<Z
f#)<c2RbIa'[!Y/j'%DS%TmU4-6=YHa1[:J,G1,\(6S%3ObYOHbDEYK=!CPT*lFn
h&DF:6'(F^\BN>K-N=)@:!fGe[e'E*EW,W%/,*OXckdEapP_>6e:1p.=*&`pT'Lb
Cq0X-opG_Pg'/u]IkDnIb-LX/Hp5BT-O+VfIfZX5T*)a"4mmhHtUjlI#\N3*$+6m
>D<1_j]-`I#6;3&nY`BHrjNqm6"$!WniI=T)rPg>Uhr8/j>mj\!5A=A(`MW^pX(j
/ZM/hNiJpBXjobl&(`]+a!fr2=5c_1n03;iO9ET'#3+EM)6OeF7iD8a^QXVqDUF1
8jIM-iQC1_BsbQ@/c:_hE?J@`B6ci&*d9k"rmG)>^5[s!-]!bF4`:IH\p$$nDU"(
6>*k(fDIXAjDbuN+7LO/l":e+5KUpOr_PT7q2]JV%K?DmMEfZ0\I[ej$Gb^4g'`"
t\^A@aZG=/io+HN;(MJ.7c?^^qrc+UK<;&W'lLUmf*Q#G_f[cP$<c71J1aF?I8>q
tt[1:_[X#L[%)q0%h@j*50+gFk$:5I@37H[InFF&monFdb6>7*?VNC9#ej<mO;Y+
[mb:l9H/@FNeC=s$0mq)Pi/3l+1-T9FaVFZ3NsUr/f*7Z[)G`0%SNOT+:mGVpHI2
RS%)CTWBb@WI2FiSt^<5iDYB_"SDT["J77L]5@b)ub?Ro8%@0b(&7Z^VVhHr?RI&
(C]^1N<-&/d;[oY*S0UD`no\Q_n0aA0#6Fii,q7EWd[84h@B&dm^VH3eXtniF.UJ
ORCI`BSN"Tt'?Bng)0Aj5+1?g8J#bd__A"Z(^lJ6_;iBD/r>m-/Fs/4k6#kdb8Ln
\I,4\`UeW0*B'tsD;5;4X7:!sC`=3[D#Aoo$V.&lhn\?k??(u^2mMMZO^61Z6p7i
_i6TI*(h`!a"NO[b!I4L;%Fm9X]8om5hd\C^D6-c26TK4FibaYG5/`Ph&]icg[eN
\1+CMQH$[?^X:XE1sq"TQb>c($?A,C&J4Aq_r.+rr=9l46MTORmXfK@K#:0i!=`F
ecbDZ(NQ*8#5o1k"*aYLrLU87L;.sf+4V]#c.hb;qL/^>P"(&J06Vh<%G:H8Cs`-
+NY6]2^#5/qC<t+YJkh67r>aqI7iNIj625R:>G6?Hgmq'Y+d?ide1k-Il:p(>((G
&Kk1'4DB(lq>E2;W+o[\D\@X;8:+^!]KMMe"a3b!Jk,GMlqEH*QP34ssDrXY/=5(
XRd->5,U`pQ=eRcW1J[!\>me/_r,qbn0?RBA(&<[B'=osGb!TphIR6)^d\NR(Z_W
Z#TkUHT#>f)%9Kr_B?VDTrSbm:1GDr=T:E,P`J\k99gP2tHSNDLDW+C$"j>`.#dl
5='m8'D4:)0RORp@XI!enm99t$(C*2U&$e[5i9&nPIW3%?H;,sDB'0(>NAHLYV\]
B1u^I@06@b-9<#GejL$TeIA/?n?CJ1K]`m&CMgJfp\DbB;#pZB8KZYm(P3Ij'G!f
&g(8:0G:b)8]dJG+ULK=L?6[]V4.%Q+9Lq<jC%3H2h$/EdM#C)*`gDD3.!<*>G2>
!:_,HadITqJ)^h8+<p)#G$!WB-L;-T!%Fpos2Od'id;6Je?+U!4TRW3:TOluDfD3
(8-erM,f%rB$oAIKFlK)1%_`\0&>YIp%]+^!Dr6?a<h`re_d\WOmTn2r>SLG_Z1;
kK@i#Y[$Gb$'"a,r-B>-i/J]/fN6-pG8F6g3f\h^mi8017ZlA0\(-I\2=Vu2D[,a
WnSP2>Kgt,kBq5;JRGEsq82o0sYh?'%]?V-QO2+;jf7:_[1igDCL(/D;;'q$a1f7
<t3=3++d@UMa-]+QD4+bh!M#32iW[o-E-m`O.@4+Ng.ct'X`ZHH@ibB*T>]'a;rD
`!fT_bBBr.&$/e?Fm<=*>O?FOY24m/I&Tl$T(DI_Kn"5>I]#6"_3`@g%1AoCs>RZ
mJ3HnTu%_eA##"2b.;lBs=4l3RSKOLsc5&7jpDqRndC%?',pF3\I]1Oj)0q2+8,5
M<Tj0-QbYu,'YL1)Xo*,$crahknPBMG7IdgCX<RY>=33ViZj:I3sNY-4iY-1PIh`
"2'MEIDAP:ggrL0DmN$71#e?K0k)C4bi,_HbU8e\k-lgA!G6T:l6LD.j*LN+J3hk
K)nOa_C:0\7S+,4Z+eLDg#e$:!dJTHVs3u[ZAmG]b+G6P_\!5U+plHUo*ZmX8R1c
7/Q7ekon$V9G>_*(p;6$4^"RA+iDbF2MM5jGlE`tn%K72q?C#hdg]hCTF$+W=q_&
O_Hf<rfC%_sU:0<q%e4WBa6hC;lpoO,1/,%Y4J2^JY91K!$@;/d'^UJmE=K,4rc>
FWQ.+"MA&Se]&5A=J$h.MS&U+XW7U-LF,V`W>"qaQUgTkEEW&P`5OPRFVF]6/$s^
Kl][G1!;01AU,;`+T!*.2kUUa&2JL=!n3q`Dfnu#0hU:g:X-WE;6Foc!aen`Cqi/
l\CA8f<8>\:S@/,>)pAY-NTf`':'qcV:ZQg8J+Uu=d2"8lq,$eXoLc)<!e_s>e^h
_#u]aalnH>sV\3QP!%_K9LNYsG5-:.#a1hh![Dn^"3s#1FKq5<L)^G_S=oK1Z3A+
s8$H2DdU;W9Os,Dn80Zd+lW_AuG/*$7=3cp+uks&Z-["*f*fArr=drLC4[6=c8ft
*@5NHlQsGGQTE0l`!WD>C34N+WVArbaBV#B8j,m:KQd^V)hCbf;gsJQ2^$'NK0l<
+[PmW;)CXGtOGtEE/j`n7)[KK#i\efQ,^[VB)PWCV9PO>eK*p%Adcs,%U<9?TC.?
)a=usnG(,S236%,9UD/Vku?W?hRC\eao7XBo8*q;!2<J;U+CiqHX3X5LbD8iT@:%
1Tu$P@;8/LXQS5gZQHi8#:p@Z;pK6V;/lA0cnkU`tmr+r4S)/Ok?@.Nm"<F++kbb
t_]G:BNle;M#gDaOLPqBPGLb31C]mpg[:1"c5Bb&_.7M)A%]t%3D^GfbCdpZE\[:
:4p.X!6NJaOG:ZK-7^sk_ZS^=G)_JOpko_N>Eh5aJtZVYiJs"G%<"OAXF=tG;A?W
Ud5W^IOOV,pKdT9E-O#-IVMgo%KoT9a'5IqhReIN%b0!,lgb>h5$HgM)c/t'd/L"
EK>dUEY5t\lQ6q##7YNU)H"^Vr:3_FXl)otp5@>:_mUcHsFBqo,p\1EM$;cY%GRh
1T!_F)[934gY4`1ti/Ba0=ElnN8p(PEP@a<cPm-]'&.ULPu(E1j7W=QGL:LmY&m:
Bo!^Wno+BeHn4+ZPE2/eR?s+M1/:#9GVAJqYljiOU+;`b4)*&%o)*C8hq6`R16!%
4V8"aWE;p6@MmarYhg'4@![X%j*78n`2)E7q$jbh`=`_r6V8aPN?o@9_1l$E+Yf#
dCn`''<2(!Rob_D:2HkroiM2K8KQLilR1f7RS'ZFdn2jh-l9@_19W8tq'=SKZctH
hA2<TWpJdETp)nj)5[?Rf36/H'V+R'WR,smE>k<bE.61UJ,OO0s>+DERul94"!L`
rIVCt)Eml;3ZmfdMah6Bp(9@n]IM:iJ_2K4'HA;PBc7'/Ul4aeCKt$u1H0]T+/tN
MDDc,s/s+iIo0!W0ksIZZ)UmUgYZG$V#q]Z8!oc[Pi'>ORR,r*g9.GC-K%H85BFU
#YZQlMMHh@+e_DY$plZU%UlX#NF:`a)J!HiA\uVYHPE7j)DS!bK]nmmB]8)10XsF
bnYZC1h!At?EeD@")h_$Mf$tfaOHq"oNLE_CCu1IpZ+@lkLmH.R8"*+/&DfMW@:e
R1@6=oq%gN:qDA*]:E-PVbY/3"D4eJ+K5m@adN3jP$Up7d3$m]&C/i4u<OTs"6#X
L!u*:^Oj`n@:>(OBJO%1-I%f*GK*#6tGV&8Np,&84HQ$trET7VEpkp(l+D%\Z'#d
lMI'7hMU6HME?$%F,f.Cim,u'r[lp)W)f09oVOPK,_s$+OMm)g`HXGM@$)uZ!po#
KWoe4&=>o(bo=M8?7sGKF;'s#9oi^;@Ue;U$qMo`N/<KMHMtn$^YfWe'>ZSY_DfQ
#65*oWAk5Xn)[>@X;'N..[=J8WL6iI=H!+X&V%XN\)/s(Q7c@aO/g`1bCGu\3@0M
kPmQ=C#UsVINUaF>88mR<PPdk3?GW./]Au>/tc'2['+cU&F&=K92)C?#e)B.9q.7
Wh56&ug9ga4D'NPZJ@&>e#F1Y;&ASO3]\AD),CU)%H9ZJIkNU;9CXC0L-R=G"^;&
;?ITZI$tfKnLK_#Zu>G&MP?sR%>H(-^HVV(C_$nfBt46/DNQ*%HV&`V:]TmL@@P3
;R:eN>?l&tLn]-(7)Bc12E!ZqM2Yq4&;?KF/>.Vt9MYsaAgp<)fP>-OmX(L/'4Hg
)flEB_)]8'3$5065;9[S,7Ne0I1#ZundGb**"2_q!+Z:1a`"O'kBoN<6eHdOY9o5
KL\a"<R?'.#abSJ,8(kP0G5r>"Ee?-NJR7KkY)"uSN64ees)/t;;#)9QgGTd3'`^
'tcCZ"Q,SQK]:MJDW,Qi&OI-H+"8m\S5;eVOY?$OgPE"<i_6_SdT(L53!eZEbVBR
#"(@PeY#ba1pF(3eeTl&6imIPbJ`AhB;Cm#6+[$a+^Q*6=F>f\:c3O(0L/sZGo#(
-=*';N=^]bbnCo_]__TuM1QCLN,3<HV'q"%+X*]gNUEY"Bd##id[0`jZH'2'YkF7
o.8!L)%"ocXd*V;N',K?KYMTVT1o"PjA&KMnKp3biC.!9G^Ft2i/2=i7YfF&'L-:
2AL]7@BLcds2@dGp.HbIaHX(ITkH%[>!i5$XdWP?rh';co]De9YsiSb&/(rq@S(\
lVQZ&E@*&;>su?&sKMnR<'!.glo"2nGL79D4H`Gs_K8LP-fY0+[iL_Yusmd)IesN
$/IBVZWPQWPEWAh(\Y$ossCTYM].pnH9IJ#)o0ZhWe+RCi!5n*l?QV0PG-O()@be
!0QV$j]H20BOi%`Au3NlkOh=2G&#noL^tVpU,%\V1q11c]l':PSt[1\4("M(rVlk
c&;2AOM^o-QEA5E1P]->_@0VIjKs8Vt!/Z1]6UP!P#.72\Q#"XCONBF.`.S?b-bQ
1Q\"rX7a04:%SSW<g9)P;br1@0jT1]$R9)P;Rr1@0jT3D/b9)P;Rr1?UZT1]$R9)
P;Rr1?UZT3D/b>5Xl5nNSB!r"$oactC"0+_@k??3gK1=a3-hGWt)255BFec$2FsG
WtqJ55BFerHLNNGWsAs54*SYm<Ch>GWtA:55BFec$2G>GWsAs54*SYolr[fGWsAs
55BFec$2G>GWsAs50\=9rHLNNGWsAs55BFeq05+!GWtqJ55BFeq05+!GWtqJ55BF
eq05*jGWu(N55BFeq05+!GWsf*55BFea`p"oGWsAs54*SYm<Ch>GWu(N55BFeq05
+!GWtqJ55BFel$,D:GWtM>55f^iq05*fGWtA:53[;)I#Ge*k$AS)?4XAK&$oRQZX
+0K?4XeW%:ab4s4RG]!s&B'!!<3$!"dcM3n*Q3qsV8rn%S\f^AIB5qsV8rn%S\f^
AIB5qsV8b41Ai"Cig6M8"Vp8cTLgF4<OV(zz!6Zq!b:KsB/>@QsoAIm0kBirm$*t
X]_hYChl#!.uB-L/L_:0*]k0lt)XW%#6,,fC>rrBD!,Eg/LqML]$POW(M';R*,XW
(hn8M7O?^>&<&IGD(E`Fa0R=mfqr]Nl7_ZH*9NFRmsHNhYN^;'trD>ntu9"r`b*_
3MUY@Or:fKI$KFd370.r],I-1&)Tc=8]>718uoS?bKrq9]PAIh.)2daS><n4Apks
Zf`M2cYeQ:S?+mR!.GB=OlLu$&jof^$j%JSK'FoV])+A]p&%3A5YhZY8.`CCKEX<
W(f)(cG@O3<)#:aQLHW;3aace9?*5Y=[PPSDJ>A?\!5ZGNECVSTnF+t-,h%_Uda*
V*piUI:,eINT>SR2<f!\ff(hQT`A2;+80To@9q=A]C/>FGYR7Q(krl;(a6Kq8_K8
fj5IaOtIJ<N;"F2aP(rb]Xg%-#P8Cd$Zogr%"!GOqO?JV"$p%[n\(-@;67<o"m"T
>POh#a,IJ>O&BTY<:4W0U%+h;PXJ7\CU8l&8=47N>^T:N%dNB0QBeuPh#UiY7Pqs
[`Di)UT?@-L(IbRWj0Jb.aqd^@LQ'c??=Gj-MgLU^^N:k1rCHIald<,^mK/aQK[W
QU>W[.`t6WbS:Rc#9`@d!L,<kg-Eor>l9IJKaXR=pNln:7Et'NrK=VHW]Wd,=6&6
0MC`Hq7/gHE.=_=b@:E$cT%*QL!EA"PRj;@]2W3HC8M!1XDL,s["\h_)]3TltWbR
?j4'VZ]S\B]\VTo*!/17@H[M5;$q$jQL'VE1Q<F+h!5`uaOq^8#2PlcBVun$`&\^
,bYrpuK0dn$]`E^AI5V3:DlRm]JP<N[sS4\Ds$niX?)8N]?'Z39-#Yj,S@,Jd<oZ
#U"^)/:n-MJd<KN#U"^)+M;XaHE"RMgT3=1caM:s2"OMWlR]?b/@*GMZHFi2__.A
c$'$2oA7W,Ia.$M__)-HH"rN</>(NLH-+'EIL-bkFHc@N>&[t!oIfT!DJ$XkhX=h
k2(1O@+UIc;b83?tb(m+t?GY#=m7&\:c#V[BY$skdM!!KRJ(]]Ennd@:*8.>"l'_
$Z5U8o,>65Uhu4OQb[nH]/,:(4Zc'GAY%,3uT:_CT364A[Li_hArE6aXX`0Hrb=J
d3jd$t6F$4HTq"g5I.!X,'sENnY#UOT6d@6S9$F(omn-+J^33cS!Sn=Q>8i:_"I$
:,ZjH-5.W<![A[N&"'UHN&sIu;h[=I#Rmtj..gG!.V/l.M',>XWl^pTRinBp!NL]
e)K<ZGA#BIP"L]djXHS9rFA"G&a?F)7Y[OE3;!\=`bGM%GZqt.l.h&-pW\0qh0Pf
sR!3C6W,qs:OoNEW3WW`eS['YX!//$tC@,pC"c3j,r*kERETd2J9)Bs/J(AS"o=l
R/XWjZVN+F+<ko.RYX7_V6e!Fr*n^uCN0,!IpT\T\BS+@rQd-(4gM&gIIdq'A![B
CPCWVJF*5GU9HMqOW<aYtk`UZ"k[hMZatF3go'%."E_aX+gm7/d!MT>q_N0N0J:s
!2RqBlUe7@?nusR#d)(=Mfu[.Dn_u](-><f0S_Of9=Qb?)Nb1S^sgThX-_K!O?;q
s-p`HKBb8H6,k;G@R*)q%lF>hh\@dA$o'NONdLlh^LuX>F!3_t,c%a,&'`)Yp&Zq
9)#(k"$.Q`95HN>P"-,[A'"HdR-j's"&!W&2A/Al=jHfr-=U6H&S5(FtBE%e"nM5
FuPGGtT29b)jQWf6^^,^9Q[kUN622\KnZ4]lXRnRJ:pY.WsC*[B$M9ll7Al7183e
!A/LNekDq)q^+%2#8j.dJX"E$RDa&/./b%!QOcV_Bbj9%%d7j>C(u[]+-N[2R*n@
N:=`[NmgV*NLG)YVUj4Gs24mf&HDn5!!NE,"U+l+z!!!$3&0N,M:d@l4?t$<+EKQ
sbJ:Z,,nGh2B#QY#.!C%-/Zt7?O;O"",8lCnM.8!L&V(##7Pbfg$;O""171@senp
\R>e*]nY%BlHjnIsj(#XT)U+UCCGKHUUf&;22464een#XT)T.Oe2gP-\MZa3COSo
HCWuqimp02[WHI\6[fdPbfg%NSI[>`To.'jGD.+M38MY]5bLulB_TsDX?=8%5t@[
:',ReXI_geTG[JMYbm/.6m4Mq6=U9pM\nc))A*lt#Y]?mKHUp>&J5.66psM!L7O4
6(Xr?U5#6+X9m.GYK.!uQZR<(,YoS`kaf\?YCQi"ljOY`f-P![ENU!BTNS0^9-Fl
"UXtK&n9lFAfW=Ios;]<2IYI3cd"B4r@g_)N2$Y&'e>\Qf8oVL?Q;WCAU](h-6K?
+#1!%/?Y!rr?)!WiE*!<E3$z!>,kc+YchJ@6nlu:m%I@d=L9Vg&MBZ!W`<d&41bA
/L2r:6psF26psF26psF26psF26psF26psF26psF26psF26psF26psF3@c3kcfYRe
`-K.;4q\u-F(D!aFo\]ED&,uX)R(1fF$[k;JdS>WC'%MYW:Ih@TM!1FekamHu$`N
_/T_0A"Y=&uM"E[.%F@S`@7mqGEkamUoob5^$U3\&X-V'j%&^``Td2`hH*>-[>&^
_C_>nM0K6H24*1+"^E7O18DAZHanVEts3JjVm=K4q+(&4,6,66QV$A8R2HYZ6<b#
m_fTUEJ,!K[%c/;<`Z<8<"+>NA3#/'&tgF/ekfCU+o;p/msdY=h(t.67AF60S:E!
K4(("bU.3W2CV:n@:?I.6m9,QTeRmS__n]oD&4!#=Xu%=&=C&.8lF`\KL-8Ig)EI
5.7D<`Pdl<I)BiK_'kF-[6dZ5#\g&H9Y:+uH%H's:;X"RDcNm3"iZi;:Le&h\;24
^0AdBOaDJjBM#c6!l-<+eL6>M5e&elf6%i*NY@1d*1L!h9e+UCciOV&6q/lOhHBG
A"1->n%tc*9lGPn%N)/r!XcRUHSepa2A%991YR8mPE,Qm.e)QbuIR;Wp)Lk*2]LL
J#ae'4(+_1fF*_9;ZI#d<ml/1qC,@+Z**r<:Sa.B5mg?.7#XYrr?P$1+,D.3V=YL
1_K(;`-+FD;,L1_?bh]A&jE(&;-fN@@CtT<UbupNK_uq[jaW[e@J;tF?^>gjlpk]
mNmFsNT5r51`RHN6@f>Jr0e`;$!"\`X<S:ZEflrYJ:LnVoIfaqGJ+0&%hu"CrOX'
W?F?f<nO`^Rmo_qMNIj3f6XM2k2]O&M.=(QQ'KUn^N@XTVsob$s21-.QgXRt^c4$
LW,=(QPVAJSDl*<-!?re^-)J#Jqd_E!^H/hSBsN]$?a57/=X9;3(=O+_R,G/Y*42
A"^o[T5T2=Wu'()U0X38)>*fnAMM^iUDk<bf%ko)0!Q^/I@RN7q"3)mVj>-Ct"p(
D5H`^H/IPNj*^2uDhMA3\M$GO)H%.!\SPL5m+XU9LVc'5fc6*,-8%4hEn`%#/AX5
1CfJN4;j%J,B4c*G`1ABB*CV<IKK>qF.CfnF9b=97E=O[Z0gs$>$^lZ)=BnOt%@G
T[@1"1hKJ)7:/1i1sh@W=NM_[U:"c"@W.<@n3TldDA'b_+2534C?_/hHW,tTkMMh
JCi.$eQ!d#"LZjeIA]n?c#[V%GEh2hX16as%9&%?uObd"kq#_J#gjLVhGE.gr<a&
=Bt[(l=0/Te]KH[?Vl^98CCR9/d2'6*1Ql_SaaiM1kC,$;=\uduk#uit]rI9b9W?
7@09tV@u=!\Y\g[&<n=o8mNkWKFpk6jg]Q3*i_P<n;_dhHD$BSo5M(ALfen*>07a
%_TQ8<PMp$N@*Ut9!2M3s*sc@fQ<?Wl=_3mr72B$;Q<@db;.FT"S4kjmYq]gU=PU
4*/8SI#Q]d#`s24me&-2e3!<`E*"9JZ+!<E0#!!*'3+Yc8[@1[GJJW[4bTtql1nM
!4)s4RGY!<E0$57f;#"u=[/gP[_Cpp0\0M_C"`ZM;1m08oV2pqM_?MtjUQ^Pab'p
p0\0M_C"`ZM;1m08oV2pqM_?MtjUQ^Pab'pp0\0M_C"`ZM;1m08oV2pqM_?MtjUQ
^Pab'pp0\0M_C"`ZM;1m08oV2pqM_?MtjUQ^Pab'pp0\0M_C"`ZM;1m08oV2pqM_
?MtjUQ^Pab'pp0\0M_C"`ZM;1m08oV2pqM_?MtjUQ^Pab'pp0\0M_C"`ZM;1m08o
V2pqM_?MtjUQ^Pab'pp0\0M_C"`ZM;1m08oV2pqM_?MtjUQ^Pab'pp0\0M_C"`ZM
;1m08oV2pqM_?MtjUQ^Pab'pp0\0M_C"`ZM;1m08oV2pqM_?MtjUQ^Pab'pp0\0M
_C"`ZM;1m08oV2pqM_?MtjUQ^PF2Wn'Eo\rNH$Zrr=f4X)(Ye--)NN,f_/8:sK.&
>Sm=ZrrAGoOdauCVF++$db)0#*ZP0j^pqC'4aKVO!Yn7&:sTJ.p1*:r"D<Ji%F'<
j.J'YCkP0nQnGYg-G]sJd,3EqZK/3`,1UOF_M.Be@Ye/)pN5;>[""Vt_^8UaI!&J
t\\f0W]#aBBL3&bekj(S&0qEl8,EY1*dnIYmB5feelSDR?>?WHc+<V9^!oj:_l?W
Hc+<V9^!oj:_l?WHc+<V9^!oj:_l?WHc+<V9^!oj:_l?WHc+<V9^!oj:_l?WHc+<
V9^!oj:_l?WHc+<V9^!oj:_l?WHc+<V9^!oj:_l?WHc+<V9^!oj:_l?WHc+<V8p6
,#RFuY:&.D+Q`3e*3mu\j9VVWbjFY8:FX<iZ'7%qk#cn',Z<p.WjWK*4=%`[=:I3
"BO'F7!ul?eUEP@#`578&dEZnDFq=b11^6tBR]PsQkR?F><V&=nahoa4e2>6$4Z:
KJVI4%+(Cp-tJngh?7UO<WIOc9A:LrK+PGNsIN!9q?TV@kj,_RpL1`6O\]A/6LJ5
M=D^k@]7(kTd4/rjHbQoR)0":m&ZX<b2>G0YrVP5%^$+NR]S<6jFF!+8rp!uq;[B
P;.!S?^c@P%4t@*&EW+n2Gp2%H).,GT4HT#4OR&]FEe;"*bd#h?NI.J\2HMDZaS"
A^b5>A^b5>A^b5>A^b5>A^b5>A^b5>A^b5>A^b5>A^b5>A^b5>A^b5>A^b5>A^b5
>A^b5>A^b5>GT4HT#4OR&]FEe;"*bd#h?NI.J\2HMDZb5'^to:b2hAUNi+?aJM@)
4s]Kn;*FV-_^OP&dLA\^<J((m+`D`D9O163gQ&J"^pUn!6<[6cp6*YH[f![uh0'l
7j)kYM@6XoL:t?uXO`ONPR_Qio;I6Qj<O>Jh;lC7jNreW3XD3!>0gF@=Ri%[J@lJ
D`J?%Qog%IqP6AK[6c-Q2i&L]9ap3B_rUQj,75#gIMOXf6&-)$+8$%QFY"TP>'p3
(>'bC'+Bh-_2baB,rtkaI0Ue+omrY83SDbf_l92o!72Q6HElbUWue?gZ0KB1*is[
mlGoqHXEq/:a/^8_HElbUWue?gZ0KB1*is[mlGoqHXEq/:a/^8_HElbUWue?gZ0K
B1*is[mlGoqHXEq/:a/^8_HElbUWue?gZ0KB1*is[mlGoqHXEq/:a/^8_HElbUWu
e?gZ0KB1*is[mlGok49U%>s+n:[Z0C_K$@*Wn2D[$[qF2bt*T$H!O11KP95_nJ6"
BjiK$4b)PBk8tAMG26h(iY@GNk-LXr)B8.iH'"**O;=d0g:N;E"+`.7PbKml6%#m
2T?/8C`%blJCYX+E)8gH5Vk^p('(+*A7`=6i&TS=Oh]_Grr?ncdA6dBD$$h3KW'b
Md?ZdVjYMD$(n]J7#MbP.FGk(N>Beku5A`M[,uQN.2dOK!r,YjPSc8"$p/gW2&,4
/;\jlX]J%1dCfgke_rL&/hbPpLNkXlr.;r@%:`V1\:qsfa@WuSkHI*Dcle=Z,*rr
?%IrRJ/3esKi^&oC;!r!OdYrrB)iqq<.c;uY4;p[jO8YPWF.mAGQ2d&MflU4oT=B
qjhQLelbsrRLoJ?F.iDf5KQ/J%f"_q>UGi+8'FKXU<hO<^5<>J%o+c!+rM8h0An@
DZ9]_\*pj[2>a`77C]eDf6.A9[..M?)%Y/MdPTZQBBEZsOBf[^ZC4O8_SFJjGT_b
W$j;r%-mY"%K,^ZJZ,C,2c7K]U$kD@"H^GQZ7L$[lAbRQmGN^d(8AgU2=VI,[rSb
"oUl;F>kZD8QilfijSq1m-B:Z)k=I[V>N[N,t(2haP_`C,&U?"M.QVdDWc0TAh7W
5,]()p@aLUb21UWeDU@*P!>Z!tXRN12b=TGEVDK-9$iLtW/F`N,D/hp=eKQEN&2&
o>8+8Vp-HQ<nJlbi\9u-'%"r4Z.e,2DpH\1[$S>PFk=T(mM=M@"Yu,dN[4LOA0/Q
H)"EA9,[%9epK0@b&",+-VuT>XO\H[//uR4SCq=Z(/pa3^7f&cPcH"Gl)a$gN'0Q
lfW5tT%7KXk(9O"c=?2-g(sd0Glmu:9&pU_8EB/G7QpHCKSYo3(0\TQ:Jo,)DNu$
E2ZAc+!StN=ZkU>c\9.=EZar"b0aWYChBU^W&24V[&Ul-eA*tLu2>^h&Y?W2h2`5
ILFdhY)'OKi94&VqRKKOHEtKSd]?,d@\tA_\IlYB?mhF1B?8&%afK1@o+^/OkE%b
_Gj=9k4`M+AP[tJ)Lkg(bBKFY]U&)*j"*jM1#FCN6$ZnBRN'=VK3V9_1<Gi`M6sQ
'6EDp*5]NUhN5tXIf\qbV>9kka>U7A=ZDu3?DTWO/6QW49O:L]B,`:3cOWZ4iV*q
o=Y1mE,dCk.;TigsN5f]'NMYbm;httncK*66B,,I`KMESH&Ym]UI,=/oRhAYh%@8
d9*MZTQS2(UQZPmAm.ka88I13e.H3J>E&9DB*O#A"K0ZL+`EUihl:MniZ94m%3aP
+nGh+5.KEF_A,Q@2BjaPo#+N8&N7pn%pLHP=su[C*EKB>hM8HC6it=`n<+V6\.>5
!;#KJ[/B<oR,,X*PoX=+mphte1<%Y=R7)hNa]s`R%,i]"R?-i=@m"''A4X0Jjm'>
R,[QV5)]Qid`Sk)eHCT,d.:P0"L9Sj]tO3<3Tnl'XHVASGFP4<)]=goLT)7qpl]C
tYXH)pcIXb\ZV;gC\3>JaRgsilE@Eh.44th`Ld]<-:/)!?J\boSg&TUKB:8LXM(D
bf^n'=gCbV>,G+V,]^!F`qaPEC*`tFU#@<](q$WVnn2Tj:MZ\D5C&`FrZgcK"mF4
/^KA*&Q[*Y8M]X"9XPH`<6scfWG/>bmti+kZN6V.\IE+M:fN_?YZ!`2<9K,E'd0`
.q46:;!b5QAJLFQSF\NgeFo`DZ5h"Y`Wb6fWhlOAXZ7M;k(q[@5+*n$]dP%20Y2;
1(-9K#R%LeDF4nUZ?gDfU5'(ZE;PdRJEFna*pbFpFpt$03V*[5:hpIpP_`g36";o
&/fS6Z5Dh;:E$dSUja_,V_i&2V"$3nPaR:KeWPkWr?6piW+a1[Fh[cHtdj_g`BXj
:/Z<a4POB]VGZgi'/0'(s;LM`ID%tsSDc+[end#OsHg=jI"5+'g4REU^H_'$o*n2
VlLA^'8Z5',gogk!,0RTLhtZc7^XDg&qaeF(SG4hcl=H.B9<@Tg'j2I49U-5tR4`
j*+oO%fCObT8o/j"Q:/^#W=NOir$m`/U#D;k)SHhSIkkg%B+6+O'=PXK@dh1fb:7
WOsSo*C)M"f5`%RW`Nu3=hBt(Uo's2;KU>c[?S;-PDoWA@p7+9PmsGB!S!48*F]B
i],ld-oYtCgb!cpf`%M\78EpElK4<jET8@J'Phs6plL`-0$nR<m:)N3"E?.re[pm
1aC[E:pT\aD,RJFR4Y<r#JL<I,Cfot*OR4eeGD\k\_`K:L1H*aD()b2[p\7WnhSB
9d8^+=CRe.A1Q)j&m:8V_Ya6_oJR,5P6_mLZtKY^r;i%At15B=VL27qq7Pe9!tYd
9JPF?*;9ia%"3VY,&<)!f)NAbh/CGSqn?'Ce8i=35iTkP!U)+`0lt=%oJbI:!u01
.A7X9(!oOA&j0D-&j*Q(2e(#^B<C_Koq.]s`Mim^-I^Q9+_M,NYT&m@@WLa,[Nns
LV0O4%/03di2e3AVL<a<g$Y)rk"/>sa)".am+ILekd>,A*2eD)"`IkPZ,K-bu:4m
`YBf:`$ia)uo50/CIQkhr$*6Tan2'DSV$+`ZGFO%Kn[T`t*SO"KW"0Y"ne!=*SD3
/CUj@NXF)m"ZG`I]f,(($,KDAtb[b"Sq*?<L?Qah30X;#k,%'/h1eIOd``@R8LP`
+.#"A_d!Bai(Vmmq*?ZN$1,'YqLqiW>?V>RB4?kV:=W<Aff8g;g<l!2O[]ib^u;0
4>XT&BKNJC@h#i#Gd6$iSnqWnGc!Wuf4`$%pla#Wkmn67'0KM(hi,X?/i9kJ%I_c
,CC(C+V(mf`DWHRr!BbjibY#<VZ<(S>8-;hRG9D/;KNti=I3gdU?VE3.%othq>+/
R3__'i]9A9*Oo4@Veb@k2&Sf@"#Q,VdhcM7'*2c`%CZ!tX0=Canjilj>p\!_'FOt
o.+7?4H*)_<OT_k$.+%"R'fUN)Y@D0.)qLi,fNN7cCfBm20rIO)P^8K0T52W2&Rb
;,Ouae5s/:EUm#Um$$U\[!/BfY3RUaU35HkXuC`j*Mj#QeN,oft/[LCLqT''7#GE
5jE@0TL+=L+nQu$l%FYJ^#/hiSL]WZm"f:qS*!30lm8-K:C\TW"*cE[8>a>9eq8]
_if:o(bk,NU&a7)1CC8V&+k<^&RVD/!Q"AH/UHQ]Dc,2`]SsD!gh-mEKiXTPeQH4
3$1GG,$Cd<&OW2=Fo%-GSLSs(C8qBf8qY>&i&_[E=rftuJSXb-gPP8dYjF-dYTBO
7GaZjjt6Z#^T2Z?V)QGeeo%2R?N:*-#Pqo"m;@4$_g$Q/h%CQ0R3NVXT8&Rg%CV3
O0RX,DgZ(kcfE*q6J"dP&V@Y=M..`#s)muI2FVJ*Z2`9_l2e114-P[h.#Dt/hG`o
[qU]E#`ZoRgT^im_j$@S-R@g;G,+KH)b)K-%?`ikma%:JnjWish2A*_M;28UK]>k
e3AsNmF#+gGLsV<3R6ji(qH<?"$`KaYO`4&i@>:Rf_.V.JbL"N#=S0l)6gUS<Z-O
=Q[7jBmnf*`Z=knG.fHm/%dB`kugpD,7N:'e'H,Qik@i%,1S<+ei`SuVrdP?+?.f
*aaC!0q;&C)Dq/L"6i23A-OiE_'"@9:]hk#5l=P2*A=9''[OfW;af']N;(S!Y-B5
K2cqd>?U[bkt$+GGe27*4MBu8G\H"=S*>nSCgqkYWJ$R=+K$*bhkr4A!-q7`D1sj
#A!YPVrFD7e<.:_:JUA)"!`J2kp(RG0X>Z%UMS2\#F8#"AbRLaU'aflOs*>PYo&i
cD$/dFPNJAd=LC%qH%=`bWsnB-nH1IgDfpU[_'X)20!-1_LE315-+%p%d;*Ku.g'
7s%q<KQjD:pS-a%(52*#QgWPOteZ8X-@/7XOWLbB=/&_@DRnde+-16])KE:QEP,D
\`'D4+&7/^Pe[EbD_1AQSQPb3/BSH%"bt]7ARkf=dcM66-"*0G9kmFCOO.i\A9-"
&Nl/IbD6S.C?emoX!QR=?=)?nRBV#D-IN/3AM&G3eZd;nM;5h"c,</:IKH6E=!GB
MoB6<Wrt=kJ]M*u3hmWi_#_c_1Gla.?p!@0hBes&Ch9op3O0r@1A%g'9tM]r51XW
A*Pd0J7bP?l5:iqeQ8`I;cOM1=,BlZfXPL!jZ=:`7n_]5mII&jC6/6Wi-%g<E:C/
*VH8\lX*R=6cj"d4(/kBu=TS(01;H[[b1!DR9J_;1e>'H=j'?;eCfb9bj:CWa"C[
$X7/.N$mElH`;-%flY=?%io6?A'(L9g/@mH?go]!_kHWG1`HC;YI1f#<9R"cjJ*b
Gtj\kmO%iDT]MFZQ#!N>Xj+S#FkiX,"'G9aQtZA-819-hkLd-A',.!oTQ9Gq##4T
>CM"J89.F7!^)Z@5(8^@c[ds<:n61XbW4MjBI>>5A\&XXj(I@Y(694A0JIa)m'Fl
Mk0(&3Frp!<cD?SB#@T!8&t:Xs2Q#&3(`mS'(OS$u8p7N.6b=m37?&+C&9Ec%NOP
R:1"&^:>9*!PK8<c@.tS6:1lY4]Els.I,CEU;5FJHi;4(Z5?;6#=dgKgQ&"!hLn@
Sns6,Isp-Ec\Oc1Q((]l9#$gajL;9;G'VGmbjbI?;%)i_t[=(1(G?fn@4^@,4*9I
hUH3=SCCDFu!?d`P`\IG<ILRQ/o@@"m3jm:K>WXLO3*HDpVp,(V3N9c/=uY1AZmM
`L47EZ,AZH@(WAoEa5[U-6pN<'-7MtEq*I&'4d&k6FP*7-KI[O_%>E1%lRZ([ps\
X*8(!*MgK8",hBqqBIrqb@lM&]4-8;cHO9:GlJ;V&G_SCgQP\]Rmrb$8Dj\RS*,T
&6K\k)J%XUl/Re&`7kRJ3C3"0bbndP=#4%SrD@DcO?@.:LGba-3@-_4E5*Y5n9cb
/4MJ^)i/Crl>rnlU6k]*'0+4A;,t"F2;;bZG=I?&2_!6+^NMN"ZUu@TSYS4I5)?F
%ebUaCLcH'GeMLM7^saK_'KB4N$c%beo^OFe+H6kr_f3O;uq87hdlG".=pe+(^Pn
4K_$WZ$)^"GXantcQ%>gQGV>3#4ONV6@B7^=nK&cc`)t:K<#5OK\J1c_0'>JDNR[
51d6_4K(aTt%sA=>M.#^ZN&G*c#k'Eli^/9M@b2ZA40mnp9=ru<S]5!%Bq)^ODZJ
d:fTu%T"e$)8\6Y5OnK$<'@=i>O2Ot@H?YJd/QJH2EDT.`Hjuek6UMiFfo!#`9Ym
RH$>kYSn_o?-JF7X%cfJh$0Fu^"l$I,j?E8A7lj5ju?SG_.EP!RXE&_9MB8F`p6X
;oEun@B.<Q*=CL`2AcG'"CIRVo:;K^"*EBpP7Yr/jG1%UY,m8+*PP_"F*'?Ym&q9
38P?k-`dO*PMqYcGZa=(lRlBOgFgKW<L9U)lj8HZ%sAqSLBMkY`/X9ojFQg*k4GY
"Z,eKgSe?>]5'tBkbAUhS3\GCg+_^Cqd%3eI4k\dF]*M^Kk/<l;O#@3[p9\k1Gt;
P](/KXJbcRqh@b85VrrC3Bb8@eMO$P;8Q'I\o58H`lO%DH9lSlAfc%jR)JaQ;tN%
@*-mK[=^A^n&CB+R(`cUk0Omk8rsF(Jd63KWD!B'Y?C%e/VP)'=bAB_WknQC./Dl
pJ.8?As07k/E-qhP'_W9SA0;R:L3:$)^Xe+Y.VTKO^+ti(Ljm4C27;b4BB9hWk[<
40Wn^n?VE&m=j)W`3<L@6p0C$H<piP_hQL79XB5f;/sS/40\+VR!,arPL#nXF1re
V4Zjh^%o;32>7\?GBA-nK>.H3]Z8o3N,e6,0G*1nYB@ZBWF.8@"alto=Np"KR3c#
8H#:LqAF,mn8I/rClpQj(KO)b_@pL.K=k/5H)FrfD_#8r-I*CZHLcN<U-J`P(2,@
Kbue1N;4D,<ff]mMRF1/SPJ=Rcd"l+Q23nhrV3*OCeb[ObPNA&X2tdeDS@*R"UsS
sd<.Wqb@LMjlpCmCejpIW6L8Yk2GTp/j=+Eu=JgCD_*ES?b9!E66N#0X,`S_Kh+7
A#WjPQ8-V*@BeC#S(VB'QW@B^<-fl\m>!7g,^!PX"5T#TildV:^9;1B(_4:-`V?`
YC?"_h/&?K/;]W&aYAK',*c/ECe4)Q:SdX2Wn'DZ,V)hDWA&/3*a+rADho15mM[t
$Dd`bgKcJk,0<`W7%?+)gR\[1#5iqaE$(-ZB_@_lNoTV1n')]psZCeSrUdNn1`3@
4GG\R[[(h.+]j2n6,&`K,?e>97TDg=^l,CppcYm%,c!:UR=+%qKr%\=YP%b0%SI1
YKIdmU>`*Gd:[L<s>.eMaagmHWp/PoO_[BN:]WFp4pVB9.PoHeRRV806Q]em_dG1
&]`5GFm9JQ+%Nd5&p1GEAj%uU@C#1l=S61ed>JbnXS^YaMs.G(Z/YUUVEG!eoP!5
@RIP\N^#"]MHAB%XQa+5`m=3@(=GpN%*fD$H?AhQuA&<U@_UGRM@C#.(lHcEHE3q
SUSP"$=eUsn<[^I89>qt;b/0,Kg=`l6q.ip6d^6d<qq5*V0H50iZA)>8>K#a?%Cd
$GBA'&68d@Ho)h.+]b]+9'+m(9OV`7Fffp@ZC[q#fFTh2aHV\%2/pO<%MIl%b01h
.tiMG.lW(Ab8V2/2gO+l7qa;`U'ho_SjJf:9=(jCd)[K(pRPhM[cejQd;OIVl/,B
hch.\XR*$i2L>B'1XW6>datN@/6K1@_dTsYfkkPOQrmHB4Z'ONrW<ou?Vg1>daGs
>m`1e4/6MFP`JYK_HhoJ]Nu-7@H=PgNM\[jGZ!t\5HQJ,jZ/bb%@`>2<^@j_V==l
["Q989S@`=6@/3T<4g@o+$1%Y&;!&CWXZ!tcKil-gK91oGH(,)T\ilClS_.(BA(+
ae1CjE6e//Qda(+`Rl=?j\=$O).$M\[jGrrC@\/:W[2=L%+K(+`f7fD3*h`JYKrc
X6WjrrC)t(-hQ4M]_p'a7V1;lgT.JI+fD>3<Ocn(46<grQ-oM+oOnG/sVo/#@W@9
els_lb@S!4CpmP"QHNjGim3NH/GQR2c\jt<fs>;8Rl3ncP0%7?=Y22XZY%ISrr?9
`qOQRCfjId1g^`7d"1_!3aPi?(hX(5MYa;Wk[$f^5!nDpooFR&abLiGTN$Z1=rrD
\4B$Hf'CtZ.,c'pV-fs>;8Rl5*+K._kJf,P_./?"];Yl=]Q`Ln!6b2b_`-ZcDM?d
]-)OQaH,6c]@P1]0Vq%Iei0B>nD1OT>XI1d9+`#$2_<qN9PsRg#@ShpQBHE%q7=b
a^!%IBZh5-[pQZBCcIATp&p'/21^skB/\`*mr=-lX8LDUbD@C>-.6%KDC;OmgH&M
bGX7HEWb!TL`u_hh1:]:J%/6<X7mFb2q16<7.1B6O.Q?SL\3n6^ti.CS,R4#\P(S
)G0-o25GmfBI4p]\:GqR!5MU@/YMZ,`X*l;o!!0js0mPs]5;95CIBn@Rjr7^b5H"
=8jrkbSrG2D?rr@BF!53m=KGbBqZ!t\1(+`Rm@`=6@/6K/d`JYK_=Ku>SMbQ(!!F
RZ=g\P%.6`/ag7`Ut=5B=:))1SK@cQC[6k.ke^)G0%Nnk++:r,2m;G$S6RH'dZ@R
9VE%<tZl:(d@>XFds?[I'_.CoL9g'c42Y-4+>->O1IVrrQDRoe;g`kqh+nKA+sTj
^Jjk,>^h[!VPe1u5DpbrDIh"Y5Ag?ag[DmX#iPD@eF/19WP"kKrr>sAI`?k65H73
U4nPta@-%Xf#[2Ui:X#N9cg)'kVi<n9S`eX;oD\'bq(1FjZL[mfrUTLQ6Gd@Ag8#
V-Ft!@jV&^Yhn35(W`WsdsG<t%=7*G$@oY5DG!*f1$J\B:\)M>gnc@+^pp;,%a+n
7cu`Vu"k5>]uEoA]=)IA$Lf<]rXmeW3M4o`MD<Zk&N"Yk^M^jW?\Di$q[crr?9`r
r?9Lq=_Neot6ohCWuVJ][*3aZk:UL++jLmN8O4Kgu?fL5J-msqn>;D-s7?I@""os
:#(`j551HAcY7Y1I-SFJ^3I@o^0&*ONI%W9p;m76A7sLI]0Gpp,6[3oZHc<l?[Ki
f?9c$ja+cE$c%eDU)XQ.IF_"4Cj";89ONs9TJheC_rk/^Q&8VJu,f$a9fm3c]d[j
D6^(:0L#QCBPPEY[^c\TdC?K]MU[V"os^Gi^oo6[)_5N'O;;EXWEZ?fXZ"%U*uk9
#i,6hmZP%Z#?ddZ7cnYIj<7):1+3=mWlbT@pp^rSI\UiP;4<fhR)\*$9:Bi.#kHh
tti>+/C!9\Q8Ju:UE@r37%PhSd1Q]SXDJGg&(+cd<klnN65]bDJXhC$tg+C8T4<P
8KIfVlXOE0]/SHP)@s@Td-Q^-RJr@4]t`,LRa/hH094;[UJ,'DP/CjukT>CfaEf6
1SC.5"IG_jO`2jNfmc_Hmg-D-(No%r8<S$>nT_M?#^;onkT4dF&B0OH6^&J)CqRf
VZrE^l>I]ikJ5?EF5T<#g'rEe[WqO`^:GmF216boQd#:%@9m-09q3e,i/q`e'/J(
_j\8&g"AI,CQcanbbFO.Vo_q>%\lT:7!_cBB=%TCjr70_i^RQM>s[SBncrdJdGd-
r;#e838m4!6=jB/>5'];E$JZcq?jQfrWf1HP`r6:UTOQeiFmg*=oQ<L$X5kA*nOP
[H0U(Pl"ccm<ML8jZ_:\K*G*PS%nE&[1@<k2EuLTHE_uKX^$:4nIU1K\4=@7!-0#
3l2B7Yqd]AM@3=%#q&/,fN:7A7H5Z8]+8Z!;;t-F0d.f_!aM/DX2t:I$K5r$jWWf
?u'`J$lkC)gQjWiQq]9XMurRjE>-D$>X'IBO[`?oF"KVo,urlH`Pg6e!ad/;eAM>
lkC,5Hc_,_$/GG^`<H\$;gtP0DJP>YD:;c#\O!e:5O;6ZMh7<e'b[*Tu)qchEH<^
<=Fdrr>^g9`Ce>TR@YOnbPIn:#B8!h7n<\g`u:eOg=jD?,"l0meqbWjn=cN0]s70
nQn-D[tVIHiGT*6ULU'G)qa#n7U%FMo!GbFn_p!P^ZTP2S,R:EDmY]`1WV1Yg_al
5e[H'_Qf,>BpL!4>]r:qir]C,IIJ:eY^S'5,:OR_lhjcpdS\9QaIr"`0F-A3FIKd
Ia2HupMG3"))mTF_Hm%3Ykeih?%mRWs!o:IIM/XOe\B-"_u)^j:H1[+h35/I)nrB
^:O?f:lTnpM%um_<Q0KXb?.qFi+qi20E]U5&MWGOZR:@H;kDl1a4g^=JQ5Z?$"gL
\'HD]@?gl^%4ThD2A+9&ss9a)g8q;lH$bI^jfGUGTZ5KMZ$SkrK^1X!/9Muejs*"
pN`r!G$\W?(U7W#&#f#UFCVj$&+9V*I;P,D3*Uh(X-HuLq-.?UYOr"/^&J(+%GT[
Thr]3@r,rl3HXRJ!T*Z=<p.OuWrr@60otO^Yp]hA_b5.1@CnFW4Vj>5Q)8uEcaXn
Qohq;]U*?3^VlHI7HVn!f4T:9OYhtr,M09]'">5nR\K$NZl%.+qI;uL(G,A(@+(M
&QFDZ`02T)3U+[D-dm=o.IW$Fme=Q>[9U"u"5RrCan#a8:PMg#KU9='uS$(l/a9&
Kf(Y<gH8KIo398&B2W=YTq5X:Eue7R1,]]fNdCs,K21kO:R8lrr?),p-[p/dR:Ue
^o(%,eRBLWQ8)qt#?F[:%lstWbJLC3:>b0IQ#dSG33ltLaR2Cn;jVP%ZS7%oh1jU
DZ@Vtb%]/hh)M^>/UE\cX-:U'3rr@I0+*F,)F<UQb"A\a<nT`/YT?KNQL[#_K%sN
hN<:G\9%QR7kB7XLVr$FYYWbD;>Cu,lfG``<%jV#lMkXf/FVSn9Q,lXl?9(@Ica^
'N,FTM@W[uYl#]4&5EYrRb=C&'=8H^3GO:W81+ccM9_c9q\pSjACYm=k<82sl4WZ
cZ&bk^KB-=FX6$(%2#mL[Oub48n6JMp2OuH-b/.D82gh%QlUu8X$#6^[n7<U$-"S
`mue]i$<?2Dj>*@4htEj0!G%D7_N&K7CZaoqXZ_F]-#,sN.47na'nqbrW:B:l6k^
c"*b(A6a-mjIu2u1jk2p-SQ6(Foa$KM**>(:FO)-k$.4OeT@K#(GN.23l$0P3@q6
=Ym"YTt:Fu#6=HFnXp&6aU*oo;N!P*bK)9t"iJ3=)_+Btlp.-)36bfTLpp_i-li8
R=Kh6W."b?g/Zfq)/m:nUR)TB[,9_uf5?hsk5s^U/;F(c>+b9YWA;FW'n34Mr1fV
"$VV*e0"_EJ3AE2HP99g<&OFBE%&]1ZBCujCLhEbb*\LhYQ:-KX4%QY5"95GJsL]
2F*n)#MLd;i@"1l.UN;QmpTUJWC',FY^d3@=9I4nChSSSao&r+)hErrCrl@V7<2J
%d)%g;SGrSOJl[16nReD><VWlDG<%n"C_qCK1J,BsR=bgk;>=YCJE=]E),SRqLZu
24n&nDBnZ)INk8'nWmJ`Et4\cC\,["oDoO@"ohs]>Q2ZEbT=/pZI"rT$#2h+I@:V
Zcrg[@AZ"TB$XF8d&;4<h6>oRdb!j+BD_T40HY0.5a4(bQ^*TlKFsjM2@'&bmKtW
II3HJ6n37!'-ZG=!+.mCu6YGW(3"8],LG'Qgm-CGsAURY4J;N(*V(G^UjT"S>C$f
M<Q7lA$0@MLEFmL"9*+bm6LZ6`KrC:+-i>24?P0#B+!d6-bZ5JE(qY8FS]PO.!(%
=X8&sB-TV2,N<mnICk=R45(igh`V6uL82-&75AfP<)J"=A=[9Q25NHIW?4fBU>_D
^Sd@9%g6M)o7kN.G*Rg_gVnL4NIi%-cB]SV]l1n\R!3XE;)[?0YGB2_N87s0jCcY
V;/Z-Kq12@64Bb)a1SKEre_5F<&7-*Llf2[Ep*l<43:S<:&d"_h=Wi.%447E@u\8
!/GNa-dUm!8/(DQi=Ej*uM2lM\IgW?2?NlWD1kaHOmL?:QCeuLuE(AZ+ulYPd%rH
_>Y,FZ$BYp&*1q8(;W5ALcT/kN4Tet5H?T!]]O\ZD/J>EU0.Y[%%i9qU[Vi%a^u+
I+W4@Al.nVp=F:P8Iq$4R%YO;-=?G./Q723#IjL%0+!LPPJ.'@enj'JuI(Li;j9O
\m:pQXZDsj+"XrTXblXOq@nE@)[f9cA:D`RcV/.^0)cSc"SjZaTeRCN$5*KOkEl5
'YL0kfALngV9i7klu+A^Sg@++$KBQ_2,t@$dqcA9CWU8bHNL,7^rJ)qZ]Wg-4p2U
`&;:9VVZ[YhsU&U^%.Irr<-(+N/)Yqr.da2-KqZ80"hGLkVk8Jo*4@f2-r1p^#?;
#lN!#\LMX2AaE/do+S^T1,RoEc4555aS>ro*&e^CZELoOf,47J)PeUOqFPS/g]@#
9%Q%mSXhR`J(8eq)cs32sR*Zo$q7bqYXrjVc1ag^SCQH+^BIL^2(.O[?ZAuF9,>;
Y=I\M$.IK':*)n<R./3<cOB\<8/?1dk:7Z*-V_s&p1mGc;+EaR$n5IOq#i-1/R"!
N^aO>^FC^lUIuQS@2h4ZEj9]IX'^RkP`"?a0Om*(teD`K^pg7RZ//7N6em_/@`s9
'eZ&J!hj5Z@;V!&HV;bIa0;AQ\Reh,Y7"k*;uNuLT$m\R?#7SaBhPIilaG-dls(+
l+ip3aeWl"^R<+F*Ec"G5F;$rQVPlLE,f0]pML,<FUiEb51US60-?];(GgFO7\D%
mc@XknVN*$1i"CUi+c&EH3W%&9kDY!u<dRY=$gEK/%^eO?NlF.l&%c:kNj\`r\5U
J0jfg04>s?8jJ-"4cHV55!0.R%L*q>aBcS?Mnko6V2<Kb?aLopt2rb7M(82+08f_
\f]9RVajWr5bUo+h_,%iW?E[=8cFc*73JWAYO'n>GCT_j&H]Ld6.d(3"CD49#9sP
PDHD62-g_+'FQ.1#`78-oWj'@Se\0[$f@7H1!o2D/G'V:19[(IE]UKFhR0U9#k)Z
Rqs1Rf6esYGTf%(ab;X%nN<5G2a-bI1\N,]++5[f0@r#/+'ID@fRi']K#eJ9M5IJ
"_822F"C#HZ&<@?/]INAo=7DgnGg?;)d!lucFS]>(keOWV.n9O=G*e;>[L%e$AN:
1tm;Tg)fYI`[R;]V`UASWs'$<*AbWI2&1_\`_J(Z'>0ddRA!VWc"2]p1U_$>@gr8
qNO`!kR>3'Z+R)=g%9$"[urBdUo6=Qs:#Hd5%RUGbJ/)#L-\%otc5p/o@%k;#%"f
+hQ2D\FV$g9qfQm20j@fiABm23]h5_4PdYQC^V56_iCDrr=X.&^GmaN>N-q1<0Kh
!6_sIj9Q-W_tpUWM>)dI%sngWYq*P5o&>*4o9NM[n,XG[/[KqZpL?e*U:.bjdlKI
ZAiPk*2lkZY"T,LdJB,#8QG%1^"*S():NKqKF,0$3(l]J,H'<fZ^KUf6oh:kR"<R
;<6K>%4:c3?,8cn7[Erf)j7=sS'Y)9?F>o#drGaB>3j@Qn`j/,ao$-ca=+bN96A_
sHe!-tY.&\s;b`XG#,\V7SUY[N.A$&[AkBp'^8$h^#uRDrY/*,9u(2lB>&mKeZT%
A;uMVC)S87S`:+4ps$N3LA1Y+%AN4AFlnDb\r8$Elb7@F80j_M>0=+/.(``^Lh4'
EqoOQ\f'bhEnpXF2e9LlikrOn%#F"TnRJgnb7E:1i=@a5'17-GOKa?9;>85NjY#5
9ZNs:,,Asbk76m9Wj_V)g]P@@5N3?oCfVIu+cg`Xr43%898H/ZSej5]kO^G^?`eQ
eeP4LDZ:k*Z1TJ(YRrfV<*]40Y>91LB8H6bo()PTcG=%bA#aSu5q"cjTR]&fO>io
PSn_/d8f]3ok*9<$Csak_p6?D:?6gb\lNjU+4lgiJR:]H2p6@!S*TE'R"VP]GFq0
<Be2(1+).(7%5$193LX3bHG<Rm8YunW\H27KnNi((mE!40[q9ZqkLS(t=#$!\:Q[
2mBR^6_:b&SdYj<].hkraMk]^H^%YAmNFf(aOL`fTRGlpL)G+hjbKAbN=%[(4#R^
[rC;lgnbJ$=D2SM8OlV+6c=7hKR2_[1Q32+#RON+VR*?'$Iu?C=1erMC1A1R^NZ@
;5M8Uo$_FG&/O!1ak?`>PoeW]-3G^\ZmkPWsZ\igenC8fgJa8CBaTMGR(Qm8if;>
gL$_&,/roU7_g6,%d8$%##=!"`VU\t3%V>R?G.U-om[$S0YG^D76iXT[U`GXI44/
0:hDOBumNK^Pr.Lfr7VC59H4'CUiQ($B%CH^JJ57n>d^#6f\6pR:"cEP7T[>:02M
E0ac9384PXg=Pn4SDNt"G:uY*;c_'Q`3ZHFd*-c;OF'U4D,H\Jel1?C-"-.\YIrf
@85h%0U,NK``aBd[O#;R6*Mm`W[5/HO*J(N.,@UGEfZaehB_.'dJk'oHnsUC97IC
l^N+F&XOb%oZQuSOL/^,_?pWON405Cq@Uu?mag;;AOe-D0nj!28XrTr[lg(H@mA\
@ppDT@_N&j-]PZ9.oHcCQom-H_\PpDCchrjWH[H*J7jY3Y:Xj5+&r+Pi%']-h#^1
DUT$LY]JK6L,aj*X-)[?Iaaji<,p:$]b!e=kaE=83PmM4eNCRJ@ULZ?RQ"@0r*jM
,9rda2W&`h7L'&iOI!sk@n]5WfUCg9E?oYKa@!b6V,p"%KGnI<l`Zsc[H]=`UJs)
=#@nfC=EGqqUcO>ZOW9kMH)/=>%j^(o3"`T1FHFDC+mWsm3Gt">RiY,<F`%>:NZr
<DNDYdTIAY[q+IJ_W;P<*<ZCa.>&0<cc-M!.g+_&@,CWUi=[,PlVS/H<Y`IZA];D
!/M=[dMg:pSEo6D#LYn8n@i)<^VO*NU$$(48GK(22@fON7nh9qXYNN`bPbOu3!?3
D.-.Rnf=a\5pE#qnP69Cs9$7N&E4qd1+*$"AFC1b:Aa$h$.lS@*0iV:D+]Tls^A9
im"c]b"Bgb-UN4na&p^1S_e,q+17@c#$8^#,?#.d7TU4.mUH8SZ"Z2)hVjXlJS1O
9,IgiN[]_BF)_mMkoS88E8J0C#9que4GfE;CC"^%_?BB'2A84bI6Y>.%R'lDH%,n
H1b%8n>`+?#q_]laAJ%-M'hP:Z/l-(Eq#E,oX*:1nX%oTp`hE0(D=g!Rs@6cRFMj
'.Q4'u[FT^n^_I=`RjrBGW7K84V`^@1nhA^@^o9G?6O%LXYr?Ls/2A8#XZ3l_Pm6
*^^17S$@p7tG&c9l\?i^i2eP06ail"A]^ZUPVQP%I@S[DSZAJ0MN%TSrRrEE]^T-
en8GmFh.!`De*RhUP4oDkS>mdm0qttCmJbYh)re31Z`B*>2ck$[@,`#UEPC582s3
[gkD';<oac(mEL9(?/l?b<d(!rE^K1rild&V,[C,_3sn="(O@dO?7C#PV^.dGjRH
kFrT*;^n?L\9i[c$\`#LagB63pPNjE&2oD'S0iK_5)R-X^q[8-:EEf\B\0OJUG@S
Y$fK5Il9!?"FkZ'^MR9RTss,P3T%oIV\JFOi5Omq$WOV3``g2GR\OLsc?FN4+`,S
Hr-6/V?b`K*W->3!aOB=G4.lh'8/d]`@d-#37q1@oC+oRk%&C>a?]A/?We`R)Hk_
H%<[la15m?dh"RV4*j75gVnh.$TR!?k"g"pQK@HM)m"nY4YJ5A]*Rb*hC%kI$U4V
PE^R_c6`bR#iF3?<5&ss@G!g.UK\Gt(0.TKrQcQ3p/SI/<Gs'0G5R2qg%rt;qd?k
#Z6+/@>J^c$q]\pH?ADr)mk[%/0a%W9;39CJ[*:n-nDm,q2CRiAI]*@S1lEQ[[1k
?Tm"/0/Qe3dWJV?%h"*qG%ebdeZ!B,HHAb;ja"#lrVLQKZl`@`^'ejg2sLT?Wbp0
c3Y,N*/\3+WY%F#hggs!qC.s%Eff#4#6/u>cl=?LMoEf_@D_L[%DA.T49q0HO)A-
jphs]A@+Sg/RFJGL'UFZ0TM@8(OH6npo^cG<A-$8g#YN<LI+#.ZT48%G(n.kWljE
V&G$/i"L''2+b]RIi5Yj%L3j\1]LH#"M)ZWeL*Zn5eg"1FBbq@gM^K&?=;mh<0S(
(p1:jis*[&tg((3%i[nIi:lOAuH7BA[M)bi5J<SeLY0oX2,38R%ENDckU5Rt(/S)
5mUeEnUpMnrr`?V"D@>L'i`**sKZZ6W/u`LkqGjc/gC]&2F*,;#41+b=-gL_)Y%(
BIdL\gP^(Oa(AX'Ae#QkOhfiWI$NEnEjWT/&@,kFq/$P+)1`T=un;;+oqbR^q^s&
UDRgKXY&S\F:`8SQAZhO,"T4qiVB!fM3!rFiP8*:8SJCY6L>@:0a8d<b/lM"O>X=
s$4q";OKo("/P?r(Daq#mQ?Hh,hC6+A_\c^1?-;ba=CZ&l,S4d]bh</4ag5X:"Xf
3^A\@?QY0DRBSUoY]oG$.PUKQCK&LZ<N@*B[.BodFM+a2]Il5?VnYS%9+=Bf"+_.
Up9b],M=`KoPYfo1>,)AYT[Jg53IKCa4XEs]Hdjt,1\?>Zj5Ha'X1O/i8r=nd-;F
"&]R3C$4b/m&k4KHu=g=erI;]e22_`,BaS`Ne[M'70t".UiWBK/@P_Qu"=c5X(e!
(hc[9JBX"8ilJIp@>uC>3]E3&3KcfNc5u.Q0%MVAbVi4h(-\Pj$4W:+G;)aJb[$g
C52LihT%:!Fa?n6bOkU$'OlmJh?aZQWp4J<\oSF@$Qlbr[D3I:dZ.oj`=C<\D'$9
@Zkn"@`AdG*O'-N^>Z_L`#/M"[Ah)D2uL]e"mja5PlQ5@'Y3D(D(nf5h.bKaLeR$
'iqI1:mt*Eu%u@Bsse(>G!W5dKbp?C,5Sg;62olL7F^*5V%Dk'.h7n@dJu[qXbn2
MNsbA)^J5p("%-3XkmQZ^l=`)+!@2Edq3X&%Y7K.rE;\K%a:M]*Oq8-$SuT+?#X[
7.`0-M@0f;$k8D$pW7-rL_8+m2eP^$Eg;V3Tn;:Hb2!rFk/%34,kOO!kUrd8MF`=
m1$D#A]eX/O@%MsBHqnu7=\u_(6'^TV6&T&t$,^mY%AkARVEUf2=J?Q;ZIpfkch3
46.uKS.@MWLe(.:aR(bG[e0VDP0+a+V$`<j1e]ZdQU.2s6.=IrOsQ7b@o4TZSU>S
a2>*_R'FTkWEsd;dC!lYGf7Ca$!_AG$8I@5+LiH5Xu=G%Y_[bhaNMc=fTRH,c-ZU
e)?1;cY"p,a-Zhjuh9DXGQ/b#M$-50tl_Y$/.`q[?e;I+DS$NT@Y2<3XEYAlOX$t
#=)Et-@;CK);-s5:`Mq?-Sq*f(mr7):+V*LdT+`;]n=RI_SU=4UGK".3+E`J''<5
2g!,Ej4U*(neM03IL3F:a6U%9p$(6D]8#$==`UkOKY$cO60``F0Npp6uM)i69)lE
,W9r9k^nWra*nU+&u:\F_f=R[LB6Sk=\R)aOpR3DS1!7<L/CsVm-ALeLpJh%.q[r
mLd;QV/Z6jJ3/!U'tU"LG;)K0H%bX>l$6=nM)T:=,P]^p=rq$UdM33.47%bD%d.e
nLE6jK^[HcH/U.iNgTLS(KJfC2G+%Hs[HiBlZ:.\cMkr/t#CF(="l2(@;B:-,fY=
_YP[,3-gd.9Y"Z7c)b_eAuAPkB?mrif\liV2"[3^TL-I<$1o*'"sAL/iKU)DkT!?
/L/<Ph;RSqD^hb16Q5J>IW&CVcP0",b2\o:^\Jm)ochM6HF8Y$,IX9rsbf*\>TV:
RZ43++*ELP90R'U5oVe98=N4(a8H8C*!DJM1dd*W\5+Nuu"$Sn$6AXP)8&B!c??"
+k/Af:4_5tX"t@fm@MB$'>[LY(*bMnqBu8B5s+L3c6D%.!+(5JuOVoR2WRQdL^a+
U$n=_SKk+R[I7odbE4RdVP5pjbRJu0PrjGKn'A`_&HZm`-QY90WPI5H3^,#co,_:
&:]M5b!n/h)27_eN';i"R.N+mR:2^k=gZ/&36cjPH:XWh2@Bi/eHTVK3Ia#Xrgf*
<',m`'`![4S)q]s0EB/=Lf%)%`_-e""LHl0s&LH#cZajlaA,L"hJh6p%La8CSc&Y
B'4Ccti-0WS3Qm:,R3$jm8N7g>o8Rc2X6S-#cXcY#["NtE$?Q[5B]1>^l=`FaVYr
YK^fW\O^Lr9E(*)7Vc_I0i1KgTF+;VTcJr@s3OJ;jk.d_Q&Vp]Mc+&"j1?kV54&3
dM8RfJYt3#fGk7K/rQ>A>Ifb&E5i.B#]6,GpN"q'%oihkLr%EH:CT^r>]'.M\Do1
ZQDko;Y<<!5oB5g_:R'V<Md7-fT5TRR)V=A&NpoRV(BJ"0Z6f@ZRiclf+j<$ZY%E
9FV49"d>3r@b@n3(4U<Tb1[%V1TAhCDT">@EoDgFER7mG]I5<3jR&i+-&CTBge^r
4aJ[=ND->]l[R.P#n@fg-G+G*1QoMUDe)4&RRQ`DR)+6!Dd5ma(X+7K\A4X#Z!*k
%de`0*H'h]KcS5<X!@*eS-unMj*HJNfLBTa4*JJBkG(:INLdfh/]#cF_G2-g;4!@
M'0o;Tu_mW-YEgc@2i?P#"t"+o_NNrr@Se,f`*"`J@[FCu]2;M4D[8W-hqnLU1S0
AhiocR3jZ\![8b=0-j#0J1B=b69;/Xk%l*&5>+"b#U@^7H47*I=kEQOL7WrMPbMg
<,a(_^:KB]uoPDDR+Wj6b;I4q<%*[EK*Ft?ga3V,;5<Wu^B$@]31$Z"hQHrlfKFq
a=Y\./MFg-Dg6a""'H*[8MS0!iS:kE:'bd*O8FoMF]G*ki,Lgc..,_Z0tJH#Vm3:
mI(0n_7Fl/]6=CO6(mK"$/]>TAq;O<N_?g+<ClJ8u`+45tHP_F].T!"e5hotfkEZ
!tbRc_2XKU-]&RhUYtTYmD6FP,M/8UiOK%H4)Vd_#tre'$;D/T26H$(a15tUHXI,
%@].-P"QjJ/6K1CRl5[o2K)b40YWYqRUJt.kg3_`'o<2QB3oQZ[$udM$#u1g0t!]
ti"X@NoahG*RNL(tR4l]+d]mEZ^*gtmoYl_(4`fnO>,%+0,;X9(DsLkI]+_1Qb-(
_qjTo]_H4>ZQO%#A[^4OD!og!9u5m><-^5RC#c'pLE=KrgcUD>CP-`1_5ob`*m'T
uRhI3epqaH!&)KYW;&Xe9mg6eJX5>i9,#:1J5a;1"n4c1*g(no;!p-ZB"b($EoP:
(8*qiPUE\]m9A4E'J,SLY<V>+(>-$bjh:+eg>]=eXpEh>LZPi;h<YqH[k)%KaJgP
ZUBLq=O<]s!<3$%!.hsW$i2V$IZ2X"^]B"#$NC+r0VLge$5=mbTgskF<2`]fJ,@W
&c'gO!.8m!/N>?2*@_;X?Kao*uYtWfM"mUU<(4`K?VK[/jirc^l]DpO~>
%%EOF

BIN
Docs/source/ksfo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

878
Docs/source/landing.tex Normal file
View file

@ -0,0 +1,878 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: landing.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Landing: Some further thoughts before leaving the plane\label{landing}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm}
LANDING}{\thesection\hspace*{1mm} THOSE, WHO DID THE WORK}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{A Sketch on the \Index{History} of \FlightGear{}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
History may be a boring subject. However, from time to time there are people asking for the history of \FlightGear{}. As a result, we'll give a short outline.
The \FlightGear{} project goes back to a discussion among a group of net citizens in 1996 resulting in a proposal written by David Murr\index{Murr, David} who, unfortunately, dropped out of the project (as well as the net) later. The original \Index{proposal} is still available
from the \FlightGear{} web site and can be found under
\medskip
\web{http://www.flightgear.org/proposal-3.0.1}.
\medskip
\noindent
Although the names of the people and several of the details have changed over time,
the spirit of that proposal has clearly been retained up to the present time.
Actual coding started in the summer of 1996 and by the end of that year essential
graphics routines were completed. At that time, programming was mainly performed and
coordinated by Eric Korpela\index{Korpela, Eric} from Berkeley University. Early code ran
under \Index{Linux} as well as under \Index{DOS}, \Index{OS/2}, \Index{Windows 95/NT},
and \Index{Sun-OS}. This was found to be quite an ambitious project as it involved, among
other things, writing all the \Index{graphics routines} in a system-independent way
entirely from scratch.
Development slowed and finally stopped in the beginning of 1997 when Eric was completing
his thesis. At this point, the project seemed to be dead and traffic on the mailing list
went down to nearly nothing.
It was Curt Olson\index{Olson, Curt} from the University of Minnesota who re-launched the
project in the middle of 1997. His idea was as simple as it was powerful: Why invent the
wheel a second time? There have been several free flight simulators\index{Flight
simulator!free} available running on \Index{workstation}s under different flavors of
\Index{UNIX}. One of these, \Index{LaRCsim} (developed by Bruce Jackson\index{Jackson,
Bruce} from NASA), seemed to be well suited to the approach. Curt took this one apart and
re-wrote several of the routines such as to make them build as well as run on the
intended target platforms. The key idea in doing so was to exploit a system-independent
graphics platform: \Index{OpenGL}.
In addition, a clever decision on the selection of the basic \Index{scenery}
data was made in the very first version. \FlightGear{} scenery is created
based on satellite data published by the \Index{U.\,S. Geological Survey}.
These terrain data are available from
\medskip
\href{http://edc.usgs.gov/geodata/}{http://edc.usgs.gov/geodata/}
\medskip
\noindent
for the U.S., and
\medskip
\href{http://edcdaac.usgs.gov/gtopo30/gtopo30.html}{http://edcdaac.usgs.gov/gtopo30/gtopo30.html},
\medskip
\noindent
resp., for other countries. Those freely accessible scenery data, in
conjunction with scenery building tools included with
\FlightGear{}$\!$, are an important feature enabling anyone to
create his or her own scenery.
This new \FlightGear{} code - still largely being based on the original \Index{LaRCsim}
code - was released in July 1997. From that moment the project gained momentum again.
Here are some milestones in the more recent development history.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% List of Development %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%Scenery%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Scenery}\index{history!scenery}
\begin{itemize}
\item Texture support\index{textures} was added by Curt
Olson\index{Olson, Curt} in spring 1998. This marked a significant improvement in terms of reality. Some high-quality \Index{textures} were submitted by Eric Mitchell\index{Mitchell, Eric} for the \FlightGear{} project. Another set of high-quality textures was added by Erik Hofman\index{Hofman, Erik} in summer 2002.
\item After improving the \Index{scenery} and \Index{texture} support frame rate\index{frame rate} dropped down to a point where \FlightGear{} became unflyable in spring 1998. This issue was resolved by exploiting hardware \Index{OpenGL} support, which became available at that time, and implementing \Index{view frustrum culling} (a rendering technique that ignores the
part of the scenery not visible in a scene), done by Curt Olson\index{Olson, Curt}.
With respect to \Index{frame rate} one should keep in mind that the code, at present, is in no way optimized, which leaves room for further improvements.
\item In September 1998 Curt Olson\index{Olson, Curt} succeeded in creating a complete terrain model for the U.S. The scenery is available worldwide now, via a clickable map \index{map, clickable} at:
\medskip
\web{http://www.flightgear.org/Downloads/world-scenery.html}.
\medskip
\item Scenery\index{scenery} was further improved by adding \Index{geographic features} including lakes, rivers,and coastlines later, an effort still going on. Textured runways were added by Dave Cornish\index{Cornish, Dave} in spring 2001. Light textures\index{light textures} add to the visual impression at night. To cope with the constant growth of scenery data, a binary scenery format was introduced in spring 2001. Runway lighting\index{runway lighting} was introduced by Curt Olson\index{Olson, Curt} in spring 2001. Finally, a completely new set of \Index{scenery} files for the whole world was created by William Riley\index{Riley, William} based on preparatory documentation by David Megginson\index{Megginson, David} in summer 2002. This is based on a data set called VMap0\index{VMap0 data} as an alternative to the \Index{GSHHS data} used so far. This scenery is a big improvement as it has world wide coverage of main streets, rivers, etc., while it's downside are much less accurate coast lines. \FlightGear{}'s base scenery is based on these new scenery files since summer 2002. The complete set is available via a clickable map,\index{map, clickable} too, from
\medskip
\web{http://www.randdtechnologies.com/fgfs/newScenery/world-scenery.html}.
\medskip
\item There was support added for \Index{static objects} to the scenery in 2001, which permits placing buildings, static planes, trees and so on in the scenery. However, despite a few proofs of concept systematic inclusion of these landmarks is still missing.
\item The world is populated with \Index{random ground objects} with appropriate type and density for the local ground cover type since summer 2002. This marks a mayor improvement of reality and is mainly thanks to work by D. Megginson\index{Megginson, David}.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%Aircraft%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Aircraft}\index{history!aircraft}
\begin{itemize}
\item A \Index{HUD} (\Index{head up display}) was added based on code
provided by Michele America\index{America, Michele} and Charlie Hotch\-kiss\index{Hotchkiss, Charlie} in the fall of 1997 and was improved later by Norman Vine. While not generally available for real \Index{Cessna 172}, the HUD conveniently reports the actual flight performance of the simulation and may be of further use in military jets later.
\item A rudimentary \Index{autopilot} implementing heading hold was
contributed by Jeff Goeke-Smith\index{Goeke-Smith, Jeff} in April 1998. It was improved
by the addition of an altitude hold and a terrain following switch in October 1998 and
further developed by Norman Vine\index{Vine, Norman} later.
\item Friedemann Reinhard \index{Reinhard, Friedemann} developed early \Index{instrument panel} code, which was added in June 1998. Unfortunately, development of that panel slowed down later. Finally, David Megginson \index{Megginson, David} decided to rebuild the panel code from scratch in January 2000. This led to a rapid addition of new instruments and features to the panel, resulting in nearly all main instruments being included until spring 2001. A handy minipanel was added in summer 2001.
\item Finally, \Index{LaRCsim}s \Index{Navion} was replaced as the default aircraft
when the \Index{Cessna 172} was stable enough in February 2000 - as move most users will welcome. There are now several \Index{flight model} and airplane options to choose from at runtime. Jon Berndt\index{Berndt, Jon, S.} has invested a lot of time in a more
realistic and versatile flight model with a more powerful aircraft configuration method.
\JSBSim, as it has come to be called, did replace LaRCsim as the default
\Index{flight dynamics model} (\Index{FDM}), and it is planned to include such features as fuel slosh effects, turbulence, complete flight control systems, and other features not often found
all together in a flight simulator. As an alternative, Andy Ross\index{Ross, Andy} added another flight dynamics model called \YASim{} (Yet Another Flight Dynamics Simulator) which aims at simplicity of use and is based on fluid dynamics, by the end of 2001. This one bought us flight models for a 747, an A4, and a DC-3. Alternatively, a group around Michael Selig\index{Selig, Michael} from the \Index{UIUC} group provided another flight model along with several planes since around 2000.
\item A fully operational \Index{radio stack} and working radios were added to the panel by Curt Olson\index{Olson, Curt} in spring 2000. A huge database of Navaids contributed by Robin
Peel\index{Peel, Robin} allows IFR navigation since then. There was basic \Index{ATC} support added in fall 2001 by David Luff\index{Luff, David}. This is not yet fully implemented, but displaying \Index{ATIS messages} is already possible. A \Index{magneto switch} with proper functions was added at the end of 2001 by John Check\index{Check, John} and David Megginson.\index{Megginson, David}. Moreover, several panels were continually improved during 2001 and 2002 by John and others. \FlightGear{} now allows flying ILS approaches and features a \Index{Bendix transponder}.
\item In 2002 functional \Index{multi-engine support} found it's way into
\FlightGear{}. \JSBSim{} is now the default FDM in \FlightGear{}.
\item Support of ''true'' \Index{3D panels} became stable via contributions from John Check\index{Check, John} and others in spring 2002. In addition, we got movable control surfaces\index{control surface, movable} like propellers etc., thanks to David Megginson.\index{Megginson, David}
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%Environment%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Environment}\index{history!environment}
\begin{itemize}
\item The display of sun, moon and stars have been a weak point for PC flight simulators
for a long time. It is one of the great achievements of \FlightGear{} to include accurate modeling and display of sun, moon, and planets very early. The corresponding \Index{astronomy code} was implemented in fall 1997 by Durk Talsma\index{Talsma, Durk}.
\item Christian Mayer, \index{Mayer, Christian} together with Durk Talsma,\index{Talsma, Durk}
contributed weather code in the winter of 1999. This included \Index{clouds}, \Index{winds}, and even \Index{thunderstorms}.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%User Interface%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{User Interface}\index{history!user interface}
\begin{itemize}
\item The foundation for a menu system\index{menu} was laid based on another library,
the Portable Library \PLIB\index{PLIB}, in June 1998. After having been idle for a time, the first working menu entries came to life in spring 1999.
\PLIB{} underwent rapid development later. It has been distributed as a separate package by
Steve Baker\index{Baker, Steve} with a much broader range of applications in mind, since spring 1999. It has provided the basic graphics rendering engine for \FlightGear{} since fall 1999.
\item In 1998 there was basic \Index{audio support}, i.\,e. an audio library
and some basic background engine sound. This was later integrated into the
above-mentioned portable library, \PLIB\index{PLIB}. This same library was extended to
support joystick/yoke/rudder\index{joystick} in October 1999, again marking a huge step
in terms of realism. To adapt on different joystick, configuration options were
introduced in fall 2000. Joystick support was further improved by adding a self detection\index{joystick/self detection} feature based on xml joystick files, by David Megginson\index{Megginson, David} in summer 2002.
\item Networking/multiplayer\index{networking code}\index{multiplayer code}
code has been integrated by Oliver Delise \index{Delise, Oliver} and Curt
Olson\index{Olson, Curt} starting fall 1999. This effort is aimed at enabling
\FlightGear{} to run concurrently on several machines over a \Index{network}, either an Intranet or the \Index{Internet}, coupling it to a \Index{flight planner} running on a second
machine, and more. There emerged several approaches for remotely controlling \FlightGear{} over a Network during 2001. Notably there was added support for the ''Atlas''\index{Atlas} moving map program. Besides, an embedded \Index{HTTP server} developed by Curt Olson\index{Olson, Curt} late in 2001 can now act a \Index{property manager} for external programs.
\item Manually changing \Index{views} in a flight simulator is in a sense always ''unreal'' but
nonetheless required in certain situations. A possible solution was supplied by Norman
Vine\index{Vine, Norman} in the winter of 1999 by implementing code for changing views
using the mouse. Alternatively, you can use a hat switch for this purpose, today.
\item A \Index{property manager} was implemented by David Megginson\index{Megginson, David} in
fall 2000. It allows parsing a file called \texttt{.fgfsrc}\index{.fgfsrc} under
UNIX/Linux and \texttt{system.fgfsrc}\index{system.fgfsrc} under Windows for input
options. This plain ASCII file has proven useful in submitting the growing number of
input options, and notably the \Index{joystick settings}. This has shown to be a useful
concept, and joystick, keyboard, and panel settings are no longer hard coded but set
using *.xml files since spring 2001 thanks to work mainly by David Megginson and John
Check.\index{Check, John}
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End List of Development %%%%%%%%%%%%%%%%%%%%%%%%%
During development there were several code reorganization efforts. Various code
subsystems were moved into packages. As a result, code is organized as follows at present:
\medskip
The base of the graphics engine is \textbf{\Index{OpenGL}}, a platform independent
graphics library. Based on \Index{OpenGL}, the Portable Library \PLIB{}\index{PLIB}
provides basic rendering, audio, joystick etc. routines. Based on \PLIB\index{PLIB} is
\SimGear{}\index{SimGear}, which includes all of the basic routines required for the
flight simulator as well as for building scenery. On top of \SimGear{}\index{SimGear}
there are (i) \FlightGear{}\index{FlightGear} (the simulator itself), and (ii)
\TerraGear{}\index{TerraGear}, which comprises the scenery building tools.
This is by no means an exhaustive history and most likely some people who have made
important contributions have been left out. Besides the above-named contributions there
was a lot of work done concerning the internal structure by: Jon S. Berndt\index{Berndt,
Jon, S.}, Oliver Delise, \index{Delise, Oliver} Christian Mayer, \index{Mayer, Christian}
Curt Olson,\index{Olson, Curt} Tony Peden, \index{Peden, Tony} Gary R. Van
Sickle\index{van Sickle, Gary, R.}, Norman Vine\index{Vine, Norman}, and others. A more
comprehensive list of contributors can be found in Chapter \ref{landing} as well as in
the \texttt{Thanks} file provided with the code. Also, the \FlightGear{}
Website\index{FlightGear Website} contains a detailed history worth reading of all of the
notable development milestones at
\medskip
\web{http://www.flightgear.org/News/}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Those, who did the work}\index{contributors}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Did you enjoy the flight? In case you did, don't forget those who devoted hundreds of
hours to that project. All of this work is done on a voluntary basis within spare time,
thus bare with the \Index{programmers} in case something does not work the way you want
it to. Instead, sit down and write them a kind (!) mail proposing what to change.
Alternatively, you can subscribe to the \FlightGear{} \Index{mailing lists} and
contribute your thoughts there. Instructions to do so can be found at
\medskip
\web{http://www.flightgear.org/mail.html}.
\medskip
\noindent
Essentially there are two lists, one of which being mainly for the developers
and the other one for end users. Besides, there is a very low-traffic list for
announcements.
\medskip
\noindent
The following names the people who did the job (this information was essentially taken
from the file \texttt{Thanks} accompanying the code).
\medskip
\noindent \textbf{A1 Free Sounds}\index{A1 Free Sounds} (\mail{techie@mail.ev1.net})\\
Granted permission for the \FlightGear{} project to use some of the sound effects from their
site. Homepage under
\medskip
\href{http://www.a1freesoundeffects.com/}{http://www.a1freesoundeffects.com/}
\medskip
\noindent \textbf{Raul Alonzo}\index{Alonzo, Raul} (\mail{amil@las.es})\\
Mr. Alonzo is the
author of Ssystem and provided his kind permission for using the moon texture.
Parts of his code were used as a template when adding the texture.
Ssystem Homepage can be found at:
\medskip
\href{http://www1.las.es/~amil/ssystem/}{http://www1.las.es/$\tilde{~~}$amil/ssystem/}.
\medskip
\noindent \textbf{Michele America}\index{America, Michele}
(\mail{nomimarketing@mail.telepac.pt})\\
Contributed to the \Index{HUD} code.
\medskip
\noindent \textbf{Michael Basler}\index{Basler, Michael} (\mail{pmb@epost.de})\\
Author of Installation and Getting Started. Flight Simulation Page at
\medskip
\web{http://www.geocities.com/pmb.geo/flusi.htm}
\medskip
\noindent \textbf{Jon S. Berndt}\index{Berndt, Jon, S.} (\mail{jsb@hal-pc.org})\\
Working on a complete C++ rewrite/reimplimentation of the core \Index{FDM}.
Initially he is using X15 data to test his code, but once things are
all in place we should be able to simulate arbitrary aircraft. Jon
maintains a page dealing with Flight Dynamics at:
\medskip
\href{http://jsbsim.sourceforge.net/}{http://jsbsim.sourceforge.net/}
\medskip
\noindent
Special attention to X15 is paid in separate pages on this site. Besides, Jon
contributed via a lot of suggestions/corrections to this Guide.
\medskip
\noindent \textbf{Paul Bleisch}\index{Bleisch, Paul} (\mail{pbleisch@acm.org})\\
Redid the debug system so that it would be much more
flexible, so it could be easily disabled for production system, and
so that messages for certain subsystems could be selectively
enabled. Also contributed a first stab at a config file/command line parsing
system.
\medskip
\noindent \textbf{Jim Brennan}\index{Brennan, Jim} (\mail{jjb@kingmont.com})\\
Provided a big chunk of online space to store USA scenery for \FlightGear{}$\!$.
\medskip
\noindent \textbf{Bernie Bright}\index{Bright, Bernie}
(\mail{bbright@bigpond.net.au})\\
Many C++ style, usage, and implementation improvements, STL
portability and much, much more.
Added threading support and a threaded tile pager.
\medskip
\noindent \textbf{Bernhard H. Buckel}\index{Buckel, Bernhard}
(\mail{buckel@mail.uni-wuerzburg.de})\\
Contributed the README.Linux. Contributed several sections to earlier versions of
Installation and Getting Started.
\medskip
\noindent \textbf{Gene Buckle}\index{Buckle, Gene} (\mail{geneb@deltasoft.com})\\
A lot of work getting \FlightGear{} to compile with the \Index{MSVC}++
compiler. Numerous hints on detailed improvements.
\medskip
\noindent \textbf{Ralph Carmichael}\index{Carmichael, Ralph} (\mail{ralph@pdas.com})\\
Support of the project. The Public Domain Aeronautical Software web site at
\medskip
\href{http://www.pdas.com/}{http://www.pdas.com/}
\medskip
\noindent
has the PDAS CD-ROM for sale containing great programs for astronautical engineers.
\noindent \textbf{Didier Chauveau}\index{Chauveau, Didier}
(\mail{chauveau@math.univ-mlv.fr})\\
Provided some initial code to parse the 30 arcsec DEM files found at:
\medskip
\href{http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html}{http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html}.
\medskip
\noindent \textbf{John Check}\index{Check, John} (\mail{j4strngs@rockfish.net})\\
John maintains the base package CVS repository. He contributed cloud textures, wrote an excellent Joystick Howto as well as a panel Howto. Moreover, he contributed new instrument panel configurations. \FlightGear{}
page at
\medskip
\href{http://www.rockfish.net/fg/}{http://www.rockfish.net/fg/}.
\medskip
\noindent \textbf{Dave Cornish}\index{Cornish, Dave} (\mail{dmc@halcyon.com})\\
Dave created new cool runway textures plus some of our cloud textures.
\medskip
\noindent \textbf{Oliver Delise} \index{Delise, Oliver} (\mail{delise@mail.isis.de})\\
Started a FAQ, Documentation, Public relations. Working on adding some
networking/multi-user code.\index{networking code} Founder of the FlightGear MultiPilot
Project at
\medskip
\href{http://www.isis.de/members/~odelise/progs/flightgear/}{http://www.isis.de/members/$\tilde{~~}$odelise/progs/flightgear/}.
\medskip
\noindent \textbf{Jean-Francois Doue}\index{Doue, Jean-Francois}\\
Vector 2D, 3D, 4D and Matrix 3D and 4D inlined C++ classes. (Based on
Graphics Gems IV, Ed. Paul S. Heckbert)
\medskip
\href{http://www.animats.com/simpleppp/ftp/public_html/topics/developers.html}{http://www.animats.com/simpleppp/ftp/public\_html/topics/developers.html}.
\medskip
\noindent \textbf{Dave Eberly} \index{Eberly, Dave} (\mail{eberly@magic-software.com})\\
Contributed some sphere interpolation code used by Christian Mayer's
weather data base system. On Dave's web site there are tons of
really useful looking code at
\medskip
\href{http://www.magic-software.com/}{http://www.magic-software.com/}.
\medskip
\noindent \textbf{Francine Evans}\index{Evans, Francine} (\mail{evans@cs.sunysb.edu})
Wrote the GPL'd tri-striper we use.
\medskip
\href{http://www.cs.sunysb.edu/~stripe/}{http://www.cs.sunysb.edu/$\tilde{~~}$stripe/}
\medskip
\noindent \textbf{Oscar Everitt}\index{Everitt, Oscar} (\mail{bigoc@premier.net})\\
Created single engine piston engine sounds as part of an F4U package
for \Index{FS98}. They are pretty cool and Oscar was happy to contribute
them to our little project.
\medskip
\noindent \textbf{Bruce Finney}\index{Finney, Bruce} (\mail{bfinney@gte.net})\\
Contributed patches for MSVC5 compatibility.
\medskip
\noindent \textbf{Melchior Franz}\index{Franz, Melchior} (\mail{a8603365@unet.univie.ac.at})\\
Contributed joystick hat support, a LED font, improvements of the telnet and the http interface. Notable effort in hunting memory leaks in \FlightGear{}, \SimGear{}, and \JSBSim{}.
\medskip
\noindent \textbf{Jean-loup Gailly}\index{Gailly, Jean-loup} and \textbf{Mark
Adler}\index{Adler, Mark} (\mail{zlib@gzip.org})\\
Authors of the \Index{zlib library}. Used for on-the-fly compression and
decompression routines,
\href{http://www.gzip.org/zlib/}{http://www.gzip.org/zlib/}.
\medskip
\noindent \textbf{Mohit Garg}\index{Garg, Mohit}
(\href{mailto:theprotean_1@hotmail.com}{theprotean\_1@hotmail.com})\\
Contributed to the manual.
\medskip
\noindent \textbf{Thomas Gellekum}\index{Gellekum, Thomas}
(\mail{tg@ihf.rwth-aachen.de})\\
Changes and updates for compiling on \Index{FreeBSD}.
\medskip
\noindent \textbf{Neetha Girish}\index{Girish, Neetha}
(\mail{neethagirish@usa.net})\\
Contributed the changes for the xml configurable HUD.
\medskip
\noindent \textbf{Jeff Goeke-Smith}\index{Goeke-Smith, Jeff}
(\mail{jgoeke@voyager.net})\\
Contributed our first \Index{autopilot} (Heading Hold).
Better autoconf check for external timezone/daylight variables.
\medskip
\noindent \textbf{Michael I. Gold}\index{Gold, Michael, I.}
(\mail{gold@puck.asd.sgi.com})\\
Patiently answered questions on \Index{OpenGL}.
\medskip
\noindent \textbf{Habibe}\index{Habibe} (\mail{habibie@MailandNews.com})\\
Made RedHat package building changes for SimGear.
\medskip
\noindent \textbf{Mike Hill}\index{Hill, Mike} (\mail{mikehill@flightsim.com})\\
For allowing us to concert and use his wonderful planes, available form
\medskip
\web{http://www.flightsimnetwork.com/mikehill/home.htm},
\noindent
for \FlightGear{}.
\medskip
\noindent \textbf{Erik Hofman}\index{Hofman, Erik} (\mail{erik.hofman@a1.nl})\\
Major overhaul and parameterization of the sound module to allow
aircraft-specific sound configuration at runtime.
Contributed SGI IRIX support and binaries.
\medskip
\noindent \textbf{Charlie Hotchkiss}\index{Hotchkiss, Charlie}
(\mail{clhotch@pacbell.net})\\ Worked on improving and enhancing the \Index{HUD} code.
Lots of code style tips and code tweaks.
\medskip
\noindent \textbf{Bruce Jackson}\index{Jackson, Bruce} (NASA)
(\mail{e.b.jackson@larc.nasa.gov})
\medskip
Developed the \Index{LaRCsim} code under funding by NASA which we use to provide the
flight model. Bruce has patiently answered many, many questions.
\medskip
\href{http://dcb.larc.nasa.gov/www/DCBStaff/ebj/ebj.html}{http://dcb.larc.nasa.gov/www/DCBStaff/ebj/ebj.html}
\medskip
\noindent \textbf{Ove Kaaven} \index{Kaaven, Ove} (\mail{ovek@arcticnet.no})\\
Contributed the Debian binary.
\medskip
\noindent \textbf{Richard Kaszeta} \index{Kaszeta, Richard} (\mail{bofh@me.umn.edu})\\
Contributed screen buffer to ppm screen shot routine.
Also helped in the early development of the "altitude
hold autopilot module"\index{autopilot} by teaching Curt Olson the basics of Control Theory
and helping him code and debug early versions. Curt's ''Boss'' Bob Hain
(\mail{bob@me.umn.edu}) also contributed to that. Further details available at:
\medskip
\href{http://www.menet.umn.edu/~curt/fgfs/Docs/Autopilot/AltitudeHold/AltitudeHold.html}{http://www.menet.umn.edu/$\tilde{~~}$curt/fgfs/Docs/Autopilot/AltitudeHold/AltitudeHold.html}.
\medskip
\noindent
Rich's Homepage is at
\medskip
\href{http://www.kaszeta.org/rich/}{http://www.kaszeta.org/rich/}.
\medskip
\noindent \textbf{Tom Knienieder}\index{Knienieder, Tom} (\mail{tom@knienieder.com})\\
Ported the audio library\index{audio library} first to OpenBSD and IRIX and after that to Win32.
\medskip
\noindent \textbf{Reto Koradi}\index{Koradi, Reto} (\mail{kor@mol.biol.ethz.ch})
\medskip
Helped with setting up \Index{fog effects}.
\medskip
\href{http://www.mol.biol.ethz.ch/wuthrich/people/kor/}{http://www.mol.biol.ethz.ch/wuthrich/people/kor/}
\medskip
\noindent \textbf{Bob Kuehne}\index{Kuehne, Bob} (\mail{rpk@who.net})\\
Redid the Makefile system so it is simpler and more robust.
\medskip
\noindent \textbf{Kyler B Laird}\index{Laird, Kyler B.} (\mail{laird@ecn.purdue.edu})\\
Contributed corrections to the manual.
\medskip
\noindent \textbf{David Luff}\index{Luff, David} (\mail{david.luff@nottingham.ac.uk})\\
Contributed heavily to the IO360 piston engine model.
\medskip
\noindent \textbf{Christian Mayer}\index{Mayer, Christian}
(\mail{flightgear@christianmayer.de})\\
Working on \Index{multi-lingual conversion tools} for fgfs as a demonstration of technology.
Contributed code to read Microsoft Flight Simulator scenery textures. Christian is working on a completely new \Index{weather} subsystem.
Donated a \Index{hot air balloon} to the project.
\medskip
\noindent \textbf{David Megginson}\index{Megginson, David} (\mail{david@megginson.com})\\
Contributed patches to allow mouse input to control view direction yoke.
Contributed financially towards hard drive space for use by the
flight gear project. Updates to README.running.
Working on getting fgfs and ssg to work without textures.
Also added the new 2-D panel and the save/load support.
Further, he developed new \Index{panel} code, playing better with OpenGL, with new features.
Developed the property manager and contributed to joystick support.
Random ground cover objects
\medskip
\medskip
\noindent \textbf{Cameron Moore}\index{Moore, Cameron}
(\mail{cameron@unbeatenpath.net})\\
FAQ maintainer. Reigning list administrator. Provided man pages.
\medskip
\noindent \textbf{Eric Mitchell}\index{Mitchell, Eric} (\mail{mitchell@mars.ark.com})\\
Contributed some topnotch scenery \Index{textures} being all original creations by him.
\medskip
\noindent \textbf{Anders Morken}\index{Morken, Anders} (\mail{amrken@online.no})\\
Former maintainer of European web pages.
\medskip
\noindent \textbf{Alan Murta}\index{Murta, Alan} (\mail{amurta@cs.man.ac.uk})
\medskip
Created the Generic Polygon Clipping library.
\medskip
\web{http://www.cs.man.ac.uk/aig/staff/alan/software/}
\medskip
\noindent \textbf{Phil Nelson}\index{Nelson, Phil} (\mail{phil@cs.wwu.edu})\\
Author of GNU dbm, a set of database routines that use extendible hashing and work
similar to the standard UNIX dbm routines.
\medskip
\noindent \textbf{Alexei Novikov}\index{Novikov, Alexei}
(\mail{anovikov@heron.itep.ru})\\
Created European Scenery. Contributed a script to turn fgfs scenery into beautifully rendered
2-D maps. Wrote a first draft of a Scenery Creation Howto.
\medskip
\noindent \textbf{Curt Olson}\index{Olson, Curt} (\mail{curt@flightgear.org})\\
Primary organization of the project.\\
First implementation and modifications based on \Index{LaRCsim}.\\
Besides putting together all the pieces provided by others mainly concentrating on the \Index{scenery subsystem} as well as the graphics stuff. Homepage at
\href{http://www.menet.umn.edu/~curt/}{http://www.menet.umn.edu/$\tilde{~~}$curt/}
\medskip
\noindent \textbf{Brian Paul}\index{Paul, Brian}\\
We made use of his TR library and of course of Mesa:
\web{http://www.mesa3d.org/brianp/TR.html}, \web{http://www.mesa3d.org}
\medskip
\noindent \textbf{Tony Peden}\index{Peden, Tony} (\mail{apeden@earthlink.net})\\
Contributions on flight model development, including a LaRCsim based
Cessna 172. Contributed to {\JSBSim} the initial conditions code, a more complete
standard atmosphere model, and other bugfixes/additions.
His Flight Dynamics page can be found at:
\medskip
\href{http://www.nwlink.com/~apeden}{http://www.nwlink.com/$\tilde{~~}$apeden/}.
\medskip
\noindent \textbf{Robin Peel}\index{Peel, Robin} (\mail{robin@cpwd.com})\\
Maintains worldwide airport and runway database for \FlightGear{} as well as X-Plane.
\medskip
\noindent \textbf{Alex Perry}\index{Perry, Alex} (\mail{alex.perry@ieee.org})\\
Contributed code to more accurately model VSI, DG, Altitude.
Suggestions for improvements of the layout of the simulator on the mailing list
and help on documentation.
\medskip
\noindent \textbf{Friedemann Reinhard}\index{Reinhard, Friedemann}
(\mail{mpt218@faupt212.physik.uni-erlangen.de})\\
Development of an early textured instrument \Index{panel}.
\medskip
\noindent \textbf{Petter Reinholdtsen}\index{Reinholdtsen, Petter}
(\mail{pere@games.no})\\
Incorporated the GNU automake/autoconf system (with libtool).
This should streamline and standardize the build process for all
UNIX-like platforms. It should have little effect on IDE type
environments since they don't use the UNIX make system.
\medskip
\noindent \textbf{William Riley}\index{Riley, William} (\mail{riley@technologist.com})\\
Contributed code to add ''\Index{brakes}''. Also wrote a patch to support a first joystick with more than 2 axis. Did the job to create scenery based on VMap0 data.
\medskip
\noindent \textbf{Andy Ross}\index{Ross, Andy} (\mail{andy@plausible.org})\\
Contributed a new configurable FDM called \YASim{} (Yet Another Flight Dynamics Simulator, based on geometry information rather than aerodynamic coefficients.
\medskip
\noindent \textbf{Paul Schlyter}\index{Schlyter, Paul} (\mail{pausch@saaf.se})\\
Provided Durk Talsma with all the information he needed to write the
astro code. Mr. Schlyter is also willing to answer astro-related questions
whenever one needs to.
\medskip
\href{http://www.welcome.to/pausch/}{http://www.welcome.to/pausch/}
\medskip
\noindent \textbf{Chris Schoeneman}\index{Schoenemann, Chris}
(\mail{crs@millpond.engr.sgi.com})\\
Contributed ideas on audio support.
\medskip
\noindent \textbf{Phil Schubert}\index{Schubert, Phil} (\mail{philip@zedley.com})\\
Contributed various textures and engine modeling.
\medskip
\href{http://www.zedley.com/Philip/}{http://www.zedley.com/Philip/}.
\medskip
\noindent \textbf{Jonathan R. Shewchuk}\index{Shewchuk, Jonathan}
(\mail{Jonathan\_R\_Shewchuk@ux4.sp.cs.cmu.edu})\\
Author of the Triangle\index{triangle program} program. Triangle
is used to calculate the Delauney triangulation of our irregular terrain.
\medskip
\noindent \textbf{Gordan Sikic}\index{Sikic, Gordan} (\mail{gsikic@public.srce.hr})\\
Contributed a \Index{Cherokee flight model} for \Index{LaRCsim}. Currently is not
working and needs to be debugged. Use configure
\texttt{-$ $-with-flight-model=cherokee}
to build the cherokee instead of the \Index{Cessna}.
\medskip
\noindent \textbf{Michael Smith}\index{Smith, Michael} (\mail{msmith99@flash.net})\\
Contributed cockpit graphics, 3-D models, logos, and other images.
Project Bonanza
\medskip
\noindent \textbf{Martin Spott}\index{Spott, Martin} (\mail{Martin.Spott@uni-duisburg.de})\\
Co-Author of the ''Getting Started''.
\medskip
\noindent \textbf{Durk Talsma}\index{Talsma, Durk} (\mail{d.talsma@chello.nl})\\
Accurate Sun, Moon, and Planets. Sun changes color based on
position in sky. Moon has correct phase and blends well into the
sky. Planets are correctly positioned and have proper magnitude. Help with time
functions, GUI, and other things. Contributed 2-D cloud layer.\index{clouds} Website
at
\medskip
\href{http://people.a2000.nl/dtals/}{http://people.a2000.nl/dtals/}.
\medskip
\noindent \textbf{UIUC}\index{UIUC} - Department of Aeronautical and Astronautical
Engineering\\
Contributed modifications to LaRCsim to allow loading of aircraft
parameters from a file. These modifications were made as part of an
icing research project.
\medskip
Those did the coding and made it all work:\\
Jeff Scott \mail{jscott@students.uiuc.edu}\index{Scott, Jeff}\\
Bipin Sehgal \mail{bsehgal@uiuc.edu}\index{Sehgal, Bipin}\\
Michael Selig \mail{m-selig@uiuc.edu}\index{Selig, Michael}
\medskip
Moreover, those helped to support the effort:\\
Jay Thomas \mail{jthomas2@uiuc.edu}\index{Thomas, Jay}\\
Eunice Lee \mail{ey-lee@students.uiuc.edu}\index{Lee, Eunice}\\
Elizabeth Rendon \mail{mdfhoyos@md.impsat.net.co}\index{Rendon, Elizabeth}\\
Sudhi Uppuluri \mail{suppulur@students.uiuc.edu}
\medskip
\noindent
\textbf{\Index{U.\,S. Geological Survey}}
\medskip
Provided geographic data used by this project.
\medskip
\href{http://edc.usgs.gov/geodata/}{http://edc.usgs.gov/geodata/}
\medskip
\noindent \textbf{Mark Vallevand}\index{Vallevand, Mark}
(\mail{Mark.Vallevand@UNISYS.com})\\
Contributed some METAR parsing code and some win32 screen printing routines.
\medskip
\noindent \textbf{Gary R. Van Sickle}\index{van Sickle, Gary, R.}
(\mail{tiberius@braemarinc.com})\\
Contributed some initial \Index{GameGLUT} support and other fixes. Has done
preliminary work on a binary file format. Check
\medskip
\href{http://www.woodsoup.org/projs/ORKiD/fgfs.htm}{http://www.woodsoup.org/projs/ORKiD/fgfs.htm}.
\medskip
\noindent
His 'Cygwin Tips' page might be helpful for you at
\medskip
\href{http://www.woodsoup.org/projs/ORKiD/cygwin.htm}{http://www.woodsoup.org/projs/ORKiD/cygwin.htm}.
\medskip
\noindent \textbf{Norman Vine}\index{Vine, Norman} (\mail{nhv@yahoo.com})\\
Provided more numerous URL's to the ''FlightGear Community''.
Many performance optimizations throughout the code. Many contributions
and much advice for the scenery generation section. Lots of Windows
related contributions. Contributed wgs84 distance and course routines.
Contributed a great circle route autopilot mode based on wgs84 routines.
Many other GUI, HUD and autopilot contributions. Patch to allow mouse input to control view direction. Ultra hires tiled screen dumps. Contributed the initial 'goto airport' and 'reset' functions and the initial http image server code
\medskip
\noindent \textbf{Roland Voegtli}\index{Voegtli, Roland}
(\mail{webmaster@sanw.unibe.ch})\\
Contributed great photorealistic textures. Founder of European Scenery Project for
X-Plane:
\medskip
\href{http://www.g-point.com/xpcity/esp/}{http://www.g-point.com/xpcity/esp/}
\medskip
\noindent \textbf{Carmelo Volpe}\index{Volpe, Carmelo}
(\mail{carmelo.volpe@mednut.ki.se})\\
Porting \FlightGear{} to the \Index{Metro Works} development environment
(PC/Mac).
\medskip
\noindent \textbf{Darrell Walisser}\index{Walisser, Darrell}
(\mail{walisser@mac.com})\\
Contributed a large number of changes to porting \FlightGear{} to the Metro Works development environment (PC/Mac). Finally produced the first Macintosh port. Contributed to the Mac part of Getting Started, too.
\medskip
\noindent \textbf{Ed Williams}\index{Williams, Ed}
(\href{Ed_Williams@compuserve.com}{Ed\_Williams@compuserve.com}).\\
Contributed magnetic variation code (impliments Nima WMM 2000).
We've also borrowed from Ed's wonderful aviation formulary at various
times as well. Website at
\medskip
\href{http://williams.best.vwh.net/}{http://williams.best.vwh.net/}.
\medskip
\noindent \textbf{Jim Wilson}\index{Wilson, Jim}
(\href{jimw@kelcomaine.com}{jimw@kelcomaine.com}).\\
Wrote a major overhaul of the viewer code to make it more flexible and modular. Contributed many small fixes and bug reports. Contributed to the PUI property browser and to the autopilot.
\medskip
\noindent \textbf{Jean-Claude Wippler}\index{Wippler, Jean-Claude}
(\mail{jcw@equi4.com})\\
Author of \Index{MetaKit} - a portable, embeddible database with a portable
data file format used in \FlightGear{}. Please see the following URL for more info:
\medskip
\href{http://www.equi4.com/metakit/}{http://www.equi4.com/metakit/}
\medskip
\noindent \textbf{Woodsoup Project}\index{Woodsoup}\\
While \FlightGear{} no longer uses Woodsoup servies we appreciate the
support provided to our project during the time they hosted us. Once they
provided computing resources and services so that the \FlightGear{} project
could have a real home.
\href{http://www.woodsoup.org/}{http://www.woodsoup.org/}
\medskip
\noindent \textbf{Robert Allan Zeh}\index{Zeh, Allan} (\mail{raz@cmg.FCNBD.COM})\\
Helped tremendously in figuring out the \Index{Cygnus} Win32 compiler and
how to link with .dll's. Without him the first run-able Win32
version of \FlightGear{} would have been impossible.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{What remains to be done}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
If you read (and, maybe, followed) this guide up to this point you may probably agree: \FlightGear{}$\!$, even in its present state, is not at all for the birds. It is
already a flight simulator which sports even several selectable flight models, several planes with panels and even a HUD, terrain scenery, texturing, all the basic controls and weather.
Despite, \FlightGear{} needs -- and gets -- further development. Except internal tweaks,
there are several fields where \FlightGear{} needs basics improvement and development. A
first direction is adding \Index{airport}s, buildings, and more of those things bringing
scenery to real life and belonging to realistic airports and cities. Another task is further
implementation of the \Index{menu system}, which should not be too hard with the basics
being working now. A lot of options at present set via command line or even during
compile time should finally make it into menu entries. Finally, \FlightGear{} lacks any
\Index{ATC} until now.
There are already people working in all of these directions. If you're a programmer and
think you can contribute, you are invited to do so.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection*{Achnowledgements}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Obviously this document could not have been written without all those contributors
mentioned above making \FlightGear{} a reality.
First, I was very glad to see Martin Spott \index{Spott, Martin} entering the documentation effort. Martin provided not only several updates and contributions (notably in the OpenGL section) on the Linux side of the project but also several general ideas on the documentation in general
Besides, I would like to say special thanks to Curt Olson,\index{Olson, Curt} whose
numerous scattered Readmes, Thanks, Webpages, and personal eMails were of special help to
me and were freely exploited in the making of this booklet.
Next, Bernhard Buckel \index{Buckel, Bernhard} wrote several sections of early versions
of that Guide and contributed at lot of ideas to it.
Jon S. Berndt \index{Berndt, Jon, S.} supported me by critical proofreading of several
versions of the document, pointing out inconsistences and suggesting improvements.
Moreover, I gained a lot of help and support from Norman Vine\index{Vine, Norman}. Maybe,
without Norman's answers I would have never been able to tame different versions of the
\Cygwin{} -- \FlightGear{} couple.
We were glad, our Mac expert Darrell Walisser \index{Walisser, Darrell} contributed the section on compiling under Mac OS X. In addition he submitted several Mac related hints and fixes.
Further contributions and donations on special points came from John Check,\index{Check,
John} (general layout), Oliver Delise \index{Delise, Oliver} (several suggestions
including notes on that chapter), Mohit Garg \index{Garg, Mohit} (OpenGL), Kyler B. Laird
\index{Laird, Kyler B.} (corrections), Alex Perry\index{Perry, Alex} (OpenGL), Kai
Troester\index{Troester, Kai} (compile problems), Dave Perry \index{Perry, Dave} (joystick support), and Michael Selig\index{Selig, Michael} (UIUC models).
Besides those whose names got lost withing the last-minute-trouble we'd like to express our
gratitude to the following people for contributing valuable 'bug fixes' to this version of Getting Started (in random order): Cameron Moore,\index{Moore, Cameron} Melchior Franz,\index{Franz, Melchior} David Megginson,\index{Megginson, David} Jon Berndt,\index{Berndt, Jon} Alex Perry,\index{Perry, Alex}, Dave Perry,\index{Perry, Dave}, Andy Ross,\index{Ross, Andy} Erik Hofman\index{Hofman, Erik}, and Julian Foad\index{Foad, Julian}.
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections
%% revision 0.10 1998/10/01 michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% corrections on audio library, getting started
%% revision 0.12 1999/03/07 michael
%% Updated Credits
%% revision 0.20 1999/06/04 michael
%% added O. Delise, Ch. Mayer, R. Peel, R. Voegtli, several updates
%% revision 0.3 2000/03/01 michael
%% Supplemented to Jon Berndt, Oliver Delise, Christian Mayer, Durk Talsma
%% Norman Vine
%% Added David Meggison
%% Revised Acknowledgements
%% Several additions suggested and collected by Oliver Delise
%% revision 0.4 2001/05/12 michael
%% added several people entering the game during the last year
%% changed countless mail addresses
%% revision 0.5 2002/01/01 michael
%% update on history during the last year
%% added new people entering the game
%% revision 0.6 2002/09/09 michael
%% reorganized history section for better readability
%% added progress for versions 0.7.10 & 0.8
%% removed outdated Navion picture

185
Docs/source/magnet2.eps Normal file
View file

@ -0,0 +1,185 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: jpeg2ps V1.5 by Thomas Merz
%%Title: magnet2.jpg
%%CreationDate: Wed Feb 13 13:55:42 2002
%%BoundingBox: 20 20 305 148
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%EndProlog
%%Page: 1 1
/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
(JPEG file 'magnet2.jpg' needs PostScript Level 2!\n) dup print flush
/Helvetica findfont 20 scalefont setfont 100 100 moveto show showpage stop
} if
save
/RawData currentfile /ASCII85Decode filter def
/Data RawData << >> /DCTDecode filter def
20 20 translate
285.00 127.20 scale
/DeviceRGB setcolorspace
{ << /ImageType 1
/Width 475
/Height 212
/ImageMatrix [ 475 0 0 -212 0 212 ]
/DataSource Data
/BitsPerComponent 8
/Decode [0 1 0 1 0 1]
>> image
Data closefile
RawData flushfile
showpage
restore
} exec
s4IA0!"_al8O`[\!<E1F!-eJDs4[N@!!WQ0"pG,6"pG29#6kG@&./aN#mq@V%h'!
c'GqZ''G_H&*@2dG)^?=<(*G.N,:4ce.Oc5W/MJb)0I8+r.0&$%6NIDs#7:_D'+,
'[-lNj>-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n$Jl-n
$Jl-n,,4!"fJ:e,e;+!?qLF&HMtG!WU(<)ZTm=!WrH(zz!!!!&"p+l0#6FkC!#,G
7zzzzs4RG]!s&B'&-EID!!/&!j8h,lB+iLk$TbLClG0a,!m[kT3j:1#^pC'CcE%C
7YUo(TZ`=/QX:%(n/F($WWrgSJ$TbLClG0a,!m[kT3j:1#^pC'CcE%CCF^=*kc-c
X9?*IDGzzzz!!!!$Fdf4E!9:98/)UC.eV1V,<R,A81S.D$+,.-OkLI!lmq%V'hnS
+To6u2izz!!!%9WS7D4lh1\\!!#Ub=+n=Q!11tF8G9iU4q2#&^)0N)$o_l#zz!!!
!&ZDVL=j0.)chuEf0aZ0P*n)1F?OYcJ/^Oj=CC%'Vmp1`_8q>3709msZ>zz!!!#-
<:,2UFo)>i!!"8uiW)&bLA_+7NY7/Q-*)i?BH+=2mXCUM^)lZui2]:O!OcXl%hd:
Y0F*`O3Phr;UXAIaK^&67/h4XMUd!+@git_@]B)OB(<W2P"-1-(YCHTT4QhP!]4-
f-B>S9k))<FBRL&$U$2=g*.#H##J(=IHfT(Dd\=*,aYPA/'YO@C;3jn8>4O0j5Y6
i916eM$QE>lDFo:A,NY'D+eP5Y=9%GlBp5#t_b[T)XE*-M,^HiZ)45&#b=LF2g\_
Okqa#Jl_N5=rCHXP(jPPNc2ha3I"oIHDg7V]`s9\im&'RhBAX!,_?=3lq$@46<Yr
!FYQ''q6hIF,kbTc"#-QINq%!eGocYVec@nYLkA`#q4O?aV!(G8osh[J`T#n]3RP
N%aHlg54$cEp;DgE]"Z&C>fS(l5&Lo3zz!!!eWSZi3V^L46q48:0o,_UGglCi8?M
[`P7A^C)^I6N)V][cbWl-#[gnnK8VR]FTLJ,fQLz!!!!#fi,<ZES'Oln-&Xodrp8
bRs<o4X&5k#CWekrcE)JUJ-*Vpm3J>`kPtS_zz"gY%B!9:98/)UC-#Mace=V$pJ!
!!,-O6L/Vc,'G\zz!!:hQ[=E%ogc12>@fe)/,*IO0-mI)k/LVgkJh8ApdXj&!,1;
'->bI!I#dg7_8dMesMb48^TSlDJ[%N=L#dg7_8dMesMb48^TSlG13Ms%WAAiB$0Z
6-WhuE`Wzzzz"96:>/J%m_"9AT-!<NH-!<<*"!!!'#!<WH.&JGii&g/u,0JitW+s
Sj#'eqs]s4RGY!<E0$"TmoM/@PXt!o*sh$ZHm>/\kS@[fL@Jg]b1qE#.@`^fu>u!
H%to"h4qZ(>pd[>Ca0`D?ASs\-m6ki%;`KJ@>Ps!o*sh$ZHm>/\kS@[fL@Jg]b1q
E#.@`^fu>u!H%to"h4qI'.+K`_iq^Er2<4STp:VKhgH[DGg!Mkj?5^dOS&A88[/[
o1l_aM4=:8nd[F"$#pGJVGq4ulA4;NG<-4t!:I\G).PjX9YaeTL5'If[+5q5]T/p
-k1E-_QOr0#Cg8oW==+3QS>BaTq<%Xp?)S[U`D;X_9VXJkRROpkFRDa\qKueRfg=
DPMaS/7`[OC+=5`Wd("SRB)Z"%gmpI7eS'mV';d-OE;AkN_2a)gu]C@=""\M(h\4
[1leo_H<(9Kj2,'nl4ODl$XV@JEXO?E).)<[`\RHce!KpP^(;O<-DG%jC3/a810<
ID(nh*'.Q@HReAAh07j[r9Ik+=T8B5Yk>QY^@U:R*hPL%)AH`fDceC@(lrLE<3X`
CRMa`t>!k0%-u7/90M/YtP'>/"mRtrs=4icP;@@`.Ao4e&-?4M>r81s_;+N:u0q#
JgW0tX&nfFG"@fhb^(oDj'`%"<QROkTmX$9j,3:2uWn^iG#-[`?VCp`]%&p++&%h
X\4;7o5U39H8PM^n2I)im'l>.f":&rGKrN!i!8-Np#D%o:P\eHIlWoQ3l/P>u/C[
7<g-&@hPcE>mEh16#^+rmA5E;Ae1"p+0c=a0#[6:\Us:"C#uDEY$*<Hd`B$KqinO
W<bITq\CqoA_6GGp$t<>R@oIQP`A')POCW>*hPF4\`*XLV6J1$bGUcW9^$:RMU&0
=A/U$-r*t==CWu2`oo,8H\,']sZm?]Wi-t%CLuPDcnGS`s[AY(1LlB>.(dg5A:NN
Bk;245,4E]U2jama+bh.q*SUV.&NU'c#\PF*-EIbnDahiCR=V";];+24?(ak/*/0
SJN;&6ki=t9.-N*9($/UJLPed)auQQKZ`l&<_)6H7f@j4hdJ!hNnn:9g3VFYdEFh
Qdl(b%6IVN\_r&b8YUdKl8[dF^fEs-WnTf3gm6$Y?2.^nsNsnoJ.J["!-`M&<q./
P=UQ'o4M(cd=.6aK'DSWU8F`A[5[[!rr>6mm"s/)Uj6PA([WaK3A&/1NlW4U1ljK
-/G_NrUmBs8)%TMs-tedG_`J4cR>24&%+3ZM:>0rLBSL.o@F3\L2GfbZPOb%#bqo
8=6dt"O(*Jnt%[8+LVoAl4JR=(5:>`8=1T9AX?cl$Ha/?c74['VDg('BcZuuBKaY
Nkr,0J`]2(Rru3\;._@8*rM/5b/Z6$CZT$R+d(`X'*!1Q\L^drEt)V`0)K(#$%aX
'SF,L0^DVOS&<X,hn>N8ku2=@a"^q@_6u%1`a=9OS&Jf(#$#u0%@b-cFj$!%%Cht
Gn3^"d:fo`24b#!Z-n3;%jC3;!1CUY;u->3T^R`l8,iRVb`C[47B_ZSM5R;qLq&A
!\;Q0QMhnm$Lq&A!\;Q0QMhnm$Lq&A!\;Q0QMhnm$Lq&A!\;Q0QMhnm$Lq&A!\;Q
0QMhnm$Lq&A!\;Q0QMhnm$Lq&A!\;4pVVYn3u+907Z'G1?Gzzz!!%QLg&MBZ!s&E
e!E+FI_uLJ`!<<*"zzzJH+='#QXu-!C$T_J,dFe3=l/k!X&T/"pG&3"TSN&!!!$"
!Ws#I1*MdR+<iO+EY&m<:f2381I+iHJ[#n66=Rc=@rm9ds4RGY!<E0)56C2j__ld
^=1:&6F'#h.HZN8t21'CG[l&MR=1:&6F'#h.HZN8t21'CG[l&MR=1:&6F'#h.HZN
8t21'CG[l&MR=1:&6F'#h.HZN8t21'CG[l&MR=1:&6F'#h.HZN8t21'CG[l&MR=1
:&6F'#h.HZN8t21'CG[l&MR=1:&6F&t:`WKi(Uc$6G;a6Vo@X3V#PJ_s,rF-P2d`
8%;Wo]2s,2jI+5&+4BDLQ#%A7&PoP5fNX5WR*pQm^6r"?hsnPcL26/ibG_`Dtc?t
6cS\gkI"c67uriDY5ki_$?P$B1kkH0D^r$iW%ha!\/GY4K7B\9:u,Do%[)YL_Jcu
]HmJ^;ntPTkSR6,M\r6Rg0DSILr@N,A:h#PcLT3!>>n/BGkapCo\/]m`Fa+@M3.j
'::)qa;$r^*).*iHohmCtkA"%3nE9I`e?0cH+imB5DLe`?W$(:9JNW?#?7MRsuVD
D"m3K@g6L;;@s8sS9-Aq+_EkP`DL9KKiUFa+EKQJe>r/u?g/YpIN;A8"c:O?KbCc
"sX2aj+F1:T':&\ntqI2^%scjrSA.b`;rqN[R8)f^a<@=EoHDjrPYgaTkmunJs\G
l^]m';+iDO.6&!q*kB`q,o!Yi&sIksi4ud^nl/G&?P1X`'B[B&rQ6t2j5bin^j'p
8%MId1+iFWVm>$O',`2F2g@47S*$rQc]8#U,PfoD9't(sXOG+..ZW-HFKTL\X0g/
4ZTB^(D+MM(N;f`o`[asaaI=h95a[s?>B*Ik`P+.is4gqh%j6RT*IS*?J4ojmET[
jFZTb8t45@qLs5?()^"W,&iL\km]i=FPj#*$tDK>ILd9u6h-Z65:s%:GZ_&L-67!
829Q&(M8EJOT']iVIk::P:r3)E0oZ%g;d0L(ErGOT^]slL:s>q3it)UA:62RA.9A
".]]&Hpm`AaYZG>)Xk0BFtmn)<BCgim^O;]7/#8JV=kBlJs3I&*o4'OmhJd+,nB7
5&>FMf2,a;V-,C/ZA;@VGlL9"`$]<ut`F?<"pE(g$O[:#D$`]a]SW%Yc$=M,T3Mk
2@YXS(&5=FWnmlQ'Pm],.aQ#PPPJqV^d;rYOm:)TE>XF'>5Bq%_9C7Add08Slh-T
/qig]kQJ4n6Wp_b5T7)X1%Tquo&l?u:q+OW$3^X'1@3g)f$?T3ukq28a)&Em@9s)
@&?ZD(a\!kaqQj_[KK&YS.VI^*/os%UkJ*1,qGU_I52MmJJFW9sF>%GG0=1\fC4W
'bV0G0cGO0?P(HJ#;F5P)&sRi9I<2VUX;pCD27$ZXdF3>@IXZOT7]\1Fu4Y3Jepn
o_Z2PA4ks>'cp!;jg].FnoDiW$M!cnL"Z@$E%3>f?fg!BB&]]2iW3KInqZ6%t*hF
`#bYu4(#isZa+R7X?*+UL&YH+r@rmBFsnGUKV"(WRD:Zq?1K<&T/AT3uP2Yo7TmY
q,RjJ#!QK52HV.UGS*[UV>E`'OY.W>H3"q$l[34+eLQ(n$WOZ7IA%p:JEO<m5X1Q
+cfEl^]l($7TD.I0TlAjFaMthBd-(-h'Wh%^2f0HQMUA8H?hOMk&IP?80jM#J\`A
$_tfh5+kkf0-H\:]1%1+r>#/ZoN17[d9iW_7=L-m(&BHQ=6Qj8?_Y;(IZ"(=qCD2
>kc`B@U;'-GMZ":d/+cp,YL-^O^I<U/r>#/ZoN17[d9iW_7=L-m(&BHQ=6Qj8?_Y
;(IZ"(=qCD2CBE!J^_uM7u!!30&"9no/!s&B%z!!*ZTnM*=,n.6^NEM9Wk:k=`o_
;WfAg&MBZ!<<-b+_*2Ngfm4S>=Go'7C68fZs,u+>=Go'7C68fZs,u+>=Go'7C68f
Zs,u+>=Go'7C68fZs,u+>=Go'7C68fZs,u+>=Go'7C68fZs,u+>=)pDW$HUEq/R<
9.T)'Nm1X79L*jH!Ja3hrE;>hJK(T'6_0US5;RL=1@ap#R-c46q3$a\X,RS`#48T
X':P:`8Z<cOE3>LfcY7^V?6?7Do[66L(RIWBV>=3'"-R*S7_P@!>.!dBfA85'A7*
+Pc&s):i(T6aICFs`D.]>B`4q`HB+f5C(<Zp\m<E>FmOt*j@b8A-Rk[@jaQ*9g/g
4i:NA81!EATI&EeJcg[,G(K`-d#2a&a;&A@8fkCqJQQ%r!]0mjt`B/VQ=eSS4%YW
PnVYBi(Z.-EmW4$g8g'X0S2Y>63=%p5nGL^V+%]LHfc#qaO/Upf,3a>A3QL!H@L4
u]g%(S.V$YeX9iD\$mJ7pWV+4iM.@b=O\%.8oP/t_,'u'YV%;NYeYdtX-8B1#F^U
"DUjXVBo_o@Sl]p$_9.Lb]&u_WRUPgZ]Q<#ODBi3#I5`I5K\BU5KYp%^H;fL-PS0
[NsK\*I<(\`>*K(T$G:$%3sA[Dh<rja#_7#Vi+m\o.mEl=V<ICdp(i'[+qX?OWLZ
CL49fYqlu5g"0_)DG^?U1eOU&DMISrAoahgsa5'aBt]0#g'5KBLpm',5jR$L>:7s
3lk[(THbet%gD4t!%EJ5&k*XQA_8_m4[fL?FN-ep=oSJn7<LK!rr><[d&#sR(4$H
4p+X(*nSguA,Y"'XlkmX3U7"Zc@kqY.rr>0>m$caQFqU5[6a2K&(D$BemeQ&8?D#
*tU(tm:"#.?2'?>U`B+=k@P9dba&PRZTUJII6<1u;LKk!+LI^m&"C/0F5<DB_sbn
pXp-JlLBOe4[o>gO.gM6%QZm0D"\@(?0?UC0p^%=VpAWQ'XBb]M[ml]N8dVeBfm+
VRs4d:b^u'k,DW?D#%.;(5D#n2_Kojt8?J;TauYo1ZKE.2WnrB\,EXl4qj4\lFT^
(@LE+RTjJ_;GkG#1#u;)B*=8,qkHuXr"u7U<O)B3M;mu4*Cpkp'19Tq/q`q^dV,G
33[#@25oS$\203Y,e+(0W0n`Q4T10d_n6V_;8E:6d9Bq^8E-ZGSZm"d-,a(\8k+E
#?k`(m5=ctREYHZ0PQ7NR(($QTrJfI?-K^[Ai^j\344['aW#@.VWV.iY(4.c+mWj
B#P"<!s[*4)@JVVXdq_)+k.knu,!&*PA+/RQ?P]foLX)@<I4"7B#DD65d@1,Xj3&
PSR\Z5Sim%;'.0el&'YR<8=RSSfR%Br)fo6]4N;.<DTY5om:)NbGa5jFX=+_r/3l
=r0bBT&b*28,iQ\n9>@VFO$;7U1A;LK_%&F6@;mc65Bn+M.NdWdWdE@Q:-@,n1%7
R4\\TB$W.J?6J++\&G`,ak[954KCJYs21C\G]foCRQPfF,4<9QSj:^pH$^1l#G80
qN%ii.Z!K:hrdJ,@jQ*=lJP,Xb(n6.3$p!0Os0tH@9R%oBq8DuHu&hq+tWh2l@]f
oOEW&.:YE_NI]L+A#1.U3Z,Y:]fiXOo7\,7@I.oT'1?ntstKMAf3.T+nd\8:8ZN.
>85!rRDu]i4V@4847SFW<-f'1o9XHU#D61^aAI@NLr`=IlQtIhp<Z3Nm&h?`;]gt
or/M:JZTAA)2hFuP)/"@[c;5EgPrZ]DDp9e\D)#3j))fjNOKjE2V`/ZgMs[^D8t=
i[i93CghjRUEOOnE`nQK^)f@RhD7J>?[c;5EgPrZ]DDp9e\D)#3j))fjNOKjE2V`
/ZgMs[^D8Ju_jKO5&:l-H[N.6!Mg&MN`!<<0$!rr<$&>0:/zzzz!"dW%zzzzz%6U
9`!27IJZ[sS*zz!!!!taoDDA+FjG7zzz!!PKX!!&Yl!!(4sTE"rlzz;p#(?#QOi)
!($Yo5QDWD!!&)\-kHPETE"s:8ItlP"9D7?"%3+hb5amr!)q#?;??jgKIe7%!.Y%
\^]5Xq">#',4J2g"E.L,k%hJ^@zz!!#s?!"b.nPDqPa70!;fzz"[&FX+S3f&!!!.
pzz!!!!taoDDA0S'K0!C?bdzz!!PJ=5R]?a$o#R=Yepl'_[J6:$o#R%6Os/!cTLg
F4S-l]o?TPjcTLgF4S-l]s24mO&HMk3zzz!.b+'!!iT-!<GCr;Le_b!#-"Gzzz!!
!"Ls4RGY!<N9&57g_Bs24mf&-2b4!<NE-!WiH)!<<*"!!*'3+Ych:6".V!&938`:
nb/A0L4T)nc.;C#QXr+!C%-M"fN$u>G+L3^R4iKo/u?Oo<.]1]?`P,4R9ZOY4KrN
cT:MWlb)hlo?Oto3q#2s]^r;tcF_C`ml]pKo<.]1]?`P,4R9ZOY4KrNcT:MWlb)h
lo?Oto3q#2s]^r;tcF_C`ml]pKo<.]1]?`P,4R9ZOY4KrNcT:MWlb)hlo?Oto3q#
2s]^r;tcF_C`ml]pK8sJuIkZsV(^)&Fh-<4Np.;SALU)'aNH31p,7kqfD3BsG(%b
e"fr'h)3qLSgob?e(toh,Jjgp(q!97!XAX78J?$&0I==26>Q.RposD.$f_*.!j\e
Fq<S'mUoR1@iNP/Z8ZBm9.TWXkoV(08X#A2*5(A-74>5p&q^rTHJRp$j%A:%=FU7
glrjUj03*"d-*Oq#uGGMKNWab1k=*ML.8G@X(;'fY?rV\Ot!KZ)SG'9]":kbIH)q
,6;g;'ada5eaaGM1>W_XE$s8BUoTT+jMZ.&cS@i%&"S<UqjNUr:S?PuNjh?5)^gF
V[W*UU^edf-(#Y!CHTe#jPDjE#VL[Gcd'ZC;M0]nXC'(tRX1l-rn3lbnU3,NL/R]
6XdXm:"tJ1jk@QgIR0g<d1Y'Qr91=IFh*[M?I@Qk5E^6ep8NT4AiUh1+^o@)?3FY
V(sK--UHR"mj/ILMDOF,Lqns#Q]9+N@=$f[A6Q-I-:3;\Q^CRCV>JH8U.J&(RVF1
Kr:Z=R@^aa`JmQA[>QSOnX)F6mM$)/'T6Y?_IdAFg]j@K),_n!d=J[GRk<hB6/eY
43Mu1CZIT&=74YR8.f=mlmJ1-_eW*;g/>/BJX]t=_)94=49%K@BJA;9S?4'H`[oH
m]O/8egbC9CT6^FhuCJOH)q#l7D!A#<LJQ^J@1SbtnC5FRA$eA5<X*%Ghro2clGu
_k!k/jI/;=;>k/\b?+e-2m81UM1>W58(19FP*$0B.4hBrb/H-cZSTC')qW);6f'e
6r*T-3e<8(\'UDZsTrS$1Rp%!q$tCX=so5$g;_UJi3Tu=unDi(3kb<rLI1.$DeX(
rm5?0K0e%5Z_j?&#G@I.qedWLI2rOPbk7o>Ram_VbIYEJkH"]g"u=cWRnn;_Gun4
Lf7?S0;kBWK%uk*<%]djF"L(u2eAb[6gj]pO2rJR9ch&n*'/%Z."2Ff[<m*j=Ts-
+h90`s$mMQKpf,CDP!eY/onqt<VJ^,ZFrr>24P3GiGWJSjd6)SrQ%:s>Co9T_%+a
\V&#c:K@FKQ(o&2,6[\+(DZCRT=1TZbtsCJR$-Z$Fj$@]0LaI8sOG@BXCL)%A[Ci
anCY]?X_BCkoKE@kuF&b)X3H(El(i(;poDQV)<oHMga^#ebs<HZQX-0:b^9:ge.4
oADP75[&i<"Drh*#u1Pr7UZJH7gSV7,'0](Oa\Dr9i?KSSQ!qM<WR=TW[t5BL+&@
D<tEfX3YmC_gd/5)-(us"i#'R;!g`)`W$"`8UE_@a2"oU6Y-G4n`Ddi.>Vhpi\'*
;l,Ts\.!V'T.+6ME+>Vb-rT.(Z6`"ctHQ4m!&!j'qg9BEfX9I?-!aSegRM=&9Kk7
N8MJuT;r'%r:BDjU8R0CooNB.A$K3H5''W4nM+,6"FU@Nnph:kSt(7?e6=\8!K1N
`S)O9%VL]oHpuRMhkrSFW-s;n`oJ7Q-WS5_*ip$Dd>.$2(B$cmdI5eX*JZ+3#;U!
.T"Q.$9/i=Ac$1..[?()6hCVq_P!Zpq[b_A"<Hr:1CBQS%$pS#Z%K1?_9h+VD.ok
/(!mmSDUR!U<E6@qb8JrT3;<FQbCKiDU4oWW=N_kmC(8_X>H.Q5Ks%`*XoYKi$m<
/C_Tc5J7]E)LlPpLTR<O?:W=XP6Xd=%cJQna6<V6AHRM`MiN=_T-`o94f-E;'MRR
Pl"T`>^/08ZW,L$g_S0Li'ZrbN!pO?bk*-09TJ)FN_&>:)BC8,>aU!/=cgY*%7LE
",)=_*aLpSQ[XsUn`K=F==hV#KfZ-[_;\@'8!tSG3'Rr>_Q\9gI$FrrZW#[RP5"8
dDWe"$r(]l$CZ)peXDpeS#rZ5YHPn&AduUtZFsA7rdYR8LDl6nN5OGG^b(jF_7RW
-9h)[WR4J&gDD:2f/nVF95D[+R0#4\s#`E[5h0t.3JpsEGI1Zski3FqCV.@V\;A`
nW_R"pR[esC3OI)+6\?2L*X)#uX7Ka2X3L`E)'pVQ\`:>2iKON>`)1.MX'LYkQJX
=;!WcFeM6/n0>3IW=ULk+ed^8der=Q1J<6*V<$E(I0j1"s*:@X!b8S6km'Iu_@58
4C).\NZZkT26#..mP<5`e9.!]<:T#6kM0W-s4Y>kMZmBO8A&',JV$)mXp'.=9Ige
j$Q67!*EqK;C!!?jDFnk>=:uD0llC!MBcU-M/,>eh;S\j'k3t<MNLdd77aBm,,A1
qO]!Yt8?!=JUf<56;CY++W>-VQ</Qf9.Rcn-'dBGQMNLdd77aBm,,A1qO]!Yt8?!
=J"-N3+'gh1X5mJWihQ]LYbEg=_ZIs'&>:l/aA[:!*[Tb>Lb@S!4CpmP"QHNjFfk
e*$/XFRkZIs'&>:l/aA[:!*[Tb>Lb@S!4Cpninf`~>
%%EOF

BIN
Docs/source/magnet2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

59
Docs/source/makedoku.bat Normal file
View file

@ -0,0 +1,59 @@
rem Batch file for building FlightGear documentation
rem Supposes a working TeX system including LaTeX and pdflatex
rem plus TeX4HT (http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html)
del getstart.pdf
del getstart.html
del *.4ct
del *.4tc
del *.aux
del *.bak
del *.idv
del *.idx
del *.ilg
del *.in
del *.ind
del *.lg
del *.log
del *.out
del *.tid
del *.tmp
del *.toc
del *.xref
del *.gif
pdflatex getstart
pdflatex getstart
pdflatex getstart
makeindex getstart
pdflatex getstart
del *.aux
del *.css
del *.idx
del *.ind
del *.ilg
del *.log
del *.toc
call htlatex getstart "html,2,info,next,sections+" %1 %2 %3 %4
call htlatex getstart "html,2,info,next,sections+" %1 %2 %3 %4
call htlatex getstart "html,2,info,next,sections+" %1 %2 %3 %4
tex \def\filename{{getstart}{ind}{idx}{in}{out}} \input idxmake.4ht
makeindex -o getstart.out getstart.in
call htlatex getstart "html,2,info,next,sections+" %1 %2 %3 %4
del getstart.dvi
del *.4ct
del *.4tc
del *.aux
del *.bak
del *.idv
del *.idx
del *.ilg
del *.in
del *.ind
del *.lg
del *.log
del *.out
del *.tid
del *.tmp
del *.toc
del *.xref

View file

@ -0,0 +1,40 @@
del *.4ct
del *.4tc
del *.aux
del *.bak
del *.css
del *.idv
del *.idx
del *.ilg
del *.in
del *.ind
del *.lg
del *.log
del *.out
del *.tid
del *.tmp
del *.toc
del *.xref
pdflatex FGShortRef
pdflatex FGShortRef
pdflatex FGShortRef
del FGShortRef.dvi
call htlatex FGShortRef %1 %2 %3 %4
del FGShortRef.dvi
del *.4ct
del *.4tc
del *.aux
del *.bak
del *.idv
del *.idx
del *.ilg
del *.in
del *.ind
del *.lg
del *.log
del *.out
del *.tid
del *.tmp
del *.toc
del *.xref

258
Docs/source/missed.tex Normal file
View file

@ -0,0 +1,258 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler % Bernhard Buckel, starting September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%% & Bernhard Buckel (buckel@wmad95.mathematik.uni-wuerzburg.de)
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: missed.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Missed approach: If anything refuses to work\label{missed}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm} MISSED APPROACH
}{\thesection\hspace*{1mm} ???}
In the following section, we tried to sort some \Index{problems} according to operating system,
but if you encounter a problem, it may be a wise idea to look beyond ''your'' operating system -- just in case. If you are experiencing problems, we would strongly advise you to first check the \Index{FAQ} maintained by Cameron Moore\index{Moore Cameron} at
\medskip
\web{http://www.flightgear.org/Docs/FlightGear-FAQ.html}.
\medskip
Moreover, the source code contains a directory \texttt{docs-mini} containing numerous
ideas on and solutions to special problems. This is also a good place to go for further reading.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{FlightGear Problem Reports}\index{problem report}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The best place to look for help is generally the \Index{mailing lists}, specifically the \textbf{[Flightgear-User]} mailing list. If you happen to be running a CVS version of \FlightGear{}, you may want to subscribe to the \textbf{[Flightgear-Devel]} list. Instructions for subscription can be
found at
\medskip
\web{http://www.flightgear.org/mail.html}.
\medskip
\noindent
It's often the case that someone has already dealt with the issue you're dealing with, so it may be worth your time to search the mailing list archives at
\medskip
http://www.mail-archive.com/flightgear-users\%40flightgear.org/
http://www.mail-archive.com/flightgear-devel\%40flightgear.org/.
\medskip
\noindent
There are numerous developers and users reading the lists, so questions are generally answered. However, messages of the type
\textit{FlightGear does not compile on my system. What shall I do?}
\noindent
are hard to answer without any further detail given, aren't they? Here are some things to consider including in your message when you report a problem:
\medskip
\begin{itemize}
\item \textbf{Operating system:} (Linux Redhat 7.0\ldots/Windows 98SE\ldots)
\item \textbf{Computer:} (Pentium III, 1GHz\ldots)
\item \textbf{Graphics board/chip:} (Diamond Viper 770/NVIDIA RIVA TNT2\ldots)
\item \textbf{Compiler/version:} (Cygnus version 1.0\ldots)
\item \textbf{Versions of relevant libraries:} (PLIB 1.2.0, Mesa 3.0\ldots)
\item \textbf{Type of problem:} (Linker dies with message\ldots)
\item \textbf{Steps to recreate the problem:} Start at KSFO, turn off brakes \ldots
\end{itemize}
For getting a trace of the output which \FlightGear{} produces, then following command may come in handy (may need to be modified on some OSs or may not work on others at all, though):
\medskip
\texttt{\%FG$\underline{~~}$ROOT/BIN/fgfs >log.txt 2>\&1}
\medskip
\textbf{One final remark:} Please avoid posting binaries to these lists! List subscribers are widely distributed, and some users have low bandwidth and/or metered connections. Large messages may be rejected by the mailing list administrator. Thanks.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{General problems}\index{problems!general}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\FlightGear{} runs SOOO slow.}\\
If \FlightGear{} says it's running with something like 1\,fps
(frame per second) or below you typically don't have working hardware
\Index{OpenGL} support. There may be several reasons for this. First,
there may be no OpenGL hardware drivers available for older
cards. In this case it is highly recommended to get a new board.
Second, check if your drivers are properly installed. Several
cards need additional OpenGL support drivers besides the
''native'' windows ones. For more detail check Appendix
\ref{opengl}.
\item{Either \texttt{configure} or \texttt{make} dies with not found \PLIB{} headers or
libraries.}\\
Make sure you have the latest version of \PLIB{} ($>$ version 1.2) compiled and installed.
Its headers like \texttt{pu.h} have to be under \texttt{/usr/include/plib} and its libraries, like \texttt{libplibpu.a} should be under \texttt{/lib}. Double check there are no stray \PLIB{} headers/libraries sitting elsewhere!
Besides check careful the error messages of \texttt{configure}. In several cases it
says what is missing.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Potential problems under Linux}\index{problems!Linux}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Since we don't have access to all possible flavors of Linux distributions, here are some
thoughts on possible causes of problems. (This Section includes contributions by Kai
Troester.)\index{Troester, Kai}
\begin{itemize}
\item{Wrong library versions}\\
This is a rather common cause of grief especially when you prefer to
install the libraries needed by \FlightGear{} by hand. Be sure that
especially the Mesa library contains support for the
\Index{3DFX} board and that \Index{GLIDE} libraries are installed and can be
found. If a \texttt{ldd `which fgfs`} complains about missing
libraries you are in trouble.
You should also be sure to \em{always} keep the \em{latest} version
of \PLIB{} on your system. Lots of people have
failed miserably to compile \FlightGear{} just because of an outdated
plib.
\item{Missing \Index{permissions}}\\
In case you are using \Index{XFree86} before release 4.0 the \FlightGear{} binary may need to be setuid root in order to be capable of accessing some accelerator boards (or a special kernel module as described earlier in this document) based on 3DFX chips.
So you can either issue a
\texttt{chown root.root /usr/local/bin/fgfs ;}\\
\texttt{chmod 4755 /usr/local/bin/fgfs}
to give the \FlightGear{} binary the proper rights or install
the 3DFX module. The latter is the ''clean''
solution and strongly recommended!
\item{Non-default install options}\\
\FlightGear{} will display a lot of diagnostics while starting up.
If it complains about bad looking or missing files, check that you
installed them in the way they are supposed to be installed (i.e. with the latest
version and in the proper location). The canonical location \FlightGear{}
wants its data files under \texttt{/usr/local/lib}.
Be sure to grab the latest versions of everything that might be needed!
\item{Compile problems in general}\\
Make sure you have the latest (official) version of gcc. Old versions of
gcc are a frequent source of trouble! On the other hand, some versions
of the RedHat 7.0 reportedly have certain problems compiling \FlightGear{} as they include
a preliminary version of GCC.
\item{Problems with linking}\\
There may be several reasons; however in case you get a message like
\texttt{libmk4.so.0}: cannot open shared object file
the reason is a missing library package called Metakit. This is provided with \SimGear{} in packed form. On its installation, see Sec. \ref{metakeitinstall}.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Potential problems under Windows}\index{problems!Windows}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{The executable refuses to run.}\\
You may have tried to start the executable directly either by
double-clicking \texttt{fgfs.exe} in Windows Explorer or by invoking it
within a MS-DOS shell. Double-clicking via Explorer does never work
(unless you set the environment variable \texttt{FG\_ROOT}
in \texttt{autoexec.bat} or otherwise). Rather double-click \texttt{runfgfs.bat}.
For more details, check Chapter \ref{takeoff}.
Another cause of grief might be that you did not download the
most recent versions of the base package files required by \FlightGear{}$\!$, or
you did not download any of them at all. Have a close look
at this, as the scenery/texture format is still under development and may
change frequently. For more details, check Chapter \ref{prefligh}.
Next, if you run into trouble at runtime, do not use windows utilities for unpacking the
\texttt{.tar.gz}. If you did, try it in the Cygnus shell with \texttt{tar xvfz}
instead.
\item{\FlightGear{} ignores the command line parameters.}\\
There is a problem with passing command line options containing a
''='' to windows batch files. Instead, include the options into
\texttt{runfgfs.bat}.
\item{I am unable to build \FlightGear{} under \Index{MSVC}/\Index{MS DevStudio}.}\\
By default, \FlightGear{} is build with GNU GCC. The Win32 port of GNU GCC is known as
\Index{Cygwin}. For hints on Makefiles
required for MSVC for MSC DevStudio have a look into
\medskip
\web{ftp://www.flightgear.org/pub/flightgear/Source/}.
\medskip
\noindent
In principle, it should be possible to compile \FlightGear{} with the project files provided with the source code.
\item{Compilation of \FlightGear{} dies.}\\
There may be several reasons for this, including true bugs. However, before trying to do
anything else or report a problem, make sure you have the latest version of the
\Cygwin{} compiler, as described in Section \ref{building}. In case of doubt, start
\texttt{setup.exe} anew and download and install the most recent versions of bundles
as they possibly may have changed.
\end{itemize}
%% revision 0.10 1998/10/01 bernhard
%% added win stuff michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% Remark on mini-OpenGL drivers, new general Section
%% Access violation error under win32 added
%% Command line problem in win32 added
%% revision 0.12 1999/03/07 bernhard
%% Remark on EGCS compiler
%% revision 0.12 1999/03/07 michael
%% Added Contribution by Kai Troester
%% Reworked Win32 Stuff
%% revision 0.20 1999/06/04 michael
%% added hint to FAQ, gfc problem
%% revision 0.22 XXX
%% added hint on install.exe with Cygnus
%% revision 0.3 2000/04/20 michael
%% hint on revised PLIB paths, removed outdated stuff
%% revision 0.3 2000/04/20 michael
%% Deleted some outdated stuff
%% Added Old PLIB problem
%% revision 0.31 2000/05/01 michael
%% Reworked/Added Achnowledgements
%% Added hint on gunzip/tar from Marc Anderson
%% revision 0.4 2001/05/12 michael
%% added some points (RedHat...), deleted some outdated ones
%% complete rewrite and check still to be done ... sometime
%% revision 0.5 2002/01/01 michael
%% removed several outdated issues
%% Added problem linking Metakit

506
Docs/source/opengl.tex Normal file
View file

@ -0,0 +1,506 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler % Bernhard Buckel, starting September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%% & Bernhard Buckel (buckel@wmad95.mathematik.uni-wuerzburg.de)
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: opengl.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Some words on OpenGL graphics drivers\label{opengl}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm} GETTING THE ENGINE}{\thesection\hspace*{1mm}
INSTALLING DRIVERS}
\FlightGear{}'s graphics engine is based on a \Index{graphics library} called
\Index{OpenGL}. Its primary advantage is its platform independence, i.\,e., programs
written with \Index{OpenGL} support can be compiled and executed on several platforms,
given the proper drivers having been installed in advance. Thus, independent of if you
want to run the binaries only or if you want to compile the program yourself you must
have some sort of \Index{OpenGL} support installed for your \Index{video card}.
A good review on OpenGL drivers\index{OpenGL drivers} can be found at
\medskip
\web{http://www.flightgear.org/Hardware}.
\medskip
\noindent
Specific information is collected for windows at
\medskip
\web{http://www.x-plane.com/SYSREQ/v5ibm.html}
\medskip
\noindent
and for Macintosh at
\medskip
\web{http://www.x-plane.com/SYSREQ/v5mac.html}.
\medskip
%%Bernhard, 21.02.1999,25.06.1999
\noindent
An excellent place to look for documentation about Linux and 3-D accelerators is the {\it
Linux \Index{Quake} HOWTO} at
\medskip
\web{http://www.linuxquake.com}.
\medskip
\noindent
This should be your first aid in case something goes wrong with your Linux 3-D setup.
Unfortunately, there are so many graphics boards, chips and drivers out there that we are
unable to provide a complete description for all systems. Given the present market
dominance of NVIDIA combined with the fact that their chips have indeed been proven
powerful for running \FlightGear{}$\!$, we will concentrate on NVIDIA
drivers\index{NVIDIA!drivers} in what follows.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{NVIDIA chip based cards under \Index{Linux}\label{nvidialinux}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Recent \Index{Linux} distributions include and install anything needed to run OpenGL
programs under \Index{Linux}. Usually there is no need to install anything else.
If for whatever reason this does not work, you may try to download the most recent
drivers from the NVIDIA site at
\medskip
\web{http://www.nvidia.com/Products/Drivers.nsf/Linux.html}
\medskip
\noindent
At present, this page has drivers for all NVIDIA chips for the following Linux
distributions:\index{NVIDIA!Linux drivers} RedHat 7.1, Redhat 7.0, Redhat 6.2, Redhat
6.1, Mandrake 7.1, Mandrake 7.2, SuSE 7.1, SuSE 7.0 in several formats (.rpm, .tar.gz).
These drivers support OpenGL natively and do not need any additional stuff.
The page named above contains a detailed \texttt{README and Installation Guide} giving a
step-by-step description, making it unnecessary to copy the material here.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{NVIDIA chip based cards under \Index{Windows}\label{nvidiawindows}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Again, you may first try the drivers coming with your graphics card. Usually they should
include \Index{OpenGL} support. If for whatever reason the maker of your board did not
include this feature into the driver, you should install the \Index{Detonator reference
drivers}\index{NVIDIA!Windows drivers} made by \Index{NVIDIA} (which might be a good idea
anyway). These are available in three different versions (Windows 95/98/ME, Windows 2000,
Windows NT) from
\medskip
\web{http://www.nvidia.com/products.nsf/htmlmedia/detonator3.html}
\medskip
\noindent
Just read carefully the Release notes to be found on that page. Notably do not
forget to uninstall your present driver and install a standard VGA graphics adapter
before switching to the new NVIDIA drivers first.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{3DFX chip based cards under \Index{Windows}\label{3dfxwindows}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
With the Glide drivers no longer provided by 3DFX there seems to be little chance to get
it running (except to find older OpenGL drivers somewhere on the net or privately). All
pages which formerly provided official support or instructions for 3DFX are gone now. For
an alternative, you may want to check the next section, though.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{An alternative approach for Windows users}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
There is now an attempt to build a program which detects the graphics chip on your board
and automatically installs the appropriate OpenGL drivers. This is called \Index{OpenGL
Setup} and is presently in beta stage. It's home page can be found at
\medskip
\web{http://www.glsetup.com/}.
\medskip
We did not try this ourselves, but would suggest it for those completely lost.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{3DFX chip based cards under \Index{Linux}\label{3dfxlinux}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% MAS, 19.06.2001
Notably, with \Index{3DFX} now having been taken over by \Index{NVIDIA}, manufacturer's
support already has disappeared. However with XFree86-4.x (with x at least being greater
than 1) Voodoo3 cards are known to be pretty usable in 16 bit color mode. Newer cards
should work fine as well. If you are still running a version of Xfree86 3.X and run into
problems, consider an upgrade. The recent distributions by Debian or SuSE have been
reported to work well.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{ATI chip based cards under \Index{Linux}\index{ATI}\label{atilinux}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
There is support for \Index{ATI} chips in XFree86-4.1 and greater. Lots of
AGP boards based on the Rage128 chip - from simple Rage128 board to ATI
Xpert2000 - are mostly usable for FlightGear. Since XFree86-4.1 you can use
early Radeon chips - up to Radeon7500 with XFree86-4.2.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Building your own OpenGL support under \Index{Linux}\index{OpenGL}\label{ownopengl}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Setting up proper OpenGL support\index{OpenGL!Linux} with a recent Linux distribution should be
pretty simple. As an example \Index{SuSE} ships everything you need plus some small
shell scripts to adjust the missing bits automagically. If you just want to
execute pre-built binaries of FlightGear, then you're done by using the
supplied \FlightGear{} package plus the mandantory runtime libraries (and
kernel modules). The package manager will tell you which ones to choose.
In case you want to run a self-made kernel, you want to compile \FlightGear{}
yourself, you're tweaking your X server configuration file yourself or you
even run a homebrewed Linux ''distribution'' (this means, you want to compile
everything yourself), this chapter might be useful for you.
Now let's have a look at the parts that build OpenGL support on Linux. First
there's a Linux kernel with support for your graphics adapter.
Examples on which graphics hardware is supported natively by Open Source
drivers are provided on
\medskip
\noindent
\web{http://dri.sourceforge.net/status.phtml}.
\medskip
There are a few graphics chip families that are not directly or no more than
partly supported by \Index{XFree86}, the X window implementation on Linux, because
vendors don't like to provide programming information on their chips. In
these cases - notably IBM/DIAMOND/now: \Index{ATI} FireGL graphics boards and \Index{NVIDIA}
GeForce based cards - you depend on the manufacturers will to follow the
ongoing development of the XFree86 graphics display infrastructure. These
boards might prove to deliver impressing performance but in many cases -
considering the CPU's speed you find in today's PC's - you have many choices
which all lead to respectable performance of \FlightGear{}.
As long as you use a distribution provided kernel, you can expect to find
all necessary kernel modules at the appropriate location. If you compile the
kernel yourself, then you have to take care of two sub-menus in the kernel
configuration menu. You'll find them in the ''Character devices'' menu.
Please notice that AGP support is not compulsory for hardware accelerated
OpenGL support on Linux. This also works quite fine with some PCI cards
(\Index{3dfx} Voodoo3 PCI for example, in case you still own one). Although every
modern PC graphics card utilizes the AGP 'bus' for fast data transfer.
Besides ''\Index{AGP Support}'' for your chipset - you might want to ask your
mainboard manual which one is on - you definitely want to activate ''Direct
Rendering Manager'' for your graphics board. Please note that recent releases
of XFree86 - namely 4.1.0 and higher might not be supported by the DRI
included in older Linux kernels. Also newer 2.4.x kernels from 2.4.8 up to
2.4.17 do not support DRI in XFree86-4.0.x.
After building and installing your kernel modules and the kernel itself this
task might be completed by loading the 'agpgart' module manually or, in case
you linked it into the kernel, by a reboot in purpose to get the new kernel
up and running. While booting your kernel on an AGP capable mainboard you
may expect boot messages like this one:
\medskip
\begin{ttfamily}
\noindent
> Linux agpgart interface v0.99 (c) Jeff Hartmann\\
> gpgart: Maximum main memory to use for agp memory: 439M\\
> agpgart: Detected Via Apollo Pro chipset\\
> agpgart: AGP aperture is 64M @ 0xe4000000
\end{ttfamily}
\medskip
If you don't encounter such messages on Linux kernel boot, then you might
have missed the right chip set. Part one of activation hardware accelerated OpenGL support on your Linux system is now completed.
The second part consists of configuring your \Index{X server} for OpenGL. This is
not a big deal as it simply consists of to instructions to load the
appropriate modules on startup of the X server.
This is done by editing the configuration file \texttt{/etc/X11/XF86Config}. Today's
Linux distributions are supposed to provide a tool that does this job for
you on your demand. Please make sure there are these two instructions:
\medskip
\texttt{Load ''glx''}
\texttt{Load ''dri''}
\medskip
\noindent
in the ''Module'' section your \Index{X server} configuration file. If everything is
right the X server will take care of loading the appropriate Linux kernel
module for DRI support of your graphics card. The right Linux kernel module
name is determined by the 'Driver' statement in the ''Device'' section of the
XF86Config. Please see three samples on how such a ''Device'' section should
look like:
\medskip
\begin{ttfamily}
\noindent
Section ''Device''
BoardName ''3dfx Voodoo3 PCI''
BusID ''0:8:0''
Driver ''tdfx''
Identifier ''Device[0]''
Screen 0
VendorName ''3Dfx''
\noindent
EndSection
\medskip
\noindent
Section ''Device''
BoardName ''ATI Xpert2000 AGP''
BusID ''1:0:0''
Driver ''ati''
Option ''AGPMode'' ''1''
Identifier ''Device[0]''
Screen 0
VendorName ''ATI''
\noindent
EndSection
\medskip
\noindent
Section ''Device''
BoardName ''ATI Radeon 32 MB DDR AGP''
BusID ''1:0:0''
Driver ''radeon''
Option ''AGPMode'' ''4''
Identifier ''Device[0]''
Screen 0
VendorName ''ATI''
\noindent
EndSection
\medskip
\end{ttfamily}
By using the Option ''AGPMode'' you can tune AGP performance as long as the
mainboard and the graphics card permit. The BusID on \Index{AGP} systems should
always be set to ''1:0:0'' - because you only have one AGP slot on your board
- whereas the \Index{PCI} BusID differs with the slot your graphics card has been
applied to. 'lspci' might be your friend in desperate situations. Also a
look at the end of /var/log/XFree86.0.log, which should be written on X
server startup, should point to the PCI slot where your card resides.
This has been the second part of installing hardware accelerated OpenGL
support on your Linux box.
The third part carries two subparts: First there are the OpenGL runtime
libraries,\index{OpenGL!runtime libraries} sufficient to run existing appliactions. For compiling FlightGear you also need the suiting developmental headers.
As compiling the whole X window system is not subject to this abstract we
expect that your distribution ships the necessary libraries and headers. In
case you told your package manager to install some sort of OpenGL support
you are supposed to find some OpenGL test utilities, at least there should
be 'glxinfo' or 'gl-info'.
These command-line utilities are useful to say if the previous steps where
successfull. If they refuse to start, then your package manager missed
something because he should have known that these utilities usually depend
on the existence of OpenGL runtime libraries. If they start, then you're one
step ahead. Now watch the output of this tool and and have a look at the
line that starts with
\Index{OpenGL renderer string}:
If you find something like
\medskip
\texttt{OpenGL renderer string: FireGL2 / FireGL3 (Pentium3)}
\medskip
\noindent
or
\medskip
\texttt{OpenGL renderer string: Mesa DRI Voodoo3 20000224}
\medskip
\noindent
or
\medskip
\texttt{OpenGL renderer string: Mesa DRI Radeon 20010402}
\texttt{AGP 4x x86}
\medskip
\texttt{OpenGL renderer string: Mesa GLX Indirect}
\medskip
\noindent
mind the word 'Indirect', then it's you who missed something, because OpenGL
gets dealt with in a software library running solely on your CPU. In this
case you might want to have a closer look at the preceding paragraphs of
this chapter. Now please make sure all necessary libraries are at their
proper location.
You will need three OpenGL libraries for running \FlightGear{}. In most cases
you will find them in /usr/lib/:
\texttt{/usr/lib/libGL.so.1}
\texttt{/usr/lib/libGLU.so.1}
\texttt{/usr/lib/libglut.so.3}
These may be the libraries itself or symlinks to appropriate libraries
located in some other directories. Depending on the distribution you use
these libraries might be shipped in different packages. \Index{SuSE} for example
ships libGL in package 'xf86\_glx', libGLU in 'xf86glu' and libglut in
'mesaglut'. Additionally for \FlightGear{} you need libplib which is part of
the 'plib' package.
For compiling \FlightGear{} yourself - as already mentioned - you need the
appropriate header files which often reside in /usr/include/GL/. Two are
necessary for libGL and they come in - no, not 'xf86glx-devel' (o.k., they
do but they do not work correctly) but in 'mesa-devel':
\medskip
\texttt{/usr/include/GL/gl.h}
\texttt{/usr/include/GL/glx.h}
\medskip
\noindent
One comes with libGLU in 'xf86glu-devel':
\medskip
\texttt{/usr/include/GL/glu.h}
\medskip
and one with libglut in 'mesaglut-devel'
\medskip
\texttt{/usr/include/GL/glut.h}
\medskip
The 'plib' package comes with some more libraries and headers that are too
many to be mentioned here. If all this is present and you have a comfortable
compiler environment, then you are ready to compile \FlightGear{} and enjoy the
result.
Further information on \Index{OpenGL} issues of specific \Index{XFree86} releases is
available here:
\medskip
\underline{http://www.xfree86.org/{$<$}RELEASE NUMBER{$>$}/DRI.html}
\medskip
\noindent
Additional reading on \Index{DRI}:
\medskip
\web{http://www.precisioninsight.com/piinsights.html}
\medskip
\noindent
In case you are missing some 'spare parts':
\medskip
\web{http://dri.sourceforge.net/res.phtml}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{OpenGL on Macintosh}\index{OpenGL!Macintosh}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
OpenGL is pre-installed on Mac OS 9.x and later. You may find a newer version than the one installed for \Index{Mac OS 9.x} at
\medskip
\web{http://www.apple.com/opengl}
\medskip
You should receive the updates automatically for \Index{Mac OSX}.
\noindent
\textbf{One final word:} We would recommend that you test your \Index{OpenGL} support
with one of the programs that accompany the drivers, to be absolutely confident
that it is functioning well. There are also many little programs, often available as
screen savers, that can be used for testing. It is important that you are confident in
your graphics acceleration because \FlightGear{} will try to run the card as fast as
possible. If your drivers aren't working well, or are unstable, you will have difficulty
tracking down the source of any problems and have a frustrating time.
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% incl. Linux stuff from b buckel
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections
%% revision 0.10 1998/10/01 michael
%% added 3dfx stuff from b. buckel
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% Remark on mini-OpenGL drivers
%% revision 0.12 1999/03/07 bernhard
%% Complete rewrite of 3DFX/Linux part
%% revision 0.12 1999/03/07 michael
%% Added Riva TNT Win95
%% Added 3DFX Win95
%% revision 0.20 1999/06/04 michael
%% corrections of links
%% revision 0.21 1999/06/30 bernhard
%% updated and expanded 3DFX/Linux
%% revision 0.3 2000/04/20 michael
%% Minor corrections, mainly on software rendering
%% revision 0.31 2000/05/01 michael
%% Added remarks on OpenGL/Matrox by Alex Perry
%% revision 0.5 2002/01/01 michael/martin
%% completely shortened and rewritten
%% removed all stuff old cards, notably 3DFX related
%% added new description for NVIDIA cards
%% removed section on software rendering - no longer useful,
%% added OpenGL setup
%% Section ATI chip based cards under Linux by Martin
%% revision 0.6 2002/01/01 michael
%% removed numerous spelling errors :-(

49
Docs/source/packing.bat Normal file
View file

@ -0,0 +1,49 @@
mkdir installguide
cd installguide
mkdir html
mkdir pdf
mkdir source
cd..
copy *.html installguide\html
copy FGShortRef.html installguide\html
copy *.gif installguide\html
copy *.css installguide\html
copy getstart.pdf installguide\pdf
copy FGShortRef.pdf installguide\pdf
copy *.tex installguide\source
copy *.eps installguide\source
copy *.jpg installguide\source
copy makedoku.bat installguide\source
copy makeshortref.bat installguide\source
copy packing.bat installguide\source
cd installguide
zip fgfs-manual-0.7.11.zip -r *.*
copy fgfs-manual-0.7.11.zip ..
del fgfs-manual-0.7.11.zip
cd html
del *.gif
del *.html
del *.css
cd ..
cd pdf
del *.pdf
cd ..
cd source
del *.tex
del *.eps
del *.jpg
del makedoku.bat
del makeshortref.bat
del packing.bat
cd ..
rmdir html
rmdir pdf
rmdir source
cd..
rmdir installguide

1297
Docs/source/panel3d.eps Normal file

File diff suppressed because it is too large Load diff

BIN
Docs/source/panel3d.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

1473
Docs/source/panel5.eps Normal file

File diff suppressed because it is too large Load diff

BIN
Docs/source/panel5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

175
Docs/source/preface.tex Normal file
View file

@ -0,0 +1,175 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: preface.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter*{Preface\label{preface}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\FlightGear{} is a free Flight Simulator developed cooperatively over the Internet
by a group of Flight Simulation and Programming Enthusiasts. This ''Installation and Getting
Started'' is meant to give beginners a guide in getting \FlightGear{} up and running. It is not intended to provide complete documentation of all the features and add-ons of \FlightGear{} but, instead, focuses on those aspects necessary to get into the air.
This guide is split into two parts. The first part describes how to install the program while the second part details on how to actually fly with \FlightGear{}.
The chapters concentrate on the following aspects:
\medskip
\noindent
\textbf{Part I: Installation}
\medskip
\noindent
Chapter \ref{free}, \textit{Want to have a free flight? Take \FlightGear{}}, introduces
the concept, describes the system requirements, and classifies the different versions
available.
\medskip
\noindent
Chapter \ref{building}, \textit{Building the plane: Compiling the program},
explains how to build (compile and link) the simulator. Depending on your platform this
may or may not be required. Generally, there will be executable programs (binaries)
available for several platforms. Those on such systems who want to take off immediately,
without going through the potentially troublesome process of compiling, may skip this
Chapter.
\medskip
\noindent
In Chapter \ref{prefligh}, \textit{Preflight: Installing \FlightGear{}}, you will find
instructions for installing the binaries\index{binary distribution} in case you did not
build them yourself as specified in the previous Chapter. You will need to install
scenery, textures, and other support files collected in the \Index{base package}.
\medskip
\noindent
\textbf{Part II: Flying with \FlightGear{}}
\medskip
\noindent
The following Chapter \ref{takeoff}, \textit{Takeoff: How to start the
program}, describes how to actually start the installed program. It includes an overview on the numerous command line options as well as configuration files.
\medskip
\noindent
Chapter \ref{flight}, \textit{In-flight: All about instruments, keystrokes and menus},
describes how to operate the program, i.\,e. how to actually fly with
\FlightGear{}\hspace{-1mm}. This includes a (hopefully) complete list of pre-defined keyboard
commands, an overview on the menu entries, detailed descriptions on the instrument panel and
HUD (head up display), as well as hints on using the mouse functions.
\medskip
\noindent
In Appendix \ref{missed}, \textit{Missed approach: If anything refuses to work},
we try to help you work through some common problems faced when using \FlightGear{}.
\bigskip
\noindent
The Appendix \ref{opengl}, \textit{OpenGL graphics drivers}, describes some special problems you may encounter in case your system lacks support for the OpenGL graphics API \Index{OpenGL} which \FlightGear{} is based on.
\medskip
\noindent
In the final Appendix \ref{landing}, \textit{Landing: Some further thoughts before leaving the plane}, we would like to give credit to those who deserve it, sketch an overview
on the development of \FlightGear and point out what remains to be done.
\medskip
\noindent
Accordingly, we suggest reading the Chapters as follows:
\medskip
\noindent
\begin{tabular}{ll}
\textbf{Installation} &\\
Users of binary distributions (notably under Windows): & \ref{prefligh}\\
Installation under Linux/UNIX: & \ref{building}, \ref{prefligh}\\
Installation under Macintosh: & \ref{prefligh}\\
\textbf{Operation} & \\
Program start (all users): & \ref{takeoff}\\
Keycodes, Panel, Mouse\ldots (all users): & \ref{flight}\\
\textbf{Troubleshooting} & \\
General issues: & \ref{missed}\\
Graphics problems: & \ref{opengl}\\
\textbf{Optionally} & \ref{free}, \ref{landing}
\end{tabular}
\bigskip
\noindent
While this introductory guide is meant to be self contained, we strongly suggest having a look into further documentation, especially in case of trouble:
\begin{itemize}
\item For additional hints on troubleshooting and more, \textbf{please read the FAQ}\index{FAQ}
\medskip
\noindent
\web{http://www.flightgear.org/Docs/FlightGear-FAQ.html},
The FAQ contains a host of valuable information, especially on rapidly changing flaws and additional reading, thus we strongly suggest consulting it in conjunction with our guide.
\item A handy \textbf{leaflet}\index{leaflet} on operation for printout is available at
\medskip
\noindent
\web{http://www.flightgear.org/Docs/InstallGuide/FGShortRef.html},
\item Additional user documentation on special aspects is available within the base package under the directory \texttt{/FlightGear/Docs}.
\end{itemize}
\noindent
Finally:
\medskip
We know, most people hate reading manuals. If you are sure the graphics driver for your card supports \Index{OpenGL} (check documentation; for instance all \Index{NVIDIA} Windows and Linux drivers for \Index{TNT}/TNT2/\Index{Geforce}/Geforce2/Geforce3 do) and if you are using one of the following operating systems:
\begin{itemize}
\item \Index{Windows} 95/98/ME/NT/2000/XP,
\item \Index{Macintosh} Mac OSX
\item \Index{Linux}
\item \Index{SGI Irix}
\end{itemize}
\noindent
you can possibly skip at least Part I of this manual and exploit the pre-compiled binaries\index{binaries!pre-compiled}. These as well as instructions on how to set them up, can be found at
\medskip
\web{http://www.flightgear.org/Downloads/}.
\medskip
\noindent
In case you are running \FlightGear{} on Linux, you may also be able to get binaries bundled with your distribution. Several vendors already include \FlightGear{} binaries into their distributions.
Just download them, install them according to the description and run them via the installed \texttt{runfgfs} script or the batch file \texttt{runfgfs.bat}, respectively.
There is no guarantee for this approach to work, though. If it doesn't, don't give up! Have a closer look through this guide notably Section \ref{prefligh} and be sure to check out the \Index{FAQ}.
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.41.
%% Revision 0.01 2002/01/01 michael
%% Included outline of the Guide, integrated former separate chapter ''Quickstart''
%% revision 0.5 2002/01/01 michael/martin
%% Hint on Linux distros
%% revision 0.6 2002/09/09 michael
%% minor corrections

251
Docs/source/prefligh.tex Normal file
View file

@ -0,0 +1,251 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: prefligh.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Preflight: Installing \FlightGear{} \label{prefligh}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm} PREFLIGHT}{\thesection\hspace*{1mm} INSTALLING THE
BINARIES}
You can skip this Section if you built \FlightGear{} along the lines described in the
previous Chapter. If you did not and you're jumping in here, your first step will consist in
installing the binaries. At present, there are pre-compiled \Index{binaries} available
for
\begin{itemize}
\item Windows (any flavor),
\item Macintosh OSX,
\item Linux,
\item SGI Irix.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing the binary distribution on a Windows system}\index{binaries!Windows}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The following supposes you are on a Windows (95/98/Me/NT/2000/XP) \index{Windows} system.
Installing the binaries is quite simple. Go to
\medskip
\web{ftp://www.flightgear.org/pub/flightgear/Win32/}
\medskip
\noindent
and download the three files \texttt{fgfs-base-X.X.X.zip}, \texttt{fgfs-manual-X.X.X.zip}, and \texttt{fgfs-win32-bin-X.X.X.zip} from
\medskip
\web{ftp://www.flightgear.org/pub/flightgear/Win32/}
\medskip
\noindent
to a drive of your choice. Windows XP includes a program for unpacking *.zip files. If you are working under an older version of Windows, we suggest getting Winzip from
\medskip
\web{http://www.winzip.com/}.
\medskip
\noindent
For a free alternative, you may consider \texttt{unzip} from Info-ZIP,
\medskip
http://www.info-zip.org/pub/infozip/
\medskip
\noindent
Extract the files named above. If you choose drive \texttt{c:} you should find a file
\texttt{runfgfs.bat} under \texttt{c:/Flightgear} now. Double-clicking it should invoke
the simulator.
In case of doubt about the correct directory structure, see the summary at the
end of chapter \ref{building}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing the binary distribution on a Macintosh system}\index{binaries!Macintosh}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
If your \Index{Macintosh} is running the conventional \Index{Mac OS 9} or earlier, there are versions up to \FlightGear{} 0.7.6 available being provided courtesy Darrell
Walisser)\index{Walisser, Darrell}. Download the file \verb/FlightGear_Installer_0.X.X.sit/ from the corresponding subdirectory under
\medskip
\web{http://icdweb.cc.purdue.edu/~walisser/fg/}.
\medskip
\noindent
This file contains the program as well as the required base package files (scenery etc.).
For unpacking, use \texttt{Stuffit Expander 5.0}\index{Stuffit Expander} or later.
The latest build available for Mac OS 9.x is 0.7.6, located in the same place. The base package is part of the download for Mac OS 9.x, but not for Mac OSX.
Alternatively, if you are running \Index{Mac OS X}, download \texttt{fgfs-0.X.X.gz} from
the same site named above. The Mac OS X builds are in a gzip file in the same directory. There is a Readme file in the directory to help people identify what to download.
Mac OS X requires that you first download the base package. Then extract it with
\noindent
\texttt{tar -zxvf fgfs-base-X.X.X.tar.gz}\\
\texttt{gunzip fgfs-X.X.X.-date.gz}
\noindent
Note that there is no \texttt{runfgfs} script for Mac OS X yet.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing the binary distribution on a Debian Linux system}\index{binaries!Debian}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Download the file \verb/flightgear_0.7.6-6_i386.deb/ (being provided courtesy Ove
Kaaven)\index{Kaaven, Ove} from any of the \Index{Debian} mirror sites listed at
\medskip
\web{http://packages.debian.org/unstable/games/flightgear.html}.
\medskip
\noindent
Like any Debian package, this can be installed via
\medskip
\verb/dpkg --install flightgear_0.7.6-6_i386.deb/.
\medskip
\noindent
After installation, you will find the directory \texttt{/usr/local/Flightgear}
containing the script \texttt{runfgfs} to start the program.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing the binary distribution on a SGI IRIX system}\index{binaries!SGI Irix}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
If there are binaries available for SGI IRIX systems, download all the required files (being provided courtesy Erik Hofman)\index{Hofman, Erik}
from
\medskip
\web{http://www.a1.nl/~ehofman/fgfs/}
\medskip
\noindent
and install them. Now you can start \FlightGear{} via running the script\\
\texttt{/opt/bin/fgfs}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing add-on scenery}\index{scenery!add-on}\index{add-on scenery}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
There are two complete sets of scenery files with worldwide coverage available, now, being based on different source data. One data set was created by Curt Olson\index{Olson, Curt} and can be downloaded via a clickable map\index{map, clickable} from
\medskip
\web{http://www.flightgear.org/Downloads/world-scenery.html}
\medskip
\noindent
Moreover, Curt provides the complete set of US Scenery on \Index{CD-ROM} for those who
really would like to fly over all of the USA. For more detail, check the remarks on the
downloads page above.
An alternative data set was produced by William Riley\index{Riley, William} and is available from
\medskip
\web{http://www.randdtechnologies.com/fgfs/newScenery/world-scenery.html}
\medskip
\noindent
again using a \index{map, clickable}.
While the first data set is based on the \Index{USGS} data, the second one is based on the so-called \Index{VMap0} data set. While there may be more differences to discover, the first one has much better coast lines, while the latter sports world-wide coverage of streets, rivers, lakes, and more. Scenery provided in the base package is based on the second data set (though covering a small area around San Francisco, only).
Installation of both data sets is identical. You have to unpack them under \texttt{/Flightgear/Scenery}. Do not de-compress the numbered scenery files like 958402.gz! This will be done by \FlightGear{} on the fly.
As an example, consider installation of the scenery package w120n30 containing the Grand
Canyon Scenery.
After having installed the \Index{base package}, you should have ended up with the
following directory structure:
\medskip
\noindent
\texttt{/usr/local/FlightGear/Scenery}
\noindent
\texttt{/usr/local/FlightGear/w130n30}
\noindent
\texttt{/usr/local/FlightGear/w130n30/w122n37}\\
\texttt{/usr/local/FlightGear/Scenery/w130n30/w123n37}
\medskip
\noindent
with the directories w122n37 and w123n37m, resp. containing numerous *.gz
files. Installation of the Grand Canyon scenery adds to this the directories
\medskip
\noindent
\texttt{/usr/local/FlightGear/w120n30/w112n30}\\
\texttt{/usr/local/FlightGear/w120n30/w112n31}\\
\texttt{...}\\
\texttt{/usr/local/FlightGear/w120n30/w120n39}.
\medskip
You can exploit the \texttt{-$ $-fg-scenery={\it path}} command line option, if you want to install different scenery sets in parallel or want to have scenery sitting in another place.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing documentation}\index{documentation!installation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Most of the packages named above include the complete \FlightGear{} documentation
including a .pdf version of this \textit{Installation and Getting Started} Guide intended
for pretty printing using Adobe's Acrobat Reader being available from
\medskip
\web{http://www.adobe.com/acrobat}
\medskip
\noindent
Moreover, if properly installed, the .html version can be accessed via
\FlightGear{}'s \texttt{help} menu entry.
Besides, the source code contains a directory \texttt{docs-mini} containing numerous
ideas on and solutions to special problems. This is also a good place for further
reading.
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections
%% revision 0.10 1998/10/01 michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% support files Section completely re-written
%% revision 0.20 1999/06/04 michael
%% some updates and corrections, corrected links
%% revision 0.3 2000/04/20 michael
%% minor updates, reference to click map
%% revision 0.4 2001/05/12 michael
%% completely re-written, added MacOS, Debian, SGI secions
%% separate sections on global scenery and help
%% revision 0.5 2002/01/01 michael
%% minor tweaks
%% Installing on Mac newly written based on material by Darrell
%% revision 0.6 2002/01/01 michael
%% Added installation of W. Riley's VMap0 scenery

1377
Docs/source/start.eps Normal file

File diff suppressed because it is too large Load diff

1315
Docs/source/start2.eps Normal file

File diff suppressed because it is too large Load diff

BIN
Docs/source/start2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

94
Docs/source/tab1.tex Normal file
View file

@ -0,0 +1,94 @@
%%
%% tab1.tex -- Flight Gear documentation: Installation and Getting Started
%% Table of supported planes
%%
%% Written by Michael Basler, started September 2002.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab1.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{l|l|l|l}
Aircraft type & Start option & FDM & Remarks\\\hline
Boeing 747 & \texttt{-$ $-aircraft=747-yasim}
& YASim & \\
BA A4 Hawk& \texttt{-$ $-aircraft=a4-yasim}
& YASim & \\
North American X-15 & \texttt{-$ $-aircraft=X15}
& JSBSim & experimental supersonic plane \\
Airwave Xtreme 150 & \texttt{-$ $-aircraft=airwaveXtreme150-}
& \\
& \texttt{v1-nl-uiuc}
& UIUC & hang glider! \\
Beech 99 & \texttt{-$ $-aircraft=beech99-v1-uiuc}
& UIUC & no exterior model \\
Cessna 172 & \texttt{-$ $-aircraft=c172-3d}
& JSBSim & sports a 3D cockpit \\
Cessna 172 & \texttt{-$ $-aircraft=c172-3d-yasim}
& YASim & sports a 3D cockpit \\
Cessna 172 & \texttt{-$ $-aircraft=c172-ifr}
& JSBSim & with IFR panel \\
Cessna 172 & \texttt{-$ $-aircraft=c172-larcsim}
& LaRCsim & \\
Cessna 172 & \texttt{-$ $-aircraft=c172}
& JSBSim & default \\
Cessna 172 & \texttt{-$ $-aircraft=c172-yasim}
& YASim & \\
Cessna 172p & \texttt{-$ $-aircraft=c172p-3d}
& JSBSim & sports a 3D cockpit \\
Cessna 172p & \texttt{-$ $-aircraft=c172p}
& JSBSim & \\
Cessna 172 & \texttt{-$ $-aircraft=c172x}
& JSBSim & flight dynamics testbed \\
Cessna 182 & \texttt{-$ $-aircraft=c182}
& JSBSim & \\
Cessna 310 & \texttt{-$ $-aircraft=c310}
& JSBSim & \\
Cessna 310 & \texttt{-$ $-aircraft=c310-yasim}
& YASim & twin-prop machine \\
Cessna 310U3A & \texttt{-$ $-aircraft=c310u3a-3d}
& JSBSim & twin-prop machine, 3D cockpit \\
Cessna 310U3A & \texttt{-$ $-aircraft=c310u3a}
& JSBSim & twin-prop machine \\
Douglas DC-3 & \texttt{-$ $-aircraft=dc3-yasim}
& YASim & \\
BA Harrier & \texttt{-$ $-aircraft=harrier-yasim}
& YASim & no exterior model \\
Piper Cub J3 Trainer & \texttt{-$ $-aircraft=j3cub-yasim}
& YASim & \\
Siai Marchetti S.211 & \texttt{-$ $-aircraft=marchetti-v1-uiuc}
& UIUC & no exterior model \\
Space Shuttle & \texttt{-$ $-aircraft=shuttle}
& JSBSim & no exterior model \\
UFO & \texttt{-$ $-aircraft=ufo}
& JSBSim & 'White Project' (UNESCO) \\
1903 Wright Flyer & \texttt{-$ $-aircraft=wrightFlyer1903-}
& & \\
& \texttt{v1-nl-uiuc}
& UIUC & historical model \\
X-24B & \texttt{-$ $-aircraft=x24b}
& JSBSim & USAF/NACA reentry testbed \\
Cessna 172 & \texttt{-$ $-aircraft=c172-610x}
& JSBSim & full screen, hi-res panel (IFR) \\
UFO & \texttt{-$ $-aircraft=ufo}
& Magic Carpet & UFO \\
\end{tabular}
%% revision 0.6 2002/09/09 michael
%% Initial revision

38
Docs/source/tab2.tex Normal file
View file

@ -0,0 +1,38 @@
%%
%% tab2.tex -- Flight Gear documentation: Installation and Getting Started
%% Keyboard controls table 1/Main controls
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab1.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{|l|l|}\hline
Key & Action\\\hline
9/3 & Throttle\index{throttle}\\
4/6 & Aileron\index{aileron}\\
8/2 & Elevator\index{elevator trim}\\
0/, & Rudder\index{rudder}\\
5 & Center aileron/elevator/rudder\\
7/1 & Elevator \Index{trim}\\\hline
\end{tabular}
%% revision 0.5 2002/02/15 michael
%% Initial revision

40
Docs/source/tab3.tex Normal file
View file

@ -0,0 +1,40 @@
%%
%% tab3.tex -- Flight Gear documentation: Installation and Getting Started
%% Keyboard controls table 2/View directions
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab2.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{|c|l|}\hline
Numeric Key & View direction\index{view directions}\\\hline
Shift-8 & Forward\\
Shift-7 & Left/forward\\
Shift-4 & Left\\
Shift-1 & Left/back\\
Shift-2 & Back\\
Shift-3 & Right/back\\
Shift-6 & Right\\
Shift-9 & Right/forward\\\hline
\end{tabular}
%% revision 0.5 2002/02/15 michael
%% Initial revision

52
Docs/source/tab4.tex Normal file
View file

@ -0,0 +1,52 @@
%%
%% tab4.tex -- Flight Gear documentation: Installation and Getting Started
%% Keyboard controls table 3/Additional view options
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab3.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{|l|l|}\hline
Key & Action\\\hline
P & Toggle \Index{instrument panel} on/off \\
c & Toggle3D/2D cockpit
\index{2D cockpit} (if both are available)
\index{3D cockpit}\index{cockpit}\\
s & Cycle panel style full/mini\\
Shift-F5/F6 & Shift the panel in y direction\\
Shift-F7/F8 & Shift the panel in x direction\\
Shift-F3 & Read a panel from a property list\\
i/I & Minimize/maximize HUD \\
h/H & Change color of HUD/toggle HUD off\\
& forward/backward \\ \hline
x/X & Zoom in/out\\
v & Cycle \Index{view modes} (pilot, chase, tower)\\ \hline
W & Toggle \Index{full screen mode} on/off (3dfx only)\\
z/Z & Change \Index{visibility} (fog) forward/backward \\
F8 & Toggle fog on/off\\
F2 & Refresh Scenery tile cache\\
F4 & Force Lighting update\\
F9 & Toggle texturing on/off\\
F10 & Toggle menu on/off\\ \hline
\end{tabular}
%% revision 0.5 2002/02/15 michael
%% Initial revision

44
Docs/source/tab5.tex Normal file
View file

@ -0,0 +1,44 @@
%%
%% tab5.tex -- Flight Gear documentation: Installation and Getting Started
%% Keyboard controls table 4/autopilot controls
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab4.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{|l|l|}\hline
Key & Action\\\hline
Ctrl + A & Altitude hold\index{altitude hold} toggle on/off\\
Ctrl + G & Follow glide slope 1 toggle on/off\\
Ctrl + H & Heading hold\index{heading hold} toggle on/off\\
Ctrl + N & Follow NAV 1 radial toggle on/off\\
Ctrl + S & Autothrottle\index{autothrottle} toggle on/off\\
Ctrl + T & Terrain follow toggle on/off\\
Ctrl + U & Add 1000 ft. to your altitude (emergency)\\
Enter & Increase autopilot heading\\
F6 & Toggle autopilot target:\\
& current heading/waypoint\\
F11 & Autopilot altitude dialog\\
F12 & Autopilot heading dialog\\\hline
\end{tabular}
%% revision 0.5 2002/02/15 michael
%% Initial revision

35
Docs/source/tab6.tex Normal file
View file

@ -0,0 +1,35 @@
%%
%% tab6.tex -- Flight Gear documentation: Installation and Getting Started
%% Keyboard controls table 5/key actions for autopilot enabled
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab5.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{|l|l|}\hline
Key & Action\\\hline
8 / 2 & Altitude adjust\\
0 / , & Heading adjust\\
9 / 3 & Autothrottle adjust \\\hline
\end{tabular}
%% revision 0.5 2002/02/15 michael
%% Initial revision

40
Docs/source/tab7.tex Normal file
View file

@ -0,0 +1,40 @@
%%
%% tab7.tex -- Flight Gear documentation: Installation and Getting Started
%% Keyboard controls table 6/Engine related controls
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab6.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{|l|l|}\hline
Key & Action\\ \hline
SPACE & Fire starter on selected engine(s)\\
! & Select 1st engine\\
@ & Select 2nd engine\\
\# & Select 3rd engine\\
\$ & Select 4th engine\\
\{ & Decrease Magneto on Selected Engine\\
\} & Increase Magneto on Selected Engine\\
$\sim$ & Select all Engines\\\hline
\end{tabular}
%% revision 0.5 2002/02/15 michael
%% Initial revision

49
Docs/source/tab8.tex Normal file
View file

@ -0,0 +1,49 @@
%%
%% tab8.tex -- Flight Gear documentation: Installation and Getting Started
%% Keyboard controls table 7/Miscellaneous
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: tab7.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{|l|l|}\hline
Key & Action\\\hline
B & Toggle parking brake \index{brakes}\index{parking brake} on/off\\
b & Apply/release all \Index{brakes}\\
g & Toggle landing gear down \index{gear}\index{landing gear}\\
, & Left gear brake (useful for \Index{differential braking})\\
. & Right gear brake (useful for \Index{differential braking})\\
l & Toggle \Index{tail-wheel lock})\\
$]$/$[$ & Extend/Retract \Index{flaps}\\ \hline
p & Toggle \Index{pause} on/off\\
a/A & Speed up/slow down (time acceleration)\\
t/T & Time speed up/slow down \\
m/M & Change \Index{time offset} (warp) used by t/T forward/backward\\\hline
Shift-F2 & Save current flight to \texttt{fgfs.sav}\\
Shift-F1 & Restore flight from \texttt{fgfs.sav}\\
F3 & Save screen shot under \texttt{fgfs-screen.ppm}\\
Shift-F4 & Re-read global preferences from \texttt{preferences.xml}\\
Shift-F10 & Toggle data logging of FDM on/off\\\hline
ESC & Exit program\\\hline
\end{tabular}
%% revision 0.5 2002/02/15 michael
%% Initial revision

840
Docs/source/takeoff.tex Normal file
View file

@ -0,0 +1,840 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%% & Bernhard Buckel (buckel@wmad95.mathematik.uni-wuerzburg.de)
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: takeof.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Takeoff: How to start the program\label{takeoff}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm}
TAKEOFF}{\thesection\hspace*{1mm} Command line parameters}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Launching the simulator under Unix/Linux}\index{Launching Flightgear!Linux}\index{Starting Flightgear!Linux}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Under Linux (or any other flavor of Unix), \FlightGear{} will be invoked by
\medskip
\texttt{runfgfs -$ $-option1 -$ $-option2\dots},
\medskip
\noindent
where the options will be described in Section \ref{options} below.
If something strange happens while using this shell script, if you want to do some
debugging (i.e. using ''strace'') or if you just feel nice to be ''keen'', then you can
start \FlightGear{} directly by executing the ''fgfs'' binary. In this case you should at
least add one variable to your environment,\index{environment variables} which is needed
to locate the (mostly) shared library built from the sources of the \SimGear{}
package. Please add the respective directory to your \verb/LD_LIBRARY_PATH/. You can do
so with the following on Bourne shell (compatibles):
\begin{verbatim}
LD_LIBRARY_PATH=/usr/local/FlightGear/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH/
\end{verbatim}
\noindent
or on C shell (compatibles):
\begin{verbatim}
setenv LD_LIBRARY_PATH
/usr/local/FlightGear/lib:$LD_LIBRARY_PATH
\end{verbatim}
\noindent
Besides this (used by the dynamic linker) ''fgfs'' knows about the following environment variable:
\noindent
\verb/FG_ROOT/: root directory for the \FlightGear{} base package,
\noindent
which corresponds to the \texttt{-$ $-fg-root={\it path}} option as described in Sec. \ref{generaloptions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Launching the simulator under Windows}\index{Launching Flightgear!Windows}\index{Starting Flightgear!Windows}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
For launching \FlightGear{} from Windows explorer, change to the directory \texttt{/FlightGear} and double-click the file \texttt{runfgfs.bat}. You can also pass command line options from Sec. \ref{takeoff} to the batch file (if running it form a Command shell). However, you have to enclose them in double quotes in this case as follows:
\medskip
\noindent
\texttt{runfgfs.bat ''-$ $-aircraft=4a-yasim'' ''-$ $-airport-id=KLAX''}.
\medskip
\centerline{\fbox{
\includegraphics[clip,width=12.5cm]{ksfo}
}}
\smallskip
\noindent
Fig.\,3: \textit{Ready for takeoff. Waiting at the default startup position at San
Francisco Itl., KSFO.}
\medskip
Alternatively, if for one or the other reason the batch file above does not work or is missing,
you can open a command shell, change to the directory where your binary resides
(typically something like \texttt{c:/FlightGear/bin} where you might have to substitute
\texttt{c:} in favor of your \FlightGear{} directory), set the \Index{environment
variable} via (note the backslashes!)
\medskip
\texttt{SET FG\_ROOT=c:$\backslash$FlightGear$\backslash$}
\medskip
\noindent
and invoke \FlightGear{} (within the same Command shell, as environment
settings are only valid locally within the same shell) via
\medskip
\texttt{fgfs -$ $-option1 -$ $-option2\dots}.
\medskip
Of course, you can create your own \texttt{runfgfs.bat} with Windows \texttt{Editor} using the
two lines above.
For getting maximum performance it is recommended to minimize (iconize) the text output
window while running \FlightGear{}$\!$.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Launching the simulator under Mac OS X}\index{Launching Flightgear!Mac OS X}\index{Starting Flightgear!Mac OS X}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Say, you downloaded the base package and binary to your home directory. Then you can open \texttt{Terminal.app} and execute the following sequence:
\medskip
\noindent
\texttt{setenv FG\_ROOT ~/fgfs-base-X.X.X ./fgfs-X.X.X.-date}\\
\texttt{-$ $-option1 -$ $- option 2} (one line)
\medskip
\noindent
or
\medskip
\noindent
\texttt{./fgfs-X.X.X-version-date}
\texttt{-$ $-fg-root=\~/fgfs-base-X.X.X}\\
\texttt{-$ $-option1 -$ $-option2}. (one line)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Command line parameters\label{options}}\index{command line options}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Following is a complete list and short description of the numerous \Index{command line options}
available for \FlightGear{}$\!$. If you are running \FlightGear{} under \Index{Windows} you can include these into
\texttt{runfgfs.bat}.
However, in case of options you want to re-use continually it is recommended to include them into a file called
\texttt{.fgfsrc}\index{.fgfsrc} under Unix systems and
\texttt{system.fgfsrc},\index{system.fgfsrc} resp. under Windows. This file has to be in
the top \FlightGear{} directory (for instance /usr/local/Flightgear). As it depends on your
\Index{preferences}, it is not delivered with \FlightGear{}$\!$, but can be created with
any text editor (notepad, emacs, vi, if you like).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{General Options}\index{options!general}\label{generaloptions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-help}}: Shows the most relevant command line options only.
\item{\texttt{-$ $-help} \texttt{-verbose}}: Shows all command line options.
\item{\texttt{-$ $-fg-root={\it path}}}: Tells \FlightGear{} where to look for its root data
files if you didn't compile it with the \Index{default settings}.
\item{\texttt{-$ $-fg-scenery={\it path}}}: Allows specification of a path to the base scenery path \index{scenery directory!path}, in case scenery is not at the default position under\\
\texttt{\$FG\underline{~}ROOT/Scenery}; this might be especially useful in case you
have scenery on a CD-ROM.
\item{\texttt{-$ $-disable-game-mode}}: Disables \Index{full screen display}.
\item{\texttt{-$ $-enable-game-mode}}: Enables full screen display.
\item{\texttt{-$ $-disable-splash-screen}}: Turns off the rotating 3DFX logo
when the accelerator board gets initialized (3DFX only).
\item{\texttt{-$ $-enable-splash-screen}}: If you like advertising, set this!
\item{\texttt{-$ $-disable-intro-music}}: No audio sample is being played when
\FlightGear{} starts up. Suggested in case of trouble with playing the intro.
\item{\texttt{-$ $-enable-intro-music}}: If your machine is powerful enough, enjoy
this setting.
\item{\texttt{-$ $-disable-mouse-pointer}}: Disables extra \Index{mouse pointer}.
\item{\texttt{-$ $-enable-mouse-pointer}}: Enables extra \Index{mouse pointer}. Useful in
full screen mode for old Voodoo based cards.
\item{\texttt{-$ $-enable-random-objects}}: Include random scenery objects (buildings/trees). This is the default.
\item{\texttt{-$ $-disable-random-objects}}: Exclude random scenery objects (buildings/trees).
\item{\texttt{-$ $-disable-freeze}}: This will put you into \FlightGear{} with the
engine running, ready for Take-Off.
\item{\texttt{-$ $-enable-freeze}}: Starts \FlightGear{} in \Index{frozen state}.
\item{\texttt{-$ $-disable-fuel-freeze}}: Fuel is consumed normally.
\item{\texttt{-$ $-enable-fuel-freeze}}: Fuel tank quantity is forced to remain constant.
\item{\texttt{-$ $-disable-clock-freeze}}: Time of day advances normally.
\item{\texttt{-$ $-enable-clock-freeze}}: Do not advance time of day.
\item{\texttt{-$ $-control-mode}}: Specify your \Index{control device} (\Index{joystick},
keyboard, mouse) Defaults to \Index{joystick} (\Index{yoke}).
\item{\texttt{-$ $-disable-auto-coordination}}: Switches \Index{auto coordination} between
aileron/rudder off (default).
\item{\texttt{-$ $-enable-auto-coordination}}: Switches auto coordination between
aileron/rudder on (recommended without pedals).
\item{\texttt{-$ $-browser-app=/path/to/app}}: specify location of your web browser. Example:
\texttt{-$ $-browser-app=}\\ \texttt{''C:$\backslash$Programme$\backslash$Internet~Explorer$\backslash$iexplore.exe''} (Note the '' '' because of the broken word Internet Explorer!).
\item{\texttt{-$ $-prop:name=value:}} set property \texttt{name} to \texttt{value}\\Example:
\texttt{-$ $-prop:/engines/engine0/running=true} for starting with running engines. Another example:\\
\texttt{-$ $-aircraft=c172}\\
\texttt{-$ $-prop:/consumables/fuels/tank[0]/level-gal=10}\\
\texttt{-$ $-prop:/consumables/fuels/tank[1]/level-gal=10}\\
filles the Cessna for a short flight.
\item{\texttt{-$ $-config=path:}} Load additional properties from the given path. Example: \texttt{runfgfs -$ $-config=./Aircraft/X15-set.xml}
\item{\texttt{-$ $-units-feed}}: Use feet for distances.
\item{\texttt{-$ $-units-meters}}: Use meters for distances.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Features}\index{options!features}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-disable-hud}}: Switches off the \Index{HUD} (\textbf{H}ead \textbf{U}p
\textbf{D}isplay).
\item{\texttt{-$ $-enable-hud}}: Turns the \Index{HUD} on.
\item{\texttt{-$ $-enable-anti-aliased-hud}}: Turns on \Index{anti-aliaseded HUD lines} for better quality,
if hardware supports this.
\item{\texttt{-$ $-disable-anti-aliased-hud}}: Turns off anti-aliaseded HUD lines.
\item{\texttt{-$ $-enable-panel}}: Turns the \Index{instrument panel} on (default).
\item{\texttt{-$ $-disable-panel}}: Turns the \Index{instrument panel} off.
\item{\texttt{-$ $-disable-sound}}: Self explaining.
\item{\texttt{-$ $-enable-sound}}: See above.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Aircraft\index{aircraft!selection}}\index{options!aircraft}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-aircraft={\it name of aircraft definition file}}} Example: \texttt{-$ $-aircraft=c310}. For possible choices check the directory \texttt{/FlightGear/Aircraft}. Do not include the extension \texttt{''-set.xml''} into the aircraft name but use the remaining beginning of the respective file names for choosing an aircraft. This way flight model, panel etc. are all loaded in a consistent way. For a full list, see Sec. \ref{hangar} below.
\item{\texttt{-$ $-show-aircraft}}: Print a list of the currently available aircraft types.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Flight model\index{flight dynamics model}}\index{options!flight model}\label{flight dynamics model}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-fdm={\it abcd}}} Select the core \Index{flight model}.
Options are \texttt{jsb, larcsim, yasim, magic, balloon, external, ada, null}. Default value is
\texttt{jsb} (\JSBSim)\index{JSBSim}. larcsim is the flight model which \FlightGear{} inherited from the LaRCSim simulator. yasim is Any Ross' Yet Another Flight Dynamics Simulator. Magic is a slew mode (which drives the UFO aircraft). Balloon is a hot air balloon. External refers to remote control of the simulator. Null selects no flight dynamics model at all. The \Index{UIUC flight model} is not chosen this way but via the next option! For further information on flight models cf. Section \ref{flight models} and below.
\item{\texttt{-$ $-aero={\it abcd}}} Specifies the \Index{aircraft model} to load. Default is a Cessna c172. Alternatives available depend on the flight model chosen.
\item{\texttt{-$ $-model-hz={\it n}}} Run the Flight Dynamics Model with this rate
(iterations per second).
\item{\texttt{-$ $-speed={\it n}}} Run the Flight Dynamics Model this much faster than real
time.
\item{\texttt{-$ $-notrim}} Do NOT attempt to trim the model when initializing JSBSim.
\item{\texttt{-$ $-on-ground}}: Start up at ground level (default).
\item{\texttt{-$ $-in-air}}: Start up in the air. Naturally, you have to specify an
initial altitude as below for this to make sense. This is a must for the X15.
\item{\texttt{-$ $-wind={\it DIR@SPEED}}}: Specify wind coming from the direction DIR (in
degrees) at speed SPEED (knots). Values may be specified as a range by using a clon separator; e.g. 180:220@10:15
\item{\texttt{-$ $-random-wind}}: Adds random wind to make flying more incentive
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Initial Position and Orientation\label{aiportid}}\index{options!initial position}\index{options!orientation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-airport-id={\it ABCD}}}: If you want to start directly at an \Index{airport},
enter its international code,\index{airport code} i.e. KJFK for JFK airport in New York etc.
A long/short list of the IDs of the airports being implemented can
be found in \texttt{/Flight Gear/Airports}. You only have to unpack
one of the files with \texttt{gunzip}. Keep in mind, you need the
terrain data for the relevant region, though!\index{airport code}
\item{\texttt{-$ $-offset-distance={\it nm}}}: Here you can specify the distance to
threshold in nm.
\item{\texttt{-$ $-offset-azimuth={\it deg}}}: Here you can specify the heading to
threshold in degrees.
\item{\texttt{-$ $-lon={\it degrees}}}: This is the \Index{startup longitude} in degrees (west =
-).
\item{\texttt{-$ $-lat={\it degrees}}}: This is the \Index{startup latitude} in degrees (south =
-).
\item{\texttt{-$ $-altitude={\it feet}}}: This is useful if you want to start in free
flight in connection with \texttt{-$ $-in-air}. Altitude specified in feet unless you
choose \texttt{-$ $-units-meters}.
\item{\texttt{-$ $-heading={\it degrees}}}: Sets the \Index{initial heading} (yaw angle) in degrees.
\item{\texttt{-$ $-roll={\it degrees}}}: Sets the \Index{startup roll angle} (roll angle) in degrees.
\item{\texttt{-$ $-pitch={\it degrees}}}: Sets the \Index{startup pitch angle} (pitch angle) in degrees.
\item{\texttt{-$ $-uBody={\it feet per second}}}: Speed along the body X axis in feet per second, unless you
choose \texttt{-$ $-units-meters}.
\item{\texttt{-$ $-vBody={\it feet per second}}}: Speed along the body Y axis in feet per second, unless you
choose \texttt{-$ $-units-meters}.
\item{\texttt{-$ $-wBody={\it feet per second}}}: Speed along the body Z axis in feet per second, unless you
choose \texttt{-$ $-units-meters}.
\item{\texttt{-$ $-vc={\it knots}}}: Allows specifying the initial airspeed in knots
(only in connection with \texttt{-$ $-fdm=jsb}).
\item{\texttt{-$ $-mach={\it num}}}: Allows specifying the initial airspeed as Mach
number (only in connection with \texttt{-$ $-fdm=jsb}).
\item{\texttt{-$ $-glideslope={\it degrees}}}: Allows specifying the flight path angle (can be positive).
\item{\texttt{-$ $-roc={\it fpm}}}: Allows specifying the initial climb rate (can be negative).
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Rendering Options\index{options!rendering}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-bpp={\it depth}}}: Specify the bits per pixel.
\item{\texttt{-$ $-fog-disable}}: To cut down the rendering efforts, distant
regions are vanishing in \Index{fog} by default. If you disable \Index{fog}ging,
you'll see farther but your frame rates will drop.
\item{\texttt{-$ $-fog-fastest}}: The scenery will not look very nice but
\Index{frame rate} will increase.
\item{\texttt{-$ $-fog-nicest}}: This option will give you a fairly realistic
view of flying on a hazy day.\index{haze}
\item{\texttt{-$ $-enable-clouds}}: Enable \Index{cloud layer} (default).
\item{\texttt{-$ $-disable-clouds}}: Disable cloud layer.
\item{\texttt{-$ $-fov={\it degrees}}}: Sets the \Index{field of view} in degrees.
Default is 55.0.
\item{\texttt{-$ $-disable-fullscreen}}: Disable \Index{full screen mode} (default).
\item{\texttt{-$ $-enable-fullscreen}}: Enable full screen mode.
\item{\texttt{-$ $-shading-flat}}: This is the fastest mode but the terrain will look ugly!
This option might help if your video processor is really slow.
\item{\texttt{-$ $-shading-smooth}}: This is the recommended (and default) setting - things will look really nice.
\item{\texttt{-$ $-disable-skyblend}}: No fogging or \Index{haze}, sky will be displayed
using just one color. Fast but ugly!
\item{\texttt{-$ $-enable-skyblend}}: Fogging/haze is enabled, sky and \Index{terrain} look realistic. This is the default and recommended setting.
\item{\texttt{-$ $-disable-textures}}: Terrain details will be disabled. Looks ugly, but might help if your video board is slow.
\item{\texttt{-$ $-enable-textures}}: Default and recommended.
\item{\texttt{-$ $-enable-wireframe}}: If you want to know how the world of \FlightGear{} looks like internally, try
this!\index{wireframe}
\item{\texttt{-$ $-disable-wireframe}}: No wireframe. Default.
\item{\texttt{-$ $-geometry={\it WWWxHHH}}}: Defines the size of the window used, i.e.
\texttt{WWWxHHH} can be \texttt{640x480}, \texttt{800x600}, or
\texttt{1024x768}.\index{window size}
\item{\texttt{-$ $-view-offset={\it xxx}}}: Allows setting the default forward view direction as an offset from straight
ahead. Possible values are \texttt{LEFT, RIGHT, CENTER}, or a specific number of degrees.
Useful for multi-window display.\index{offset}
\item{\texttt{-$ $-visibility={\it meters}}}: You can specify the initial visibility in meters here.
\item{\texttt{-$ $-visibility-miles={\it miles}}}: You can specify the initial visibility in miles here.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{HUD Options\index{HUD}\index{options!HUD}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-hud-tris}}: HUD displays the number of \Index{triangles} rendered.
\item{\texttt{-$ $-hud-culled}}: HUD displays percentage of triangles culled.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Time Options}\index{time options}\index{options!time}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-time-offset={\it [+-]hh:mm:ss}}}: Offset local \Index{time} by this amount.
\item{\texttt{-$ $-time-match-real}}: Synchronize real-world and \FlightGear{} time.
\item{\texttt{-$ $-time-match-local}}: Synchronize local real-world and \FlightGear{} time.
\item{\texttt{-$ $-start-date-sys={\it yyyy:mm:dd:hh:mm:ss}}}: Specify a \Index{starting time} and date. Uses your system time.
\item{\texttt{-$ $-start-date-gmt={\it yyyy:mm:dd:hh:mm:ss}}}: Specify a starting time and
date. Time is Greenwich Mean Time.
\item{\texttt{-$ $-start-date-lat={\it yyyy:mm:dd:hh:mm:ss}}}: Specify a starting time and
date. Uses local aircraft time.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Network Options}\index{network options}\index{options!network}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-httpd={\it port}}}: Enable \Index{http server} on the specified port.
\item{\texttt{-$ $-telnet={\it port}}}: Enable \Index{telnet server} on the specified port.
\item{\texttt{-$ $-jpg-httpd={\it port}}}: Enable screen shot http server on the specified port.
\item{\texttt{-$ $-enable-network-olk}}: Enables Oliver Delises's multi-pilot mode.
\item{\texttt{-$ $-disable-network-olk}}: Disables Oliver Delises's multi-pilot mode (default).
\item{\texttt{-$ $-net-hud}}: HUD displays network info.
\item{\texttt{-$ $-net-id={\it name}}}: Specify your own \Index{callsign}
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Route/Waypoint Options}\index{options!route}\index{options!waypoint}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-wp={\it ID[@alt]}}}: Allows specifying a waypoint for the GC autopilot; it
is possible to specify multiple waypoints (i.e. a route) via multiple instances of this
command.
\item{\texttt{-$ $-flight-plan={\it [file]}}}: This is more comfortable if
you have several waypoints. You can specify a file to read them from.
\end{itemize}
Note: These options are rather geared to the advanced user who knows what he is doing.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{IO Options}\index{options!IO}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-garmin={\it params}}}: Open connection using the Garmin GPS protocol.
\item{\texttt{-$ $-joyclient={\it params}}}: Open connection to an Agwagon joystick.
\item{\texttt{-$ $-native-ctrls={\it params}}}: Open connection using the FG native Controls protocol.
\item{\texttt{-$ $-native-fdm={\it params}}}: Open connection using the FG Native FDM protocol.
\item{\texttt{-$ $-native={\it params}}}: Open connection using the FG Native protocol.
\item{\texttt{-$ $-nmea={\it params}}}: Open connection using the NMEA protocol.
\item{\texttt{-$ $-opengc={\it params}}}: Open connection using the OpenGC protocol.
\item{\texttt{-$ $-props={\it params}}}: Open connection using the interactive property manager.
\item{\texttt{-$ $-pve={\it params}}}: Open connection using the PVE protocol.
\item{\texttt{-$ $-ray={\it params}}}: Open connection using the RayWoodworth motion chair protocol.
\item{\texttt{-$ $-rul={\it params}}}: Open connection using the RUL protocol.
\item{\texttt{-$ $-atc610x}}: Enable atc610x interface.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Debugging options}\index{options!debugging}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize}
\item{\texttt{-$ $-trace-read={\it params}}}: Trace the reads for a property; multiple instances are allowed.
\item{\texttt{-$ $-trace-write={\it params}}}: Trace the writes for a property; multiple instances are allowed.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Joystick support\label{joysticksupp}}\index{joystick}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Could you imagine a pilot in his or her Cessna controlling the machine with
a keyboard alone? For getting the proper feeling of flight you will need a
joystick/yoke plus rudder pedals, right? However, the combination of
numerous types of \Index{joystick}s, flightsticks, \Index{yoke}s,
\Index{pedal}s etc. on the market with the several target operating systems,
makes joystick support a nontrivial task in \FlightGear{}$\!$.
Beginning with version 0.8.0, \FlightGear{} has a reworked integrated
joystick support, which automatically detects any joystick, yoke, or pedals
attached. Just try it! If this does work for you, lean back and be happy!
Unfortunately, given the several combinations of operating systems supported
by \FlightGear{} (possibly in foreign languages) and joysticks available,
chances are your joystick does not work out of the box. Basically, there are
two alternative approaches to get it going, with the first one being
preferred.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Built-in joystick support\label{joystickbuiltin}}\index{options!joystick}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{General remarks\label{generalremarks}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
In order for joystick auto-detection to work, a joystick bindings xml file
must exist for each joystick. This file describes what axes and buttons are
to be used to control which functions in \FlightGear{}. The associations
between functions and axes or buttons are called ''bindings''. This
bindings file can have any name as long as a corresponding entry exists in
the joysticks description file
\medskip
\texttt{/FlightGear/joysticks.xml}
\medskip
\noindent
which tells \FlightGear{} where to look for all the bindings files. We will
look at examples later.
\FlightGear{} includes several such bindings files for several joystick
manufacturers in folders named for each manufacturer. For example, if you
have a CH Products joystick, look in the folder
\medskip
\texttt{/FlightGear/Input/Joysticks/CH}
\medskip
\noindent
for a file that might work for your joystick. If such a file exists and
your joystick is working with other applications, then it should work with
\FlightGear{} the first time you run it. If such a file does not exist,
then we will discuss in a later section how to create such a file by cutting
and pasting bindings from the examples that are included with \FlightGear{}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Verifying your joystick is working\label{verifying}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Does your computer see your joystick? One way to answer this question under Linux is to reboot your system and immediately enter on the command line
\medskip
\texttt{dmesg | grep Joystick}
\medskip
\noindent
which pipes the boot message to grep which then prints every line in the
boot message that contains the string ''Joystick''. When you do this with a
Saitek joystick attached, you will see a line similar to this one:
\medskip
\begin{ttfamily}
\noindent
input0: USB HID v1.00 Joystick [SAITEK CYBORG 3D USB] on usb2:3.0
\end{ttfamily}
\medskip
\noindent
This line tells us that a joystick has identified itself as SAITEK CYBORG 3D USB to the operating system. It does not tell us that the joystick driver sees your joystick. If you are working under Windows, the method above does not work, but you can still go on with the next paragraph.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Confirming that the driver recognizes your joystick\label{confirming}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\FlightGear{} ships with a utility called js\underline{~}demo. It will report the number of joysticks attached to a system, their respective ''names'', and their capabilities. Under Linux, you can run js\underline{~}demo from the folder \texttt{/FlightGear/bin} as follows:
\medskip
\noindent
\texttt{\$ cd /usr/local/FlightGear/bin}\\
\texttt{\$ ./js\underline{~}demo}
\medskip
\noindent
Under Windows, open a command shell (Start$\left|\right.$All Programs$\left|\right.$Accessories), go to the \FlightGear{} binary folder and start the program as follows (given \FlightGear{} is installed under \texttt{c:$\backslash$Flightgear})
\medskip
\noindent
\texttt{cd {$\backslash$}FlightGear{$\backslash$}bin}\\
\texttt{js\underline{~}demo.exe}
\medskip
On our system, the first few lines of output are (stop the program with \^{~}C if it is quickly scrolling past your window!) as follows:
\medskip
\begin{ttfamily}
\tiny
\noindent
\underline{Joystick test program}.\\
Joystick 0: ''CH PRODUCTS CH FLIGHT SIM YOKE USB\, ''\\
Joystick 1: ''CH PRODUCTS CH PRO PEDALS USB\,''\\
Joystick 2 not detected\\
Joystick 3 not detected\\
Joystick 4 not detected\\
Joystick 5 not detected\\
Joystick 6 not detected\\
Joystick 7 not detected\\
+--------------------JS.0----------------------+--------------------JS.1----------------------+\\
| Btns Ax:0 Ax:1 Ax:2 Ax:3 Ax:4 Ax:5 Ax:6 | Btns Ax:0 Ax:1 Ax:2 |\\
+----------------------------------------------+----------------------------------------------+\\
| 0000 +0.0 +0.0 +1.0 -1.0 -1.0 +0.0 +0.0 . | 0000 -1.0 -1.0 -1.0 . . . . . |\\
\end{ttfamily}
\noindent
First note that js\underline{~}demo reports which number is assigned to each joystick recognized by the driver. Also, note that the ''name'' each joystick reports is also included between quotes. We will need the names for each bindings file when we begin writing the binding xml files for each joystick.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Identifying the numbering of axes and buttons\label{identifying}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Axis and button numbers can be identified using js\underline{~}demo as follows. By observing the output of js\underline{~}demo while working your joystick axes and buttons you can determine what axis and button numbers are assigned to each joystick axis and button. It should be noted that numbering generally starts with zero.
The buttons are handled internally as a binary number in which bit 0 (the least significant bit) represents button 0, bit 1 represents button 1, etc., but this number is displayed on the screen in hexadecimal notation, so:
\medskip
\noindent
0001 $\Rightarrow$ button 0 pressed\\
0002 $\Rightarrow$ button 1 pressed\\
0004 $\Rightarrow$ button 2 pressed\\
0008 $\Rightarrow$ button 3 pressed\\
0010 $\Rightarrow$ button 4 pressed\\
0020 $\Rightarrow$ button 5 pressed\\
0040 $\Rightarrow$ button 6 pressed\\
... etc. up to ...\\
8000 $\Rightarrow$ button 15 pressed\\
... and ...\\
0014 $\Rightarrow$ buttons 2 and 4 pressed simultaneously\\
... etc.
\medskip
For Linux users, there is another option for identifying the ''name'' and the numbers assigned to each axis and button. Most Linux distributions include a very handy program, ''jstest''. With a CH Product Yoke plugged into the system, the following output lines are displayed by jstest:
\medskip
\begin{ttfamily}
\tiny
\noindent
jstest /dev/js3\\
Joystick (CH PRODUCTS CH FLIGHT SIM YOKE USB) has 7 axes and 12 buttons. Driver version is 2.1.0\\
Testing\ldots (interrupt to exit)\\
Axes: 0:\quad 0 1:\quad 0 2:\quad 0 3:\quad 0 4:\quad 0 5:\quad 0 6:\quad 0 Buttons: 0:off 1:off 2:off 3:on 4:off 5:off 6:off 7:off 8:off 9:off 10:off 11:off\\
\end{ttfamily}
\noindent
Note the ''name'' between parentheses. This is the name the system associates with your joystick.
When you move any control, the numbers change after the axis number corresponding to that moving control and when you depress any button, the ''off'' after the button number corresponding to the button pressed changes to ''on''. In this way, you can quickly write down the axes numbers and button numbers for each function without messing with binary.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Writing or editing joystick binding xml files\label{writing}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
At this point, you have confirmed that the operating system and the joystick driver both recognize your joystick(s). You also know of several ways to identify the joystick ''name'' your joystick reports to the driver and operating system. You will need a written list of what control functions you wish to have assigned to which axis and button and the corresponding numbers.
Make the following table from what you learned from js\underline{~}demo or jstest above (pencil and paper is fine). Here we assume there are 5 axes including 2 axes associated with the hat.
\medskip
\begin{tabular}{c|c}
Axis & Button\\\hline
elevator = 0 & view cycle = 0\\
rudder = 1 & all brakes = 1\\
aileron = 2 & up trim = 2\\
throttle = 3 & down trim = 3\\
leftright hat = 4& extend flaps = 4\\
foreaft hat = 5 & retract flaps = 5\\
& decrease RPM = 6\\
& increase RPM = 7
\end{tabular}
\medskip
We will assume that our hypothetical joystick supplies the ''name'' QUICK STICK 3D USB to the system and driver. With all the examples included with \FlightGear{}, the easiest way to get a so far unsupported joystick to be auto detected, is to edit an existing binding xml file. Look at the xml files in the sub-folders of \texttt{/FlightGear/Input/Joysticks/}. After evaluating at several of the xml binding files supplied with \FlightGear{}, we decide to edit the file
\noindent
\texttt{/FlightGear/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml}.
\noindent
This file has all the axes functions above assigned to axes and all the button functions above assigned to buttons. This makes our editing almost trivial.
Before we begin to edit, we need to choose a name for our bindings xml file, create the folder for the QS joysticks, and copy the original xml file into this directory with this name.
\medskip
\begin{ttfamily}
\noindent
\$ cd /usr/local/FlightGear/Input/Joysticks\\
\$ mkdir QS\\
\$ cd QS\\
\$ cp /usr/local/FlightGear/Input/Joysticks/Saitek/\\
Cyborg-Gold-3d-USB.xml QuickStick.xml
\end{ttfamily}
\medskip
\noindent
Here, we obviously have supposed a Linux/UNIX system with \FlightGear{} being installed under \texttt{/usr/local/FlightGear}. For a similar procedure under Windows with \FlightGear{} being installed under \texttt{c:\FlightGear}, open a command shell and type
\medskip
\begin{ttfamily}
\noindent
c:\\
cd /FlightGear/Input/Joysticks\\
mkdir QS\\
cd QS\\
copy /FlightGear/Input/Joysticks/Saitek/\\
Cyborg-Gold-3d-USB.xml QuickStick.xml
\end{ttfamily}
\medskip
\noindent
Next, open \texttt{QuickStick.xml} with your favorite editor. Before we forget to change the joystick name, search for the line containing $<$name$>$. You should find the line
\medskip
\texttt{<name>SAITEK CYBORG 3D USB$<$/name$>$}
\medskip
\noindent
and change it to
\medskip
\texttt{$<$name$>$QUICK STICK 3D USB$<$/name$>$}.
\medskip
\noindent
This line illustrates a key feature of xml statements. They begin with a $<$tag$>$ and end with a $<$/tag$>$.
You can now compare your table to the comment table at the top of your file copy. Note that the comments tell us that the Saitek elevator was assigned to axis 1. Search for the string
\medskip
\texttt{$<$axis n="2"$>$}
\medskip
\noindent
and change this to
\medskip
\texttt{$<$axis n="1"$>$.}
\medskip
Next, note that the Saitek rudder was assigned to axis 2. Search for the string
\medskip
\texttt{$<$axis n="2"$>$}
\texttt{$<$axis n="1"$>$.}
\medskip
\noindent
Continue comparing your table with the comment table for the Saitek and changing the axis numbers and button numbers accordingly. Since QUICKSTICK USB and the Saitek have the same number of axes but different number of buttons, you must delete the buttons left over. Just remember to double check that you have a closing tag for each opening tag or you will get an error using the file.
Finally, be good to yourself (and others when you submit your new binding file to a \FlightGear{} developers or users archive!), take the time to change the comment table in the edited file to match your changed axis and button assignments. The new comments should match the table you made from the js\underline{~}demo output. Save your edits.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Telling \FlightGear{} about your new bindings xml file\label{telling}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Before \FlightGear{} can use your new xml file, you need to edit the file
\noindent
\texttt{/FlightGear/joysticks.xml},
\noindent
adding a line that will include your new file if the ''name'' you entered between the name tags matches the name supplied to the driver by your joystick. Add the following line to \texttt{joysticks.xml}.
\medskip
\noindent
\texttt{<js-named include="Input/Joysticks/QS/QuickStick.xml"/>}
\medskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Some hints for Windows users\label{joyxp}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Basically, the procedures described above should work for Windows as well. If your joystick/yoke/pedals work out of the box or if you get it to work using the methods above, fine. Unfortunately there may be a few problems.
The first one concerns users of non-US Windows versions. As stated above, you can get the name of the joystick from the program js\underline{~}demo. If you have a non-US version of Windows and the joystick .xml files named above do not contain that special name, just add it on top of the appropriate file in the style of
\medskip
\texttt{<name>Microsoft-PC-Joysticktreiber </name>}
\medskip
\noindent
No new entry in the base \texttt{joysticks.xml} file is required.
Unfortunately, there is one more loophole with Windows joystick support. In
case you have two USB devices attached (for instance a yoke plus pedals),
there may be cases, where the same driver name is reported twice. In this
case, you can get at least the yoke to work by assigning it number 0 (out of
0 and 1). For this purpose, rotate the yoke (aileron control) and observe
the output of js\underline{~}demo. If figures in the first group of colons
(for device 0) change, assignment is correct. If figures in the second group
of colons (for device 1) change, you have to make the yoke the preferred
device first. For doing so, enter the
Windows ''Control panel'', open ''Game controllers'' and select the
''Advanced'' button. Here you can select the yoke as the ''Preferred''
device. Afterward you can check that assignment by running
js\underline{~}demo again. The yoke should now control the first group of
figures.
Unfortunately, we did not find a way to get the pedals to work, too, that way. Thus, in cases like this one (and others) you may want to try an alternative method of assigning joystick controls.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Joystick support via .fgfsrc entries\label{fgfsrcjoy}}\index{joystick!.fgfsrc}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Fortunately, there is a tool available now, which takes most of the burden from the average user who, maybe, is not that experienced with XML, the language which these files are written in.
For configuring your joystick using this approach, open a command shell (command prompt under windows, to be found under Start|All programs|Accessories). Change to the directory \texttt{/FlightGear/bin} via e.g. (modify to your path)
\noindent
\texttt{cd c:$\backslash$FlightGear$\backslash$bin}
and invoke the tool fgjs via
\noindent
\texttt{./fgjs}
on a UNIX/Linux machine, or via
\noindent
\texttt{fgjs}
on a Windows machine. The program will tell you which joysticks, if any, were detected. Now follow the commands given on screen, i.e. move the axis and press the buttons as required. Be careful, a minor touch already ''counts'' as a movement. Check the reports on screen. If you feel something went wrong, just re-start the program.
After you are done with all the axis and switches, the directory above will hold a file called \texttt{fgfsrc.js}. If the \FlightGear{} base directory \texttt{FlightGear} does not already contain an options file \texttt{.fgfsrc} (under UNIX)/\texttt{system.fgfsrc} (under Windows) mentioned above, just copy
\medskip
\noindent
\texttt{fgfsrc.js} into \texttt{.fgfsrc} (UNIX)/\texttt{system.fgfsrc} (Windows)
\medskip
\noindent
and place it into the directory \FlightGear{} base directory \texttt{FlightGear}. In case you already wrote an options file, just open it as well as \texttt{fgfsrc.js} with an editor and copy the entries from \texttt{fgfsrc.js} into \texttt{.fgfsrc}/\texttt{system.fgfsrc}. One hint: The output of \texttt{fgjs} is UNIX formatted. As a result, Windows Editor may not display it the proper way. I suggest getting an editor being able to handle UNIX files as well (and oldie but goldie in this respect is PFE, just make a web search for it). My favorite freeware file editor for that purpose, although somewhat dated, is still \Index{PFE}, to be obtained from
\web{http://www.lancs.ac.uk/people/cpaap/pfe/}.
The the axis/button assignment of \texttt{fgjs} should, at least, get the axis assignments right, its output may need some tweaking. There may be axes moving the opposite way they should, the dead zones may be too small etc. For instance, I had to change
\texttt{--prop:/input/joysticks/js[1]/axis[1]/binding/factor=-1.0}
into
\texttt{--prop:/input/joysticks/js[1]/axis[1]/binding/factor=1.0}
(USB CH Flightsim Yoke under Windows XP). Thus, here is a short introduction into the assignments of joystick properties.
Basically, all axes settings are specified via lines having the following structure:
\medskip
\noindent
\texttt{-$ $-prop:/input/joysticks/js[}\textit{n}\texttt{]/axis[}\textit{m}\texttt{]/binding}\\
\texttt{/command=property-scale} (one line)\\
\texttt{-$ $-prop:/input/joysticks/js[}\textit{n}\texttt{]/axis[}\textit{m}\texttt{]/binding}\\
\texttt{/property=/controls/}\textit{steering option} (one line)\\
\texttt{-$ $-prop:/input/joysticks/js[}\textit{n}\texttt{]/axis[}\textit{m}\texttt{]/binding}\\
\texttt{/dead-band=}\textit{db} (one line)\\
\texttt{-$ $-prop:/input/joysticks/js[}\textit{n}\texttt{]/axis[}\textit{m}\texttt{]/binding}\\
\texttt{/offset=}\textit{os} (one line)\\
\texttt{-$ $-prop:/input/joysticks/js[}\textit{n}\texttt{]/axis[}\textit{m}\texttt{]/binding}\\
\texttt{/factor=}\textit{fa} (one line)\\
\medskip
\noindent
where
\medskip
\begin{tabular}{rcl}
\textit{n} &=& number of device (usually starting with 0)\\
\textit{m} &=& number of axis (usually starting with 0)\\
\textit{steering option} &=& elevator, aileron, rudder, throttle, mixture, pitch\\
\textit{dead-band} &=& range, within which signals are discarded;\\
&& useful to avoid jittering for minor yoke movements\\
\textit{offset} &=& specifies, if device not centered in its neutral position\\
\textit{factor} &=& controls sensitivity of that axis; defaults to +1,\\
&&with a value of -1 reversing the behavior
\end{tabular}
\medskip
You should be able to at least get your joystick working along
these lines. Concerning all the finer points, for instance, getting the joystick buttons
working, John Check\index{Check, John} has written a very useful README being included in the base package to be found under \texttt{FlightGear/Docs/Readme/Joystick.html}. In case of any trouble with your input device, it is highly recommended to have a look into this document.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{A glance over our hangar}\index{hangar}\label{hangar}\index{aircraft!survey}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The following is a Table 1 of all the aircraft presently available for use with \FlightGear{}. In the first column, you will find the name of the aircraft, the second one tells the start option, the third one names the FDM (flight dynamics management model, see Sec. \ref{flight models}), and the last column includes some remarks. Here, ''no exterior model'' means, that there is no aircraft specific external model provided with the base package. As a result, you will see the default blue-yellow glider, when you change to the external view. However, you can download external views for these models from Wolfram Kuss' site at
\web{http://home.t-online.de/home/Wolfram.Kuss/}.
Moreover, this list is complete insofar as it covers all aircraft available via the \texttt{-$ $-aircraft=} option.
\eject
\noindent
Tab.\,1: \textit{Presently available aircraft in \FlightGear{}}.
\medskip
\noindent
{\scriptsize
\input{tab1.tex}
}
%% Revision 0.02 1998/09/29 bernhard
%% revision 0.10 1998/10/01 michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% Added pic from Arizona takeoff
%% revision 0.20 1999/06/04 michael
%% added new options
%% revision 0.3 2000/04/20 michael
%% added numerous new options (number rapidly growing...)
%% revision 0.4 2001/05/12 michael
%% description of .fgfsrc/system.fgfsrc
%% again many new options
%% joystick section added based on John Check's joystick howto
%% updated arizona pic
%% revision 0.4 2001/07/01 martin
%% comments on debug options under Unix
%% revision 0.5 2002/01/01 michael/martin
%% added more options, notably the --aircraft option
%% tweaks in the introductory section
%% revised joystick section based on fgjs
%% New KFSO picture
%% Paragraphs on UIUC + tweaks by Martin
%% Added Section on IIO options
%% revision 0.6 2002/09/05 michael
%% Corrected win shell call in 4.2
%% added/corrected/deleted several comman line options
%% Added large section on built-in joystick support by Dave Perry
%% Added section/table with complete list of aircraft
%% Command line options in quotes for Win batch start

68
Docs/source/title.tex Normal file
View file

@ -0,0 +1,68 @@
%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Title file
%%
%% Written by Michael Basler, started September 1998.
%%
%% Copyright (C) 2002 Michael Basler (pmb@epost.de)
%%
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: title.tex,v 0.6 2002/09/09 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{FlightGear Flight Simulator -- Installation and Getting Started}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\author{
Michael Basler (\mail{pmb@epost.de}) and Martin Spott (\mail{Martin.Spott@uni-duisburg.de})\\\\
including contributions by\\
Jon Berndt (\mail{jsb@hal-pc.org}),
Bernhard Buckel (\mail{buckel@mail.uni-wuerzburg.de}),\\
Cameron Moore (\mail{cameron@unbeatenpath.net}),
Curt Olson (\mail{curt@flightgear.org}),\\
Dave Perry (\mail{skidavem@mindspring.com}),
Michael Selig (\mail{m-selig@uiuc.edu}),\\
Darrell Walisser (\mail{walisser@mac.com}),
and others\\
{ \setlength{\fboxsep}{12mm}\setlength{\fboxrule}{0pt}
\centerline{\fbox{
\includegraphics[clip,width=10.0cm]{start2}
}}}}
\date{Getting Started Version 0.6\\
September, 9th, 2002\\
Manual was written for \FlightGear{} version 0.8.0.}
\maketitle
\tableofcontents
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% revision 0.10 1998/10/01 michael
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% added title pic
%% revision 0.3 2000/04/20 michael
%% Remark for tracing version
%% revision 0.5.2 2002/XX/XX michael
%% glad to add several new contributors
%% revision 0.6 2002/09/05 michael
%% changed title picture