FAQ

Frequently Asked Questions

Generically doesn't work

I have a question: How / What / When...

Try the Search field in the top right corner. Everything explained to anyone once has been put into the documentation...somewhere...

I don't see many planes...there are no planes taking-off or taxiing...planes disappear only after landing

LiveTraffic can only display traffic reported by the channels you selected. Please take the time to understand the design limitations. Do not compare what you see with LiveTraffic with any other flight tracking service, but only with the ones available to you. Coverage is not related to the size of an airport, but to the number and geographical distribution of ADS-B receivers that volunteers operate to share their data. Different services/channels have different networks of receivers they rely on. Coverage can therefor also change over time if such receivers are added or go out of service. So even if in the past you enjoyed good coverage at some airports, this can change any time!

The list of channels features a column labelled "Check Coverage" with links to where you can check the current live coverage for each channel. Do so if you are missing traffic! I'm 99.9% sure that LiveTraffic displays all that what is available as per the channels you configured in the settings.

If tracking data is limited at your current position, LiveTraffic is limited in what it can do. Approaching planes will try to land, but if tracking data on the ground is missing then they will disappear after stopping. To show planes taking off, LiveTraffic would need some tracking data on the ground. And that is the hardest to come by simply due to physics: A plane's ADS-B signal doesn't travel far when the plane is on the ground. To catch ground traffic data, there need to be receivers very close (<3nm) to the airport.

If you are interested in some more background on how LiveTraffic uses tracking data I recommend this and this FAQs further down.

I don't see any planes! What can I do?

  1. Follow First Steps at a busy airport.

  2. Make sure menu itemPlugins > LiveTraffic > Aircraft displayed is on.

  3. Verify that OpenSky / ADS-B Exchange do have traffic where you are.

  4. Verify that these channels are enabled in your Basic Settings.

  5. Double-check CSL model installation. Do perform the validation recommended in the installation instructions by looking into Log.txt.

  6. If you see yellow labels but no planes you are missing plane models: Go back to CSL model installation. Really do perform the validation recommended in the installation instructions by looking into Log.txt.

  7. Switch logging level to Debug in the Advanced Settings and wait for 10 minutes, then take a look into Log.txt. There should be many lines like

Log.txt (extract)
OpenSky Live Online: Sending HTTP: https://opensky-network.org/api/states/all?lamin=...
OpenSky Live Online: Received #### characters
ADSB Exchange Live Online: Sending HTTP: https://public-api.adsbexchange.com/VirtualRadar/AircraftList.json?lat=...
ADSB Exchange Live Online: Received 7953 characters

If not you might have setup/network problems. Try getting help in the LiveTraffic Support forum or at Discord providing your Debug-level Log.txt.

Where is this Log.txt file you keep talking about?

Right in your main X-Plane folder, next to X-Plane.exe/.app.

And what's a "debug-level" Log.txt file?

The very same Log.txt in X-Plane's main folder, but containing more detailed information. In Advanced Settings change Log Level to "Debug" if you run into problems and want to ask for help in a forum. From that point on LiveTraffic writes fairly detailed infos into Log.txt. Recommended to reset to, say, "Warning" after you problem is solved.

ADSB Exchange Live Online: Channel invalid and disabled - How to reenable?

As of 25-APR-2019 the anonymous public access to ADSBEx data has been discontinued.

  • Version 1.10 of LiveTraffic stopped the ADSBEx channel with messages HTTP response is not OK but 403 and ADSB Exchange Live Online: Channel invalid and disabled after too many errors.

  • Since Version 1.15, if you don't enter an API key, the channel will be set invalid with message ADS-B Exchange: API Key missing. Get one at adsbexchange.com and enter it in Basic Settings.

See this X-Plane forum entry for some background info.

If you have an ADS-B receiver and feed data into the ADS-B Exchange network, then you can request an API key there and enter it into Basic Settings, so that you can enable the use of the ADS-B Exchange channel again.

Why do planes disappear after landing?

If they roll out to a complete stop and then only disappear then this is actually a feature to prevent them from disappearing even earlier. Read here about auto land.

If they disappear the moment they touch down (and there are also no other planes taxiing on the entire airport) then check your Basic Settings, right-hand side: There are two options meant to allow to integrate with plugins for airport traffic. And their job is to hide taxiing planes or planes below a certain height AGL. If any one of these is active LiveTraffic hides planes on the ground.

"Seeing 25, displaying only 2", what does that mean?

When starting up initially LiveTraffic reports on the received data to get an idea what you have to expect. These messages stop after the buffering period while receiving data certainly keeps going. (Check the Plugins > LiveTraffic > Aircraft displayed menu item for an up-to-date number of displayed aircraft.)

"Seeing" in this context means that there was one data point for an aircraft reported by the channels. Channels tend to repeat stale positions for a while before taking them out of the data stream. LiveTraffic certainly needs live data, at least two positions to have a track to fly. If there's lots of stale data then LiveTraffic believes to "see" many planes, but only few have moving data allowing to follow a flight path.

Remember to check coverage in your area before being disappointed of empty airports.

LiveTraffic disappeared...it's no longer in the Plugin menu. What happened?

You Log.txt will tell you, look into it, search for "LiveTraffic"! The following 3 causes are the most often:

  • You don't find the term "LiveTraffic" at all: That means that X-Plane didn't even find the plugin to load at all. Something's wrong with your installation. Make sure there is a LiveTraffic folder with appropriate installation under <X-Plane>/Resources/plugins (so that it didn't get moved or trashed accidently). Basically go back to installations.

  • On Windows, you might be missing the latest required Microsoft C++ redistributable package. Then all what's left in the log is .../Resources/plugins/LiveTraffic/64/win.xpl : Error Code = 126 : The specified module could not be found.Download and install vc_redist.x64.exe.

  • On Mac OS you might have a security issue. Please see the separate FAQ below for details.

  • On Linux you might have a module load issue, most often actually with CURL. Recommended versions and more details are available in the Requirements.

  • Are you still on a beta version? Beta versions are time-limited to make sure beta testers keep updating to latest versions. You were informed with every start about the time limit. And if the limit expires then all what's left from LiveTraffic is the line LiveTraffic <timestamp> FATAL src\LTVersion.cpp:70/CalcBetaVerTimeLimit: BETA-Version limited to <some date in the past> has EXPIRED -> SHUTTING DOWN! in your Log.txt. Go and update to latest version.

FlightModels.prf: Unexpected Version

If you see something like

LiveTraffic 1551304182.7 ERROR src\LTAircraft.cpp:635/ReadFlightModelFile: Config file '.../FlightModels.prf' first line: Unexpected version LiveTraffic 1.0, expected 1.1...trying to continue

in your Log.txt and in the message area then you have probably only updated your LiveTraffic executables in the 64 folder, but not the other files. FlightModels.prf is quite important as it defines parameters of flight modelling. That's why LiveTraffic complains if it expects something newer.

Download LiveTraffic again and make sure to copy all files to your plugins directory.

Linux: Doesn't start, something missing around CURL_OPENSSL_4

Unfortunately, I don't have a Linux environment myself. And even then there are so many flavours out there that it is difficult to give definite answers for all of them.

The only distribution, which seems to work out of the box, is Ubuntu 18.04 (and many distros basing on it). For all others you may run into version conflicts with the CURL library.

Please do check requirements. A couple of tips for Linux are collected there.

And here is a forum thread on Ubuntu 19.04. At the time of writing it has an open end...but a LT version to try.

Mac OS: Doesn't start with security prompts / disallowed by system policy

With MacOS 10.15 Catalina security requirements further increased. Some users report issues starting plugins with X-Plane, not only LiveTraffic. See here and here forum posts on the issue with a few solution approaches. You know you have the issue if LiveTraffic doesn't load and Log.txt includes something like LiveTraffic/64/mac.xpl: code signature in (.../mac.xpl) not valid for use in process using Library Validation: library load disallowed by system policy

The solution approach I would prefer is the following:

  • First time you see a security dialog saying "mac.xpl cannot be opened...":

    1. Click [Cancel] in this security dialog.

    2. Right away open your Mac's System Preferences > Security & Privay > General. At the bottom is should say something about "mac.xpl was blocked..."

    3. Click [Open Anyway] or [Allow next time] there.

    4. Now quit X-Plane after it finished loading.

  • Second time

    1. Restat X-Plane.

    2. If you now see a security dialog saying "mac.xpl cannot be opened..." then now an [Open] button is available. Click [Open].

  • From now on, X-Plane should start without complaining.

Settings and Features

Can I switch off these annoying yellow labels?

Yes. Deselect all options in Setting / A/C Labels.

You can also quickly hide/show them in the current view via menu item Labels Shown, which can be bound to a keyboard shortcut or joystick button.

Can I switch off the message area in the top right corner?

To a large extend, yes. Go to Advanced Settings and change the level of messages appearing in the Message Area. If you select Fatal then you should never see anything there...and if so LiveTraffic's probably dead anyway. However, less than Error is not recommended.

Can I increase font size of aircraft labels? Could they move with head movement? Can aircraft labels {put any wish here}?

Unfortunately not, at least not at the moment. Thanks to kuroneko at least labels are drawn in the 3D world again. But the 3D world is made for objects, not for text. The X-Plane API provides no way of setting a font size. So, as long as I don't draw all characters by myself (no, sorry...I won't ;)) this is probably the way it is until somebody comes up with a better idea. Hey...it's open source...check out XPMPPlaneRender.cpp and have a look at the very end of XPMPDefaultPlaneRenderer().

Also, it seems that with the move to Vulcan this last trick of writing text will be finally gone for good. Let's see...

Can I selected multiple flight data channels simultaneously.

Yes, see Settings / Basic / Flight Data Channels. Please also understand the accompanying warning.

Can LiveTraffic start displaying aircraft right after startup without going into the menu first? / Can LiveTraffic wait with loading aircraft until I want it to do so?

Yes, choose Auto Start to your liking in the Settings / Basic.

Can you support Flightradar24 as a channel?

Technically yes, I can. But legally I am not allowed, sorry. I've checked with FR24 support. They do not yet allow using their data outside their own applications. Maybe, so their answer, they will provide a (paid) model in the future...maybe not.

Can I use the data of my local ADS-B receiver?

No, and I won't provide an option for that because there is an easier way for getting your own data into LiveTraffic and at the same time helping the entire community: Just feed your ADS-B data to OpenSky and especially ADS-B Exchange (further info here). If you feed ADS-B Exchange you are eligible for an API key for free, so in return you can receive all data including your own. ADS-B Exchange also doesn't filter any aircraft, all received planes are in. This way not only you but all users can benefit from your data.

You local data is also not more up-date or faster than data received from the network because it does not matter when LiveTraffic receives a tracking item: All flight path calculations base upon timestamps included in the item (e.g. see OpenSky's API description). So the data itself tells LiveTraffic when it was valid. (Also read on about the buffering period to understand timing a bit better:)

What do you need the Buffering Period for?

...and why can't it be just 0 to watch aircraft without delay?

Tracking data is not continuously updated as some people seem to believe. Even if you keep querying the servers every 10th of a second (which would be an unjustified burden on the often community-driven infrastructure) you'd receive the exact same response for a particular plane over and over again...only every 10 to 20 seconds there really is new data. Which is why Live Data Refresh defaults to 20s: more often doesn't provide more data.

From a single data point A it is impossible to derive a flight path. I could draw the plane into the sky, but wouldn't know where it is headed for. There is heading/speed info in the tracking data, but that is either derived data based on past observations or - even if it is broadcasted by the plane directly - it is just about what it is at that very moment at location A. Heading and speeds (horizontal and vertical) will all change after passing A. They are not a true and reliable vector to the next location B, which is 10 to 20 seconds later. And a plane travels far in 10 to 20 seconds (for example, 1.4nm in 20s at 250kt).

To calculate accurate positions along a path between A and B you'll need to know both A and B. So a plane can leave A only once we have also received B. The buffering time exists and is required to allow for all planes' B to be known before they reach/leave A.

Strictly speaking, even C would be necessary to compute at which heading and speed to arrive at B so we can smoothly without too sharp edges continue to C...and so on. The smoother the path, the more data is needed in advance. There is hundreds of lines of code about data smoothing in LiveTraffic because the tracking data can be extremely inaccurate and jumpy. And then LiveTraffic even needs to discard unreasonable data items. There's better something in the buffer to keep the plane flying then...

And then we haven't even talked about landing and take-off prediction...also complex matter as the two most important points in time of a flight, the moment of lift-off and the moment of touch-down aren't necessarily those points A or B mentioned above. LiveTraffic receives data points before touch-down and lift off and hopefully also points after that, but not for the precise moment, although this is the moment of a significant change in the flight regime. So where does the plane lift off or touch down? And at which speed? How quickly does the plane accelerate or decelerate? When does it rotate or flare? How steep does it climb after lift-off? You'll need a few points along the take-off path in advance to calculate all that.

Is there an option to read historic tracking data? Wasn't there once one?

Currently, there is no option to read historic data, with "historic" meaning to go several days or even months back.

There once was an option to read historic ADS-B Exchange data. The code is still in, just the settings to access it are removed. (Even the dataRefs to control access are still in, so it could be activated using a DataRef editor.) The conditions, under which one could request historic data files from ADS-B Exchange have changed quite a bit since the code came into being. Nowadays, ADS-B Exchange does not provide historic data just for the fun of flight simulation, but only for scientific purposes. So I can't get historic data any longer and hence have no chance to maintain the functionality.

No other publicly accessible historic data is known.

Planes and Models

My planes are sliding on their belly! What's wrong?

Most likely you are missing some VERT_OFFSET versions of xsb_aircrafts.txt in your CSL model folders. Copy them again from BB_IVAO_vert_offsets*.zip, see step-by-step instructions.

Some planes seem to be missing gear or props...

There are 4 known explanations.

  1. Are you running other multiplayer clients like X-SquawBox, X-IvAp etc.? Your problem could be the known issue of not showing some model animations in that yase, see here for details.

  2. Double-check your CSL Settings: Under normal circumstances the option Register original libxplanemp CSL dataRefs should be enabled.

  3. Many GA and business jet models of the Bluebell package are known for LOD issues, i.e. some elements of the model simply don't show if the object is "too" far away. This is standard procedure in modeling to save performance. However, it often happens beyond 0.5nm already, which is visible. Move the camera closer than 0.5nm (a/c info window tells you your distance) and gear will show. This problem can only be solved by a CSL model developer and looks as in the following screenshots:

4. Less likely, but also reported: It could be a dataRef error: The model might still refer to some other (like WorldTraffic's) dataRefs to learn if gear is extended or not and might not have extended the gear. Also this one can only be solved by the CSL model developer. The correct dataRefs for LiveTraffic (and XSquawkBox and others) are documented here.

Why are some planes rendered with the wrong model? I see GA traffic rendered as A320, how to change?

Certainly, available models depend on the CSL packages you have installed. LiveTraffic can only render what's available as a CSL package. Install more package for better model coverage.

For picking the right model LiveTraffic (specifically: the multiplayer library) primarily depends on the ICAO aircraft type designator and the operator code (for the livery) included in the transferred tracking data. If the ICAO aircraft type desginator is not transferred (and that does happen, especially for GA aircraft) then LiveTraffic tries to lookup the human-readable model text (like "172S" in the screenshot below) in the file model_typecode.txt. This file has been compiled from information of the OpenSky aircraft database and includes pretty educated guesses about which model text matches which ICAO aircraft type designator.

If you know type and operator based on whatever other source, then please help maintain OpenSky's aircraft database by updating or even adding aircraft data. An update there is very quickly available to all users, bascially immediately! (See this forum post for a good example).

Here is an example of a default rendering (A320) for an object which likely is a C172S:

You will see a warning in Log.txt like this of there is no ICAO aircraft type available:

Log.txt extract
OpenSky Masterdata Online: Data for 'A80A5D' (man 'Cessna', mdl '172S') lacks ICAO a/c type code, will be rendered with standard a/c A320

(Won't happen for A80A5D again as I've updated OpenSky's Aircraft database ;)

And would not happen in similar cases either as of LiveTraffic 1.22 as the include model text "172S" would successfully be mapped to ICAO aricraft type designator C172, which now produces message like this

Log.txt extract
Tracking data for 'A3DB93' (man 'Airbus', mdl 'A320-251N') lacks ICAO a/c type code, but derived A20N from mdl text

But there will still be cases out in the wild with no designator and no (matching) model text, and then you'll still see an A320.

If ICAO aircraft type designator and operator code are available then a multi-step matching algorithm starts kicking in to try picking the best matching model with the best matching livery. Check out Advanced Setting "Log model matching" if you are interested in the details.

The a/c info window always shows you

  • the ICAO type received, or "?" if none has been received,

  • Manufacturer and Model as human-readable free text fields as sent by the network channels,

  • the CSL model actually used to render the aircraft.

I see flying follow-me cars...what's that?

Yea...it happens...a special case of the above issue of a "wrong model". To understand this issue it is necessary to have a bit a background of how LiveTraffic got to display follow-me cars in the first place:

Some ground traffic (this will extend beyond follow-me cars) also has ADS-B transponders on board and this way transmit their positions. In reality, this will help ground control gathering a more complete picture of what is happening on the ground and avoids crashes between ground traffic and actual planes.

So, there is tracking data of ground traffic in the stream of data received from the various channels. In some channels like OpenSky they can most often be very easily identified by some text in some of the message fields. In other channels, and also in some cases at OpenSky, it is pure guess work if that data originated from ground traffic or not. If none of the plane type identifying fields is filled then LiveTraffic will often decide for "ground traffic" and will display the follow-me car.

Apparently, there are a few cases of planes, which are also missing relevant model information in the databases OpenSky and ADSBEx tap on. And so it might happen that for these actual planes LiveTraffic's guess work decides for ground traffic. It will do so only for objects on the ground, for sure. But if that object on the ground then taxis to a runway and speeds off...then we have a flying follow-me car.

And again: You can help maintaining the underlying data: Open an A/C Info Window for that plane, take note of transponder code and/or registration (tail number), search for reference data in the internet and update OpenSky's aircraft database.

Some planes are shown with wrong livery, how to fix?

LiveTraffic relies on the operator information delivered by the channels. (In case no operator info is available the first three characters of the call sign are used, which is only a rough guess but better than nothing.) And then there must be a matching model for the a/c type with matching operator livery to be displayed. Aircraft type takes precedence...the model matching prefers the right type of model over a wrong type with correct livery.

So if you simply don't have the right aircraft/livery combination in your CSL packages then LiveTraffic decides for the "standard" livery of that model as defined by the ICAO line in the xsb_aircrafts.txt file of the CSL package.

If you think, however, that you have the correct model, but still it doesn't show, then verify the operator and model information in the a/c info window. The operator info is as per reported by the tracking data channels. Help the community-maintained data by reporting wrong data or correcting it directly in OpenSky's aircraft database.

If you are interested in how model matching works switch on „Debug: Log model matching“ in the Advanced Settings and keep looking into Log.txt (see tips on keeping it open here).

I have CSL package from X-IvAp/X-CSL installed with many liveries. Why does LiveTraffic doen't show all these liveries?

Because LiveTraffic sticks to the original file format for CSL models and packages. This is a long story... Here's a forum post on it.

By now, I have provided a Python script called CSL2XSB, which can convert X-CSL package for use in LiveTraffic.

How does it work?

How derives LiveTraffic the model to pick for any given aircraft?

This process is called "matching" and works based on 3 parameters: The ICAO aircraft type of the plane, the ICAO operator code (if unavailable LiveTraffic uses the first 3 characters of the call sign) to identify the airline, a text to identify a special livery. Starting with v0.92 LiveTraffic passes the aircraft's registration number as this special livery string so that it is in theory possible to define individual liveries per airframe.

Available aircraft / airline / livery combinations are listed in the xsb_aircraft.txt files in your CSL model folders. LiveTraffic reads all of these files into a cache during startup.

Internally, a fourth parameter named group is added, derived from the ICAO aircraft type: There are many similar looking aircraft models in the world...just think of A319, A320, A321. The file LiveTraffic/Resources/related.txt combines all similar looking models into one line, which make up such a group. Each ICAO type is allowed to appear at maximum once in the entire file.

Model Matching now happens in up to 8 passes. If a pass finds a matching model within the set of provided CSL models then this is the model to be shown:

  1. Aircraft Type + Airline + Livery, i.e. an absolute exact match for the very specific airframe you are looking at...lucky you! This would match against a LIVERY line in xsb_aircraft.txt.

  2. Aircraft Type + Airline has good chances of being successful: the specific model with the correct airline's livery. This would match against an AIRLINE line.

  3. Group + Airline + Livery This would match against a LIVERY line of a similar aircraft type.

  4. Group + Airline, in most cases this is eventually successful for airliners: a similar looking model with the correct airline's livery. This would match against an AIRLINE line of a similar aircraft type.

  5. Aircraft Type + Livery

  6. Aircraft Type this is the match when the airline is not known (and there is also no specific livery), but the exact aircraft model is found. This matches against the one model with the ICAO line for that type.

  7. Group + Livery

  8. Group this is the match when there is a similar model, but the airline is not known.

If after all these passes still no model has been found then the model matching tries to derive a good guess of a model type with available CSL model, based on the "size" of the plane to be displayed. For "size" the wake turbulence category and the plane's configuration (like "L2J" for a 2-engine jet landplane) are taken into account. These matching passes also consider airline and work in the following order:

  1. airline, WTC, full configuration

  2. airline, WTC, # engines, engine type

  3. WTC, full configuration

  4. WTC, #engines, engine type

  5. airline, WTC, # engines

  6. airline, WTC, engine type

  7. WTC, # engines

  8. WTC, engine type

  9. airline, WTC

  10. WTC

If a type has been found this way it will be used for rendering the aircraft. What does that mean? Consider for a moment you would have no CSL models of any Airbus...for whatever reason. Now the live tracking data says there is an incoming A330-200 of China Eastern. The basic model matching won't find a CSL model. All Airbusses are grouped together in one group in related.txt...so none of the 8 passes has a chance. (Would we mix Boings with Airbusses in a group we would have found something here already...but we won't dare!) Now the next algorithm starts: An A332 is a heavy L2J plane according to Doc8643 of the ICAO. So in the first step we try finding any available CSL model, which is a heavy L2J plane and comes with a China Eastern livery...and maybe we are so lucky to find a B763...then we'll take that. With Log model matching on this looks as follows in the Log.txt and is precisely how we tested that algorithm in issue 44:

Log.txt (extract)
LT MATCH - ICAO=A332 AIRLINE=CES LIVERY=China Eastern Airlines GROUP=A332 A333 A338 A339
LT MATCH -    Group 0 key A332 CES China Eastern Airlines CES
LT MATCH -    Group 1 key A332 CES
LT MATCH -    Group 2 key A332 A333 A338 A339 CES China Eastern Airlines CES
LT MATCH -    Group 3 key A332 A333 A338 A339 CES
LT MATCH -    Group 4 key A332 CES China Eastern Airlines
LT MATCH -    Group 5 key A332
LT MATCH -    Group 6 key A332 A333 A338 A339 CES China Eastern Airlines
LT MATCH -    Group 7 key A332 A333 A338 A339
LT MATCH - No match.
LT MATCH/acf - Looking for a  heavy L2J aircraft
LT Match/acf - matching airline, WTC and configuration
LT MATCH/acf - found: B763 CES
LiveTraffic 1544571591.6 INFO  LTAircraft.cpp:871/LTAircraft: Added aircraft 7803BF (A332 CES), a/c model 'B763 CES B763_CES', flight model [HugeAirbus], bearing 171, distance 8.3km

What happens to a plane when no more live flight tracking data is received?

One out of two things:

  1. "Autoland": If the plane is in flight phase Approach (this is triggered when plane is sinking and below FLAPS_DOWN_SPEED according to FlightModel.prf) then the descend is continued straight ahead with constant sink rate to the ground where the plane flares, touches down, and rolls out to a complete stop, then disappears. If LiveTraffic finds a suitable runway (+/-10° of current heading, reasonable sink rate) it will guide the plane down there. This special handling is due to the fact that ADS-B receiver coverage is typically worse the lower planes fly. Missing data during approach is quite common. LiveTraffic will never simulate taxiing without tracking data.

  2. "Continue unchanged": If the plane is not in a phase between Approach and Roll out then it will continue flying with unchanged parameters (heading, speed, vertical speed) for as long as configured in a/c outdated period in the advanced settings.

    1. If during this time the plane descends (in a configuration not triggering Approach phase, e.g. too fast) and hits the ground it will flare, roll out and stop as in "Autoland" - no matter if there happens to be a runway or a skyscraper.

    2. If during this time the plane ascends it will continue to ascend and be taken out of service at FL600.

The a/c info window tells you per plane how old the data is in the Last Data line: If the number is positive then there is a known data point this number of seconds in the future and the flight will continue at least until then. If the number is, however, negative, then the last known data point is this many seconds ago and we are flying blind already. The number will not grow (much) more negative than -(a/c outdated period).

Last updated