[Release] BFpilot / BS5FileManager

  • BFpilot / BS5FileManager

    BFpilot ist ein kleines PS5-Payload, das dir einen browserbasierten Dateimanager auf Port 5905 zur Verfügung stellt.

    Es ist bewusst einfach gehalten: kein PKG-Installer, kein FTP-Dienst, keine Mounting-Tools und kein zusätzliches Payload-Bundle. Das Payload startet einen Webserver, aktualisiert eine Launcher-Kachel auf dem PS5-Startbildschirm und lässt die PS5 Dateivorgänge lokal ausführen.

    Was es macht
    • Führt eine Dateimanager-Web-Benutzeroberfläche unter http://<PS5_IP>:5905/ aus.
    • Installiert oder aktualisiert eine BFpilot-Launcher-Kachel auf dem PS5-Startbildschirm.
    • Verwendet ausschließlich ein dunkles Design (Dark UI).
    • Ermöglicht das Durchsuchen, Hochladen, Herunterladen, Kopieren, Verschieben, Umbenennen, Erstellen von Ordnern und Löschen.
    • Zeigt den Fortschritt für Kopier-, Verschiebe-, Lösch- und Browser-Upload-Vorgänge an.
    • Zeigt während der Arbeit Größe, Geschwindigkeit, verbleibende Zeit (ETA), Elementanzahl sowie den aktuellen Pfad bzw. die Datei an.
    • Berechnet die Ordnergröße nur, wenn du einen Ordner auswählst.
    • Erstellt fehlende Zielordner für Kopiervorgänge/Verschiebevorgänge automatisch.
    • Behält die Standard-Zielverknüpfungen unter /data/homebrew und /mnt/usb0 bei.
    Changelog

    v0.3.5

    This release contains structural performance, memory efficiency, and usability optimizations.
    heavily tested on 11.6 but didnt have chance to test on other firmwares.
    indexing and files search is working mostly but keep in mind a lot of things are encrypted and are not visible so they cant be indexed.
    treat this as a stablish release with all features, its fast and its working fine, but i stacked a lot of features now so any feedback would be appreciated, if you want lighter version that only has file manager use 3.0.

    Key Features

    • Graceful Exit & Re-injection:
      • Implemented loopback TCP wakeup to unblock the socket accept() loop instantly during shutdown.
      • Added graceful exit flags to terminate background archive daemon and search crawler threads cleanly.
      • Web port 5905 and loader port 9021 release instantly on exit, allowing payload re-injection without console reboots.
    • Fast Multi-Threaded Search Indexing:
      • Added a work-stealing concurrent crawler thread pool for filesystem indexing.
      • Search matches are resolved in 0ms with dynamic path/filename highlighting.
    • Integrated Archive Extraction:
      • Integrated RAR, 7z (including split .7z.001 volumes), and ZIP extraction directly in the main ELF.
      • Full support for encrypted/passworded ZIP, RAR, and 7z archives with clean error handling and partial folder cleanups.
    • Premium Web UI & Virtual Scrolling:
      • Implemented virtual scrolling row recycling to prevent the PS5 Web Browser from running out of memory (OOM) on massive directories (10,000+ files).
    • Storage & Network Optimizations:
      • Uses FreeBSD sendfile syscall for zero-copy file downloads.
      • Boosted socket send/receive buffers to 2MB and enabled TCP_NODELAY to eliminate latency.
      • Bypasses heavy lstat calls during crawls to maximize SSD indexing speed.


    v0.3.1 (Test Build 4 - 9)

    High-level changes since v0.3:

    • Adds standalone archive extraction support inside bfpilot.elf; normal archive extraction no longer requires injecting a separate worker ELF.
    • Adds archive handling for ZIP, RAR, 7z, and common split archive flows, including password prompting for encrypted archives.
    • Keeps the launcher installer as a separate payload for firmware compatibility.
    • Includes UI polish around storage display, plugged drive handling, and persistent custom shortcuts.
    • Keeps diagnostics and transfer instrumentation available for troubleshooting.
    • Archive extraction is back out of the main payload. bfpilot.elf is
      file-manager-only again.
    • RAR and 7z extraction were made conservative for PS5 stability.
    • Docs and diagnostics were aligned to the worker-based archive flow.
    • Build and import checks passed.
    • bfpilot.elf now includes integrated archive extraction for normal use without requiring a second archive-worker payload injection.
    • bfpilot-archive-worker.elf remains available as a fallback and diagnostic asset.
    • Archive extraction support and diagnostics were updated for RAR, 7z, split 7z, ZIP stored/deflate/ZIP64/ZipCrypto, password handling, progress/status metrics, and conservative runtime behavior.
    • Storage reporting now distinguishes usable/raw/reserved bytes, and the UI labels usable free space more clearly.
    • Added a read-only PS5 storage audit script for investigating mismatched storage accounting.
    • Launcher installation remains isolated in bfpilot-launcher-installer.elf.
    • Keeps archive extraction integrated in bfpilot.elf; no archive worker injection is required for normal extraction.
    • Adds RAR output buffering and expanded archive timing telemetry for bottleneck diagnosis.
    • Keeps RAR extraction clamped to 1 effective thread for stability after the large-archive crash investigation.
    • Adds scripts/ps5_archive_perf.py for controlled BFpilot-owned archive performance tests and cleanup.
    • Updates diagnostics/docs and removes machine-specific LAN IP examples from release docs/scripts.
    • Adds indexed search to the file manager UI.
    • Adds Index All for user/storage roots.
    • Adds Index System for broader system-file crawling.
    • Adds search status, cancel, stale tracking, and absolute-path search results.
    • Keeps launcher/AppInst imports isolated from the main payload.
    • Includes current archive extraction performance work in this build.

    Artifacts:

    • bfpilot.elf - main compatible BFpilot file manager payload.
    • bfpilot-launcher-installer.elf - separate launcher tile installer payload.
    • bfpilot-archive-worker.elf - standalone archive worker payload kept for diagnostics/manual testing.

    Validation:

    • PS5_PAYLOAD_SDK=/home/blurf/PS5/ps5-payload-sdk make all passed.
    • PS5_PAYLOAD_SDK=/home/blurf/PS5/ps5-payload-sdk make inspect-imports passed.

    Checksums:

    • bfpilot.elf: 9c59141cdf0c9b0c8c5c912c207ac055986833f0232d2e6d0ac348bfdebd60f3
    • bfpilot-launcher-installer.elf: fa26790beabdaced2c90858dab7183829c3c2b3b6a43b7638fab524fa7f1d056
    • bfpilot-archive-worker.elf: 507c06abc41306fc366d1dc007796d67e4dd1c7804373b8100bd147324ab4e1b

    Known limitations:

    • ZIP AES and some uncommon multi-volume ZIP variants remain limited.
    • Archive behavior should still be tested on the target PS5 with real user archives before treating this as final stable behavior.


    v0.3 ist eine stabile Version, die Kompatibilitäts- und UI-Änderungen mit sich bringt. (getestet auf 11.6 und 12.6)

    Highlights:

    • Stabile, reine Dateimanager-Version (bfpilot.elf) für eine breite Firmware-Kompatibilität.
    • Separater bfpilot-launcher-installer.elf für die PS5-Startbildschirm-Kachel.
    • Übersichtlichere Web-UI mit den Bereichen Daten/Homebrew/Mounts/User/Root, Anzeige von gemounteten Laufwerken nur bei Verfügbarkeit und einer kompakten Speicherübersicht.
    • Dauerhafte benutzerdefinierte Verknüpfungen mit Steuerelementen zum Hinzufügen, Entfernen und Umbenennen.
    • Transferdiagnose mit Zeitmessung, Durchsatz, Byte-Zahl, Geräte-IDs und Statistiken zum letzten Upload.
    • Schnellerer PS5-seitiger Kopierpfad durch einen größeren Transferpuffer.
    • Lokale Diagnose und ein sicherer Funktionstest („Smoke Test“) für Upload, Download, Kopieren, Verschieben, Umbenennen und Bereinigen unter /data/test.
    • Repository-Bereinigung: Alte Debug-/Full-/Probe-Payloads und generierte Artefakte wurden aus der Release-Oberfläche entfernt.

    SHA256:

    • bfpilot.elf: 7aa63351a21bf7a663e95dee78409f9cd06fac29fc329fae902652399a3ffe46
    • bfpilot-launcher-installer.elf: 46645d64c4e0f087ceb3339d4a70b359c03f5360f565a22109c292cf0a27a8d9


    v0.2.1 Beta3 Pre-Release

    Dies ist ein Pre-Release-Build zur Kompatibilitätsprüfung, kein finales, stabiles Release.

    Empfohlener erster Payload:

    • bfpilot.elf: Dateimanager mit maximaler Kompatibilität, ohne AppInstUtil/Launcher-Installer-Importe.

    Debug-/Test-Payloads:

    • bfpilot-debug.elf: Dateimanager mit zusätzlichen Boot-/Debug-Benachrichtigungen.
    • bfpilot-full.elf: Experiment mit dynamischem Launcher plus Dateimanager.
    • bfpilot-launcher-installer.elf: Direkter AppInstUtil Launcher-Installer-Test, hauptsächlich für Firmwares/Loader, die AppInst-Importe akzeptieren.
    • bfpilot-launcher-installer-safe.elf: Diagnose für die Laufzeit-Auflösung von AppInst.
    • tests/*.elf: Kleine Probes für Boot/HTTP/Benachrichtigungen/AppInst.

    Änderungen in diesem Test-Build:

    • Hält den Haupt-Dateimanager Firmware-unabhängig (leichtgewichtig).
    • Fügt Boot-Marker-Diagnose und Import-Überprüfung hinzu.
    • Behebt den Fehler, bei dem der Fortschrittsbalken bei Mehrfachauswahl verschwand, während das zweite Element noch verschoben wurde.
    • Stellt geräteübergreifende Kopier-/Verschiebevorgänge in .bfpilot-part-* bereit, bevor sie abgeschlossen werden.
    • Verweigert das Überschreiben/Zusammenführen von Zielen während des Kopierens/Verschiebens.
    • Bereinigt fehlgeschlagene/abgebrochene Staging-Ordner.

    Validierung:

    • Erstellt mit PS5_PAYLOAD_SDK=C:/Users/Blurf/ps5-payload-sdk.
    • make inspect-imports erfolgreich durchlaufen.
    • bfpilot.elf und bfpilot-debug.elf haben keine direkten AppInstUtil-Importe.


    v0.2.1 Beta2 Pre-Release

    Firmware-Kompatibilitäts-Test-Build. Dies ist ein Pre-Release-Test-Build, kein finales, stabiles Release.

    Änderungen seit v0.2.1 Beta1:

    • Der „Full“-Build verlinkt nun libSceAppInstUtil normal.
    • Der „Full“-Build ruft sceAppInstUtilInitialize() und sceAppInstUtilAppInstallAll(NULL) über SDK-Stubs auf.
    • Nur sceAppInstUtilAppInstallTitleDir wird dynamisch über den NID Wudg3Xe3heE aufgelöst.
    • Die Launcher-Installation erfolgt nach dem Start des Webservers; Fehler sind dabei nicht fatal.
    • Die Benachrichtigung bei Launcher-Fehlern lautet nun: „BFpilot launcher skipped / Use https://psxtools.de/“.
    • /api/diag berichtet nun über: core_server_started, launcher_attempted, appinst_init_rc, title_dir_resolved, install_title_rc, install_all_rc, uninstall_rc und launcher_final_state.

    Empfohlene Testreihenfolge:

    1. Sende bfpilot-core.elf an den elfldr-Port 9021 und öffne http://PS5_IP:5905/.
    2. Wenn der „Core“-Modus funktioniert, sende bfpilot-full.elf und nutze weiterhin http://PS5_IP:5905/, selbst wenn die Launcher-Installation übersprungen wurde.
    3. Speichere /api/diag und /data/BFpilot/log.txt für jeden Launcher-Fehler, der auftritt.

    SHA256-Prüfsummen:

    • bfpilot-core.elf: 4375479705F599147533E3EC667FB18BF03FE9DE17EB29FB54C5998078D429E0
    • bfpilot-full.elf: C5B66745332A4B353B0B32ABD0EC408B179E7B6A7D22BD9C0DB4BE7250633FC7


    v0.2.1 Beta1 Pre-Release

    BFpilot v0.2.1 Firmware-Kompatibilitätstest-Build. Dies ist ein Pre-Release/Test-Build, kein finales, stabiles Release.

    Empfohlene Testreihenfolge:

    1. Teste zuerst die bfpilot-core.elf auf jeder Firmware bzw. mit jedem Loader.
    2. Öffne http://PS5_IP:5905/ und überprüfe /api/status sowie /api/diag.
    3. Teste die bfpilot-full.elf erst, wenn der Core-Modus einwandfrei funktioniert.
    4. Betrachte einen Installationsfehler des Launchers als unkritisch, solange der Webserver weiterhin läuft.

    Das vollständige Testprotokoll findest du unter docs/FIRMWARE_TESTING.md.


    v0.2.0

    Diese Version wurde bisher nur für die Firmware 11.60 bestätigt. Allen, die eine neuere oder ältere Firmware nutzen, empfehle ich, sich die neuesten Pre-Releases anzusehen.

    In diesem Build hinzugefügt und behoben:

    • Umbenennung des Projekts, der Web-Benutzeroberfläche (UI), der PS5-Launcher-Kachel, der Benachrichtigungen und der Release-Binärdatei von BS5FileManager zu BFpilot.
    • Entfernt ältere BSFM00001 / BS5F00001 Launcher-Kacheln während der Aktualisierung.
    • Behält die Kompatibilität für die Neu-Injektion (Reinjection Handoff) mit älteren BS5FileManager-Listenern auf Port 5905 bei.
    • Upload-Fortschritt in der Web-UI zeigt jetzt die gesendete Datenmenge, Geschwindigkeit, geschätzte Restzeit (ETA), Dateianzahl und den aktuellen Dateinamen an.
    • Fehlende Zielordner werden automatisch erstellt.
    • Das Injizieren des Payloads aktualisiert/installiert die PS5-Launcher-Kachel, ohne den Browser automatisch zu öffnen.
    • Das Abbrechen von Vorgängen ist während Scan-, Kopier-, Verschiebe-, Bereinigungs- und Löschvorgängen jetzt sicherer.
    • Jetzt im Dark-Mode.

    Injektions-/Deployment-Port: 9021

    Web-UI-Port: 5905

    Launcher Title ID: BFPL00001


    v0.1.1

    Frühes BS5FileManager-Build, fokussiert auf einen kleinen, stabilen Datei-Manager für den PS5-Browser. Änderungen in diesem korrigierten 0.1.1-Build:

    • Aktualisiert und registriert die PS5-Launcher-Kachel auf dem Homescreen bei jeder Injektion neu.
    • Speichert den Status des Launchers unter /data/BS5fm.
    • Fügt einen sicheren „Reinjection-Handoff“ hinzu: Inaktive, alte Instanzen werden gestoppt, laufende Dateiaufträge werden nicht unterbrochen.
    • Behält die Web-UI auf Port 5905 und den Injektions-/Deployment-Port 9021 bei.
    • Zeigt Kopier-/Verschiebe-/Löschgeschwindigkeit in MB/s sowie die geschätzte Restzeit (ETA) basierend auf server-seitigen Job-Zählern an.


    v0.1.0 Frühes, aber stabiles BS5FileManager-Build. Dies ist die erste öffentliche Veröffentlichung des leichtgewichtigen PS5-Browser-Datei-Manager-Payloads. Highlights:

    • Web-Datei-Manager auf Port 5905.
    • PS5-Launcher-Kachel auf dem Homescreen.
    • Kopieren, Verschieben, Löschen, Umbenennen, Ordner erstellen (mkdir), Hochladen und Herunterladen.
    • Ordnergrößen per Klick berechnen.
    • Injiziere bs5filemanager.elf über Port 9021 und öffne anschließend `

    Quelle: https://github.com/ItsBlurf/BFpilot#bfpilot


    Auch beim BFpilot v0.3.5 habe ich den Quellcode bearbeitet und die Sprache auf deutsch übersetzt, wie oben im Bild zusehen ist :winking_face:

    *

    Download:
    The content cannot be displayed because you do not have authorisation to view this content.

    Download: BFpilot v0.3.5 latest

    Download: bfpilot-launcher-installer.elf (v0.3.5)

  • Strongt1me June 7, 2026 at 5:58 PM

    Changed the title of the thread from “[Release] BFpilot” to “[Release] BFpilot / BS5FileManager”.
  • Update: BFpilot / BS5FileManager wurde im ersten Post aktualisiert - Version 0.2.0 -> 0.2.1 Beta1 -> 0.2.1. Beta2 -> 0.2.1 Beta3

    Weitere Infos siehe Changelog :slightly_smiling_face:

    Themen Titel wurde angepasst und der erster Post überarbeitet :winking_face:


    PS: Die Kachel kann man einzel oder im paket installieren. Man muss nur die richtige . elf benutzen :yess:

  • Auf Version 0.3 aktualisiert (siehe Changelog) und bfpilot-launcher-installer.elf im ersten Post hinzugefügt. :slightly_smiling_face:

  • sogar auf 0.31 Beta 5 ist raus und läuft mega gut nach compressor ein sehr sinnvolles Tool . :thumbs_up:

    Da ich die Beta's noch nicht getestet habe, wollte ich diese noch nicht aktualisieren

    :lachende: für die Info

  • Update auf Version 0.3.5!

    Changelog siehe Titel :slightly_smiling_face:

    Edit:
    Es wird im Web-UI eine falsche Version ausgegeben, nämlich "bfpilot-0.3.1-test7-search".

  • Update: Auch beim BFpilot v0.3.5 habe ich den Quellcode bearbeitet und die Sprache auf deutsch übersetzt,

    Eine kleine Spielerei habe ich noch implementiert und steht ebenfalls bereit zum Downloaden (Kleine Lüftersteuerung. Wollte dies zum testen in einen bestehenden Payload implementieren. Aber seht selber xxd (Die Lüfter bitte nicht auf 0% stellen und dann vergessen :nono:)

    Download mit der Lüfter Steuerung, aus Sicherheitsgründen wieder entfernt.

  • Bau doch eine Begrenzung ein dass man erst gar nicht unter einen bestimmten Wert die Lüftersteuerung einstellen kann min z.b 30% wenn das möglich wäre ?

    Ich kann leider nicht coden 😭 sonnst würde ich das aus Bock schon Machen 😉 manche Dinge gehen weil man oft ohne viel Wissen schon am Code lesen erkennt welche Funktion für was ist das kann ich...habe mir das aber ehrlich gesagt auch nicht angeschaut.

    Und habe mich noch nie mit dem kompilieren einer .elf Datei beschäftigt.

  • Bau doch eine Begrenzung ein dass man erst gar nicht unter einen bestimmten Wert die Lüftersteuerung einstellen kann min z.b 30% wenn das möglich wäre ?

    Ich kann leider nicht coden 😭 sonnst würde ich das aus Bock schon Machen 😉 manche Dinge gehen weil man oft ohne viel Wissen schon am Code lesen erkennt welche Funktion für was ist das kann ich...habe mir das aber ehrlich gesagt auch nicht angeschaut.

    Es war nur eine kleine Spielerei im BFpilot. Jetzt bin ich schon am überlegen, ob ich den download wieder entfernen soll. :thinking_face: Das eigentliche Programm (Standalone Payload) bin ich noch am erstellen und nennt sich Cooling System Studio. Der Payload ist aber immer noch in der Alpha Phase und das Design gefällt mir auch noch nicht. Es sind noch einige Verbesserungen nötig. Nicht gerade die einfachste Aufgabe die ich mir da Ausgesucht habe :smiling_face:

  • Erstmal Respekt für das was du drauf hast 🤩

    Ja glaube ich dir es ist harte Arbeit sowas du Designen und zu coden und alles... das habe ich schon mit KI gemerkt bei meinem billig tool 😂 für die PS2.

    Echt heftig was du da machst danke dafür (obwohl ich keine PS5 habe) wollte ich danke sagen man investiert viele viele Stunden seiner Freizeit in so ein Projekt.

    Würde wünschen ich könnte das auch dann hätte ich mir die heftigsten tools gebaut weil Ideen sind haufenweise da !

    Nochmal drauf zurück !

    Oder mache eine Warnung ab einem bestimmten Wert in rot das da z.b ne Meldung auf plopt die man manuell bestätigen muss wenn du jetzt zu tief mit den % gehst Gefahr beim Speichern und runterfahren daß beim nächsten Start die PS5 beschädigt werden kann und alles auf eigene Gefahr.

    Aber vielleicht laber ich auch Mist du hast da mehr Ahnung von 🥶

    Kannst du ja auch in deinem neuen Tool so machen.


    Edit: wenn ich dein Bild hier oben zoome wird es unscharf kann man nix mehr lesen vielleicht noch Mal in besserer Qualität hochladen.


    Ich finde dein Design geil 😁 klar kann man bestimmt bischn mehr rausholen musst du dir was überlegen oder eine grobe Skizze auf Papier machen.

    Mach doch die ganzen Quadrate mit den % unter und neben der Bezeichnung PS5 Cooling Studio

    Und das was Rechts ist ganz unten von links nach rechts breit ?


    Und die Beschreibungen was macht was !

    So als Tool Tip beim drauf zeigen also so wie als wenn man mit der Maus auf dem Bereich ist (was aktuell ausgewählt ist) das dann eine Info angezeigt wird was welcher Bereich macht und wozu es da ist.

    Edited 4 times, last by Blade1984: Ein Beitrag von Blade1984 mit diesem Beitrag zusammengefügt. (July 10, 2026 at 1:49 AM).

  • Würde wünschen ich könnte das auch dann hätte ich mir die heftigsten tools gebaut weil Ideen sind haufenweise da !

    Das kannst auch du, glaub mir :winking_face:

    Visual Studio Code (Programm) & Copilot (KI)



    Echt heftig was du da machst danke dafür (obwohl ich keine PS5 habe) wollte ich danke sagen man investiert viele viele Stunden seiner Freizeit in so ein Projekt.

    Danke ebenfalls :slightly_smiling_face: Das mache ich gerne. Wundert mich selber, das ich in relativ kurzer Zeit bereits solche Fortschritte machen konnte. Je mehr ich machen kann, je interessater wird es :smiling_face_with_sunglasses:

    Dachte ich sehe nicht richtig als ich gelesen habe, dass du keine PS5 hast. Für das hast du aber schon so einiges an Wissen angeeignet und hilfst auch bei PS5 Fragen :lachende:

  • Dachte ich sehe nicht richtig als ich gelesen habe, dass du keine PS5 hast. Für das hast du aber schon so einiges an Wissen angeeignet und hilfst auch bei PS5 Fragen

    Ja auch sehr gerne👍 damals hatte ich ein anderen User Name da hatte ich über 4000 Beiträge.

    Man lernt nie aus und das meiste kommt von Playstation 4 Playstation 3 und paar anderen Konsolen 😂 und Interesse allgemein.

    Wundert mich selber, das ich in relativ kurzer Zeit bereits solche Fortschritte machen konnte. Je mehr ich machen kann, je interessater wird es.

    Ja ich finds richtig super geworden muss gelobt werden.

    Das kannst auch du, glaub mir :winking_face:

    Kann sein das es mittlerweile einfacher ist ich habe mich noch nie mit

    Visual Studio Code

    Auseinander gesetzt könnte wirklich sein das ich das kann :cool2: mach ich demnächst Mal und berichte dann !


    Naja möchte dich nicht unnötig aufhalten ich weiss du machst bestimmt jetzt noch was und möchte nicht stören gute Nacht Strongt1me & auch :comm: bis morgen...

  • Ja man lernt nie aus und das meiste kommt von Playstation 4 Playstation 3 und paar andere Konsolen 😂 und Interesse allgemein.

    :smiling_face_with_sunglasses::yess:

    Auseinander gesetzt könnte wirklich sein das ich das kann :cool2: mach ich demnächst Mal und berichte dann !

    Ich bin gespannt :slightly_smiling_face: Würde mich freu, wenn du es auch versuchst :winking_face:


    PS: Das Bild habe ich grösser gemacht (wegen verschwommen...). Aber eben. Es sind noch schreibfehler drin ect... :smiling_face:

  • Ja jetzt kann man es besser lesen 👍 ja Mal sehen versuchen werde ich es auf jeden Fall.


    Eine Frage habe ich ! An dich Strongt1me habe auf den Bildern gesehen das auch Python Scripts benutzt ! Schreibst du die selber oder mit KI ?

    Edited once, last by Blade1984: Ein Beitrag von Blade1984 mit diesem Beitrag zusammengefügt. (July 10, 2026 at 11:28 AM).

  • Eine Frage habe ich ! An dich Strongt1me habe auf den Bildern gesehen das auch Python Scripts benutzt ! Schreibst du die selber oder mit KI ?

    Mit der KI

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!