Networking
Connecting to a TFC server, it
hangs on initializing and downloading, or disconnects. Why?
What can I do to reduce my
latency?
What are rate, pushlatency,
and netgraph? How do I use them?
How do
I get Half-life and TFC to work in multiplayer when I'm using a proxy to
connect to the internet?
Server
Administration
How do I enable birthday mode?
How do I set the map rotation
for my TFC server?
Where can I find a list of
commands for running a server, or the commands for the game's console?
How do I lower the gravity in
TFC?
When I try to start a TFC
server it gives me the following error: "Error W_LoadWadFile: couldn't
load gfx.wad" and closes the window. What can I do to fix this?
How do I get the note that
comes up when people join my server (message of the day) to say what I want
it to?
Updating
Half-life
I reinstalled Half-life from
the CD. Is there a patch to the most recent version?
I've heard that the Opposing Force
add-on includes new netcode that reduces lag for TFC. Is this true?
I recently installed the
Opposing Force add-on, and now my netgraph looks different. Is there
anything I can do to make it look like it did before?
When trying to update
Half-life I get this message: "Your half-life executable has been
modified. Please check your system for viruses and re-install. What should
I do?
Console
Commands, Aliases, Binding Keys, and Config (cfg) Files
What are all of the files
ending with .cfg in my tfc folder and what can I do with them?
When I take a screenshot, it
gives me a .pcx file that looks strange. Is there a way to fix this?
How do I bind a key to send a
message to other players on the server, other than having to type messages
in?
How do I turn off the blood in
TFC?
How do I change my name while
in the game?
How can I set up a bind that
will let me use the ALT and Function keys together to do something (ie
ALT+F1)?
Video
Errors
When I jump into water in TFC
everything is dark green, and the water surface is light green. I can't see
anything, how can I fix this?
Other
Errors and General Questions
Are there bots available for
TFC?
The message "CDKey in
use, please try again later" comes up when I connect to a server. Why?
Where do I put the maps I
downloaded?
Every time i try to connect to
a game, it says: 'could not load library tfc\cl_dlls\client.dll' How can I
fix this?
Every time I try to connect to
a TFC server I get an error that says my client.dll differs from the
server’s. What can I do?
Networking
When
I try to connect to a TFC server, it hangs on initializing and downloading,
or disconnects after this message, how can I get this to
stop?
This
is most often caused by an antivirus program or some other program that you
are running in the background that interferes with Half-life in some way.
The best recommendation is to disable virus scanner/antivirus programs and
shut down any other programs that you may be running before you play
Half-life. To the best of my knowledge, IRC clients, ICQ, and GameSpy do
not cause this to occur, but you may want to shut those down as well (in
GameSpy go to Tools->Options->'When launching a game'->'launch
game and terminate GameSpy' if you want GameSpy to close when you try to
join a server).
What can I do to
reduce my latency?
There are a few
things you can do to reduce your latency, but the determining factors on
how low your latency can get are your ISP(Internet Service Provider), your
modem, your phone lines(if using a phone modem), and the route to the
server you're playing on (the path the signal takes from you to the game).
The only things you can really do about your ISP are complain to them or
change ISPs. As far as your route goes, right click on the server you want
to join (in GameSpy) and choose traceroute, it will then tell you how many
hops your signal is going through. Fewer hops usually means that you're
going to cover less distance and have a better connection, there are a
number of traceroute programs available on the internet that can go into
more detail on what your route is and where any problems may be, which
could help in determining if your ISP is causing your latency to be higher
than it should be. Basically, a better route equals better ping, and better
ping equals better latency. Try to join the servers that give you the best
ping and route if you're concerned about latency. You can usually call your
phone company and have them test your phone lines if you think they may be
causing data loss. The most common symptoms of bad phone lines are a
definite hiss during voice conversations (on your telephone) or
interference of any type (I used to be able to hear local radio stations on
my phone when the line was quiet, definitely a sign of bad lines). Make
sure you have the latest drivers for your modem, they may have found some
problems with the drivers you are using and fixed them, and those problems
may have been causing some of your lag. A great resource I have found for
tweaking all aspects of your game is Tweak3d.net. They have a modem tweak guide and an Half-life Internet Tweak Guide that could be
very useful for reducing your latency. They also have a number of tweak
guides for the rest of your hardware, including 3d cards, and some tweak
guides for other games. You may also want to try the Half-life Autoexec Creator which will build
an autoexec.cfg file for you that may increase your game's framerates and
also your internet performance. Adapting your rate and pushlatency settings
to your connection may also help. I would recommend setting pushlatency to
-1000 (type pushlatency -1000 in console), which will effectively give full
prediction of the actions of other players should your connection not
receive proper updates from the server. Prediction (and therefore
pushlatency) hides the appearance of latency and lag problems, -1000
basically sets it to a value of negative your ping, a value of 0 turns off
prediction. As for rate, I would set rate to a value of 5000 (type rate
5000 in console), and then reduce it by about 500 at a time(rate 4500, rate
4000, rate 3500, etc), while paying attention to your netgraph (type
r_netgraph 1 in console to view netgraph) to try to clear any blue, red, or
yellow lines from your graph. Note that you may not be able to get rid of
the yellow and red lines entirely, but you want to get as few of them as
possible
What are rate, pushlatency, and netgraph? How do
I use them?
Netgraph:
Netgraph is a visual representation of the networking data that Half-life/TFC
is receiving while you play. In the default mode that most people use
(r_netgraph 1) it shows whether you are having delayed packets (yellow
lines in netgraph), which usually mean the server is sending more
information to you than you can handle, dropped packets (red lines) which
could be the result of the server sending too much information or a bad
connection, or corrupted packets (blue lines) which show that there's
definitely a problem between you and the server. Halflife.org's Yappin with Yahn section, brought up the
question of netgraph with Yahn Bernier (Valve software's netcode guru)
which shed some light on the uses of r_netgraph 2 and 3, which is where I
got any of the info in this section relating to those two portions of the
netgraph. When using r_netgraph 2, there are a series of green hashes up
the side of your screen, each represents 50 bytes of data. As the graph
moves from right to left (this would be the standard r_netgraph 1 display),
each column is a presentation of a server message that your computer
received (or didn't receive, refused, or found invalid). r_netgraph 3 adds
a white divider to your screen above which is player data (yellow),
non-player entity data (purple), temporary entity data (blue), and sounds
(green). So, basically, r_netgraph 2 and 3 will show you what the
information is and how much of it is being sent, while r_netgraph 1 simply
tells you whether or not you're receiving all of the information being sent
to you correctly. In most cases, r_netgraph 1 is the only one of these
options that will concern you, and r_netgraph 0 turns it off.
Pushlatency: Pushlatency is a variable
used by Half-life/TFC's netcode to guide the prediction code in the game.
The prediction code hides your latency by replacing any lost or delayed
packets with a prediction of what the other player(s) may be doing.
According to Yahn Bernier (again from Halflife.org's Yappin with Yahn)
setting your pushlatency to a value that is a negative number, with the
absolute value of the number being higher than your latency, will cause the
game's code to dynamically change the pushlatency value to a value that is
negative your current latency. This means that a value of -1000 for pushlatency
will automatically enable full prediction so long as your latency is below
1000. If for some reason you don't want prediction to be used, set
pushlatency to 0.
Rate: Rate is the speed at which the
server will send information to your computer. The basic idea is that you
want your rate to be high enough to get the neccessary information, but not
so high that it causes your computer to turn away information or drop
packets. Overall, I have found no reason for anyone to use a rate higher
than 5000 (which is the rate limit in many leagues and is more than
adequate for the information normally sent in a game of TFC), though TFC
will allow rates as high as 10000. When trying to adjust your rate for the
best performance for your connection, I recommend starting by setting rate
to 5000 (rate 5000) and turning on netgraph (r_netgraph 1). Look at the
netgraph for yellow and red columns. If you're having a lot of red and
yellow appear, reduce your rate by 500 (rate 4500), and look for the red
and yellow columns again. Continue to do so until you find that your red
and yellow columns are significantly reduced (as few of them as possible),
stop if you get below 2500, and try looking at other ways to improve your
connection. Once you find a value that seems to work for you, you may want
to tweak it a little more (change the value by intervals of 50 or 100
instead of 500) to find a setting you like. Remember that you can't do this
in a LAN game or on a server that you are running, as it will have little
effect. Try to do it on a server with only a few people (an empty server
may work as well for a baseline) that you have a good ping to, so that you
can get a 'best case' situation for your rate, and work from there.
Note: to adjust your rate, type rate # where # is the value you would like
to use in the console.
How do I get Half-life and TFC to work in
multiplayer when I'm using a proxy to connect to the internet?
I found this answer with the help of the
great people over at our own PlanetFortress Forums and would like to thank them for
posting and reposting this for me.
This pertains mostly to people using a proxy that they have control over.
In other words, you will be able to configure the proxy yourself. If the proxy
is controlled by your ISP (Internet Service Provider), the you'll have to
contact them to see if they will do this for you.(also note that some of
this must be done on the proxy, and some of it must be done on the computer
you will be using to play TFC)
--) Disable the CompuServe and AOL proxy functions. The ports they use
conflict with the ports HL uses.
--) Create a mapping with the name Auth Server, TCP, proxy port 7001, IP
209.67.28.140 (or half-life.east.won.net), outbound port 7001.
--) Create a mapping with the name Auth Server2, TCP, proxy port 7002, IP
209.67.28.140 (or half-life.east.won.net), outbound port 7002.
--) Create one named WON Server, proxy port 6003, TCP, IP 209.67.28.140 (or
half-life.east.won.net), outbound port 6003.
--) Create one named WON Master, proxy port 27010, UDP, check
"bi-directional", IP 209.67.28.140 (or half-life.east.won.net),
outbound port 27010.
At this point, you have mappings for everything but the game servers; You
can get a WON authorization, and you can get the master list of servers
showing what games are running, but you CAN'T get into a game. You need to
create a seperate mapping for EACH game server that you want to play on.
--) Get into Gamespy or HL and write down the IP addresses of your favorite
servers (good pings, always running, whatever).
--) Create a new mapping for EACH game server.
--) The first one will look like this. Name "Some Cool Server",
proxy port 27015, IP 123.456.789.012 (uh ... I made that number up :), UDP,
bi-directional, outbound port 27015.
--) For the rest of the game servers, you need to increment the "proxy
port", like this: Name "Some Other Game Server", proxy port
27016, IP 123.456.789.012, UDP, Bi-directional, outbound port 27015.
--) Name "Yet Another Game Server", proxy port 27017, IP
123.456.789.012, UDP, Bi-directional, outbound port 27015.
You get the idea. Each port ON THE PROXY SERVER changes, but the outbound
mapping always points to the "real" port at 27015.
Now to connect to a game, start from the HL console.
--) There's a variable (cl_timeout) that tells Half-Life how long to wait
(in milliseconds) for a response from the server before failing, and it's
normally 1/3 of a second. Your connection will usually take longer than
that, and ALWAYS will if the proxy needs to dial, so change the value to
make it wait long enough for a dial and login, maybe 30 seconds (cl_timeout
30000) or 45 seconds (cl_timeout 45000).
--) Now connect to the first server you mapped with "connect
your.proxy's.ip.number:27015". Connect to the second with
"connect your.proxy's.ip.number:27016", and so on.
Server
Administration
How do I enable birthday mode in TFC so that I
can throw presents instead of grenades?
tfc_birthday 1 enables birthday mode
tfc_birthday 0 disables birthday mode
both commands have to be typed into the server console either directly or
using rcon, the setting cannot be enabled by a client without control over
the server. They can also be set in the server's config files if you want
to run a server that is always in birthday mode.
How do I set the map rotation for my TFC server
(which maps it runs and in what order)?
Edit the file mapcycle.txt (in your tfc
folder) and add the names of the maps you'd like to run, in the order you'd
like them to come up on your server. The game searches this file for the
name of the current map, and then looks at the next line to determine which
map it should run next.
Where can I find a list of commands for running a
server for TFC? Where can I find a list of commands for the
game's console?
A helpful site for running servers is http://www.planethalflife.com/server/. They have info
on setting up your server, as well as a list of server commands.
If you are looking for a list of the possible console commands for
Half-life/TFC, you can try http://www.planethalflife.com/commands/ or I.am/TFC both of which have very good listings of Half-life/TFC
console commands.
How do I lower the gravity in TFC?
Note: This can only be done in the server
console or by someone with rcon on the server
To lower the gravity in the game, type sv_gravity in the console to find out
what the current gravity is, then type sv_gravity # where # is the value
you want the gravity set to. A number lower than the default will lower
gravity on the server, a value higher than the default will increase the
gravity.
I'm trying to set up a TFC server.
I installed HLDS4013, edited autoexec.cfg and server.cfg. Installed maps.
When I try to launch hlds from the shortcut I made (with command line:
C:\HLServer\hlds.exe -game tfc +maxplayers #) I get the following error
message in the MS-DOS shell:
Attempting to communicate with WON
Host_Init
FindFile: can't find gfx.wad
Error W_LoadWadFile: couldn't load gfx.wad
Then the MS-DOS shell closes.
It sounds like you may have a corrupted
install or download of the server. The first thing you should check is to
look into the valve directory for the gfx.wad file to make sure it's there.
If it isn't, it's more than likely that it's one of the above problems, if
it is there, you might want to try copying the wad file into the tfc
directory (though it should look in the valve directory for any files not
found in the tfc directory). More than likely, uninstalling the server
installation and deleting any remaining folders before installing again
will fix it, if not you may need to download the dedicated server again.
You may also want to check for a virus on your system as well as running
scandisk and defrag, just in case a virus or disk problem is cuasing the
installation/download to be corrupted.
How do I get the note that comes up when people
join my server (message of the day) to say what I want it
to?
Make a file in your /tfc folder called
motd.txt, put in whatever you want displayed, and it should show up.
However, on linux servers motd doesn't currently work. Remember, of course,
that clients can always disable this feature, and may not see your message
of the day(motd).
Updating
Half-life
I recently reinstalled Half-life, and am not sure
which patch I need to get from retail to the latest version without going
through every patch in between. Is this possible and which
patch do I need?
First you'll
need to determine which version is on your Half-life CD. If you bought the
original release of Half-life (orange CD), check your readme.txt file for
the version number. If your readme.txt file says version 1.0, then you have
version 1.005, which was the first release of Half-life, and requires the 1005
to 1013 patch (10051013.exe). If you have the Game of the Year Edition
(black CD) then your version is 1.009, which requires the 1009
to 1013 patch (10091013.exe). If for some reason you have a version
other than 1.005/1.0 or 1.009, I've listed the fileplanet links to the neccessary
files:
version 1.010: 1010
to 1013 patch (10101013.exe)
version 1.011: 1011 to
1013 patch (10111013.exe)
If you have version 1.006 or 1.008 you're
going to need the files listed below in addition to the 1.009 to 1.013
patch listed above:
version 1.006 requires this file: 1006
to 1008 patch (10061008.exe) as well as the patches required for
version 1.008
version 1.008 requires this file: 1008
to 1009 patch (10081009.exe) as well as the patch required for version
1.009 (1009
to 1013 patch (10091013.exe))
I've heard that the Opposing Force add-on
includes new netcode that reduces lag in TFC. Is this true?
The netcode update in Opposing Force is
only for Opposing Force and makes no changes to the netcode in either
standard HL or TFC. The changes that were made were to deal with specific
problems that Gearbox was having, and also to distinguish users of OpFor
from the users of the standard HL, hence the 1.015 version number as
opposed to HL's 1.013.
I recently installed the Opposing Force add-on
and now my netgraph shows more in TFC and HL than it did before. This
includes a display of variable ping and the netgraph lines
take up nearly half of the game screen.
These commands (found at
http://www.planethalflife.com/commands/) should help you. graphheight 64
(sets the height of the r_netgraph display) graphhigh 512 (sets the maximum
value of the r_netgraph display) graphmean 1 (sets the mean value of the
r_netgraph display) graphmedian 128 (sets the median value of the
r_netgraph display) As for toggling the rest of the items displayed, I'm
still looking into it, but messing with the values of these commands should
clear up the main problem (netgraph taking up too much of the screen).
Thanks to [WOLF]Rainmaker for pointing me in the right direction and
towards that site. NOTE: After
installing Opposing Force I have not noticed anything different other than
the display of fps, incoming k/sec and outgoing k/sec in my netgraph, the
problem here may have simply been that the person was running at a low
resolution, which may cause the display of those variables to take up a
good amount of screen space. Personally, running at 1024x768 they’re buried
in the lines of the netgraph itself, which doesn’t seem to take up any more
space than it did before.
When I try to update Half-life to the latest
version, I get the following message: "Your Half-life executable has
been modified. Please check your system for viruses and
re-install Half-life." I don't think I have any kind of virus, since
the game works before the update. How can I fix this?
If you're lucky, you'll simply have a corrupted
download of the patch. If that is the case, then downloading the patch
again should solve the problem. If not, then you should continue on with
the rest of this.
When you have a virus, it is often very possible for the game to continue
fuctioning properly even though the file itself has been infected. Make
sure you have the latest updates to your virus scan/antivirus program and
do a complete scan of your computer for any possible virus that may be
there. If it turns up a virus, that's most likely all you'll need to do,
along with removing the virus, uninstalling Half-life, deleting the
Half-life folders, and then installing Half-life again.
If you did not find a virus, the next thing you will need to do is run a
scandisk (start-programs-accessories-system tools-scandisk) on the hard
drive, as well as defragmenting the drive(start-programs-accessories-system
tools-Disk Defragmenter), and uninstall the game, delete the folders, and
install again. Scandisk will often fix problems that your hard drive may be
having, and corrupted files are often a sign of a hard drive that's having
problems. If you have a good amount of time, you may want to have scandisk
perform the scan in thorough mode, which will scan the surface of the disk
for problems as well (this takes a very long time though, and is not always
needed).
Console
Commands, Aliases, Binding Keys, and Config (cfg) Files
What are all of the files ending with .cfg in my
tfc folder and what can I do with them?
The answer to
this one is lenghty and resulted in its own section, TFC config info.
Shoe -TPF- had posted excellent info on configs on the PF forums. You
will find that info on the TFC config info
section. Read that first, and if you still have trouble, feel free to mail TF Tech! Special thanks to Shoe
for taking the time to write that puppy up!
When I take a screenshot in the game, I get a
.pcx file that comes out all scrambled when I look at it. What is messing
up my screenshots, why are they in .pcx format, and how can I fix this
problem?
It sounds like you have a key bound to
"screenshot" that you are using to take your screenshots (I know,
this sounds correct, and oddly enough, it is if you want to do things the
way Quake did them). However, in Half-life and TFC (and most likely in
other mods as well) you can bind a key to "snapshot" and it will
take a screenshot in .bmp format and will be clear. So, in the console, or
in your .cfg files, type bind x snapshot (where x is the key you want to
use to take a screenshot).
How do I bind a key to send a message
to other players on the server, other than having to type messages in? Do I
still have to use the same buttons that send the message to everyone on the
server or just my team when I do this?
To bind a key to send a message to your
teammates, simply input the following either into the console or into one
of your .cfg files:
bind x "say_team Your message here"
where x is the key you want to use to send the message. After that you can
simply hit x and it will send the message to your teammates, no need to hit
any other keys.
Sending a message to everyone on the server is pretty much the same, you
just need to use the following:
bind x "say Your message here"
and when you hit x it will send the message to everyone. I don't recommend
using the second command, as many people find it annoying when people are
constantly spamming messages to everyone on the server. More often than
not, if a server admin is around, they will kick you if you're spamming a
lot of annoying stuff to the other people on the server. Just think a
little ahead of time, and act responsibly ;-)
How can I turn off the blood in TFC? I tried
using the parental control, but it won't allow me to play multiplayer when
I use that.
This should work:
bring down the console and type in the following commands:
violence_ablood 0
violence_agibs 0
violence_hblood 0
violence_hgibs 0
You may also want to turn decals off by typing
r_decals 0
but that will also cause blast marks and bullet holes (and things like
that) to go away as well.
How can I change my name while I’m playing TFC
(not in the game's menu)?
You should be able to bring down the
console and type the following to change your name:
name “newname”
How can I set up a bind that will let me use the ALT
and Function keys together to do something (ie ALT+F1)?
First, remember that many of the alt+F#
keys are windows hot keys that may do weird things when you use them in
combination. In other words, be careful, and DON'T bind anything to ALT+F4
unless you have some way of overriding those default hotkeys (I don't know
how to do it, but I think there are some programs that do). Now that that's
done, here's how it works:
alias +switch "bind F1 command;bind
F2 command;bind F3 command;bind F5 command"
alias -switch "bind F1
othercommand;bind F2 othercommand;bind F3 othercommand;bind F5
othercommand"
bind ALT +switch
Basically, when you press down on the ALT
key, it will rebind the F1, F2, F3, and F5 keys to whatever you put in
command, when you release the ALT key it will bind the F keys to
othercommand. You can do this with any keys you like (which may help avoid
problems like ALT+TAB and ALT+F4 by using Z or some other key as your
switch).
Video
Errors
When I jump into water in TFC everything is dark
green, and the water surface is light green. I can't see
anything, how can I fix this?
This is most likely due to a problem with
your video configuration in Half-life/TFC.
Make sure you have the latest drivers for your video card. The best place
to check for this would be the website of whichever company makes your
video card. If those drivers don't seem to have been updated in a while, or
don't fix the problem, you may want to check the website of the company
that makes the chipset used on your card. For instance: nVidia makes the TNT, TNT2, and GeForce
chips which go onto those cards, 3dfx
makes the Voodoo chipsets, and S3 makes
the Savage chipsets.
Remember, of course, that the drivers from the makers of the chipsets are
not always fully functional with all video cards that use those chipsets,
because the cards may support features that are not a part of the reference
design of the chipset. So, be sure to try the drivers from the board's
manufacturer first.
If updating the drivers doesn't work, it may be a compatability problem
with the way your card handles the water effects, and you may have to try
switching video modes to OpenGL, Direct3D, or software mode, depending on
what you are currently using (software mode should work regardless of your
card's 3d rendering capabilities).
Other
Errors and General Questions
Are there any bots available for TFC that I can play
against offline, similar to the bots available for
Deathmatch?
To the best of my knowledge, there are no
bots available for TFC at this time.
When I try to connect to a server, I sometimes
get the message "cdkey in use, please try again later". Why does
this happen and what can I do about it?
There are generally 3 causes for this sort
of problem:
1) a bug in the in-game server browser may occasionally cause problems like
this. Though I haven't heard of this problem happening after the most
recent patch, it still may occur. So, if you're using the in-game browser,
try using GameSpy, and if it still occurs, go on to 2 or 3
2) problems with Won.net could occasionally cause things like this to
happen. If it happens only after you've just left a game or have been
disconnected from the internet suddenly, you may need to wait as much as 30
minutes for Won.net to drop your key from 'in use' status.
3) someone actually is using your CDkey.
If it comes down to #3, you can get a new CDKey from Sierra. Contact
information for Sierra's tech support is in your readme.txt file or at Sierra's web site
Where do I put the maps I've downloaded?
Sometimes I put the unzipped files into the maps folder and the server says
I don't have the map, what's going on?
Some maps come with
a lot of extra files, like .wad files and .wav files, which need to be put
elsewhere. Usually the places the files need to be put are listed in a text
file that comes with the map, or the zip file unzips into the proper
directory structure, and you just have to move it over. For instance, if
you unzip a map and it gives you a TFC folder, with a file or two, a maps
folder, and a sound folder inside, you can just copy that into your
Halflife folder, and it will put everything in the correct place for you. If
all that is in the zip file is a .bsp file and one or two .txt files, then
you can put those straight into the maps folder in your tfc folder, and
they should work fine.
Every time i try to connect to a game, it says:
'could not load library tfc\cl_dlls\client.dll' How can I
fix this?
What you need to do is go into your tfc
folder and find the folder called cl_dlls. Once in that folder, rename the
client.dll file to client.dll.bak (you may need to do this in a DOS
window). Try starting the game up. If the error went away, you can delete
client.dll.bak. Just make sure you do this in the TFC folder, and NOT in
the valve folder.
Every time I try to connect to a TFC server I get
an error that says my client.dll differs from the server’s. What can I do?
Look in your tfc folder for a folder
called cl_dlls, the client.dll file should be in there. Rename the file to
client.bak and then try again. You should be able to delete the file, but
renaming it ensures that you still have it in case you need it for some reason.
The game should work fine without the cl_dlls folder, as it was not
supposed to be there at all (note:this only applies to the cl_dlls folder
in the TFC folder, the cl_dlls folder in the valve folder is needed for you
to be able to play Half-life (and TFC) and must not be deleted or
modified). (Yes, I know this looks similar to the one above it, they really
are different errors, but with the same cause
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
|