name.milesparker.epi.contact
Class Epidemic

java.lang.Object
  extended by org.ascape.model.AscapeObject
      extended by org.ascape.model.Agent
          extended by org.ascape.model.LocatedAgent
              extended by org.ascape.model.Cell
                  extended by org.ascape.model.CellOccupant
                      extended by org.ascape.model.Scape
                          extended by name.milesparker.epi.contact.Epidemic
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, java.util.EventListener, ControlListener, ScapeListener, Location, Node, SpaceContext, HasName, RandomFunctions, IGraphicsAdapted
Direct Known Subclasses:
Epidemic3D

public class Epidemic
extends Scape
implements IGraphicsAdapted

Epidemic Java Implementation. A simple model of epidemic dynamics. We define individual agents with different disease states. The progression of disease moves from succeptible to exposed to infectious (either symptomatic or asymptomatic) to some outcome state. Agents can transmit infection to their immediate neighbors. For some background on the general approach, see Joshua M. Epstein. "Generative Social Science". 2006. Princeton. Copyright 2009, Miles Parker. Released under Eclipse Public License. All uses should be attributed. Generated by AMF for model: EpidemicContact.metaabm in project: org.eclipse.amp.amf.examples.escape

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.ascape.model.Scape
Scape.ConditionalIterator, Scape.DrawFeatureObservable
 
Field Summary
 
Fields inherited from class org.ascape.model.Scape
AGENT_ORDER, agentsPerIteration, ALL_AGENTS, CLEAR_STATS_RULE, COLLECT_STATS_RULE, COMPARE_ORDERED_QUALIFIERS, COMPLETE_TOUR, copyrightAndCredits, CREATE_GRAPHIC_VIEW_RULE, CREATE_RULE, CREATE_SCAPE_RULE, CREATE_VIEW_RULE, EXECUTE_RULES_RULE, INITIAL_RULES_RULE, initialRules, prototypeAgent, REPEATED_DRAW, RULE_ORDER, version
 
Fields inherited from class org.ascape.model.CellOccupant
PLAY_HOST_RULE, RANDOM_WALK_AVAILABLE_RULE
 
Fields inherited from class org.ascape.model.Cell
CALCULATE_NEIGHBORS_RULE, neighbors, PLAY_NEIGHBORS_RULE, PLAY_RANDOM_NEIGHBOR_RULE
 
Fields inherited from class org.ascape.model.LocatedAgent
agentSize, coordinate, MOVE_RANDOM_LOCATION_RULE, RANDOM_WALK_RULE, thisUpdate
 
Fields inherited from class org.ascape.model.Agent
DEATH_RULE, FISSIONING_RULE, FORCE_DIE_RULE, FORCE_FISSION_RULE, FORCE_MOVE_RULE, INITIALIZE_RULE, ITERATE_AND_UPDATE_RULE, ITERATE_RULE, METABOLISM_RULE, MOVEMENT_RULE, PLAY_OTHER, UPDATE_RULE
 
Fields inherited from class org.ascape.model.AscapeObject
ARBITRARY_SEED, name, PLATFORM_DEFAULT_COLOR, scape
 
Constructor Summary
Epidemic()
          Constructs a new Epidemic.
 
Method Summary
 void calculateTimeStep(int timeStep)
          A simple model of epidemic dynamics.
 java.lang.Object clone()
          Clones the agent, ensuring that a unique id is assigned.
protected  void create2DViews()
           
protected  void createChartViews()
           
 void createGraphicViews()
          Creates UI views for Epidemic.
protected  void createGraphViews()
           
protected  Individual createIndividualPrototype()
          Create an instance of Individual that will be used to populate the individualScape.
 void createScape()
          Creates the members of Epidemic.
 double getCaseMortalityRate()
          Gets the Case Mortality Rate property for Epidemic.
 java.util.List<IAgentChild> getChildren()
           
 Scape getCity()
          Gets the City property for Epidemic.
 int[] getCityDimensions()
          Gets the Dimensions property for City.
 int getCityHeight()
          Gets the Height property for City.
 int getCityWidth()
          Gets the Width property for City.
 Scape getContacts()
          Gets the Contacts property for Epidemic.
 IGraphicsAdapter getGraphicsAdapter()
           
 int getIndividualCount()
          Gets the Individual Count property for Epidemic.
 Scape getIndividualScape()
          Returns the Scape containing Individuals.
 double getInitialInfectionProbability()
          Gets the Initial Infection Probability property for Epidemic.
 double getMaxContactTransmissionProbability()
          Gets the Max Contact Transmission Probability property for Epidemic.
 int getMaxPeriodAsymptomInfection()
          Gets the Max Period Asymptom Infection property for Epidemic.
 int getMaxPeriodExposure()
          Gets the Max Period Exposure property for Epidemic.
 int getMaxPeriodSymptomInfection()
          Gets the Max Period Symptom Infection property for Epidemic.
 double getMinContactTransmissionProbability()
          Gets the Min Contact Transmission Probability property for Epidemic.
 int getMinPeriodAsymptomInfection()
          Gets the Min Period Asymptom Infection property for Epidemic.
 int getMinPeriodExposure()
          Gets the Min Period Exposure property for Epidemic.
 int getMinPeriodSymptomInfection()
          Gets the Min Period Symptom Infection property for Epidemic.
 double getMovementProbability()
          Gets the Movement Probability property for Epidemic.
 java.lang.String getName()
           
 int getPeriodsperDay()
          Gets the Periods per Day property for Epidemic.
 long getUID()
           
static void main(java.lang.String[] args)
           
 void scapeSetup(ScapeEvent scapeEvent)
           
 void setCaseMortalityRate(double _caseMortalityRate)
          Sets the Case Mortality Rate property for Epidemic.
 void setCity(Scape _city)
          Sets the City property for Epidemic.
 void setCityDimensions(int[] _cityDimensions)
          Sets the Dimensions property for City.
 void setCityHeight(int _cityHeight)
          Sets the Height property for City.
 void setCityWidth(int _cityWidth)
          Sets the Width property for City.
 void setContacts(Scape _contacts)
          Sets the Contacts property for Epidemic.
 void setIndividualCount(int _individualCount)
          Sets the Individual Count property for Epidemic.
 void setInitialInfectionProbability(double _initialInfectionProbability)
          Sets the Initial Infection Probability property for Epidemic.
 void setMaxContactTransmissionProbability(double _maxContactTransmissionProbability)
          Sets the Max Contact Transmission Probability property for Epidemic.
 void setMaxPeriodAsymptomInfection(int _maxPeriodAsymptomInfection)
          Sets the Max Period Asymptom Infection property for Epidemic.
 void setMaxPeriodExposure(int _maxPeriodExposure)
          Sets the Max Period Exposure property for Epidemic.
 void setMaxPeriodSymptomInfection(int _maxPeriodSymptomInfection)
          Sets the Max Period Symptom Infection property for Epidemic.
 void setMinContactTransmissionProbability(double _minContactTransmissionProbability)
          Sets the Min Contact Transmission Probability property for Epidemic.
 void setMinPeriodAsymptomInfection(int _minPeriodAsymptomInfection)
          Sets the Min Period Asymptom Infection property for Epidemic.
 void setMinPeriodExposure(int _minPeriodExposure)
          Sets the Min Period Exposure property for Epidemic.
 void setMinPeriodSymptomInfection(int _minPeriodSymptomInfection)
          Sets the Min Period Symptom Infection property for Epidemic.
 void setMovementProbability(double _movementProbability)
          Sets the Movement Probability property for Epidemic.
 void setPeriodsperDay(int _periodsperDay)
          Sets the Periods per Day property for Epidemic.
 void startSimulationAgentChild(int timeStep)
          A simple model of epidemic dynamics.
 
Methods inherited from class org.ascape.model.Scape
add, add, add, add, addAll, addDrawFeature, addInitialRule, addInitialRule, addRule, addRule, addScapeListener, addScapeListenerFirst, addStatCollector, addStatCollectorIfNew, addStatCollectors, addView, addView, addView, addViews, addViews, addViews, assignParameters, assignParameters, calculateDistance, calculateDistance, clear, construct, contains, containsAll, contentsToString, countWithin, createNonGraphicViews, createSelfView, createViews, createViews, environmentQuiting, execute, execute, executeOnMembers, executeOnMembers, executeOnMembers, executeOnMembers, executeOnRoot, executeOnRoot, find, findMaximum, findMaximum, findMaximumWithin, findMinimum, findMinimum, findMinimumWithin, findNearest, findRandom, findRandom, findRandom, findRandomCoordinate, findWithin, get, get, getAgentsPerIteration, getAllScapes, getCollectStats, getData, getDescription, getDrawFeatures, getDrawFeaturesObservable, getEnvironment, getExecutionOrder, getExecutionStyle, getExtent, getHome, getHTMLDescription, getInitialRules, getIteration, getIterationsPerRedraw, getModel, getPausePeriod, getPeriod, getPeriodDescription, getPeriodName, getPrototype, getPrototypeAgent, getRoot, getRules, getRunner, getScapeListeners, getSize, getSpace, getStartPeriod, getStatCollectors, getStopPeriod, getSuperScape, getThreadCount, getUIEnvironment, getUserEnvironment, hasWithin, initialize, isAllViewsUpdated, isAutoCreate, isCellsRequestUpdates, isEmpty, isGraphic, isHome, isLifeOfScape, isListenersAndMembersCurrent, isMembersActive, isMutable, isPaused, isPeriodic, isPopulateOnCreate, isRoot, isRunning, isScapeListener, isSerializable, isStartOnOpen, isUpdateNeeded, isValidPeriod, isViewSelf, iterator, listenerOrMemberUpdated, listenerUpdated, memberUpdated, moveAway, moveToward, newAgent, newAgent, notifyViews, notifyViews, populate, remove, remove, removeAll, removeDrawFeature, removeScapeListener, respondControl, respondDrawFeature, retainAll, retrieveAllAccessors, retrieveAllAccessorsOrdered, retrieveModelAccessorsOrdered, save, save, scapeAdded, scapeClosing, scapeDeserialized, scapeInitialized, scapeIterated, scapeIterator, scapeIterator, scapeIterators, scapeNotification, scapeRandomIterator, scapeRemoved, scapeStarted, scapeStopped, search, searchMax, searchMin, set, set, set, set, setAgentsPerIteration, setAutoCreate, setAutoRestart, setCellsRequestUpdates, setCollectStats, setCollectStats, setDescription, setEarliestPeriod, setExecutionOrder, setExecutionStyle, setExtent, setExtent, setExtent, setHome, setHTMLDescription, setInitialRules, setIterationsPerRedraw, setIterationsPerRedraw, setLatestPeriod, setMembersActive, setPaused, setPausePeriod, setPeriodic, setPeriodName, setPopulateOnCreate, setPrototypeAgent, setRunner, setRunning, setSerializable, setSize, setSpace, setStartOnOpen, setStartPeriod, setStopPeriod, setSuperScape, setThreadCount, setViewSelf, size, toArray, toArray, toString, withinIterator
 
Methods inherited from class org.ascape.model.CellOccupant
die, findAvailableNeighbors, findNearest, findNearest, findNearest, findNearest, findNearest, findNeighbors, findNeighborsOnHost, findRandomAvailableNeighbor, findRandomNeighbor, findRandomNeighborOnHost, findWithin, findWithin, findWithin, getCoordinate, getHostCell, getHostScape, leave, moveAway, moveTo, moveToRandomLocation, moveToward, playNeighbors, playRandomNeighbor, randomWalk, randomWalkAvailable, setHostCell, setHostScape
 
Methods inherited from class org.ascape.model.Cell
calculateNeighbors, countNeighbors, findOccupants, findRelative, getDistance, getNeighbors, getNeighbors, getNetwork, getOccupant, hostedCondition, isAvailable, removeOccupant, setNeighbors, setNeighborsList, setNetwork, setOccupant
 
Methods inherited from class org.ascape.model.LocatedAgent
calculateDistance, calculateDistance, countWithin, countWithin, countWithin, findMaximumWithin, findWithin, getAgentSize, hasWithin, hasWithin, hasWithin, isUpdateNeeded, moveAway, moveAway, moveTo, moveToward, moveToward, requestUpdate, requestUpdateNext, setAgentSize, setCoordinate
 
Methods inherited from class org.ascape.model.Agent
clearDeleteMarker, death, deathCondition, execute, execute, fission, fissionCondition, fissioning, getColor, getColor, getImage, getImage, getPlatformColor, isDelete, isInitialized, iterate, markForDeletion, metabolism, move, movement, movementCondition, play, scapeCreated, setInitialized, setScape, update
 
Methods inherited from class org.ascape.model.AscapeObject
diffDeep, diffDeep, diffDeepBFS, diffDeepDFS, diffDeepValidate, diffDeepVisit, equalsDeep, equalsDeep, equalsDeep, getComparisonStream, getRandom, getRandomSeed, getScape, randomInRange, randomInRange, randomIs, randomToLimit, reseed, setComparisonStream, setName, setRandom, setRandomSeed
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
equals, hashCode
 
Methods inherited from interface org.ascape.model.event.ScapeListener
getScape
 
Methods inherited from interface org.ascape.model.space.Location
clearDeleteMarker, isDelete, markForDeletion, setCoordinate
 

Constructor Detail

Epidemic

public Epidemic()
Constructs a new Epidemic.

Method Detail

getChildren

public java.util.List<IAgentChild> getChildren()

getUID

public long getUID()


clone

public java.lang.Object clone()
Clones the agent, ensuring that a unique id is assigned.

Specified by:
clone in interface ScapeListener
Specified by:
clone in interface Location
Overrides:
clone in class Scape
Returns:
the object

createIndividualPrototype

protected Individual createIndividualPrototype()
Create an instance of Individual that will be used to populate the individualScape. Overide to customize the prototype, for example to change the views created for a member scape.


createScape

public void createScape()
Creates the members of Epidemic.

Overrides:
createScape in class Scape
See Also:
Scape.setPopulateOnCreate(boolean)

createGraphicViews

public void createGraphicViews()
Creates UI views for Epidemic.

Overrides:
createGraphicViews in class Scape

scapeSetup

public void scapeSetup(ScapeEvent scapeEvent)

Specified by:
scapeSetup in interface ScapeListener
Overrides:
scapeSetup in class Scape
Parameters:
scapeEvent - the associated scape event

getIndividualScape

public Scape getIndividualScape()
Returns the Scape containing Individuals.


createChartViews

protected void createChartViews()


create2DViews

protected void create2DViews()


createGraphViews

protected void createGraphViews()


getGraphicsAdapter

public IGraphicsAdapter getGraphicsAdapter()

Specified by:
getGraphicsAdapter in interface IGraphicsAdapted

main

public static void main(java.lang.String[] args)


startSimulationAgentChild

public void startSimulationAgentChild(int timeStep)
A simple model of epidemic dynamics. We define individual agents with different disease states. The progression of disease moves from succeptible to exposed to infectious (either symptomatic or asymptomatic) to some outcome state. Agents can transmit infection to their immediate neighbors. For some background on the general approach, see Joshua M. Epstein. "Generative Social Science". 2006. Princeton. Copyright 2009, Miles Parker. Released under Eclipse Public License. All uses should be attributed.


calculateTimeStep

public void calculateTimeStep(int timeStep)
A simple model of epidemic dynamics. We define individual agents with different disease states. The progression of disease moves from succeptible to exposed to infectious (either symptomatic or asymptomatic) to some outcome state. Agents can transmit infection to their immediate neighbors. For some background on the general approach, see Joshua M. Epstein. "Generative Social Science". 2006. Princeton. Copyright 2009, Miles Parker. Released under Eclipse Public License. All uses should be attributed.


getIndividualCount

public int getIndividualCount()
Gets the Individual Count property for Epidemic.

Returns:
The number of individuals to create.

setIndividualCount

public void setIndividualCount(int _individualCount)
Sets the Individual Count property for Epidemic. The number of individuals to create.

Parameters:
_individualCount - the new Individual Count value

getInitialInfectionProbability

public double getInitialInfectionProbability()
Gets the Initial Infection Probability property for Epidemic.

Returns:
The probability that any given individual will be infected at the beginning of the model run. For example, if this value is .15, and their are 100 individuals in the model, roughly 15 of those individuals will be infected at time 0.

setInitialInfectionProbability

public void setInitialInfectionProbability(double _initialInfectionProbability)
Sets the Initial Infection Probability property for Epidemic. The probability that any given individual will be infected at the beginning of the model run. For example, if this value is .15, and their are 100 individuals in the model, roughly 15 of those individuals will be infected at time 0.

Parameters:
_initialInfectionProbability - the new Initial Infection Probability value

getMinContactTransmissionProbability

public double getMinContactTransmissionProbability()
Gets the Min Contact Transmission Probability property for Epidemic.

Returns:
The minimum probability that proximity to a single neighbor for a single period will result in transmission of infection. At the start of each model run, each individual is assigned a contact transmission probability between the minimum and maximum value. For example, if this value was .08 and the maximum value was 0.12 a given individual could have any value between those two, but the average transmission probability would be around .1. If minium and maximum values are the same, then all individuals will have the same chance of passing along infection to a given neighbor. This value must be between 0.0 and 1.0 and less than or equal to Max Contact transmission Probability.

setMinContactTransmissionProbability

public void setMinContactTransmissionProbability(double _minContactTransmissionProbability)
Sets the Min Contact Transmission Probability property for Epidemic. The minimum probability that proximity to a single neighbor for a single period will result in transmission of infection. At the start of each model run, each individual is assigned a contact transmission probability between the minimum and maximum value. For example, if this value was .08 and the maximum value was 0.12 a given individual could have any value between those two, but the average transmission probability would be around .1. If minium and maximum values are the same, then all individuals will have the same chance of passing along infection to a given neighbor. This value must be between 0.0 and 1.0 and less than or equal to Max Contact transmission Probability.

Parameters:
_minContactTransmissionProbability - the new Min Contact Transmission Probability value

getMaxContactTransmissionProbability

public double getMaxContactTransmissionProbability()
Gets the Max Contact Transmission Probability property for Epidemic.

Returns:
The maximum probability that proximity to a single neighbor for a single period will result in transmission of infection. See Min Contact Probability for more information. Must be a value between 0.0 and 1.0 and greater or equal to Min Contact Transmission Probability.

setMaxContactTransmissionProbability

public void setMaxContactTransmissionProbability(double _maxContactTransmissionProbability)
Sets the Max Contact Transmission Probability property for Epidemic. The maximum probability that proximity to a single neighbor for a single period will result in transmission of infection. See Min Contact Probability for more information. Must be a value between 0.0 and 1.0 and greater or equal to Min Contact Transmission Probability.

Parameters:
_maxContactTransmissionProbability - the new Max Contact Transmission Probability value

getCaseMortalityRate

public double getCaseMortalityRate()
Gets the Case Mortality Rate property for Epidemic.

Returns:
The current probability that death will occur for a given individual as a result of infection. Some number between 0.0 and 1.0.

setCaseMortalityRate

public void setCaseMortalityRate(double _caseMortalityRate)
Sets the Case Mortality Rate property for Epidemic. The current probability that death will occur for a given individual as a result of infection. Some number between 0.0 and 1.0.

Parameters:
_caseMortalityRate - the new Case Mortality Rate value

getPeriodsperDay

public int getPeriodsperDay()
Gets the Periods per Day property for Epidemic.

Returns:

setPeriodsperDay

public void setPeriodsperDay(int _periodsperDay)
Sets the Periods per Day property for Epidemic.

Parameters:
_periodsperDay - the new Periods per Day value

getMinPeriodExposure

public int getMinPeriodExposure()
Gets the Min Period Exposure property for Epidemic.

Returns:
The minimum amount of time from initial exposure to infectious asymptomatic or symptomatic state. 0 or greater.

setMinPeriodExposure

public void setMinPeriodExposure(int _minPeriodExposure)
Sets the Min Period Exposure property for Epidemic. The minimum amount of time from initial exposure to infectious asymptomatic or symptomatic state. 0 or greater.

Parameters:
_minPeriodExposure - the new Min Period Exposure value

getMaxPeriodExposure

public int getMaxPeriodExposure()
Gets the Max Period Exposure property for Epidemic.

Returns:
Maximum time from initial exposure to infectious asymptomatic or symptomatic state. 0 or greater.

setMaxPeriodExposure

public void setMaxPeriodExposure(int _maxPeriodExposure)
Sets the Max Period Exposure property for Epidemic. Maximum time from initial exposure to infectious asymptomatic or symptomatic state. 0 or greater.

Parameters:
_maxPeriodExposure - the new Max Period Exposure value

getMinPeriodAsymptomInfection

public int getMinPeriodAsymptomInfection()
Gets the Min Period Asymptom Infection property for Epidemic.

Returns:
Maximum time spent infected without showing symptoms. 0 or greater.

setMinPeriodAsymptomInfection

public void setMinPeriodAsymptomInfection(int _minPeriodAsymptomInfection)
Sets the Min Period Asymptom Infection property for Epidemic. Maximum time spent infected without showing symptoms. 0 or greater.

Parameters:
_minPeriodAsymptomInfection - the new Min Period Asymptom Infection value

getMaxPeriodAsymptomInfection

public int getMaxPeriodAsymptomInfection()
Gets the Max Period Asymptom Infection property for Epidemic.

Returns:
Maximum time spent infected without showing symptoms. May be zero!

setMaxPeriodAsymptomInfection

public void setMaxPeriodAsymptomInfection(int _maxPeriodAsymptomInfection)
Sets the Max Period Asymptom Infection property for Epidemic. Maximum time spent infected without showing symptoms. May be zero!

Parameters:
_maxPeriodAsymptomInfection - the new Max Period Asymptom Infection value

getMinPeriodSymptomInfection

public int getMinPeriodSymptomInfection()
Gets the Min Period Symptom Infection property for Epidemic.

Returns:
Minimum time spent infected with obvious symptoms. 0 or greater.

setMinPeriodSymptomInfection

public void setMinPeriodSymptomInfection(int _minPeriodSymptomInfection)
Sets the Min Period Symptom Infection property for Epidemic. Minimum time spent infected with obvious symptoms. 0 or greater.

Parameters:
_minPeriodSymptomInfection - the new Min Period Symptom Infection value

getMaxPeriodSymptomInfection

public int getMaxPeriodSymptomInfection()
Gets the Max Period Symptom Infection property for Epidemic.

Returns:
Maximum time spent infected with obvious symptoms. 1 or greater.

setMaxPeriodSymptomInfection

public void setMaxPeriodSymptomInfection(int _maxPeriodSymptomInfection)
Sets the Max Period Symptom Infection property for Epidemic. Maximum time spent infected with obvious symptoms. 1 or greater.

Parameters:
_maxPeriodSymptomInfection - the new Max Period Symptom Infection value

getMovementProbability

public double getMovementProbability()
Gets the Movement Probability property for Epidemic.

Returns:
The chance that an agent will move within a given period. May be any value between 0.0 and 1.0.

setMovementProbability

public void setMovementProbability(double _movementProbability)
Sets the Movement Probability property for Epidemic. The chance that an agent will move within a given period. May be any value between 0.0 and 1.0.

Parameters:
_movementProbability - the new Movement Probability value

getCityDimensions

public int[] getCityDimensions()
Gets the Dimensions property for City.

Returns:
The size of each dimension.

setCityDimensions

public void setCityDimensions(int[] _cityDimensions)
Sets the Dimensions property for City. The size of each dimension.

Parameters:
_cityDimensions - the new Dimensions value

getCityWidth

public int getCityWidth()
Gets the Width property for City.

Returns:
The horizontal extent of the space.

setCityWidth

public void setCityWidth(int _cityWidth)
Sets the Width property for City. The horizontal extent of the space.

Parameters:
_cityWidth - the new Width value

getCityHeight

public int getCityHeight()
Gets the Height property for City.

Returns:
The vertical extent of the space.

setCityHeight

public void setCityHeight(int _cityHeight)
Sets the Height property for City. The vertical extent of the space.

Parameters:
_cityHeight - the new Height value

getCity

public Scape getCity()
Gets the City property for Epidemic.

Returns:

setCity

public void setCity(Scape _city)
Sets the City property for Epidemic.

Parameters:
_city - the new City value

getContacts

public Scape getContacts()
Gets the Contacts property for Epidemic.

Returns:

setContacts

public void setContacts(Scape _contacts)
Sets the Contacts property for Epidemic.

Parameters:
_contacts - the new Contacts value

getName

public java.lang.String getName()

Specified by:
getName in interface SpaceContext
Specified by:
getName in interface HasName
Overrides:
getName in class Scape
Returns:
the name