ATC-pie: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(New release: r7)
(v1.6.4)
(45 intermediate revisions by 4 users not shown)
Line 6: Line 6:
| title                  = ATC-pie
| title                  = ATC-pie
| logo                  = ATC-pie-logo.png
| logo                  = ATC-pie-logo.png
| image                  = ATC-pie-screenshot-KSFOmess.png
| image                  = ATC-pie-screenshot-towerViewing.png
| alt                    = ATC-pie at the KSFO mess
| alt                    = Tower viewing, following a departing aircraft
| developedby            = Michael Filhol
| developedby            = Michael Filhol
| initialrelease        = February 1, 2015
| initialrelease        = February 1, 2015
| latestrelease          = September 21, 2015 (r7)
| latestrelease          = 1.6.4 (March 15, 2020)
| writtenin              = Python3
| writtenin              = Python3
| os                    = Any
| os                    = Any
Line 17: Line 17:
| type                  = ATC client
| type                  = ATC client
| license                = GNU GPL v3
| license                = GNU GPL v3
| website                = https://sourceforge.net/projects/atc-pie
| website                = http://mickybadia.free.fr/atcpie
}}
}}


'''ATC-pie''' is an [[air traffic control]] simulation program featuring solo training and a multi-player game mode to connect to [[FlightGear]] networks. It is essentially designed for realism, and simulates many features of real-life ATC tasks such as transponder identification, strip rack and sequence management, handovers to/from neighbouring controllers, ATIS recording, flight plan editing, routing and conflict solving.
'''ATC-pie''' is an [[air traffic control]] simulation program featuring:
* solo sessions, incl. voice instruction recognition and pilot speech synthesis;
* multi-player network connections through [[FGMS]];
* tutorial sessions for teacher supervision of an ATC student.


ATC-pie is free and open source, programmed in Python3 for Qt5 hence system-independant, only Python3 and its Qt5 bindings must be installed. That done, it is meant to work straight away, with no make/compile command to run or external resource to install (except for local tower viewing, which requires FlightGear and the appropriate scenery).
It can simulate en-route centre control (CTR) as well as airport-based services (TWR, APP, GND...), and allows 3D tower viewing through [[FlightGear]]. It is essentially designed for realism and simulates many tasks and situations of real-life ATC such as:
* strip rack and sequence management;
* radar monitoring and transponder identification;
* handovers to/from neighbouring controllers;
* routing and conflict anticipation;
* flight plan filing and editing...


== Program features ==
The program is free and open source, and programmed in Python3 for Qt5 hence system-independant. Only Python3 and its Qt5 bindings must be installed. That done, it is meant to work straight away, with no make/compile command to run or external resource to install. The whole world is immediately available on radar. Tower viewing requires the appropriate FlightGear aircraft and scenery.


The features listed below have been tested on various Linux versions, Mac and Windows.
== Screenshots ==
 
Visit the [[:Category:ATC-pie screenshots|ATC-pie screenshot category]] for more.
 
<gallery mode="packed">
ATC-pie-screenshot-sectorView.png|Sector view around Geneva
ATC-pie-screenshot-soloMode.png|Playing solo with three coloured racks
ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
ATC-pie-screenshot-airportCloseUp.png|Depiction of airport tarmac and objects
ATC-pie-screenshot-runwayIncursion.png|Runway incursion detected and highlighted in red
ATC-pie-screenshot-flightPlans.png|Flight plan editor
</gallery>


=== Game and environment ===
== Working principles ==
World data:
* Real world METAR updates from selectable weather stations
* Real world declination lookup and true/magnetic distinction
* Airport and navigation data retrieved from the latest [http://data.x-plane.com X-Plane] file set
* Custom additions possible in separate files


Multi-player and network environment:
=== General ===
* Multi-player game mode with configurable [[FGMS]] connection
You are the air traffic controller, working with or without a tower window or radar scope, depending on your position and local facility. Players will connect to the network (multi-player), AI traffic be simulated (solo), or student traffic generated and controlled by the teacher, all with different types of aircraft, [[transponder]] equipment and intentions.
* ATC handovers: strip exchange with [[OpenRadar]] and other ATC-pie instances in range
* Interface with Lenny64's [http://flightgear-atc.alwaysdata.net flight plan data base], including in-game FPL retrieval, filing and editing
* In-app session announcement facility to post on Lenny64's popular ATC event page
* Ignore contacts


Solo game mode:
As in real life if you use a radar, your main technology is [http://en.wikipedia.org/wiki/Secondary_surveillance_radar SSR], hence unless you cheat or activate the primary radar, it will show you only what you pick up from on-board transponders in its range. This means:
* Free combination choice of APP, TWR and DEP control positions for custom training
* if a transponder is off or out of range, you will not see the aircraft on your radar screen;
* Handovers to/from virtual ATCs
* if a transponder is on and in range, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot and your radar capabilities.
* Instruction interface and pilot read back
 
* Adjustable difficulty (traffic density)
=== Strips ===
* Departure–arrival and ILS–visual balance options
[[File:ATC-pie-screenshot-stripDetailSheet.png|thumbnail|The ATC-pie strip detail sheet]]
* Configurable runways in use, entry and exit points
Your basic traffic flow and sequence working unit is the '''strip''', each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved across ''racks'' and ''bays'' until handed over to a different controller or shelved. Strip details can all be manually edited, and include:
* most importantly, the aircraft's ''callsign'', to be used on the radio;
* information like aircraft type, airspeed, route... that can be provided by the pilots themselves when filing ''flight plans'';
* transponder code and flight parameter assignments (heading, altitude/FL, air speed).
 
=== Linking strips ===
Every strip can be '''linked''' to a flight plan and/or a radar contact. A linked strip will automatically:
* display its missing elements when available from the linked flight plan or aircraft transponder;
* populate the linked aircraft radar tag with useful details, e.g. assigned altitude.
Any detail mismatch between a strip and its linked elements will be reported for you to resolve.
 
=== Radar identification ===
[[File:ATC-pie-screenshot-radarIdentification.png|thumbnail|Radar identification: both matched strip and radar contact marked in blue]]
When using radar, ATCs can rely on different things to ''identify'' an aircraft and link the right contact to its strip. They can read an aircraft's callsign straight away if its transponder is squawking mode S, tell from reported positions, or use a transponder code.
 
For instance, say a transponder-equipped VFR traffic makes radio contact giving their callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for '''radar identification''' of aircraft–strip pairs such that:
* the strip is assigned a transponder code;
* no other strip is assigned the same code;
* the aircraft is the only unidentified traffic squawking that code in radar range.


GUI:
ATC-pie identifies such pairs automatically and reports them to you so you can properly link the two and get back to the pilot: "radar identified".
* Floatable, dockable and closable GUI panes: strips, radios, text chat, etc. (window layout saved)
* Notification system combining selectable sounds, status bar messages and a time-tagged history
* General and airport-specific settings and notepads saved on close and restored on restart
* Customisable colours


=== Radar and visual contacts ===
== Detailed feature list ==
Transponders:
* Full support and mode-dependant behaviour (off, A, C, S)
* Choice of simulated mode for non-equipped aircraft models
* Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
* Individual and general cheat modes to override XPDR settings or reveal those turned off


Radar scope:
=== General ===
* Open multiple radar screens
Available session types:
* Custom radar background image and image display (e.g. to display maps/charts)
* FlightGear multi-player network connections
* Show/hide options for navigation points, vectors and route assignments, etc.
* Solo sessions (simulated IFR traffic)
* Quick point-to-point heading and distance measuring tool and access to Earth coordinates
* Teacher–student tutoring (teacher spawns and manipulates the traffic visible to the student)
* Custom text labels to annotate radar background


Tower viewing, scene rendering:
For all session types:
* Real-time rendering of the airport scene from tower viewpoint, available in MP and solo game modes
* Airport mode (for ATC positions such as TWR, GND, APP, DEP at a selected airfiled)
* Internally started (requires FlightGear installed) or through connection to an external instance
* En-route centre (free positioning of radar, no base airport or runway-related options)
* Controller pane to orient/zoom view or follow aircraft
* Possible use of custom scenery and aircraft model addition/substitution
* Additional views can be connected


=== ATC management ===
Common data sources:
Strips, racks, flight plans:
* Airport and navigation data retrieved from [http://data.x-plane.com X-Plane] sources (whole world default file set included)
* Strip drag&drop along and across user-defined racks, with configurable colours
* Editable aircraft data base (ICAO designators, cruise speeds, WTC, etc.)
* Strip drop on neighbouring ATCs to hand over
* Radar background images and hand drawings (integrated EuroScope/[http://www.vatsim.net VATSIM]/IVAO .sct sector file import)
* Link strips to flight plans and radar contacts to merge editable details and inform radar display
* Ground elevation maps (can be generated automatically with a provided script)
* Conflicts between linked elements reported
* Real world magnetic declination lookup
* Work with local FPL copies and manage sync with online publication


Routes, vectors, conflicts:
GUI features:
* Route parsing, drawing and world map view
* Multiple window workspace (radar screens, strip racks and bays) saved by location
* Current leg and next waypoint display with geodesic calculations of headings and distances
* Floatable/dockable panels and toolbars (see [[:File:ATC-pie-screenshot-toolbars.png|screenshot]]) and layout save/restore
* Assign vectors and change routes with direct mouse gestures
* Customisable colours
* Anticipated conflict warnings and separation incident alarm
* Notification system combining selectable sounds, status bar messages and time-tagged history
* Visible mismatches between assigned vectors and picked up positions (see [[:File:ATC-pie-screenshot-courseAndAssignmentsGraphics.png|all-in-one graphics]])


=== Communications ===
Misc. tools:
Radio:
* Quick point-to-point heading and distance measuring tool
* [[FGCom]] integration, incl. echo test and possible use of externally running client
* Multiple weather station monitor
* ATIS recording with pre-filled preparation notepad (see [[:File:ATC-pie-screenshot-ATISdialog.png|feature dialog]])
* Direct text annotation of radar screen
* Multiple and single frequency transmissions
* World airport, map navpoint and AD parking position browsing/indicating
* Frequency-specific sound level selection
* Aeronautical unit conversion calculator
* Custom alarm clocks with quick keyboard timer start
* General and location-specific notes and settings saved on close and restored on restart


Text chat:
=== ATC surveillance ===
* Customisable preset messages and text aliases for context-sensitive replacements
Radar and transponders:
* Message history and single-click message recall
* SSR mode selection and primary radar activation
* Hardcore communication sim possible by disabling unknown senders' callsigns
* Full transponder support and mode-dependant radar behaviour
* Senders blacklist managament (filter out trolls)
* Traffic identification assistant
* Runway occupation/incursion detection
* Position/track vs. assignment mismatch warning system


== Screenshots ==
Tower viewing for airport mode (requires FlightGear):
* Renders view of airport, aircraft, weather, time of day
* Internally started or through an externally running instance
* Control panel to orient/zoom view or follow aircraft
* Additional views can be connected (for multiple camera angles)


{{Gallery
=== Traffic management ===
|ATC-pie-screenshot-soloMode.png|Playing solo mode with three coloured racks
Strips and racks:
|ATC-pie-screenshot-towerViewing.png|Tower viewing, following a departing aircraft
* User-defined racks with configurable colours for linked radar contacts and ATCs to collect strips from
|ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
* Strip auto-print for expected departures or arrivals
|ATC-pie-screenshot-routeDetailsView.png|View route details and world path
* Runway boxes with automatic RWY separation timers
|ATC-pie-screenshot-routeConflictDetection.png|Route conflict warning
* Loose strip bays with customisable backgrounds
|ATC-pie-screenshot-LFPGcloseUp.png|Depiction of airport tarmac and objects
}}


== Working principles ==
Routes, vectors, conflicts:
* World route suggestions, presets, analysis, radar drawing and world map view
* Convenient mouse input for vectors, taxi instructions and waypoint changes
* Current leg and next waypoint display with geodesic calculations of headings and distances
* Route/vector conflict anticipation and separation incident alarm
* Approach spacing hints for inbound sequences


=== General ===
Communications:
You are the air traffic controller, and players will connect to the network (or AI traffic be simulated in solo mode) with different types of aircraft and [[transponder]] equipment. As in real life, the radar is [http://en.wikipedia.org/wiki/Secondary_surveillance_radar SSR], hence will show you only (unless you cheat) what you pick up from on-board ''transponders'' in your range. That means:
* [[FGCom]] radio integration for multi-player and tutoring sessions (possible use of externally running client), incl. ATIS recording (see [[:File:ATC-pie-screenshot-ATISdialog.png|feature dialog]] with pre-filled preparation notepad), multiple frequency transmissions and monitoring, frequency-specific sound level selection
* If a transponder is off or on standby, you will not see the aircraft on your radar screen.
* Radio direction finding (RDF) and integration to radar
* If a transponder is on, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot.
* Controller-pilot data link communication (CPDLC)
* Public text chat in MP with preset messages, auto-completion, predefined and custom aliases for context-sensitive replacements, sender blacklist to filter out trolls


=== Strips ===
ATC coordination:
[[File:ATC-pie-screenshot-stripDetailSheet.png|thumbnail|The ATC-pie strip detail sheet]]
* Private messaging with other ATCs (text "landlines")
Your basic traffic flow and sequence working unit is the '''strip''', each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved along and across ''racks'' until handed over to a different controller or discarded. Strip details include:
* General ATC chat room
* most importantly, the aircraft's ''callsign'', to be used on the radio;
* "Who has?" requests
* information like aircraft type, airspeed, route... that can be specified by the pilots themselves when filing ''flight plans'';
* transponder code and flight parameter assignments (or vectors: heading, altitude/FL, speed).


=== Linking strips ===
=== Session environments ===
Strip details can be manually edited, but every strip can also be '''linked''' to a flight plan and/or a visible radar contact on the scope screen—a strip can only be linked to one flight plan and one radar contact. Linking to a strip will automatically:
FlightGear multi-player sessions:
* make the strip display the missing elements made available by the linked aircraft transponder or flight plan;
* Strip exchange: handovers with other ATC-pie and [[OpenRadar]] instances in range
* label the radar contact dot with the more informed linked details, e.g. assigned altitude.
* Weather: real world METAR retrieval
Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.
* Flight plans: interface with [http://flightgear-atc.alwaysdata.net Lenny64's data base] (the ''de facto'' FG standard), incl. run-time retrieval, opening, closing, filing and editing (work on local copies and manage sync with online status)
* In-app announcement of ATC sessions on Lenny64's event page


=== Radar identification ===
Solo sessions (AI traffic):
[[File:ATC-pie-screenshot-radarIdentification.png|thumbnail|Radar identification: both matched strip and radar contact marked in blue]]
* Strip exchange: handovers to/from virtual ATCs
To ''identify'' an aircraft and link the right radar contact to a strip, an ATC can rely on different things. He can read an aircraft's callsign straight away if its transponder has mode S turned on, tell from reported positions and altitudes, or use a transponder code. For instance, say a VFR traffic makes an initial radio contact giving his callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for '''radar identification''' of aircraft–strip pairs such that:
* Weather: randomised
* the strip is assigned a transponder code;
* Voice instruction recognition (with Sphinx)
* no other strip is assigned the same code;
* Pilot read-back speech synthesis (with pyttsx)
* the aircraft is the only one squawking that code in radar range.
* Airline choice and custom aircraft appearence
* Configurable airspace rules
* Adjustable difficulty (traffic density)


ATC-pie identifies such pairs automatically and reports them to you so you can properly link the two and get back to the pilot: "radar identified".
Tutoring sessions (teacher with student):
* Strip exchange: configurable ATC neighbours and handover supervision by teacher
* Weather: controlled by teacher
* Traffic snapshots and recall to repeat situations with the student


== Using ATC-pie ==
== Using ATC-pie ==
To download the program and learn more about how to use it, read the [[ATC-pie user guide]].


To download the program and learn more about how to use it, read the ATC-pie [[ATC-pie installation guide|installation]] and [[ATC-pie user guide|user]] guides. If you have a question, check the [[ATC-pie FAQ|FAQ]] for help or try the forum.
[[Category:ATC-pie]]
[[Category:ATC clients]]
[[Category:ATC clients]]
[[Category:Air Traffic Control]]

Revision as of 13:50, 22 March 2020

ATC-pie
ATC-pie logo
Tower viewing, following a departing aircraft
Tower viewing, following a departing aircraft
Developed by Michael Filhol
Initial release February 1, 2015
Latest release 1.6.4 (March 15, 2020)
Written in Python3
OS Any
Platform Qt5
Development status Active
Type ATC client
License GNU GPL v3
Website

ATC-pie is an air traffic control simulation program featuring:

  • solo sessions, incl. voice instruction recognition and pilot speech synthesis;
  • multi-player network connections through FGMS;
  • tutorial sessions for teacher supervision of an ATC student.

It can simulate en-route centre control (CTR) as well as airport-based services (TWR, APP, GND...), and allows 3D tower viewing through FlightGear. It is essentially designed for realism and simulates many tasks and situations of real-life ATC such as:

  • strip rack and sequence management;
  • radar monitoring and transponder identification;
  • handovers to/from neighbouring controllers;
  • routing and conflict anticipation;
  • flight plan filing and editing...

The program is free and open source, and programmed in Python3 for Qt5 hence system-independant. Only Python3 and its Qt5 bindings must be installed. That done, it is meant to work straight away, with no make/compile command to run or external resource to install. The whole world is immediately available on radar. Tower viewing requires the appropriate FlightGear aircraft and scenery.

Screenshots

Visit the ATC-pie screenshot category for more.

Working principles

General

You are the air traffic controller, working with or without a tower window or radar scope, depending on your position and local facility. Players will connect to the network (multi-player), AI traffic be simulated (solo), or student traffic generated and controlled by the teacher, all with different types of aircraft, transponder equipment and intentions.

As in real life if you use a radar, your main technology is SSR, hence unless you cheat or activate the primary radar, it will show you only what you pick up from on-board transponders in its range. This means:

  • if a transponder is off or out of range, you will not see the aircraft on your radar screen;
  • if a transponder is on and in range, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot and your radar capabilities.

Strips

The ATC-pie strip detail sheet

Your basic traffic flow and sequence working unit is the strip, each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved across racks and bays until handed over to a different controller or shelved. Strip details can all be manually edited, and include:

  • most importantly, the aircraft's callsign, to be used on the radio;
  • information like aircraft type, airspeed, route... that can be provided by the pilots themselves when filing flight plans;
  • transponder code and flight parameter assignments (heading, altitude/FL, air speed).

Linking strips

Every strip can be linked to a flight plan and/or a radar contact. A linked strip will automatically:

  • display its missing elements when available from the linked flight plan or aircraft transponder;
  • populate the linked aircraft radar tag with useful details, e.g. assigned altitude.

Any detail mismatch between a strip and its linked elements will be reported for you to resolve.

Radar identification

Radar identification: both matched strip and radar contact marked in blue

When using radar, ATCs can rely on different things to identify an aircraft and link the right contact to its strip. They can read an aircraft's callsign straight away if its transponder is squawking mode S, tell from reported positions, or use a transponder code.

For instance, say a transponder-equipped VFR traffic makes radio contact giving their callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for radar identification of aircraft–strip pairs such that:

  • the strip is assigned a transponder code;
  • no other strip is assigned the same code;
  • the aircraft is the only unidentified traffic squawking that code in radar range.

ATC-pie identifies such pairs automatically and reports them to you so you can properly link the two and get back to the pilot: "radar identified".

Detailed feature list

General

Available session types:

  • FlightGear multi-player network connections
  • Solo sessions (simulated IFR traffic)
  • Teacher–student tutoring (teacher spawns and manipulates the traffic visible to the student)

For all session types:

  • Airport mode (for ATC positions such as TWR, GND, APP, DEP at a selected airfiled)
  • En-route centre (free positioning of radar, no base airport or runway-related options)

Common data sources:

  • Airport and navigation data retrieved from X-Plane sources (whole world default file set included)
  • Editable aircraft data base (ICAO designators, cruise speeds, WTC, etc.)
  • Radar background images and hand drawings (integrated EuroScope/VATSIM/IVAO .sct sector file import)
  • Ground elevation maps (can be generated automatically with a provided script)
  • Real world magnetic declination lookup

GUI features:

  • Multiple window workspace (radar screens, strip racks and bays) saved by location
  • Floatable/dockable panels and toolbars (see screenshot) and layout save/restore
  • Customisable colours
  • Notification system combining selectable sounds, status bar messages and time-tagged history

Misc. tools:

  • Quick point-to-point heading and distance measuring tool
  • Multiple weather station monitor
  • Direct text annotation of radar screen
  • World airport, map navpoint and AD parking position browsing/indicating
  • Aeronautical unit conversion calculator
  • Custom alarm clocks with quick keyboard timer start
  • General and location-specific notes and settings saved on close and restored on restart

ATC surveillance

Radar and transponders:

  • SSR mode selection and primary radar activation
  • Full transponder support and mode-dependant radar behaviour
  • Traffic identification assistant
  • Runway occupation/incursion detection
  • Position/track vs. assignment mismatch warning system

Tower viewing for airport mode (requires FlightGear):

  • Renders view of airport, aircraft, weather, time of day
  • Internally started or through an externally running instance
  • Control panel to orient/zoom view or follow aircraft
  • Additional views can be connected (for multiple camera angles)

Traffic management

Strips and racks:

  • User-defined racks with configurable colours for linked radar contacts and ATCs to collect strips from
  • Strip auto-print for expected departures or arrivals
  • Runway boxes with automatic RWY separation timers
  • Loose strip bays with customisable backgrounds

Routes, vectors, conflicts:

  • World route suggestions, presets, analysis, radar drawing and world map view
  • Convenient mouse input for vectors, taxi instructions and waypoint changes
  • Current leg and next waypoint display with geodesic calculations of headings and distances
  • Route/vector conflict anticipation and separation incident alarm
  • Approach spacing hints for inbound sequences

Communications:

  • FGCom radio integration for multi-player and tutoring sessions (possible use of externally running client), incl. ATIS recording (see feature dialog with pre-filled preparation notepad), multiple frequency transmissions and monitoring, frequency-specific sound level selection
  • Radio direction finding (RDF) and integration to radar
  • Controller-pilot data link communication (CPDLC)
  • Public text chat in MP with preset messages, auto-completion, predefined and custom aliases for context-sensitive replacements, sender blacklist to filter out trolls

ATC coordination:

  • Private messaging with other ATCs (text "landlines")
  • General ATC chat room
  • "Who has?" requests

Session environments

FlightGear multi-player sessions:

  • Strip exchange: handovers with other ATC-pie and OpenRadar instances in range
  • Weather: real world METAR retrieval
  • Flight plans: interface with Lenny64's data base (the de facto FG standard), incl. run-time retrieval, opening, closing, filing and editing (work on local copies and manage sync with online status)
  • In-app announcement of ATC sessions on Lenny64's event page

Solo sessions (AI traffic):

  • Strip exchange: handovers to/from virtual ATCs
  • Weather: randomised
  • Voice instruction recognition (with Sphinx)
  • Pilot read-back speech synthesis (with pyttsx)
  • Airline choice and custom aircraft appearence
  • Configurable airspace rules
  • Adjustable difficulty (traffic density)

Tutoring sessions (teacher with student):

  • Strip exchange: configurable ATC neighbours and handover supervision by teacher
  • Weather: controlled by teacher
  • Traffic snapshots and recall to repeat situations with the student

Using ATC-pie

To download the program and learn more about how to use it, read the ATC-pie installation and user guides. If you have a question, check the FAQ for help or try the forum.