Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 26 additions & 25 deletions docs/src/de/0-main-window.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,20 +48,21 @@ Wenn Sie ReciPro zum ersten Mal verwenden, folgen Sie diesen Schritten:

## Dateimenü

### File
### Datei


| Menüpunkt | Beschreibung |
|-----------|-------------|
| Read crystal list (as new list) | Eine Kristalllisten-Datei (*.xml) laden und die aktuelle Liste ersetzen |
| Read crystal list (and add) | An die aktuelle Liste anhängen |
| Read initial crystal list | Die Standard-Kristallliste neu laden |
| Save crystal list | Die aktuelle Kristallliste speichern |
| Export selected crystal to CIF | Im CIF-Format speichern |
| Clear crystal list | Alle Kristalle entfernen |
| Exit | Die Anwendung schließen |
| Kristallliste laden (aktuelle Liste ersetzen) | Eine Kristalllisten-Datei (`*.xml`) laden und die aktuelle Liste ersetzen |
| Kristallliste laden (zur aktuellen Liste hinzufügen) | Eine Kristalllisten-Datei laden und an die aktuelle Liste anhängen |
| Auf anfängliche Kristallliste zurücksetzen | Die mit ReciPro ausgelieferte Kristallliste neu laden |
| Kristall aus CIF- oder AMC-Datei importieren | Einen einzelnen Kristall aus einer CIF- / AMC-Datei laden |
| Kristallliste speichern | Die aktuelle Kristallliste speichern |
| Ausgewähltes Kristall als CIF-Datei exportieren | Den ausgewählten Kristall im CIF-Format speichern |
| Alle Kristalle leeren | Alle Kristalle aus der Liste entfernen |
| Beenden | Die Anwendung schließen |

### Option
### Optionen


| Menüpunkt | Beschreibung |
Expand All @@ -79,25 +80,25 @@ Wenn Sie ReciPro zum ersten Mal verwenden, folgen Sie diesen Schritten:
| GUI-Komponenten erfassen... | Entwicklerwerkzeug zum Speichern von GUI-Screenshots |
| Pulverbeugungsfunktion (in Entwicklung) | Das Fenster für polykristalline (Pulver-) Beugung aktivieren |

### Help
### Hilfe

| Menüpunkt | Beschreibung |
|-----------|-------------|
| Program updates | Prüfen, ob eine neue Version von ReciPro verfügbar ist, und sie installieren |
| Hint | Bedienungshinweise anzeigen (veraltet) |
| Version history | Den Versionsverlauf-Dialog öffnen |
| Auf Updates prüfen | Prüfen, ob eine neue Version von ReciPro verfügbar ist, und sie installieren |
| Hinweise | Bedienungshinweise anzeigen (veraltet) |
| Versionsverlauf | Den Versionsverlauf-Dialog öffnen |
| License | Die MIT-Lizenz anzeigen |
| GitHub page | Das ReciPro-Repository im Browser öffnen |
| Report bugs, requests, or comments | Die GitHub-Issues-Seite öffnen |
| Help (Web) | Das Online-Handbuch auf GitHub Pages in der zur UI-Sprache passenden Seite öffnen. |
| GitHub-Repository | Das ReciPro-Repository im Browser öffnen |
| Fehler, Wünsche oder Kommentare melden | Die GitHub-Issues-Seite öffnen |
| Hilfe (Web) | Das Online-Handbuch auf GitHub Pages in der zur UI-Sprache passenden Seite öffnen |

Die UI-Sprache wird über das separate Menü **Sprache** umgeschaltet (erfordert Neustart).

### Language
### Sprache

Die UI-Sprache umschalten. Elf Sprachen stehen zur Verfügung — English, 日本語, Deutsch, Français, Español, Português, Italiano, Русский, 简体中文, 繁體中文 und 한국어 — und das Menü zeigt jede in ihrer eigenen Schrift. Die Änderung wird nach einem Neustart von ReciPro wirksam. Das Online-Handbuch folgt derselben Einstellung.
Die UI-Sprache umschalten. Elf Sprachen stehen zur Verfügung — English, 日本語 (Japanisch), Deutsch, Français, Español, Português, Italiano, Русский, 简体中文, 繁體中文 und 한국어 — und das Menü zeigt jede in ihrer eigenen Schrift. Die Änderung wird nach einem Neustart von ReciPro wirksam. Das Online-Handbuch folgt derselben Einstellung, sodass <kbd>F1</kbd> und **Hilfe ▸ Hilfe (Web)** die Seite in der gewählten Sprache öffnen.

### Macro
### Makro

Öffnet das [Makro](20-macro/index.md)-Fenster, um ReciPro-Operationen mit Python-ähnlichen Skripten zu automatisieren. Für wiederkehrende Arbeitsabläufe siehe die [integrierten Funktionen](20-macro/1-built-in-functions.md) und die [Makro-Beispiele](20-macro/2-examples.md).

Expand All @@ -118,7 +119,7 @@ Zeigt die Kristallorientierung. Zum Drehen ziehen. Achsen: rot = *a*, grün = *b
Setzt auf den Anfangszustand zurück: *c*-Achse senkrecht zum Bildschirm, *b*-Achse nach oben.

### Zonenachse
Zeigt die zur Bildschirmnormalen nächstgelegene Zonenachse an (z. B. *u*+*v*+*w* < 30).
Zeigt die zur Bildschirmnormalen nächstgelegene Zonenachse [*uvw*] an; gesucht wird unter den Indizes, deren Beträge die im max-UVW-Feld angezeigte Grenze nicht überschreiten (Doppelklick auf die Beschriftung **Current Index** blendet dieses Feld ein bzw. aus).

### Euler-Winkel (Z-X-Z)
Stellen Sie die Kristallorientierung mit **Z–X–Z**-Euler-Winkeln ein:
Expand Down Expand Up @@ -178,7 +179,7 @@ Siehe [Rotationsgeometrie](4-rotation-geometry.md) und [Anhang A1. Koordinatensy

## Kristallinformation

Bearbeiten Sie Gitterparameter, Symmetrie und Atome; ziehen Sie CIF/AMC-Dateien per Drag & Drop hinein, um eine Struktur zu laden. Dieses Steuerelement wird von ReciPro, PDIndexer und CSmanager gemeinsam genutzt, aber die angezeigten Registerkarten und Funktionen unterscheiden sich je nach Anwendung. ReciPro zeigt die Registerkarten Basisinfo, Atominfo und Lit. (die Registerkarten EOS, Elasticity und andere sind für die anderen Anwendungen und werden in ReciPro nicht angezeigt).
Bearbeiten Sie Gitterparameter, Symmetrie und Atome; ziehen Sie CIF/AMC-Dateien per Drag & Drop hinein, um eine Struktur zu laden. Dieses Steuerelement wird von ReciPro, PDIndexer und CSManager gemeinsam genutzt, aber die angezeigten Registerkarten und Funktionen unterscheiden sich je nach Anwendung. ReciPro zeigt die Registerkarten Basisinfo, Atominfo und Lit. (die Registerkarten EOS, Elasticity und andere sind für die anderen Anwendungen und werden in ReciPro nicht angezeigt).

> **Wichtig**: Drücken Sie **↑ Hinzufügen ↑** oder **↑ Ersetzen ↑**, um Änderungen zu speichern.

Expand All @@ -201,7 +202,7 @@ Gitterparameter, Symmetrie und daraus abgeleitete Größen.
| Mittleres Z (Anzahl) / Mittleres Z (Masse) / Mittleres A | Anzahl- bzw. massengewichtete mittlere Ordnungszahl und mittleres Atomgewicht pro Atom. |
| Atomdichte / Elektronendichte | Anzahl der Atome bzw. Elektronen pro Zellvolumen, angezeigt in Å⁻³ / nm⁻³ entsprechend der **Einheit**-Auswahl. |

### Registerkarte Atominfoinfo
### Registerkarte Atominfo

![Atom](../assets/cap-de-auto/FormMain.toolStripContainer1.splitContainer.groupBoxCrystalInformation.crystalControl.tabControl.tabPageAtom.png)

Expand Down Expand Up @@ -231,7 +232,7 @@ Klicken Sie mit der rechten Maustaste auf eine Atomzeile und wählen Sie **Äqui
| Strahlung | Quelle / Einstellung |
|-----------|------|
| X-ray | Streufaktoren einschließlich Ionenwertigkeit (International Tables for Crystallography, Vol. C). |
| Electron | Elektronen-Streufaktoren (Peng 1998, Acta Cryst. A54, 481–485). |
| Electron | Elektronen-Streufaktoren — neutrale Atome nach Peng, Ren, Dudarev & Whelan (1996), *Acta Cryst.* **A52**, 257–276; Ionen nach Peng (1998), *Acta Cryst.* **A54**, 481–485. |
| Neutron | Neutronen-Streulängen. Wählen Sie **Natural isotope abundance** oder **Custom isotope abundance** (eine beliebige Isotopenzusammensetzung). |

### Registerkarte Lit.
Expand Down Expand Up @@ -259,14 +260,14 @@ Rechtsklick auf einen leeren Bereich des Steuerelements für diese Hauptaktionen

## Funktionen-Panel {#functions}

Die senkrechte Schaltflächenleiste rechts startet die Analyse- und Simulationsfenster (siehe die Tabelle [Funktionen](#functions) unten).
Die senkrechte Schaltflächenleiste rechts startet die unten aufgeführten Analyse- und Simulationsfenster.

![Funktionen-Panel](../assets/cap-de-auto/FormMain.toolStripContainer1.toolStrip1.png)

| Schaltfläche | Beschreibung | Details |
|--------|-------------|---------|
| Crystal Database | Kristalle aus den mitgelieferten / Online-Datenbanken suchen und importieren | [1. Kristalldatenbank](1-crystal-database.md) |
| Symmetry Information | Raumgruppeninformationen und ITC-Vol.-A-Symmetriediagramme | [2. Symmetrieinformationen](2-symmetry-information.md) |
| Symmetry Information | Raumgruppeninformationen und Symmetriediagramme aus *International Tables* Vol. A | [2. Symmetrieinformationen](2-symmetry-information.md) |
| Beam Interaction | Strahl-Kristall-Wechselwirkung: Reflexe, Abschwächung, Streufaktoren, Fluoreszenz | [3. Strahl-Wechselwirkung](3-beam-interaction.md) |
| Rotation Geometry | 3D-Rotationsmatrix / Goniometerwinkel | [4. Rotationsgeometrie](4-rotation-geometry.md) |
| Structure Viewer | 3D-Kristallstruktur | [5. Strukturansicht](5-structure-viewer.md) |
Expand Down
26 changes: 14 additions & 12 deletions docs/src/de/11-spot-id-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,16 @@ Die Kameralänge (mm) und die Detektor-Pixelgröße (mm oder nm⁻¹). Wenn eine

![Reflexinformation](../assets/cap-de-auto/FormSpotIDV2.splitContainer1.groupBoxSpot.png)

- **Detect & Fit Spots**: Automatische Reflexerkennung mittels lokaler Maxima und Untergrundabzug.
- **Number**: Die maximale Anzahl der zu erkennenden Reflexe.
- **Nearest neighbour**: Der minimale Abstand (px), der zwischen erkannten Reflexen zulässig ist. Peaks, die enger beieinander liegen, werden zusammengeführt, um eine Doppelerkennung desselben Reflexes zu verhindern.
- **Fitting range (radius)**: Der Radius (px) des kreisförmigen Bereichs, der zum Fitten des Peaks jedes Reflexes verwendet wird. Pixel innerhalb dieses Kreises werden mit einer Pseudo-Voigt-Funktion gefittet.
- **Apply to All**: Setzt den Fit-Radius jedes Reflexes auf den aktuellen Wert von **Fitting range (radius)**.
- **Delete spot / Clear spots**: Einzelne oder alle erkannten Reflexe entfernen.
- **Copy to clipboard**: Reflexpositionen und -intensitäten in die Zwischenablage kopieren.
- **Details of the spot**: Wenn aktiviert, öffnet sich ein Fenster mit detaillierten Informationen zum aktuell ausgewählten Reflex.
- **Reflexe finden & anpassen**: Automatische Reflexerkennung mittels lokaler Maxima und Untergrundabzug.
- **Anzahl**: Die maximale Anzahl der zu erkennenden Reflexe.
- **Nächster Nachbar**: Der minimale Abstand (px), der zwischen erkannten Reflexen zulässig ist. Peaks, die enger beieinander liegen, werden zusammengeführt, um eine Doppelerkennung desselben Reflexes zu verhindern.
- **Anpassungsradius**: Der Radius (px) des kreisförmigen Bereichs, der zum Fitten des Peaks jedes Reflexes verwendet wird. Pixel innerhalb dieses Kreises werden mit einer Pseudo-Voigt-Funktion gefittet.
- **Auf alle anwenden**: Setzt den Fit-Radius jedes Reflexes auf den aktuellen Wert von **Anpassungsradius**.
- **Löschen / Alle leeren**: Den ausgewählten Reflex oder alle erkannten Reflexe entfernen.
- **Kopieren**: Reflexpositionen und -intensitäten in die Zwischenablage kopieren.
- **Globale Anp.**: Führt einen globalen Fit aller Reflexpositionen auf einmal durch (experimentell).
- **Donut**: Wendet einen donutförmigen Untergrundabzug an (experimentell); das Feld daneben legt die Breite (px) des Rings um jeden Reflex fest, dessen Mittelwert als lokaler Untergrund abgezogen wird.
- **Reflex-Details**: Wenn aktiviert, öffnet sich ein Fenster mit detaillierten Informationen zum aktuell ausgewählten Reflex.

![Details of the spot](../assets/cap-de-auto/FormSpotIDv2Details.png)

Expand All @@ -71,10 +73,10 @@ Die Kameralänge (mm) und die Detektor-Pixelgröße (mm oder nm⁻¹). Wenn eine

![Index](../assets/cap-de-auto/FormSpotIDV2.splitContainer1.groupBoxIndex.png)

- **Identify Spots**: Führt den Indizierungsalgorithmus aus, um den am besten passenden Kristall und die Zonenachse zu finden.
- **Acceptable error**: Legt die akzeptable Abweichung im Netzebenenabstand und Winkel für eine Übereinstimmung fest.
- **Ignore prohibited reflections**: Wenn aktiviert, werden durch Schraubenachsen und Gleitspiegelebenen verbotene Reflexe bei der Suche nach der Zonenachse als nicht zwingend erfüllt behandelt.
- **Single Grain / Multiple Grains**: Suche nach einer einzelnen Orientierung (Einkristall) oder nach mehreren Orientierungen (ein polykristalliner / Mehrkorn-Bereich). Für mehrere Körner legt **Max. num. of grains** die Obergrenze für die Anzahl der zu suchenden Körner fest.
- **Reflexe identifizieren**: Führt den Indizierungsalgorithmus aus, um den am besten passenden Kristall und die Zonenachse zu finden.
- **Zulässiger Fehler**: Legt die akzeptable Abweichung im Netzebenenabstand und Winkel für eine Übereinstimmung fest.
- **Verbotene Reflexe ignorieren**: Wenn aktiviert, werden durch Schraubenachsen und Gleitspiegelebenen verbotene Reflexe bei der Suche nach der Zonenachse als nicht zwingend erfüllt behandelt.
- **Einzelkorn / Mehrere Körner**: Suche nach einer einzelnen Orientierung (Einkristall) oder nach mehreren Orientierungen (ein polykristalliner / Mehrkorn-Bereich). Für mehrere Körner legt **Max. num. of grains** die Obergrenze für die Anzahl der zu suchenden Körner fest.
- **Results**: Die besten Übereinstimmungen werden mit Kristallname, Zonenachse [uvw] und den einzelnen Reflexindizes (hkl) angezeigt.

---
Expand Down
6 changes: 4 additions & 2 deletions docs/src/de/12-ebsd-simulation.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ Das zentrale Feld zeigt das EBSD-(Kikuchi-Band-)Muster für die aktuelle Kristal

- **Bild mit BSE-Winkel-/Energieverteilungen anzeigen** : ist diese Option aktiviert, wird das Muster durch Gewichtung mit der BSE-Verteilung (Energie, Tiefe, Richtung) statt einer einzelnen Scheibe zusammengesetzt.
- **Energy / Depth** : ist das Obige deaktiviert, wählt dies die anzuzeigende Energie-/Tiefenscheibe.
- **Helligkeit** (**Min** / **Max**), **Polarität**, **Farbe** : Helligkeitsbereich, Polarität und Farbskala.
- **Helligkeit** (**Min** / **Max**), **Kontrast**, **Polarität**, **Farbe** : Schwarz- und Weißpunkt des simulierten Musters in Prozent des Anzeigebereichs (lineare Schieberegler), die Breite dieses Bereichs, seine Polarität und die Farbskala. Kontrast 0 setzt den Anzeigebereich gleich dem Intensitätsbereich des Musters selbst; -1 verbreitert ihn auf das Zehnfache (zehnmal schwächerer Kontrast) und +1 verengt ihn auf ein Zehntel, jeweils bei festgehaltener Mitte.
- **Untergrund glätten** (**FWHM**, px; Standard aus, 100 px) : zieht vom simulierten Muster eine gaußsch verwischte Kopie ab und entfernt so die langsam veränderliche Helligkeitsverteilung, damit Bänder und Zonenachsen mit einem untergrundkorrigierten Messmuster verglichen werden können. Die Halbwertsbreite ist in Detektorpixeln angegeben und hängt nicht vom Zoom ab. Wirkt auf die Anzeige und den PNG/TIFF-Export; der CSV-Export behält die Rohwerte.

### Experimentelles Bild
Expand All @@ -174,7 +174,9 @@ Das zentrale Feld zeigt das EBSD-(Kikuchi-Band-)Muster für die aktuelle Kristal

Ziehen Sie eine EBSD-Bilddatei (TIFF, PNG, BMP oder JPEG; 16-Bit-TIFF wird mit voller Tiefe gelesen) an eine beliebige Stelle des Fensters, um sie als experimentelles Muster zu laden. Sie wird über dem Detektorbereich gezeichnet — über dem simulierten Muster und unter den Kikuchi-Linien-Overlays — sodass sich Simulation und Messung direkt vergleichen lassen. Beim Laden werden außerdem **Width** und **Height** des Detektors auf die Bildgröße gesetzt.

- **Helligkeit** (**Min** / **Max**) : Schwarz- und Weißpunkt des überlagerten Bildes als Anteil seines eigenen Intensitätsbereichs (logarithmische Schieberegler). Sie wirken nur auf das experimentelle Bild, nicht auf das simulierte Muster.
- **Helligkeit** (**Min** / **Max**), **Kontrast** : Schwarz- und Weißpunkt des überlagerten Bildes in Prozent seines Anzeigebereichs sowie die Breite dieses Bereichs (lineare Schieberegler, gleiche Konvention wie beim simulierten Muster). Sie wirken nur auf das experimentelle Bild.
- **Untergrund glätten** (**FWHM**, px; Standard aus, 100 px) : zieht vom experimentellen Bild eine gaußsch verwischte Kopie ab und entfernt so seine langsam veränderliche Helligkeitsverteilung. Die Intensitätsregler wirken dann auf die geglätteten Werte.
- **An Bild anpassen** : setzt **Min**, **Max** und **Kontrast** des simulierten Musters so, dass dessen 2-%- und 98-%-Intensitätsniveaus im selben Grauton erscheinen wie die des experimentellen Bildes. Der Abgleich verwendet Perzentile, hängt daher nicht von der Orientierungslösung ab und ist unempfindlich gegenüber einem Sockel oder einigen wenigen hellen Zonenachsen-Pixeln. Polarität, Farbe und beide Einstellungen **Untergrund glätten** bleiben unverändert; glätten Sie daher vor dem Klick entweder beide Seiten oder keine.
- **Deckkraft** : Deckkraft des überlagerten Bildes, von 0 (unsichtbar) bis 100 % (undurchsichtig). Verringern Sie sie, um das darunterliegende simulierte Muster zu sehen.

Für die Suche nach der Orientierung, die das Bild erklärt, stehen zwei Verfahren zur Verfügung.
Expand Down
2 changes: 1 addition & 1 deletion docs/src/de/2-symmetry-information.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ Listet zu Referenzzwecken jede tabellierte Ursprungs-/Achsenaufstellung, die die
Die beiden Felder unten geben die schematischen Symmetriediagramme der Raumgruppe in der Notation der *International Tables for Crystallography* Vol. A wieder.

- **Symmetrieelemente (links)**: Dreh-/Schraubenachsen, Spiegel-/Gleitspiegelebenen sowie Inversionszentren/Drehinversionspunkte werden mit den konventionellen graphischen Symbolen gezeichnet.
- Für das \(F\)-Gitter des kubischen Systems wird nur ein Achtel der Elementarzelle (nur der obere linke Quadrant) gezeigt.
- Für das \(F\)-Gitter des kubischen Systems wird nur das obere linke Viertel der projizierten Zelle gezeigt (siehe [Anhang A4.1](appendix/a4-symmetry-space-groups/symbols-and-diagrams.md#symmetry-element-diagram)).
- Diese Symmetrieelemente können auch direkt auf das 3D-Modell in der [Strukturansicht](5-structure-viewer.md) gezeichnet werden.
- **Allgemeine Lagen (rechts)**: Die allgemeinen äquivalenten Lagen werden als Kreise dargestellt (ein Komma bezeichnet ein Spiegelbild) und mit ihren fraktionellen Koordinaten beschriftet.
- Nur für das kubische System verbinden Hilfslinien die drei Kreise, die durch eine dreizählige Drehachse miteinander verknüpft sind.
Expand Down
1 change: 1 addition & 0 deletions docs/src/de/20-macro/1-built-in-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ Eulerwinkel sind an Gimbal-Positionen (θ = 0 oder 180°) nicht eindeutig: `GetE
| `Thickness` | double | Probendicke (nm) |
| `NumberOfDiffractedWaves` | int | Anzahl der Bloch-Wellen |
| `CameraLength2` | double | Kameralänge (mm) |
| `ExcitationError` | double | Reflexradius (nm⁻¹): im kinematischen/Anregungsmodus exportiert `SpotInfo()` die Reflexe mit \|Sg\| innerhalb dieses Wertes |
| `SkipRendering` | bool | Rendering für Stapelverarbeitung überspringen |

### Strahlmodus
Expand Down
5 changes: 3 additions & 2 deletions docs/src/de/20-macro/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Makros werden in Python-Syntax geschrieben. Mit den integrierten Klassen und Fun

## Editorfenster

Der Makro-Editor hat vier Hauptbereiche:
Der Makro-Editor besteht aus den folgenden Bereichen:

| Bereich | Zweck |
|------|---------|
Expand Down Expand Up @@ -112,7 +112,7 @@ Diese Grundlagen sind im Autovervollständigungs-Popup vorab registriert, sodass

### NICHT verwendbar

- **`print()`** : es gibt kein Konsolenfenster; die Ausgabe verschwindet. Verwenden Sie **Step by step** und sehen Sie sich das Debug-Panel an, um Werte zu prüfen.
- **`print()`** : es gibt kein Konsolenfenster; die Ausgabe verschwindet. Verwenden Sie **Step by step** und sehen Sie sich das Debug-Panel an, um Werte zu prüfen. (Ausnahme: Wird das Makro von außen ausgeführt — über die Kommandozeile `/o` oder die [Named Pipe](3-external-control.md) —, wird die Ausgabe von `print()` *doch* erfasst und zurückgegeben.)
- **`input()`** : kein stdin.
- **Datei-E/A** (`open`, `with open`) : nicht für Makros vorgesehen. Verwenden Sie stattdessen die `ReciPro.File.*`-Hilfsfunktionen.
- **C-Erweiterungspakete**: `numpy`, `scipy`, `pandas`, `matplotlib` — nicht mit IronPython kompatibel.
Expand Down Expand Up @@ -161,3 +161,4 @@ Der Editor wählt automatisch die im Traceback gemeldete Zeile aus (den innerste

- [20.1. Integrierte Funktionen](1-built-in-functions.md)
- [20.2. Beispiele](2-examples.md)
- [20.3. Externe Steuerung (Kommandozeile & Named Pipe)](3-external-control.md)
Loading
Loading