|
||||||||||
PREV NEXT | FRAMES NO FRAMES |
IUT2004PathNavigator
that implements AbstractUT2004PathNavigator.setBot(UT2004Bot)
and
AbstractUT2004PathNavigator#setExecutor(IPathExecutorHelper)
.AbstractEmbodiedAgent.getAct()
.
UT2004Bot.botDisconnectorThread
as a Runtime.addShutdownHook(Thread)
.
NavigationGraphBuilder.NewNavPointBuilder.edges
.
ItemDescriptor
).ItemType.Category#ADRENALINE
.ItemDescriptor
).ItemType.Category#ARMOR
.IWorldView
.
UT2004Bot
logic module - does not synchronize the logic together with the IVisionWorldView
.AgentInfo.AT_LOCATION_EPSILON
.
NavigationGraphBuilder.isAutoPrefix()
is on (== true), it returns 'navPointId' prefixed with "NavigationGraphBuilder.getMapName()
.".
ICustomControlMessage
sparing you of the necessity of BaseCustomControlMessage.simTime
declaration
and IWorldEvent.getSimTime()
/ IWorldChangeEvent.getSimTime()
implementation.VisibilityLocation
s.InitedMessage
is received.
CTF.isEnemyFlagHome()
.
CTF.isOurFlagHome()
.
Raycasting.allRaysInitialized
flag to true if all rays has been initialized.
UT2004PathAutoFixer.badLinks
count has been increased, decide whether to remove the link from the graph.
UT2004Analyzer.stopAgent()
and UT2004Analyzer.killAgent()
to clean up stuff (stops observers).
UT2004AStar.findPath(NavPoint, NavPoint)
to implement IPathPlanner.computePath(Object, Object)
interface.
UT2004AnalyzerObserver.startAgent()
after InitializeObserver
command
is sent to configure the observer instance.
UT2004AnalyzerFullObserver.startAgent()
after InitializeObserver
command
is sent to configure the observer instance.
UT2004AnalyzerObserver.startAgent()
after InitializeObserver
command
is sent to configure the observer instance.
ICustomControlMessage
implementation interpreting ControlMessageType
, ControlMessageField
and ControlMessageSimType
.ICustomControlMessage
.ControlMessages
to read ControlMessage
out of IWorldView
translating them into ICustomControlMessage
that are IWorldChangeEventInput.notifyImmediately(cz.cuni.amis.pogamut.base.communication.translator.event.IWorldChangeEvent)
re-entered into the same IWorldView
.IWorldView
of the bot.
ItemPickedUp
listener.UnrealUtils.ONE_DEGREE_IN_UNREAL_DEGREES
ItemType
and ItemDescriptor
providing
an easy way to obtain item descriptors for various items in UT2004.
IUT2004PathExecutor.extendPath(List)
.
UT2004PFGoal
to define START-NODE (from) and TARGET-NODE (to) for the A-Star, using
standard 3D-Euclidian heuristic and customized 'mapView'.
UT2004PFGoal
to define START-NODE (from) and TARGET-NODE (to) for the A-Star, using
standard 3D-Euclidian heuristic.
IUT2004BotController.botFirstSpawn(GameInfo, ConfigChange, InitedMessage, Self)
as a hook for Pogamut's core developers
to finalize initialization of various modules.
shared
field.
Jump.setDelay(Double)
) if full double jump is needed.
Jump.setForce(Double)
if full double jump is needed.
Jump.setForce(Double)
if full jump is needed.
IPathPlanner
using NavPoint
s), you may use it to find paths inside the environment wihtout
waiting for round-trip of GetPath
command and PathList
s response from UT2004.
GameRestart
message with GameRestarted.isFinished()
is received.
GameRestart
message with GameRestarted.isFinished()
is received.
GameRestart
message with GameRestarted.isStarted()
is received.
GameRestart
message with GameRestarted.isStarted()
is received.
cz.cuni.amis.pogamut.ut2004.bot.commands.Action
command
module.
WeaponPref
for actually used weapon.
WeaponPref
for actually used weapon.
IUT2004GetBackToNavGraph
object that is being used by this IUT2004Navigation
.
UT2004BotModuleController.navigation
without fear of catastrophe.
NavPointNeighbourLink
, value == how many times bot failed to navigate through the link.
UT2004Bot
class that is managing life-cycle of the bot.
AgentStats.isObserver()
.
Player
object of the player the bot has bumped into (if it was a bot).
cz.cuni.amis.pogamut.ut2004.bot.commands.Communication
command module.
cz.cuni.amis.pogamut.ut2004.bot.commands.ConfigureCommands
command module.
IUT2004Navigation.setContinueTo(ILocated)
.
UT2004Bot#AbstractUT2004Bot(IAgentId, IComponentBus, IAgentLogger, IVisionWorldView, IAct, IUT2004BotInitialization)
.
NavPoint
that are NOT visible according to 'column' (column[key] == FALSE, locations.get(key) included if NavPoint).
NavPoint
that are not visible from "loc".
NavPoint
that are not visible from "loc".
NavPoint
that are not visible from any 'enemies'.
NavPoint
that are not visible from any 'locs'.
VisibilityLocation
that are NOT visible according to 'column' (column[key] == FALSE, locations.get(key) included).
VisibilityLocation
that are not visible from "loc".
VisibilityLocation
that are not visible from "loc".
VisibilityLocation
that are not visible from any 'enemies'.
VisibilityLocation
that are not visible from any 'locs'.
NavPointNeighbourLink
the bot is currently running over.
GameRestarted
.
BeginMessage
s).
WeaponDescriptor
for a given inventory UnrealId
of the weapon.
FlagInfo
that describes ENEMY-team flag.
UT2004AnalyzerObserver.getOutputFilePath()
.
UT2004AnalyzerObserver.getOutputFilePath()
.
GameInfo
message.
NavPoint
that are not visible FROM CURRENT BOT LOCATION.
VisibilityLocation
that are not visible FROM BOT CURRENT LOCATION.
ImprovedShooting
.
System.currentTimeMillis()
.
System.currentTimeMillis()
.
UnrealUtils.UT2004_TIME_SPEED
* 1 seconds).
UnrealUtils.UT2004_TIME_SPEED
* 1 seconds).
Items
module.
ItemType.Category
) your bot has collected so far.
ItemType
) your bot has collected so far (in total).
UnrealId
of the weapon.
System.currentTimeMillis()
when the bot changed the weapon for the last time.
StopShooting
command.
UT2004Navigation.getCurrentTarget()
before
another UT2004Navigation.navigate(ILocated)
or UT2004Navigation.navigate(Player)
was called.
Item
we previously tried to get to.
UT2004Navigation.getCurrentTargetPlayer()
before
another UT2004Navigation.navigate(ILocated)
or UT2004Navigation.navigate(Player)
was called.
cz.cuni.amis.pogamut.ut2004.bot.commands.AdvancedLocomotion
command module.
VisibilityMatrix
that is neede for custom advanced computation.
FlagInfo
that describes MY-team flag.
IAgentId
of the bots.
IAgentId
of the bots.
NavPointNeighbourLink
, this is NEVER NULL.
NavPointNeighbourLink
, may be null.
NavPoint
instance for a given location.
NavPointNeighbourLink.getFromNavPoint()
, this is NEVER NULL.
NavPointNeighbourLink.getToNavPoint()
, this is NEVER NULL.
VisibilityLocation
to 'located'.
NavPoint
to 'loc'.
NavPoint
against 'from' for 'target'.
NavPoint
for BOT where to hide from 'enemy'.
VisibilityLocation
entry to 'located'.
VisibilityLocation
index to 'located'.
VisibilityLocation
for 'locs'.
NavLinkPair
to current bot position.
NavLinkPair
to some 'target'.
NavPoint
to current bot position.
NavPoint
to current bot position no further than 'maxDistance' from the bot.
NavPoint
to some 'target'.
NavPoint
to some 'target' no further than 'maxDistance' from the bot.
VisibilityLocation
to 'located'.
NavPoint
to current bot's location.
NavPoint
to 'located' present in the matrix, this should equal (== 99.99%) to nearest navpoint in the map.
NavPoint
to BOT CURRENT LOCATION present in the matrix, this should equal (== 99.99%) to nearest navpoint (to bot) in the map.
VisibilityLocation
to BOT CURRENT LOCATION.
VisibilityLocation
to 'located' present in matrix.
File
for a given 'pathToFile'.
AgentStats.startOutput(String)
or AgentStats.startOutput(String, boolean)
.
IUT2004PathExecutor
object that is being used by this IUT2004Navigation
.
Game.getMapName()
.".
NavigationGraphBuilder.getMapName()
.".
Game.getMapName()
.".
ItemType
for a weapon.
IUT2004RunStraight
object that is being used by this IUT2004Navigation
.
ItemType
for a weapon.
Self
object.
cz.cuni.amis.pogamut.ut2004.bot.commands.AdvancedShooting
command module.
cz.cuni.amis.pogamut.ut2004.bot.commands.SimpleRayCasting
command module.
Items.isPickupSpawned(Item)
to return all items that are believed to
be currently spawned.
Items.isPickupSpawned(Item)
to return all items of 'type' that are believed to
be currently spawned.
Items.isPickupSpawned(Item)
to return all items belonging to a specific 'category' that are believed to
be currently spawned.
Items.isPickupSpawned(Item)
to return all items belonging to a specific 'group' that are believed to
be currently spawned.
NavPoint
that are visible according to 'column' (column[key] == TRUE, locations.get(key) included if NavPoint).
NavPoint
that are visible from "loc".
NavPoint
that are visible FROM CURRENT BOT LOCATION.
NavPoint
that are visible from "loc".
VisibilityLocation
that are visible according to 'column' (column[key] == TRUE, locations.get(key) included).
VisibilityLocation
that are visible from "loc".
VisibilityLocation
that are visible FROM CURRENT BOT LOCATION.
VisibilityLocation
that are visible from "loc".
Weapon
instance for given 'weaponType' if the bot posses it.
WeaponDescriptor
for a given 'weaponType' (if it is not a weapon, returns null).
UnrealId
of the weapon the bot has inside its inventory (if the bot does not have
it, returns null).
UnrealId
of the weapon the bot has inside its inventory (if the bot does not have
it, returns null).
Weaponry.hasWeaponAmmo(ItemType)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
ControlMessage.getType()
via CustomMessageType
.
Have every relevant field (that should be linked to some ControlMessage
field) annotated with ControlMessageField
Have simType field of 'long' type annotated with ControlMessageSimType
Declare public parameter-less constructor.
You can use BaseCustomControlMessage
as the ancestor for all ICustomControlMessage
implementations.Weapon
/ / WeaponPrefs
you want to shoot.NavigationGraphHelper.MapPointListObtainedListener
.
UT2004Server.reset()
.
UT2004Bot
before the GameBots2004 greets the bot even before
IUT2004BotController.prepareBot(UT2004Bot)
method.
UT2004BotModuleControllerNew#listenerRegistrator
and calls AnnotationListenerRegistrator.addListeners()
method
to probe all declared methods for event-annotation presence.
UT2004BotModuleControllerNew#pathPlanner
, UT2004BotModuleController.fwMap
and UT2004BotModuleControllerNew#pathExecutor
.
DistanceUtils
methods to filter items.
NavigationGraphBuilder
is auto prefixing all navpoint ids with current map name.
FloydWarshallMap.setEnabled(boolean)
for more documentation.
CTF.isOurFlagHeld()
.
UT2004GetBackToNavGraph.isOnNavGraph()
true).
NavLinkPair
contains (as either end) 'navPoint'.
NavLinkPair
contains (as either end) 'navPoint'.
GameRestarted
? Default: TRUE.
IUT2004PathExecutor
, IUT2004GetBackToNavGraph
or IUT2004RunStraight
.
NavPoint
.
CTF.isEnemyFlagHeld()
.
UT2004Navigation
is currently using IUT2004PathExecutor
to follow the path.
UT2004Navigation
is currently using UT2004Navigation.runStraight
to get to player by running straight to it/him/her.
BeginMessage
in order to have all time-vars initialized
so we may collect all stats.
UT2004Navigation
is currently trying to get back to nav using IUT2004GetBackToNavGraph
.
ItemType
and ItemDescriptor
providing
an easy way to obtain item descriptors for various items in UT2004.EndMessage
listener.ItemPickedUp
listener.ItemType.Category
the bot has collected.
ItemDescriptor
.IUT2004AnalyzerObserver
agent onto
every bot inside UT2004 game sniffing info about the bot.IPathExecutor
and UT2004PathExecutor
documentation, do it now.EventListener
, ObjectClassEventListener
,
ObjectClassListener
, ObjectEventListener
and ObjectListener
annotations and automatically registers
them as listeners on a specific events.
VisibilityCreator
, connects it to the localhost:3001 (localhost GB2004 server connection)
and calls VisibilityCreator.createAndSave(File)
method.
UT2004PathAutoFixer
bans some navpoint or you use NavigationGraphBuilder
, etc.
IUT2004Server
implementors when the map change fails.VisibilityLocation
s on one NavPointNeighbourLink
.
ImprovedShooting.setChangeWeaponCooldown(long)
).
NavigationGraphBuilder.ExistingNavPointEdgeBuilder.createEdge()
.
NavPoint
instance, if navpoint of specified id is not found, an exception is thrown.
FloydWarshallMap.enabled
.
IAgentId
, see IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentId
, see IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentId
, see IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentId
, see IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentId
, see IAgentParameters.assignDefaults(IAgentParameters)
.
UT2004PathExecutor
to continue the navigation of the bot
inside the UT2004.
UT2004PathExecutor
for path-following and FloydWarshallMap
for path planning resulting in unified class that can solely handle navigation of the bot within the environment.
NavigationGraphBuilder.ExistingNavPointModifier.createEdge()
,
NavigationGraphBuilder.ExistingNavPointModifier.createEdgeTo(String)
, NavigationGraphBuilder.ExistingNavPointModifier.modifyEdgeTo(String)
methods.NavPoint
and NavPointNeighbourLink
to your current location.MapPointListObtained
listener.NavPointNeighbourLink
.NavLinkPair
in the map.
NavPoint.getId()
Value: set of link (pairs) that either originate or ends in the corresponding navpoint, i.e.
NavPoint
s from the IWorldView
.NavPoint
s out of IWorldView
.
UT2004BotFactory
for agent construction.
IAgentId
using MultipleUT2004BotRunner.name
and SocketConnectionAddress
using MultipleUT2004BotRunner.host
and MultipleUT2004BotRunner.port
.
IAgentId
using UT2004AnalyzerRunner.name
and SocketConnectionAddress
using UT2004AnalyzerRunner.host
and UT2004AnalyzerRunner.port
.
IAgentId
using UT2004BotRunner.name
and SocketConnectionAddress
using UT2004BotRunner.host
and UT2004BotRunner.port
.
IAgentId
using UT2004ObserverRunner.name
and SocketConnectionAddress
using UT2004ObserverRunner.host
and UT2004ObserverRunner.port
.
IAgentId
using UT2004ServerRunner.name
and SocketConnectionAddress
using UT2004ServerRunner.host
and UT2004ServerRunner.port
.
UT2004PathExecutor
reports that new path has been received and the IUT2004PathNavigator#navigate()
is about to be called in near future.
WeaponPrefsRange
, these weapon will be used when the target is at "maxDistance" afar.
ItemDescriptor
).ItemType.Category#OTHER
.UT2004AnalyzerObserver#observerFile
.
AgentStats.outputFile
is not null, was initialized by AgentStats.startOutput(String)
or AgentStats.startOutput(String, boolean)
).
UT2004PathExecutor.extendPath(List)
, how many OLD (already passed by elements) should be left in the merged path.
IUT2004PathNavigator.newPath(List)
and set the path into the GB2004 via SetRoute
.
Requests.getLastPong()
to see the results.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
IAgentParameters.assignDefaults(IAgentParameters)
.
UT2004Bot
before the GameBots2004 greets the bot.
Injector
.
Level.WARNING
here so the bot won't log much.
IncomingProjectile
objects within worldview.UnrealUtils.ONE_RAD_IN_UNREAL_DEGREES
AutoTraceRay
that is being utilized).AutoTraceRay
that is being utilized).
NavigationGraphBuilder
.
UT2004Bot.botDisconnectorThread
as a Runtime.removeShutdownHook(Thread)
and nullify the field.
LinkFlag.DOOR
flag from edge flags.
LinkFlag.FLY
flag from edge flags.
LinkFlag.FORCED
flag from edge flags.
LinkFlag.JUMP
flag from edge flags.
LinkFlag.LADDER
flag from edge flags.
LinkFlag.PLAYERONLY
flag from edge flags.
LinkFlag.PROSCRIBED
flag from edge flags.
LinkFlag.SPECIAL
flag from edge flags.
LinkFlag.SWIM
flag from edge flags.
LinkFlag.WALK
flag from edge flags.
UT2004PathExecutor
reports that execution of current path has been terminated - clean up your internal data
structure and prepare to navigate the bot along the new path in the future.
AgentStats.getCurrentMatchTime()
> 0).
AgentStats.getCurrentMatchTime()
(use AgentStats.resetMatchTime()
for that purpose separately).
Self
object that is lazy-initialized inside AbstractUT2004PathNavigator.self
.
ICustomControlMessage
implementation interpreting ControlMessageType
, ControlMessageField
and ControlMessageSimType
.IAgent.stop()
and IAgent.start()
.
UT2004Bot
instance that the navigator should navigate.
NavPointNeighbourLink.getCollisionH()
.
NavPointNeighbourLink.getCollisionR()
.
LinkFlag.DOOR
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
NavPointNeighbourLink.isForceDoubleJump()
.
CTF.GameInfoListener
.
IPathExecutorHelper
who is using the navigator, i.e., are calling its
IUT2004PathNavigator#navigate(Self)
and IUT2004PathNavigator.reset()
methods.
LinkFlag.FLY
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
LinkFlag.FORCED
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
NavPoint.getId()
.
UT2004BotName.setInfo(String, String)
(null, value), i.e., assigning 'value' to 'NULL KEY'.
LinkFlag.JUMP
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
LinkFlag.LADDER
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
NavPoint.getLocation()
.
GameRestarted
event.
IAgentId
of the bots.
IAgentId
of the bots.
NavPointNeighbourLink.getNeededJump()
.
UnrealId
that is present for instance in Self.getId()
)
of the bot that is going to be observed by newly created observer.
UnrealId
that is present for instance in Self#getId()
)
of the bot that is going to be observed by newly created observer.
UT2004AnalyzerObserver
in
order to sniff info about connected bots.
LinkFlag#PLAYERONLYK
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
LinkFlag.PROSCRIBED
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
LinkFlag.SPECIAL
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
LinkFlag.SWIM
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
IWorldObjectUpdatedEvent
.
NavPointNeighbourLink.getToNavPoint()
.
NavPointNeighbourLink.getToNavPoint()
.
NavigationGraphBuilder.isUsed()
.
LinkFlag.WALK
flag into NavigationGraphBuilder.NewNavPointEdgeBuilder.flags
of the new navpoint edge,
corresponds to NavPointNeighbourLink.getFlags()
.
ItemDescriptor
).ItemType.Category#SHIELD
.WeaponPref.getWeapon()
primary/secondary (as specified) at 'target'.
WeaponPref.getWeapon()
primary/secondary (as specified) at 'target'.
Weapon.getType()
primary/secondary (as specified) at 'target'.
Weapon.getType()
primary/secondary (as specified) at 'target'.
WeaponPref.getWeapon()
primary/secondary (as specified) at 'target'.
WeaponPref.getWeapon()
primary/secondary (as specified) at 'target'.
Weapon.getType()
primary/secondary (as specified) at 'target'.
Weapon.getType()
primary/secondary (as specified) at 'target'.
AdvancedShooting.shootPrimary(UnrealId)
.
AdvancedShooting.shootPrimaryCharged(UnrealId, double)
.
AdvancedShooting.shootSecondary(UnrealId)
.
AdvancedShooting.shootSecondaryCharged(UnrealId, double)
.
UT2004AnalyzerObserverParameters.getObservedAgentId()
that is obtained from
the UT2004AnalyzerFullObserver.getParams()
.
UT2004AnalyzerObserverParameters.getObservedAgentId()
that is obtained from
the UT2004AnalyzerObserver.getParams()
.
AgentStats.outputFile
and AgentStats.fileToOutput
.
SetRoute
whenever switch occurs and the rest of the path is greater than
32 path elements.
DisconnectBot
commands to GB2004, eats up all exceptions.
UCCWrapper
to parse out information needed for successfull UCC startup.EndMessage
is received, writes another line into the UT2004AnalyzerObsStats#outputFile
.
UT2004Navigation.getBackToNavGraph
.
IAgentId
and ISocketConnectionAddress
.UT2004AgentParameters.setAgentId(IAgentId)
, UT2004AgentParameters.setWorldAddress(IWorldConnectionAddress)
.
IUT2004Server
factory.UT2004AnalyzerObserver
, but it may output ALL MESSAGES for a given bot.UT2004AnalyzerParameters.setAgentId(IAgentId)
, UT2004AnalyzerParameters.setWorldAddress(IWorldConnectionAddress)
,
UT2004AnalyzerParameters#setObserverModule(UT2004ObserverModule)
.
UT2004PFMap
with no agent-specific view on the map, IPFMapView.DefaultView
is used.
UT2004PFMap
with no agent-specific view on the map, IPFMapView.DefaultView
is used.
IPFMapView.DefaultView
is used.
IPFMapView.DefaultView
is going to be used.
IPathFuture
implementation that is using UT2004 inner AStar algorithm for finding the path inside UT2004
environment.IUT2004Bot
factory.UT2004CommunicationModule
for the purpose of UT2004Bot
instantiation.UT2004Bot
name in the game allowing to append "extra infos" to it.UT2004BotParameters.setAgentId(IAgentId)
, UT2004BotParameters.setWorldAddress(IWorldConnectionAddress)
, UT2004BotParameters#setTeam(int)
.
RemoteGuiceAgentModule
for the purpose of UT2004 communication specification.UT2004Observer
class.IUT2004Observer
factory.UT2004CommunicationModule
for the purpose of UT2004Observer
instantiation.UT2004PathAutoFixer.REAMOVE_EDGE_AFTER_N_FAILURES_DEFAULT
times to walk through it.
AStar
or FloydWarshall
.UT2004Server
class.IUT2004Server
factory.UT2004CommunicationModule
for the purpose of UT2004Server
instantiation.IStuckDetector
that watches whether the bot moves at all.UnrealUtils.ONE_UNREAD_DEGREE_IN_RAD
Shoot
command
has been effective for the bot.
UT2004Bot.getWorldView()
.
|
||||||||||
PREV NEXT | FRAMES NO FRAMES |