Post on 27-Oct-2019
transcript
Manuel Haim - Hochschulrechenzentrum
Herausforderungen desIdentity Management an Hochschulen – Problemfeld Datenintegration –
Manuel Haim, HRZ Uni Marburg
10. DFN-Forum Kommunikationstechnologien,30.-31.05.2017 in Berlin
2Manuel Haim - Hochschulrechenzentrum
In diesem Vortrag...
1.Motivation→ Warum ist IDM für Hochschulen plötzlich so wichtig?
2.Anforderungen an IDM-Systeme→ Sind Hochschulen wirklich so „anders“ ?
3.Benutzerverwaltung→ Was wir bisher (falsch) gemacht haben
4.Weiterentwicklung zum IDM→ In vier einfachen Schritten zum Ziel
5.Erläuterungen und Fazit
3Manuel Haim - Hochschulrechenzentrum
1. Motivation
• Warum ist IDM für Hochschulen plötzlich so wichtig?
4Manuel Haim - Hochschulrechenzentrum
Ausgangsfrage:
Welche Personen gehören zur Philipps-Universität ?
5Manuel Haim - Hochschulrechenzentrum
Das klingt doch eigentlich ganz einfach...
Philipps-Universität Marburg:
• ca. 25.000 Studierende
• ca. 4.000 Mitarbeiter
… wo ist das Problem ?!
6Manuel Haim - Hochschulrechenzentrum
Tatsächlich gibt es viele weitere Personengruppen:
Lehrbeauftragte
DoktorandenHabilitanden
apl. Professoren
Gasthörer Schülerstudenten
Ehemalige (Alumni)
Personen in Abschlussprüfungen
Studierende anderer Hochschulen
Studierende der Archivschule
Bewohner des Studentenwohnheims
externe KursteilnehmerGäste im Gästehaus
Honorarprofessoren
Privatdozenten
Landesbedienstete am priv. Klinikum
Mitarbeiter Studentenwerk
Mitarbeiter von ca. 12 verbundenen Einrichtungen
Mitarbeiter externer Firmen
Stadt-/Landkreis-Nutzerinnen der Universitätsbibliothek
Teilnehmer Zertifikatsstudium
Kursteilnehmer Studienkolleg
Tagungsgäste
7Manuel Haim - Hochschulrechenzentrum
Tatsächlich gibt es viele weitere Personengruppen:
Lehrbeauftragte
DoktorandenHabilitanden
apl. Professoren
Gasthörer Schülerstudenten
Ehemalige (Alumni)
Personen in Abschlussprüfungen
Studierende anderer Hochschulen
Studierende der Archivschule
Bewohner des Studentenwohnheims
externe KursteilnehmerGäste im Gästehaus
Honorarprofessoren
Privatdozenten
Landesbedienstete am priv. Klinikum
Mitarbeiter Studentenwerk
Mitarbeiter von ca. 12 verbundenen Einrichtungen
Mitarbeiter externer Firmen
Stadt-/Landkreis-Nutzerinnen der Universitätsbibliothek
Teilnehmer Zertifikatsstudium
Kursteilnehmer Studienkolleg
Tagungsgäste
Bislang per E
xcel o
der Papierfo
rmular!
→ D
atenbank selte
n aktuell,
kaum vo
llständig
8Manuel Haim - Hochschulrechenzentrum
Motivationsfaktoren für IDM an der Uni Marburg
• Shibboleth-Login in der DFN-AAI-FöderationVoraussetzung: Zweifelsfreie Identifikation, Datenaktualität
• Integriertes Campus-Management (iCM)Zielgruppe: Alle an Studium und Lehre beteiligten Personen
• Forschungs-Informations-System (FIS)Zielgruppe: Alle an der Forschung beteiligten Personen
• Hochschulstatistikgesetz (HStatG)Ziel: Erhebung aller Doktoranden/-innen ab Berichtsjahr 2017
9Manuel Haim - Hochschulrechenzentrum
2. Anforderungen an IDM-Systeme
• Kann Standard-Software unsere Probleme lösen?
• Sind Hochschulen wirklich so „anders“ als Unternehmen?
10Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis
(2) Datenintegration
(3) Datenabgleich
(4) Authentisierung bzw. Authentifizierung
(5) Autorisierung und Access Management
(6) Webportal
(7) Audit Logging
11Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis→ gemeinsame, verlässliche Datenbasis→ z.B. Datenbank (SQL) oder Verzeichnisdienst (LDAP)→ für Personendaten und Accounts (Identity Mgmt., IDM)→ für weitere Objekte (Master Data Management, MDM)
(2) Datenintegration
(3) Datenabgleich
(4) Authentisierung bzw. Authentifizierung
(5) Autorisierung und Access Management
(6) Webportal
(7) Audit Logging
12Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis
(2) Datenintegration→ Integration in Geschäftsprozesse und IT-Systeme→ entsprechende Konnektoren nötig→ Merke: erfordert Organisationsentwicklung und Mitwirkung
(3) Datenabgleich
(4) Authentisierung bzw. Authentifizierung
(5) Autorisierung und Access Management
(6) Webportal
(7) Audit Logging
13Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis
(2) Datenintegration
(3) Datenabgleich→ Live Synchronization / Reconciliation / (De-)Provisioning→ z.B. Provisioning-Software, IDM-Software, MDM-Software→ Eigenentwicklung denkbar→ Merke: Regelwerk und Konnektoren nötig
(4) Authentisierung bzw. Authentifizierung
(5) Autorisierung und Access Management
(6) Webportal
(7) Audit Logging
14Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis
(2) Datenintegration
(3) Datenabgleich
(4) Authentisierung bzw. Authentifizierung→ persönliche Zugangsdaten (Benutzername, Passwort)→ dieselben Zugangsdaten für alle Systeme, Single Sign-On→ zweiter Faktor für kritische Systeme (TAN, Token, App…)→ anwendungs-/gerätespezifische Passwörter (WLAN)
(5) Autorisierung und Access Management
(6) Webportal
(7) Audit Logging
15Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis
(2) Datenintegration
(3) Datenabgleich
(4) Authentisierung bzw. Authentifizierung
(5) Autorisierung und Access Management→ Rollen und Rechte digital, ggf. automatisiert→ Übergangsfristen für Ausscheidende→ Anhäufung von Rechten vermeiden (Ablaufdatum)
(6) Webportal
(7) Audit Logging
16Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis
(2) Datenintegration
(3) Datenabgleich
(4) Authentisierung bzw. Authentifizierung
(5) Autorisierung und Access Management
(6) Webportal→ User-Self-Service: Daten, Passwörter, E-Mail-Adressen...→ Administration dezentralisieren→ Interaktive Formulare / Workflow-Management
(7) Audit Logging
17Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
(1) Zentrales Verzeichnis
(2) Datenintegration
(3) Datenabgleich
(4) Authentisierung bzw. Authentifizierung
(5) Autorisierung und Access Management
(6) Webportal
(7) Audit Logging→ Änderungen an Account, Rollen u. Rechten protokollieren→ ggf. rechtssicher / digital signiert→ Protokoll zumindest für die Wirkdauer aufbewahren
18Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen im Vergleich
*Steffen Hofmann: Architektur eines Identitätsmanagementsystems an einer Hochschule. Diplomarbeit, FernUniversität Hagen, 2007.https://www.zedat.fu-berlin.de/pub/ZEDAT/FUDIS/Home/Architektur_eines_Identitaetsmanagementsystems_an_einer_Hochschule.pdf
Uni Marburg Allgemein für IDM-Systeme*
(1) Zentrales Verzeichnis Informationsspeicher
(2) Datenintegration Datenintegration
(3) Datenabgleich Provisioning
(4) Authentisierung bzw. Authentifizierung
Authentifizierung,Passwort Management
(5) Autorisierung und Access Management
Autorisierung
(6) Webportal User Self-Service,(De-)Zentrale Administration,Workflow Management
(7) Audit Logging Auditing
– Monitoring, Reporting
19Manuel Haim - Hochschulrechenzentrum
Funktionale Anforderungen im Vergleich
*Steffen Hofmann: Architektur eines Identitätsmanagementsystems an einer Hochschule. Diplomarbeit, FernUniversität Hagen, 2007.https://www.zedat.fu-berlin.de/pub/ZEDAT/FUDIS/Home/Architektur_eines_Identitaetsmanagementsystems_an_einer_Hochschule.pdf
Uni Marburg Allgemein für IDM-Systeme*
(1) Zentrales Verzeichnis Informationsspeicher
(2) Datenintegration Datenintegration
(3) Datenabgleich Provisioning
(4) Authentisierung bzw. Authentifizierung
Authentifizierung,Passwort Management
(5) Autorisierung und Access Management
Autorisierung
(6) Webportal User Self-Service,(De-)Zentrale Administration,Workflow Management
(7) Audit Logging Auditing
– Monitoring, Reporting
Deckt s
ich m
it unse
ren Anforderungen!
→ U
nsere Probleme si
nd softw
areunabhängig.
20Manuel Haim - Hochschulrechenzentrum
Eigentliche Herausforderung:Datenintegration erfordert Gespräche mit vielen beteiligten Stellen:
Gruppe Verantwortl. Stelle Ereignis System
Studierende Studi.-Sekretariat Immatrikulation HISinOne
Gasthörer/innen Studi.-Sekretariat Annahme unbekannt
Professoren/-innen Personalabteilung Einstellung / Verbeamtung SAP
Mitarbeiter/-innen Personalabteilung Einstellung / Verbeamtung SAP
Landesbedienstetes Klinikums-Personal
Personalabteilung Klinikum
Einstellung / Verbeamtung Klinikums-SAP
apl. Professoren/-innen Senat Titelverleihung unbekannt
Honorarprofessoren/-innen Senat Titelverleihung unbekannt
Privatdozenten/-innen jew. Dekanat Titelverleihung unbekannt
Lehrbeauftragte jew. Dekanat Erteilung Lehrauftrag unbekannt
Doktoranden/-innen jew. Dekanat Annahme unbekannt
Dekane/-innen jew. Fachbereichsrat Wahl unbekannt
Fachbereichsbeauftragte jew. Dekanat Benennung unbekannt
Gästehaus-Bewohner/innen Gästehaus-Verwaltg. Voranmeldung unbekannt
Stadt-/Landkreisnutzer/innen Uni-Bibliothek Beantragung Leseausweis PICA
...
21Manuel Haim - Hochschulrechenzentrum
Eigentliche Herausforderung:Datenintegration erfordert Gespräche mit vielen beteiligten Stellen:
Gruppe Verantwortl. Stelle Ereignis System
Studierende Studi.-Sekretariat Immatrikulation HISinOne
Gasthörer/innen Studi.-Sekretariat Annahme unbekannt
Professoren/-innen Personalabteilung Einstellung / Verbeamtung SAP
Mitarbeiter/-innen Personalabteilung Einstellung / Verbeamtung SAP
Landesbedienstetes Klinikums-Personal
Personalabteilung Klinikum
Einstellung / Verbeamtung Klinikums-SAP
apl. Professoren/-innen Senat Titelverleihung unbekannt
Honorarprofessoren/-innen Senat Titelverleihung unbekannt
Privatdozenten/-innen jew. Dekanat Titelverleihung unbekannt
Lehrbeauftragte jew. Dekanat Erteilung Lehrauftrag unbekannt
Doktoranden/-innen jew. Dekanat Annahme unbekannt
Dekane/-innen jew. Fachbereichsrat Wahl unbekannt
Fachbereichsbeauftragte jew. Dekanat Benennung unbekannt
Gästehaus-Bew. Gästehaus-Verw. Voranmeldung unbekannt
Stadt-/Landkreisnutzer/innen Uni-Bibliothek Beantragung Leseausweis PICA
...
Organisatorisches Problem:
→ zahlreiche Datenquellen
Verantwortliche Stellen einbinden!
→ unterschiedliche Datenqualität
Daten aktuell? Bedeutung eindeutig?
Ausweis kontrolliert? Name vollständig?
Mitarbeiter geschult? Tippfehler möglich?
→ Dubletten möglich
Vor dem Zusammenführen unbedingt auf
Datenqualität achten (Selbstregistrierung?)
22Manuel Haim - Hochschulrechenzentrum
Nicht-funktionale Anforderungen an IDM-Systeme(Uni Marburg, Erfahrungswerte)
• Datenschutz→ Verfahrensverzeichnis notwendig (Zweckbindung der Daten!)→ Personalrat einbinden→ Aufbewahrungs- und Löschfristen definieren und einhalten→ Benutzernamen und E-Mail-Adressen wiedervergeben?
• Randbedingungen→ laufende Kosten decken (Betrieb, Anpassung, Wartung)→ Lizenzmodelle und Lizenzverlängerungen kritisch prüfen→ Flexibilität gewährleisten (zeitnahe Anpassungen)
23Manuel Haim - Hochschulrechenzentrum
3. Bisherige Benutzerverwaltung
• Was wir bisher (falsch) gemacht haben
24Manuel Haim - Hochschulrechenzentrum
25Manuel Haim - Hochschulrechenzentrum
4035
83472495
425
1382
60
36438
665
974303
Professoren u. Mitarbeiter (Universität)
Professoren u. Mitarbeiter (Klinikum)
Lehrbeauftragte mit Lehrauftrag
apl. Professoren ohne Vertrag
Doktoranden ohne Vertrag
Sonstige ohne Vertrag
Gäste im Gästehaus
Mitarbeiter An-Instituteu. Partner-Einrichtungen
Mitarbeiter externer Firmen
Funktionsbezogene Zugänge
Selbstverwaltete Gastzugänge
Professoren u. Mitarbeiter (Uni) i.R.
240101218
5459322751123
1000
3922
Studierende (abzgl. Promotion + Sprachkurse)
Promotions-Studierende
Teilnehmer studiumsvorber. Sprachkurse
Gasthörer
Teilnehmer Sonderprogramme(z.B. Zertifikatsstudium,Stipendiaten d. Fulbright-Kommission,Internationale Sommer-Universität)
Studentische Gruppen(z.B. AStA, Fachschaften, Uni-Chor)
Gäste(z.B. externe Kursteilnehmer,nicht-immatr. Wohnheimsbewohner,Studierende d. Archivschule)
Kurzfristige Gastzugänge
Kürzlich Ausgeschiedene u. Zurückgetretene
Die Philipps-Universität Marburg im SoSe 2017
„Studierende“
• ca. 31.189 Identitäten (davon 1.051 Nicht-Personen)
• ebensoviele Accounts
„Mitarbeiter“
• ca. 9.874 Identitäten (davon 1.639 Nicht-Personen)
• nur ca. 8.803 Accounts (nicht alle Pers. haben Acc.)
834699
26Manuel Haim - Hochschulrechenzentrum
Probleme der bisherigen Benutzerverwaltung
• Personenstatus/Rolle ist am Staff-Account nicht ablesbar (Account wird aus verschiedenen Gründen verlängert)
• Personen häufen außerdem Personeneinträge an
27Manuel Haim - Hochschulrechenzentrum
4. Weiterentwicklung zum IDM
• In vier einfachen Schritten zum Ziel
28Manuel Haim - Hochschulrechenzentrum
(1) Durchgängige Erfassung der Personendaten aller an der Universität tätigen Personengruppen(dezentral durch geeignete Stellen, in geeigneten Systemen)
• Detaillierte Aufstellung aller zu erfassenden Personengruppen→ Studierende, Mitarbeiter, ca. 35 weitere
• Gespräche mit den Betreibern der bestehenden datenführenden Systeme→ Datenqualität, Pflegeprozesse, Bedeutung der Quelldaten
• Ausgestaltung der elektronischen Erfassungs- und Meldeverfahren→ Datenpflege in vorhandenen Systemen oder eigener Datenbank
29Manuel Haim - Hochschulrechenzentrum
Neue Benutzerverwaltungs-Weboberfläche (AngularJS, Bootstrap CSS, Flask)
30Manuel Haim - Hochschulrechenzentrum
(2) Konsolidierung der Personendatenund zeitlich beschränkten Teil-Identitätenin einer zentralen Datenbank des Hochschulrechenzentrums
• Teil-Identitäten, d.h. Datensätze aus den Datenquellen werden als (Schatten-)Kopien dauerhaft vorgehalten
• Identität wird separat angelegt und mit Teil-Identitäten verknüpft→ möglichst nur eine Identität pro natürlicher Person
Teil-Identität
31Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
Action:
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
32Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“
Action:
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
33Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“ „create“
Action: z.B.
*
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
34Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“
„found“
„create“
Action: z.B.
*
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
35Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“
„found“
„create“
„update“
Action: z.B.
*←
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
36Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“
„found“
„ambiguous“
„create“
„update“
Action: z.B.
*←
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
37Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“
„found“
„ambiguous“
„create“
„update“
„ignore“
Action: z.B.
*←
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
38Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“
„found“
„ambiguous“
„source missing“
„create“
„update“
„ignore“
Action: z.B.
*←
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
39Manuel Haim - Hochschulrechenzentrum
Werkzeug zum Datenabgleich: CALYPSO(hier: sync-Algorithmus)
Quelle Ziel
„absent“
„found“
„ambiguous“
„source missing“
„create“
„update“
„ignore“
„delete“
Action: z.B.
X
*←
Quelle:Manuel Haim: CALYPSO – ein Python-Skript zum generischen Datenabgleich,https://www.zki.de/fileadmin/zki/Arbeitskreise/VD/Protokolle/2016-09-12/calypso-unimr.pdf
Situation:
40Manuel Haim - Hochschulrechenzentrum
(3) Automatisierte Ableitung vonAccountlaufzeit, Rollen und Rechten
• Rechtliche Zugangsvoraussetzungenfür einzelne Dienste klären→ z.B. eduroam-WLAN, DFN-Internet, Literatur, DFN-AAI
• Datenquellen-Rollen-Rechte-Modell aufstellen→ wer darf was?
• Accountlaufzeit, Rollen und Rechte regelm. berechnen→ z.B. mit CALYPSO (merge-Algorithmus)
41Manuel Haim - Hochschulrechenzentrum
Vereinigung von Objekten (Merge)
Quelle Ziel
(Zweck: Zusammenführen von Attributen – z.B. Namen, Berechtigungen...)
42Manuel Haim - Hochschulrechenzentrum
Vereinigung von Objekten (Merge)
Quelle Ziel
„found“
Schritt 1: Ausgehend vom Quellobjekt das Zielobjekt suchen
43Manuel Haim - Hochschulrechenzentrum
Vereinigung von Objekten (Merge)
Quelle Ziel
Schritt 2: Ausgehend vom Zielobjekt passende Quellobjekte suchen
44Manuel Haim - Hochschulrechenzentrum
Vereinigung von Objekten (Merge)
Quelle Ziel
Schritt 3: Über eigene Merge-Funktion die Zielattribute berechnen
45Manuel Haim - Hochschulrechenzentrum
Vereinigung von Objekten (Merge)
Quelle Ziel
Schritt 4: Zielobjekt aktualisieren
„update“
46Manuel Haim - Hochschulrechenzentrum
(4) Automatische (De-)Provisionierungaller angeschlossenen Systeme
• lokale Benutzerprofile in Anwendungen verfügbar machen,bevor ein Nutzer sich zum ersten Mal anmeldet→ vereinfacht die lokale Gruppen- und Rechtezuordnung
• zeitnaher Datenabgleich bei Änderungen
• Löschung von Daten in Drittsystemen (nach Ausscheiden)
47Manuel Haim - Hochschulrechenzentrum
5. Fazit
• Funktionale Anforderungen der Hochschulen an IDM-Systeme decken sich mit marktüblichem Funktionsumfang
• Eigene Implementierungen bieten vergleichbare Funktionen→ Man spart sich die Lizenzgebühren→ Datenabgleich lässt sich selbst implementieren → Webportale erfordern ohnehin Eigenentwicklung
• Ermittlung von Datenquellen und Verantwortlichkeitenist ein organisatorisches Problem mit vielen Beteiligten(unabhängig von der Wahl der Software)
48Manuel Haim - Hochschulrechenzentrum
Danke für Ihre Aufmerksamkeit!
Noch Fragen?
→ Gern jetzt im Anschluss :-)
→ sonst per E-Mail: Manuel Haim, haim@hrz.uni-marburg.de
Quellennachweis Icons: „Crystal Project“ (GNU LGPL).