diff --git a/addtoDB-backup.py b/addtoDB-backup.py new file mode 100644 index 0000000..a9af16c --- /dev/null +++ b/addtoDB-backup.py @@ -0,0 +1,114 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- + +#this script takes a file as an option and adds that file scuttlebutt +# originally from ebb, modified for custodisco + +import optparse +import traceback +import os, sys +import json +import subprocess +import logging + + +def main(): + #get options and arguments + p = optparse.OptionParser() + p.add_option('--file', '-f', action='store', dest='file', help='this needs to be a file path') + + options, arguments = p.parse_args() + + if options.file: + pathToImage=options.file + else: + print("you need to provide a file path") + exit(1) + + +def addToSSB(pathToImage,description,mintOrGive): + + # mint + if mintOrGive == 1: + try: + result = subprocess.Popen('./ssb-post.sh mint "' + description + '" ' + pathToImage, shell=True, stdout=subprocess.PIPE, ) + except: + print('traceback.format_exc():\n%s' % traceback.format_exc()) + exit() + + # else give + elif mintOrGive == 2: + try: + result = subprocess.Popen('./ssb-post.sh give "' + pathToImage + '" ' + description, shell=True, stdout=subprocess.PIPE, ) + except: + print('traceback.format_exc():\n%s' % traceback.format_exc()) + exit() + + # get the ssb json from the bash command we just ran + newssb = result.stdout.read().decode() # decode bytes to string + print(newssb) + + # CHECK that newssb is _anything_ if ssb-server isn't running that may show as garbage that will crash the program + if len(newssb) == 0: + print("String is empty") + + #convert string to object + # Make sure it's valid JSON before loading + try: + json_object = json.loads(newssb) + except json.JSONDecodeError: + print("Invalid JSON") + return "offline" # Return the blouch + + # get the key for the post we just made + key = json_object["key"] + print (key) + + return key + + +def get_message_content(message_id): + try: + print(f"Executing command: ./ssb-post.sh get_message_content {message_id}") + result = subprocess.run(['./ssb-post.sh', 'get_message_content', message_id], + capture_output=True, text=True, check=True) + + print(f"Command output:\n{result.stdout}") + + # Split the output into lines + lines = result.stdout.split('\n') + + # Extract the image path + image_path = None + for line in lines: + if line.startswith("IMAGE_PATH:"): + image_path = line.split(":", 1)[1].strip() + break + + # Find the start of the JSON content + json_start = next(i for i, line in enumerate(lines) if line.strip().startswith("{")) + + # Join the JSON lines and parse + json_content = "\n".join(lines[json_start:]) + message_content = json.loads(json_content) + + print(f"Parsed message content: {message_content}") + print(f"Image path: {image_path}") + + return message_content, image_path + except subprocess.CalledProcessError as e: + print(f"Error: subprocess.CalledProcessError - {e}") + print(f"Debug: stdout = {e.stdout}") + print(f"Debug: stderr = {e.stderr}") + return None, None + except json.JSONDecodeError as e: + print(f"Error: json.JSONDecodeError - {e}") + print(f"Debug: stdout = {result.stdout}") + return None, None + except Exception as e: + print(f"Error: Unexpected exception - {e}") + return None, None + + +if __name__ == '__main__': + main() diff --git a/addtoDB.py b/addtoDB.py index a9af16c..7811832 100644 --- a/addtoDB.py +++ b/addtoDB.py @@ -85,29 +85,46 @@ def get_message_content(message_id): image_path = line.split(":", 1)[1].strip() break - # Find the start of the JSON content + # Find the start and end of the main message content json_start = next(i for i, line in enumerate(lines) if line.strip().startswith("{")) + replies_start = next(i for i, line in enumerate(lines) if line.strip() == "REPLIES_START") - # Join the JSON lines and parse - json_content = "\n".join(lines[json_start:]) + # Join the JSON lines for the main message and parse + json_content = "\n".join(lines[json_start:replies_start]) message_content = json.loads(json_content) + # Parse replies + replies = [] + reply_json = "" + for line in lines[replies_start+1:]: + if line.strip() == "REPLIES_END": + break + if line.strip() == "{": + reply_json = "{" + elif line.strip() == "}": + reply_json += "}" + replies.append(json.loads(reply_json)) + reply_json = "" + else: + reply_json += line + print(f"Parsed message content: {message_content}") print(f"Image path: {image_path}") + print(f"Number of replies: {len(replies)}") - return message_content, image_path + return message_content, image_path, replies except subprocess.CalledProcessError as e: print(f"Error: subprocess.CalledProcessError - {e}") print(f"Debug: stdout = {e.stdout}") print(f"Debug: stderr = {e.stderr}") - return None, None + return None, None, None except json.JSONDecodeError as e: print(f"Error: json.JSONDecodeError - {e}") print(f"Debug: stdout = {result.stdout}") - return None, None + return None, None, None except Exception as e: print(f"Error: Unexpected exception - {e}") - return None, None + return None, None, None if __name__ == '__main__': diff --git a/kiosk.py b/kiosk.py index e0bde6e..87237b7 100644 --- a/kiosk.py +++ b/kiosk.py @@ -152,30 +152,71 @@ class Screen1(tk.Frame): label.pack(pady=90) tk.Button(self, text="Yes, and I already have an account", command=lambda: master.switch_frame(Screen2), height=3, width=30, bg='peach puff', font=GlobalVars.BUTTON_FONT).pack(pady=20) - tk.Button(self, text="Yes, but I need to create an account now", command=lambda: master.switch_frame(Screen7), height=3, width=50, bg='peach puff', font=GlobalVars.BUTTON_FONT).pack(pady=20) + # tk.Button(self, text="Yes, but I need to create an account now", command=lambda: master.switch_frame(Screen7), height=3, width=50, bg='peach puff', font=GlobalVars.BUTTON_FONT).pack(pady=20) tk.Button(self, text="No thanks", command=lambda: master.switch_frame(Screen3), height=3, width=50, bg='peach puff', font=GlobalVars.BUTTON_FONT).pack(pady=20) + + +class VirtualScrolledFrame(ttk.Frame): + def __init__(self, parent, *args, **kw): + ttk.Frame.__init__(self, parent, *args, **kw) + + # Create a canvas object and a vertical scrollbar for scrolling it + self.vscrollbar = ttk.Scrollbar(self, orient=tk.VERTICAL) + self.canvas = tk.Canvas(self, yscrollcommand=self.vscrollbar.set, bg='#bcfef9') + self.vscrollbar.config(command=self.canvas.yview) + + # Reset the view + self.canvas.xview_moveto(0) + self.canvas.yview_moveto(0) + + # Create a frame inside the canvas which will be scrolled with it + self.interior = tk.Frame(self.canvas, bg='#bcfef9') + self.interior_id = self.canvas.create_window(0, 0, window=self.interior, anchor=tk.NW) + + # Pack the widgets + self.vscrollbar.pack(side=tk.RIGHT, fill=tk.Y) + self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) + + # Bind events to the Canvas + self.canvas.bind('', self._configure_canvas) + self.interior.bind('', self._configure_interior) + + def _configure_interior(self, event): + # Update the scrollbars to match the size of the inner frame + size = (self.interior.winfo_reqwidth(), self.interior.winfo_reqheight()) + self.canvas.config(scrollregion="0 0 %s %s" % size) + if self.interior.winfo_reqwidth() != self.canvas.winfo_width(): + # Update the canvas's width to fit the inner frame + self.canvas.config(width=self.interior.winfo_reqwidth()) + + def _configure_canvas(self, event): + if self.interior.winfo_reqwidth() != self.canvas.winfo_width(): + # Update the inner frame's width to fill the canvas + self.canvas.itemconfigure(self.interior_id, width=self.canvas.winfo_width()) + + + # find yourself in list of ssb users class Screen2(tk.Frame): - selected_user = None # This is the global variable to store selected user - def __init__(self, master): tk.Frame.__init__(self, master, bg='#bcfef9') - self.selected_label = None # This is the global variable to store selected label + self.selected_label = None + self.filtered_users = [] # Create a new frame at the top for the label and text box self.top_frame = tk.Frame(self, bg='#bcfef9') - self.top_frame.pack(side="top", fill="x", pady=60) + self.top_frame.pack(side="top", fill="x", pady=(60, 10)) # Add a label with text wrapping self.label = tk.Label(self.top_frame, - text="Start typing your public key to find yourself in the list then click on your key to select it.", + text="Start typing your public key or alias to find yourself in the list then click on your key to select it.", font=GlobalVars.TEXT_FONT, - wraplength=800, # Adjust this value as needed + wraplength=800, bg='#bcfef9') - self.label.pack(side="top", pady=(0, 20)) # Add some padding below the label + self.label.pack(side="top", pady=(0, 10)) # Add text box to the top frame self.entry = tk.Entry(self.top_frame, font=GlobalVars.TEXT_FONT) @@ -186,92 +227,143 @@ class Screen2(tk.Frame): self.entry.focus_set() # Create container for user list - self.container = ttk.Frame(self, height=500) # Define a height here - self.container.pack(fill='both', expand=True, padx=20, pady=20) + self.container = tk.Frame(self, bg='#bcfef9') + self.container.pack(fill='both', expand=True, padx=20, pady=10) - # Initialize users list from users.json + # Create a canvas for the user list + self.canvas = tk.Canvas(self.container, bg='#bcfef9') + self.scrollbar = ttk.Scrollbar(self.container, orient="vertical", command=self.canvas.yview) + self.scrollable_frame = tk.Frame(self.canvas, bg='#bcfef9') + + self.scrollable_frame.bind( + "", + lambda e: self.canvas.configure(scrollregion=self.canvas.bbox("all")) + ) + + self.canvas.create_window((0, 0), window=self.scrollable_frame, anchor="nw") + self.canvas.configure(yscrollcommand=self.scrollbar.set) + + self.canvas.pack(side="left", fill="both", expand=True) + self.scrollbar.pack(side="right", fill="y") + + # Configure the scrollbar style to make it larger + style = ttk.Style() + style.configure("Vertical.TScrollbar", arrowsize=48, width=48) + + # Create a frame for action buttons at the bottom + self.button_frame = tk.Frame(self, bg='#bcfef9') + self.button_frame.pack(side="bottom", fill="x", pady=10) + + # The 'Refresh List' button + self.refresh_button = tk.Button(self.button_frame, text="Refresh List", command=self.refresh_users, + height=2, width=20, bg='peach puff', font=GlobalVars.BUTTON_FONT) + self.refresh_button.pack(side="left", padx=(20, 10)) + + # The 'Done' button to navigate to next screen + self.done_button = tk.Button(self.button_frame, text="Done", command=lambda: master.switch_frame(Screen3), + height=2, width=20, bg='peach puff', font=GlobalVars.BUTTON_FONT) + self.done_button.pack(side="right", padx=(10, 20)) + + # Initialize users list from users.json self.users = self.get_users_from_file() self.update_users_list() - # Highlight selected user if one exists - if GlobalVars.selected_user is not None: - for widget in self.container.winfo_children(): - if isinstance(widget, tk.Button) and widget['text'] == GlobalVars.selected_user: - widget.configure(relief=tk.SUNKEN, bg="light blue") - self.selected_label = widget - - - # The 'Done' button to navigate to next screen - self.done_button = tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen3), height=3, width=30, bg='peach puff', font=GlobalVars.BUTTON_FONT) - self.done_button.pack(side="bottom", padx=20, pady=10) - - # The 'Refresh List' button - self.refresh_button = tk.Button(self, text="Refresh List (takes 30 seconds or so)", command=self.refresh_users, height=3, width=30, bg='peach puff', font=GlobalVars.BUTTON_FONT) - self.refresh_button.pack(side="bottom", padx=20, pady=10) - master.add_home_button(self) - def refresh_users(self): - try: - # Update users list from Scuttlebutt and display it - self.users = self.get_scuttlebutt_users() - self.update_users_list() - except Exception as e: - print(f"An error occurred while refreshing the user list: {e}") - messagebox.showerror("Error", "An error occurred while refreshing the user list. Please try again later.") - - def get_scuttlebutt_users(self): - result = subprocess.run(['node', 'scuttlebot.js'], capture_output=True, text=True) - if result.returncode == 0: - users = json.loads(result.stdout) - return users - else: - raise Exception("Command failed: " + result.stderr) - - def get_users_from_file(self): - with open('users.json') as f: - users = json.load(f) - return users - def update_users_list(self): - # Remove all widgets from container - for widget in self.container.winfo_children(): + search_text = self.entry.get().lower() + self.filtered_users = [user for user in self.users if search_text in user['id'].lower() or search_text in self.unescape_unicode(user.get('alias', '')).lower()] + self.display_users() + + def display_users(self): + for widget in self.scrollable_frame.winfo_children(): widget.destroy() - # Filter users based on search text + for index, user in enumerate(self.filtered_users): + try: + frame = tk.Frame(self.scrollable_frame, bg='#bcfef9') + frame.pack(fill='x', expand=True, pady=2) + + alias = self.unescape_unicode(user.get('alias', '')) + id = user.get('id', '') + + alias_label = tk.Label(frame, text=alias, font=('Helvetica', 14, 'bold'), width=20, anchor='w', bg='#bcfef9') + alias_label.pack(side='left', padx=(0, 10)) + + id_label = tk.Label(frame, text=id, font=('Helvetica', 14), anchor='w', bg='#bcfef9') + id_label.pack(side='left', expand=True, fill='x') + + frame.bind('', lambda e, u=user, f=frame: self.on_user_clicked(f, u)) + alias_label.bind('', lambda e, u=user, f=frame: self.on_user_clicked(f, u)) + id_label.bind('', lambda e, u=user, f=frame: self.on_user_clicked(f, u)) + + if GlobalVars.selected_user == id: + self.highlight_frame(frame) + self.selected_label = frame + + except Exception as e: + print(f"Error displaying user {index + 1}: {str(e)}") + print(f"User data: {user}") + print(traceback.format_exc()) + + self.scrollable_frame.update_idletasks() + self.canvas.configure(scrollregion=self.canvas.bbox("all")) + + def on_user_clicked(self, frame, user): + # Unhighlight the previously selected user + if self.selected_label is not None and self.widget_exists(self.selected_label): + self.unhighlight_frame(self.selected_label) + + # Update the selected user + GlobalVars.selected_user = user['id'] + self.selected_label = frame + + # Highlight the newly selected user + self.highlight_frame(frame) + self.update_done_button_state() + + # Print debug information + print(f"User clicked: {user['id']}") + print(f"Selected label: {self.selected_label}") + print(f"Global selected user: {GlobalVars.selected_user}") + + def highlight_frame(self, frame): + frame.configure(bg="light blue") + for child in frame.winfo_children(): + child.configure(bg="light blue") + print(f"Highlighted frame: {frame}") + + def unhighlight_frame(self, frame): + frame.configure(bg="#bcfef9") + for child in frame.winfo_children(): + child.configure(bg="#bcfef9") + print(f"Unhighlighted frame: {frame}") + + def update_users_list(self): search_text = self.entry.get().lower() - filtered_users = [user for user in self.users if search_text in user['id'].lower()] + self.filtered_users = [user for user in self.users if search_text in user['id'].lower() or search_text in self.unescape_unicode(user.get('alias', '')).lower()] + self.display_users() + + # Preserve selection after filtering + if GlobalVars.selected_user: + for widget in self.scrollable_frame.winfo_children(): + if isinstance(widget, tk.Frame): + id_label = widget.winfo_children()[-1] + if id_label['text'] == GlobalVars.selected_user: + self.highlight_frame(widget) + self.selected_label = widget + break - # Display filtered users - self.display_users(filtered_users) + def scroll_to_widget(self, widget): + self.canvas.update_idletasks() + self.canvas.yview_moveto(widget.winfo_y() / self.scrollable_frame.winfo_height()) - def display_users(self, users): - # Scrollable list of users - canvas = tk.Canvas(self.container, width=460) # Decrease the width by scrollbar's width - style = ttk.Style() - style.configure("Vertical.TScrollbar", gripcount=0, - arrowsize=50, width=50) # Adjust width here - scrollbar = ttk.Scrollbar(self.container, orient='vertical', command=canvas.yview, style="Vertical.TScrollbar") - scrollable_frame = ttk.Frame(canvas) + def update_done_button_state(self): + if GlobalVars.selected_user: + self.done_button.configure(state="normal") + else: + self.done_button.configure(state="disabled") - scrollable_frame.bind( - "", - lambda e: canvas.configure( - scrollregion=canvas.bbox("all") - ) - ) - - canvas.create_window((0, 0), window=scrollable_frame, anchor="nw") - canvas.configure(yscrollcommand=scrollbar.set) - - # Add user buttons to scrollable frame - for user in users: - button = tk.Button(scrollable_frame, text=user['id'], font=('Liberation Mono', 24), bd=0) # Adjust font size here - button.pack(anchor="w") - button.config(command=lambda button=button, user=user: self.on_user_clicked(button, user)) - - canvas.pack(side="left", fill="both", expand=True) - scrollbar.pack(side="right", fill="y") def widget_exists(self, widget): try: @@ -280,20 +372,50 @@ class Screen2(tk.Frame): except tk.TclError: return False - def on_user_clicked(self, button, user): - # Remove highlight from previously selected user - if self.selected_label is not None and self.widget_exists(self.selected_label): - self.selected_label.configure(relief=tk.FLAT, bg='SystemButtonFace') # default color + def refresh_users(self): + try: + self.users = self.get_scuttlebutt_users() + self.update_users_list() + self.save_users_to_file(self.users) + messagebox.showinfo("Success", "User list has been refreshed and updated with aliases.") + except Exception as e: + print(f"An error occurred while refreshing the user list: {e}") + messagebox.showerror("Error", "An error occurred while refreshing the user list. Please try again later.") - # Store selected user and button - GlobalVars.selected_user = user['id'] - self.selected_label = button - - # Highlight clicked label - self.selected_label.configure(relief=tk.SUNKEN, bg="light blue") + def get_scuttlebutt_users(self): + try: + result = subprocess.run(['node', 'scuttlebot.js'], capture_output=True, text=True, timeout=60) + if result.returncode == 0: + users = json.loads(result.stdout) + return users + else: + print(f"Command failed with error: {result.stderr}") + return [] + except subprocess.TimeoutExpired: + print("Command timed out after 60 seconds") + return [] + except json.JSONDecodeError: + print("Failed to parse JSON output") + return [] + except Exception as e: + print(f"An unexpected error occurred: {str(e)}") + return [] + def get_users_from_file(self): + try: + with open('users.json') as f: + users = json.load(f) + return users + except FileNotFoundError: + return [] + def save_users_to_file(self, users): + with open('users.json', 'w') as f: + json.dump(users, f) + @staticmethod + def unescape_unicode(s): + return s.encode('utf-8').decode('unicode_escape') #take photo of item class Screen3(tk.Frame): @@ -304,7 +426,7 @@ class Screen3(tk.Frame): home_button = tk.Button(text="Start Over", command=self.show_warning_dialog, bg='peach puff', font=GlobalVars.BUTTON_FONT) home_button.place(x=0, y=0) # top-left corner - self.vid = cv2.VideoCapture(0) + self.vid = cv2.VideoCapture(2) self.is_capturing = True self.freeze_frame = None @@ -333,7 +455,7 @@ class Screen3(tk.Frame): self.__del__() self.master.switch_frame(Screen0) - self.vid = cv2.VideoCapture(0) + self.vid = cv2.VideoCapture(2) self.is_capturing = True self.freeze_frame = None @@ -366,7 +488,7 @@ class Screen3(tk.Frame): home_button = tk.Button(text="Start Over", command=self.show_warning_dialog, bg='peach puff', font=GlobalVars.BUTTON_FONT) home_button.place(x=0, y=0) # top-left corner - self.vid = cv2.VideoCapture(0) + self.vid = cv2.VideoCapture(2) self.is_capturing = True self.freeze_frame = None self.countdown_text = None @@ -1011,14 +1133,15 @@ class Screen12(tk.Frame): try: qr_code_str = GlobalVars.qr_code_value if isinstance(GlobalVars.qr_code_value, str) else GlobalVars.qr_code_value.decode('utf-8') print(f"Attempting to get message content for: {qr_code_str}") - message_content, image_path = addtoDB.get_message_content(qr_code_str) + message_content, image_path, replies = addtoDB.get_message_content(qr_code_str) print(f"Received message content: {message_content}") print(f"Received image path: {image_path}") + print(f"Received replies: {replies}") if message_content is None: self.display_error(f"Error: Failed to retrieve message content for {qr_code_str}") else: - self.display_content(message_content, image_path) + self.display_content(message_content, image_path, replies) except Exception as e: self.display_error(f"An error occurred while processing message: {str(e)}") @@ -1033,7 +1156,18 @@ class Screen12(tk.Frame): tk.Button(error_frame, text="Go Back", command=lambda: self.master.switch_frame(Screen0), height=3, width=30, bg='peach puff', font=GlobalVars.BUTTON_FONT).pack(pady=20) - def display_content(self, message_content, image_path): + def get_alias(self, user_id): + try: + with open('users.json') as f: + users = json.load(f) + for user in users: + if user['id'] == user_id: + return user.get('alias', '') + except FileNotFoundError: + return '' + return '' + + def display_content(self, message_content, image_path, replies): # Main content frame content_frame = tk.Frame(self, bg='#bcfef9') content_frame.pack(expand=True, fill='both', padx=20, pady=10) @@ -1074,11 +1208,23 @@ class Screen12(tk.Frame): canvas.create_window((0, 0), window=scrollable_frame, anchor="nw") canvas.configure(yscrollcommand=scrollbar.set) + # Display original message text_content = message_content.get('content', {}).get('text', '') # Remove markdown image syntax text_content = re.sub(r'!\[.*?\]\(.*?\)', '', text_content).strip() tk.Label(scrollable_frame, text=text_content, wraplength=650, justify='left', bg='#bcfef9', font=("Helvetica", 28)).pack(pady=5, padx=(5, 0)) + # Display replies + if replies: + tk.Label(scrollable_frame, text="Replies:", wraplength=650, justify='left', bg='#bcfef9', font=("Helvetica", 24, "bold")).pack(pady=(20, 5), padx=(5, 0)) + for reply in replies: + author_id = reply.get('value', {}).get('author', 'Unknown') + author_alias = self.get_alias(author_id) + author_display = f"{author_alias} ({author_id})" if author_alias else author_id + reply_text = reply.get('value', {}).get('content', {}).get('text', '') + tk.Label(scrollable_frame, text=f"{author_display}:", wraplength=650, justify='left', bg='#bcfef9', font=("Helvetica", 20, "bold")).pack(pady=(10, 0), padx=(5, 0)) + tk.Label(scrollable_frame, text=reply_text, wraplength=650, justify='left', bg='#bcfef9', font=("Helvetica", 18)).pack(pady=(0, 10), padx=(5, 0)) + canvas.pack(side="left", fill="both", expand=True) scrollbar.pack(side="right", fill="y") @@ -1090,7 +1236,6 @@ class Screen12(tk.Frame): tk.Button(self, text="Done", command=lambda: self.master.switch_frame(Screen0), height=3, width=30, bg='peach puff', font=GlobalVars.BUTTON_FONT).pack(side="bottom", pady=20) - #time to print class Screen13(tk.Frame): def __init__(self, master): diff --git a/scuttlebot (copy 1).js b/scuttlebot (copy 1).js new file mode 100644 index 0000000..70d41f8 --- /dev/null +++ b/scuttlebot (copy 1).js @@ -0,0 +1,39 @@ +// scuttlebot.js + +const ssbClient = require('ssb-client'); +const ssbKeys = require('ssb-keys'); +const pull = require('pull-stream'); + +const keys = ssbKeys.loadOrCreateSync('~/.ssb/secret'); + +ssbClient(keys, (err, sbot) => { + if (err) { + console.error(JSON.stringify({ "error": "Failed to connect to the Scuttlebot server. Is it running?" })); + console.error(err); + process.exit(1); + } + + const authors = new Set(); + + pull( + sbot.messagesByType("contact"), + pull.drain((msg) => { + authors.add(msg.value.author); + }, (err) => { + if (err) { + console.error(JSON.stringify({ "error": "Failed to retrieve messages." })); + console.error(err); + process.exit(1); + } + + const feeds = Array.from(authors).map(author => { return { id: author } }); + console.log(JSON.stringify(feeds)); + try { + sbot.close(() => {}); + } catch(err) { + console.error("Error closing SSB server connection: ", err); + } + }) + ); +}); + diff --git a/scuttlebot.js b/scuttlebot.js index 70d41f8..bfd7262 100644 --- a/scuttlebot.js +++ b/scuttlebot.js @@ -14,6 +14,7 @@ ssbClient(keys, (err, sbot) => { } const authors = new Set(); + const aliases = new Map(); pull( sbot.messagesByType("contact"), @@ -26,14 +27,42 @@ ssbClient(keys, (err, sbot) => { process.exit(1); } - const feeds = Array.from(authors).map(author => { return { id: author } }); - console.log(JSON.stringify(feeds)); - try { - sbot.close(() => {}); - } catch(err) { - console.error("Error closing SSB server connection: ", err); - } + // Fetch aliases for all authors + pull( + sbot.query.read({ + query: [{ + $filter: { + value: { + content: { type: 'about' } + } + } + }] + }), + pull.drain((msg) => { + if (msg.value.content.about && msg.value.content.name) { + aliases.set(msg.value.content.about, msg.value.content.name); + } + }, (err) => { + if (err) { + console.error(JSON.stringify({ "error": "Failed to retrieve aliases." })); + console.error(err); + process.exit(1); + } + + const feeds = Array.from(authors).map(author => { + return { + id: author, + alias: aliases.get(author) || '' + } + }); + console.log(JSON.stringify(feeds)); + try { + sbot.close(() => {}); + } catch(err) { + console.error("Error closing SSB server connection: ", err); + } + }) + ); }) ); }); - diff --git a/ssb-post.sh b/ssb-post.sh index 5a3175a..1299d81 100755 --- a/ssb-post.sh +++ b/ssb-post.sh @@ -141,6 +141,12 @@ else echo "No blobs found in the message." >&2 fi - # Output message content + # Get replies + replies=$(ssb-server query.read --private --reverse --limit 200 --query '{"value":{"content":{"root":"'$messageID'"}}}') + + # Output message content and replies echo "$message_content" + echo "REPLIES_START" + echo "$replies" + echo "REPLIES_END" fi diff --git a/users.json b/users.json index df91848..cefa4e3 100644 --- a/users.json +++ b/users.json @@ -1 +1 @@ -[{"id": "@wDCTPAZWPPn0NFffF9oKX3i49EElFT3hqx1mRVYrFgA=.ed25519"}, {"id": "@Gs0Rz7yEabDd1GyrnjZ1acPrcHL+rx8irnLl4ys/sU4=.ed25519"}, {"id": "@9nTgtYmvW4HID6ayt6Icwc8WZxdifx5SlSKKIX/X/1g=.ed25519"}, {"id": "@XRg7pXoQqsWDDk4dmgvSWHUqzwS6BmqMo4IdbMKPjWA=.ed25519"}, {"id": "@FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA=.ed25519"}, {"id": "@QlCTpvY7p9ty2yOFrv1WU1AE88aoQc4Y7wYal7PFc+w=.ed25519"}, {"id": "@jzXY1v8nnDXMnfRwDi57ye5bB1XqmQGdFI0rhoEWCno=.ed25519"}, {"id": "@7hiCF7WYRn7IMX1sr/p38CPGr3nUjBHNAASSJcMaSAQ=.ed25519"}, {"id": "@UbvKNYhwLe13A0AxOnQ6Zx5LNyozeWxbEY+d2AISjGA=.ed25519"}, {"id": "@gJLEh2woepzB9P+W8RFNXcVQCOrSxeMRbyqCMdKUeG0=.ed25519"}, {"id": "@cspK+Ali8NqAu7oUjLBebuEEZVfwq85JdlOZkOgrz10=.ed25519"}, {"id": "@MD3RNVfbta1lIVyNWVzHyIazPgFb+1ZAWQ7qzQeU0y4=.ed25519"}, {"id": "@4lHlogQpBCRPBEIfndVXxwx2kq9EoyuXSpzikIrqfTY=.ed25519"}, {"id": "@Ru79Kvx8HCDzSmHyAXCo0KHnMkt7VcFhK4BclaMwiLE=.ed25519"}, {"id": "@BlOCatSFxkZ59njINNldZRacC4DSdyqr8JlmqhEkOkI=.ed25519"}, {"id": "@tgzHDm9HEN0k5wFRLFmNPyGZYNF/M5KpkZqCRhgowVE=.ed25519"}, {"id": "@uMiN0TRVMGVNTQUb6KCbiOi/8UQYcyojiA83rCghxGo=.ed25519"}, {"id": "@5fX6QTmue/udf7tLwW25vQ63wZSENrksghBt6vfL4/I=.ed25519"}, {"id": "@gfvX9ns81buaxGUBiT7UlMNhBP0knynfHHDfjv1ZNsw=.ed25519"}, {"id": "@cBiuqx4yRQcXd1LpPbLOttxyPeiO+tKLLxOe3L9RrOA=.ed25519"}, {"id": "@W1o0EvTFWz6rOxHl0QYuhWnCYpJ3/lnm1ZuSgUy2kQo=.ed25519"}, {"id": "@BtcYWeBiSY1CFMKb/f2f1QXZdVas7Vyk0sx4jpf4g0A=.ed25519"}, {"id": "@Xr08H6kbGnvIb45yniKFIV45LXuDnz26XWLet3eCx6s=.ed25519"}, {"id": "@Ec2vAcg31bU5K3VAdaF/0+3v8OLl4xtM2FS5O7Kqk4E=.ed25519"}, {"id": "@GqsSW1pLJq5qUbJuDAtm7MwwOhpf+Ur6BfDH0kZKCJc=.ed25519"}, {"id": "@JfQJYnT2o6lbwIfzNcH4GaR+fymvtXSjdfxrKwrc8SY=.ed25519"}, {"id": "@VRAbRs/uMR2qdfiRNx2+1XRXePjJ75suZAmhGYZihks=.ed25519"}, {"id": "@6ilZq3kN0F+dXFHAPjAwMm87JEb/VdB+LC9eIMW3sa0=.ed25519"}, {"id": "@Sur8RwcDh6kBjub8pLZpHNWDfuuRpYVyCHrVo+TdA/4=.ed25519"}, {"id": "@TXKFQehlyoSn8UJAIVP/k2BjFINC591MlBC2e2d24mA=.ed25519"}, {"id": "@H/haHTZKPFRfyuC5FghQHt2U3f95zahRcLmUh5V0/uo=.ed25519"}, {"id": "@748Mr1H7h8IPqTjUGKGGsOl4uYHDthH4YpuU5FaJ43A=.ed25519"}, {"id": "@+UMKhpbzXAII+2/7ZlsgkJwIsxdfeFi36Z5Rk1gCfY0=.ed25519"}, {"id": "@Xtha98KEUXDPes7wTje+cW04jMputCSfbeG8wCQed7o=.ed25519"}, {"id": "@iL6NzQoOLFP18pCpprkbY80DMtiG4JFFtVSVUaoGsOQ=.ed25519"}, {"id": "@6OxffMLNyxkboLjCqv29WnMPhH8O3qFrcXCR6KrKcPI=.ed25519"}, {"id": "@LzTjF5eAVC6xprPMGeNzqEP/EEBIGpM6hDaaY10hrz8=.ed25519"}, {"id": "@+oaWWDs8g73EZFUMfW37R/ULtFEjwKN/DczvdYihjbU=.ed25519"}, {"id": "@vtOpd6g2OlzpeuIJ9qPNfoerWlcsYFqlVDi+XeUTBsI=.ed25519"}, {"id": "@yhF7gkOwDb8cLLa4Ejq2Bh7C2RujWL2EPYYXcmu2+H8=.ed25519"}, {"id": "@ye+QM09iPcDJD6YvQYjoQc7sLF/IFhmNbEqgdzQo3lQ=.ed25519"}, {"id": "@N0aRJ78hCNkcBEGGbwJuW0Rp3V6X02L6gPiwV1r3qzk=.ed25519"}, {"id": "@rWBiw1wOV8DvCqnlWKzvw63JIG60+DLhbbHGOcB8tHo=.ed25519"}, {"id": "@PpT/mpWeOZdUwzmRCnTKTKu98kqiaxRJ3vgwqnYgr5A=.ed25519"}, {"id": "@JaRaXuXCe6ujVINlr1+eu0p4rfLxgvtAPDjJJD9eX2o=.ed25519"}, {"id": "@XgC5wDA2EW++ufaDrjRDHXA7Dyd1ce5bTenCm2u6PZU=.ed25519"}, {"id": "@ebDJSv1zNvctkSLUSVCKoCrXwnNKEfx0BFYiCENZXDY=.ed25519"}, {"id": "@9hl0g6iMzu7U4vXUdSJtFJ1v+E5WJkYVX90C1kt/7Ks=.ed25519"}, {"id": "@K/Ipk1KeB20CT6+toD9CNexjgC9oR9yxp5RzZx+uO5M=.ed25519"}, {"id": "@Ra5YmjJ/gM1awU52/ZUBQiTVMzJuf/C6eXJKErAZI24=.ed25519"}, {"id": "@jC8WC3sNjD7YzpOnfZor36FLXUT/Kq7xcbFehfl8SGc=.ed25519"}, {"id": "@0ERFW4smS9/m4jQIDD1TNqa1tnh1H2bHnVPjw/Lfv0s=.ed25519"}, {"id": "@N/vWpVVdD1e8IbACUQE4EVGL6+aodQfbQZ8ByC+k79s=.ed25519"}, {"id": "@uSahd0yK0g2yMKtRvQ8wOmC/hsnPGYcttIde3YvSB8Q=.ed25519"}, {"id": "@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519"}, {"id": "@EZArijiRCJQLZAnpcZOTYzu8IVaUMyqQPGGDLFS2klk=.ed25519"}, {"id": "@EaYYQo5nAQRabB9nxAn5i2uiIZ665b90Qk2U/WHNVE8=.ed25519"}, {"id": "@P/+UsVIbxDKvBSesX2NJ8KMB/pTc2cU//Aek8+gcO44=.ed25519"}, {"id": "@/xp7YJKVmqucgzjHK5uJ3Af/Mq9UUXgYSY3WpIaUVRA=.ed25519"}, {"id": "@D2u1oU+BMDYWz7xSauI1cmktKmR2M5rCjB2utwpiMig=.ed25519"}, {"id": "@vzoU7/XuBB5B0xueC9NHFr9Q76VvPktD9GUkYgN9lAc=.ed25519"}, {"id": "@6hwStvpVIQkziTyk2iK0o8lWSU1OdUXzvIl1SdXx6N4=.ed25519"}, {"id": "@GSuGLzJa8t3aJCLvs66Ekn7MXdr3yqCSzsd6z2iUEBY=.ed25519"}, {"id": "@z8aJVHJTc6MM8FwaNE2GIS3AYYt2HYFNWQUO8/iydNw=.ed25519"}, {"id": "@3ZeNUiYQZisGC6PLf3R+u2s5avtxLsXC66xuK41e6Zk=.ed25519"}, {"id": "@ZgOuBbnHXiZFpVt3ejD3lduzr48OH23/nOJG7QlBcew=.ed25519"}, {"id": "@EbsxdSGJgsIEzfkHJ7jacGWJBCtQKHhkxQlRGkLUH9s=.ed25519"}, {"id": "@mEj0rhWhffFisBdB5Mw9x7IsOIIDWmbPKI4T40hQ9jM=.ed25519"}, {"id": "@gQ83w3hAacjlREmbndJN8qoXcZSCcwZxzA/gdRvYnws=.ed25519"}, {"id": "@m3ycpNXVP0rbf3OD4qanxkrHeZJu8QjLGAhrGKmeX/U=.ed25519"}, {"id": "@SXVoA/7CuMRS5IDTNsO8HU2PvCIVq8HKUUx/k+idDiQ=.ed25519"}, {"id": "@ZqH7Mctu/7DNInxuwl12ECjfrAKUX2tBLq1rOldNhg0=.ed25519"}, {"id": "@iVPi/B73hJSpsUB8XbSnlxe3NembPXLjOfIexlYdgJA=.ed25519"}, {"id": "@jxK/O6NNItII04xlbY+sQyhjLNJUqwJ3U8o6PGRb6Dc=.ed25519"}, {"id": "@is/9R/wvc6ckHPz9IAuGDw++E7I35wDuraZk/Wr0ZbU=.ed25519"}, {"id": "@54Ty4Or83kQxOyUYndMwfOFu4HwZqFRBAW7IpVyB62k=.ed25519"}, {"id": "@ll5ACeiXZt5F+GEetOAjhPOslrmWmsat7mKEZzhy/pM=.ed25519"}, {"id": "@x5eaU6fxF2wDcM7aJStiHtpK6J4bv+B9l8detL4xTMI=.ed25519"}, {"id": "@OiW3wL03TKZfZGxh3Oa/IZ2PnlzgnGSukwsJ1E9GJgM=.ed25519"}, {"id": "@2TFt8rtei4noA7wr/iBu5L3kvpQLTbsmN75+kM1Rqbg=.ed25519"}, {"id": "@ViyPqXNcAXczSrBORyf1FsSh6musaF/vMErYtlKtV2U=.ed25519"}, {"id": "@GbuknvnsPZl4DlZ3JCE9adJ6gid1LbV2a08DScV1NEk=.ed25519"}, {"id": "@eANNuLfzX/9rlGODXHYV8WJb+zw2h+d7YsT4vpYPvD0=.ed25519"}, {"id": "@p3Mt92laie8S74PJkv5TcXhSNs2Y7Y/P0EhFfidbv50=.ed25519"}, {"id": "@Ero/akP0mWuw0WRLwBQtp6eQbB9zopEcL6Bg7pEwmI4=.ed25519"}, {"id": "@5XaVcAJ5DklwuuIkjGz4lwm2rOnMHHovhNg7BFFnyJ8=.ed25519"}, {"id": "@2AWm36HvcuOOcYeNgGgoybKXcMZx+COIf4/aAxJwnVI=.ed25519"}, {"id": "@aN5A7jZ+ZSc+pWdroNQssELd5UnAjRjr2YYSn0/osK0=.ed25519"}, {"id": "@2RNGJafZtMHzd76gyvqH6EJiK7kBnXeak5mBWzoO/iU=.ed25519"}, {"id": "@fBS90Djngwl/SlCh/20G7piSC064Qz2hBBxbfnbyM+Y=.ed25519"}, {"id": "@Pwj2SX04UPKxCWkS+5Y+P5a/apdNvqZD2DVNdN1K6vM=.ed25519"}, {"id": "@HnG2sSND9kVybDCLt2gtudHPQGfn4liO9jiO40Lnays=.ed25519"}, {"id": "@DrX0cR0jdh6lx0gLMjjyMzlEZpxTY8UGYsT4iEvELf0=.ed25519"}, {"id": "@D7xU1Brt5WxpMmFSnXTJ+K2xO6mAufWGew+bM1in1Uw=.ed25519"}, {"id": "@I1LxKPdy3QJmD9kGDRnnsaRxt0MIsLUoXDoFDtZ2KNk=.ed25519"}, {"id": "@Mq8D3YC6VdErKQzV3oi2oK5hHSoIwR0hUQr4M46wr/E=.ed25519"}, {"id": "@rUntanbH1/pIEpkuTGVokZIl+8u7jBuroTVraNpu1cE=.ed25519"}, {"id": "@na1AJv1iWOflQOwsQ4srJJhYynkYawXiWDwM0ln4DgY=.ed25519"}, {"id": "@xtTsZiqGf9ALp96jNtG4FflG/IAhWGMV0Cdx6LH71c0=.ed25519"}, {"id": "@PBlCUzg9Qze4vE1Rmji0EnQ9tw3NC/jdktb+IdpggNM=.ed25519"}, {"id": "@d1OivgIf3eJc2vjI9eOvdP92YhSev8jod67gyWaNyrw=.ed25519"}, {"id": "@AiBJDta+4boyh2USNGwIagH/wKjeruTcDX2Aj1r/haM=.ed25519"}, {"id": "@CxnSXWYjPT160y7QbmTFtWaWT09080azgErYPt1ZeZc=.ed25519"}, {"id": "@qztPFKpm6kfBD1IZVf1cbJ+W4Yy2KqiJ1SWaekLifeA=.ed25519"}, {"id": "@X9mHmLEUbfpCIIhSQzUQb7xPU5mi4ZeXUnxOea4uIpM=.ed25519"}, {"id": "@UFDjYpDN89OTdow4sqZP5eEGGcy+1eN/HNc5DMdMI0M=.ed25519"}, {"id": "@A28rlprVNeKqp/puRx6zWFtUHuXCeq/5ZOGzerbKwno=.ed25519"}, {"id": "@3r4+IyB5NVl2in6QOZHIu9oSrZud+NuVgl2GX3x2WG8=.ed25519"}, {"id": "@JjvfR4zNfvdFyxaAGhY7BEIWApnEiN5I1fhfbf/08E8=.ed25519"}, {"id": "@MRiJ+CvDnD9ZjqunY1oy6tsk0IdbMDC4Q3tTC8riS3s=.ed25519"}, {"id": "@hbjh4U5BIE3I+Dwk33OcjM7BzdPp3VcqtSrh19cXhNA=.ed25519"}, {"id": "@NeB4q4Hy9IiMxs5L08oevEhivxW+/aDu/s/0SkNayi0=.ed25519"}, {"id": "@Jhz3dSf9xQ80FyM6+V5zUd4/5jWqCxXI2yuC5IVdl6I=.ed25519"}, {"id": "@MGtu3A8ogT0HmD55UyYgb47UAu4h8H+w/XxPDg2NWfg=.ed25519"}, {"id": "@Ys9lgBLC0MfPUQrbqd0hddjbjElx7ZNvtikxvMIaqgs=.ed25519"}, {"id": "@vp/VlFHhdmf9u4lp+/r1LJTSWvJd/A3bIsz+8O8JxuU=.ed25519"}, {"id": "@tUMwMvb+roaOJAyohpGUxgqYo4E7HfBlY0NkUzALqjY=.ed25519"}, {"id": "@nWjamqvbDIMIgZQchHCZPnROk0jUvjCO7oLLKdHgbJs=.ed25519"}, {"id": "@2YVYXQclEJHVzCON5dsLRwf65b2S6HnvxpGS8/LwjwY=.ed25519"}, {"id": "@5u6NRxnuuG49KHns5Z7VKKfeKRkStNZsXn3Ph7Est/s=.ed25519"}, {"id": "@v62J4ga5utc9Nl0LbPbdlvTZr29HeNeLmjTd/QXXfqI=.ed25519"}, {"id": "@UaDd69LROKdpgNokDjdyxgxmXH0J/HD1eK7KEb98/+g=.ed25519"}, {"id": "@iGLjxMHlCW94tu/lEB8woc7AG2dNCzLY0KsebX+x2Iw=.ed25519"}, {"id": "@1Lw64EiVTVMmprrk5l2/Os9v8pk0vLTrGpq7dylQuNk=.ed25519"}, {"id": "@w87xXIicF6SVqG0VIBqbKfHJ/QuXdBOBhtMUweZxE4k=.ed25519"}, {"id": "@rG3Bg7e+w8l7ZixeaeAz9xRK9h4XpVJU40EOfhDT8ok=.ed25519"}, {"id": "@Ivlr9ztMGBn5IECnLV0l0WJzvlg0DUR76+SKyfFsHk8=.ed25519"}, {"id": "@YDSXYP3Tog0vjXEwarqdBAm4lvXkYdCPZyfWmkL2Pek=.ed25519"}, {"id": "@rrHauUFCv83JGuts1BeNmxif/7JZ74zDMwgyx9Xz+sg=.ed25519"}, {"id": "@ThdwRExqsPWzHaUT0ZN3L0g+3AtJxq/9Uz6AUyZWfRI=.ed25519"}, {"id": "@4lhmTqtRQTBpVBHx4pIYKy2xkdZe04xy1kLh296u2Mk=.ed25519"}, {"id": "@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519"}, {"id": "@Zh2Smed6SMinqugfEc/7lQlziJmRZNm+jzQFxmbNAjQ=.ed25519"}, {"id": "@w6CroJjf0ovg4qqF+uN29sqSztYmMITeD93jaMo0YQ4=.ed25519"}, {"id": "@unpYPUpx14PBNFFEQ+0916giJzmK5jaH0lO+zo8QAZw=.ed25519"}, {"id": "@THUzexG1y6kWofwiN8Lix/jNH/P6roYdlCDgpAn2HSc=.ed25519"}, {"id": "@g6c1/Zywct6TZsff4z26g24ax5HYmGvun7e3qT/yIPg=.ed25519"}, {"id": "@tmSzBIGRmYD46IaGHPcVVJ7/Yy5PPfV1mRkpcu5xQxk=.ed25519"}, {"id": "@HmJRl8cGNZ2nVViCDf71TbanvWA9h6rNugUt1xJWXo0=.ed25519"}, {"id": "@LVL4qjvmws3Cxavfi4iCQI6dSOqWqOyq5/5CHImILA8=.ed25519"}, {"id": "@YND2Cb9uk3ZdFyzXpaXDH5HZ9udu+qjg4MhNcynK2RE=.ed25519"}, {"id": "@VUgbo/ihmVWgh7szFJcG0Tg395T5/8JU0jijEVmyByU=.ed25519"}, {"id": "@yoZN+y/crk4Gvb4bJ48QIUAhMXlJFaYFiAddc7oItww=.ed25519"}, {"id": "@0uOwBrHIeiRK7lcvpLwjSFkcS3UHSQb/jyN52zf+J6Y=.ed25519"}, {"id": "@ZUocyRHUxEx/AMtqsfuv+tkF/lpFlqwlYTu5Aa+nbxQ=.ed25519"}, {"id": "@HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519"}, {"id": "@skBzPazHliOXCWLwloGvHYki0wPLOUeJpvW10U7MOJ4=.ed25519"}, {"id": "@p13zSAiOpguI9nsawkGijsnMfWmFd5rlUNpzekEE+vI=.ed25519"}, {"id": "@5Pt3dKy2HTJ0mWuS78oIiklIX0gBz6BTfEnXsbvke9c=.ed25519"}, {"id": "@RoHPOaN65z8ZVYwPr19Ni4KgYCE05k+FAKMdDPyHbvs=.ed25519"}, {"id": "@Oqa5JW8rwWIVLBu38KkIb1IYz6Ax0yHuwRvLEGR1mkY=.ed25519"}, {"id": "@sYwSMPRn6QOXJTearoWxmLm0m5+v2tfOCmoAeLMW704=.ed25519"}, {"id": "@KpPLISvjzw8CkoWOJ3zKXBgPtNDuzUgfyGbJEfbJ4H8=.ed25519"}, {"id": "@EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519"}, {"id": "@v5OMdbAmmEoIl8dUHoEHb9gyX8AEVYJ6UPqIRHggbdA=.ed25519"}, {"id": "@qi+mBq3/BQi5OCHQ28n5Uq1+M6GL85Gnvd6ahLHYK9g=.ed25519"}, {"id": "@yy3jnqjV5ejE+JAjubiisOW/4ubu0xZm2M41vEcGasw=.ed25519"}, {"id": "@NYhdXUqZmC7seZ5uyW2jftkMeJM2Uk6BHG3eeOXlO/0=.ed25519"}, {"id": "@eQWBeBMSbhTkt6g/W93gpbAoO99ct10f7vPKDnTc104=.ed25519"}, {"id": "@C6fAmdXgqTDbmZGAohUaYuyKdz3m6GBoLLtml3fUn+o=.ed25519"}, {"id": "@weUmuMeI+unghjmNOMnuhihpC1rdyDcAKTpnoMjuunc=.ed25519"}, {"id": "@QfP2kVV4ozyb8vodpm685rmYPpViz96VG3/wWnZFKn8=.ed25519"}, {"id": "@y1YOvd2bTUo34Nu7GzzImoy9I+fMmiVYRTSd0tvTA/I=.ed25519"}, {"id": "@oL0lyOODnGjEYY4YsaOM81F0LlO/NSPo7kjdCP0coyk=.ed25519"}, {"id": "@iOPQ7EL5ZFlA9g1QQyTL0+AYS7xFDrN49ffo6XeRO00=.ed25519"}, {"id": "@RuNxm8SRujPcJx6GjtTQHp6hprAFv5voEkcvoAkB8Pk=.ed25519"}, {"id": "@GF214rVSdwf/nARy7oDh+AxJViVCGfKqw+aa162itZY=.ed25519"}, {"id": "@D03D1D7Woe/iYOqsHa7KmDcgMOzjK5srVDoPs1OhiYA=.ed25519"}, {"id": "@AdUI5CuK/jgSvUUJG4MckZXNdkUvIFePLy/AQt7w6Z4=.ed25519"}, {"id": "@PEqxT8YRvrkf2fyjAgTl8pmdo8aR4KVsKLyh0b5JyOE=.ed25519"}, {"id": "@+D0ku/LReK6kqd3PSrcVCfbLYbDtTmS4Bd21rqhpYNA=.ed25519"}, {"id": "@WskNHrIn3fEOECbQzrA3WEwTRPq/07CC5kEd/txiX5M=.ed25519"}, {"id": "@q4D1TukAfTXMS8C6XzZ7FlfXS1Sf+MbJZHe4BxnaqiE=.ed25519"}, {"id": "@NcgzCoOPLjSkj9Y+GIMFbhxbqIzJCOwYBn/QQDYAOmk=.ed25519"}, {"id": "@y0P7anmcS+TqwiFGlONhFNadXNb9agEAWVRPRk9ed+0=.ed25519"}, {"id": "@XU+Ug2Dn4rq/cFmP/3YljhMRPdp+/vv77H9h/YFUJQU=.ed25519"}, {"id": "@1ywobRQqla7sPRHCk2iSf4DNRBYbryJiNadieQb0Ebg=.ed25519"}, {"id": "@2NANnQVdsoqk0XPiJG2oMZqaEpTeoGrxOHJkLIqs7eY=.ed25519"}, {"id": "@+5cL+PmPIpIvr+tto7RzBFHzWrIbar3t3Xv3EiKNasg=.ed25519"}, {"id": "@1slPYzIKV2LSlvYm71sIXvpHmlWtQj2g1a5ylsDCMf8=.ed25519"}, {"id": "@nvwZBFHZQd1QKbureTf0WfXPYiwXsWU+E9ty4OgKhpQ=.ed25519"}, {"id": "@/bBS85MFkw5mLY+kksuD/fGUWNpX9uxU24Uh4rp8XOU=.ed25519"}, {"id": "@/hbmXs5mOyRZuouksuJox/45xufNA4tiPVrayZaK7qA=.ed25519"}, {"id": "@sEkjODCLvDw3wHy4hhwhs4m0eSsx6yj4HoXwAMb3pKU=.ed25519"}, {"id": "@LudrLcSABB4Zds5HO3xwVI60o+Qa0VDUKRH+3VL69ps=.ed25519"}, {"id": "@RtsOc2h1gqh0fRrjrUTHAkRBu9YyDgsD+EWsfLpykrc=.ed25519"}, {"id": "@kElj8VIc4r1uGAJMAbKjBvvfiakUc1k7/Dl2R94BVmA=.ed25519"}, {"id": "@kn/XUeaB7YOCuCguyag6Vazl7E/XGkXFPpJH+gLmows=.ed25519"}, {"id": "@DCpD6Y59W7a+A8T4MroCK81/547ddkFySz8fDOL3Fm4=.ed25519"}, {"id": "@0xkjAty6RSr5uhbAvi0rbVR2g9Bz+89qiKth48ECQBE=.ed25519"}, {"id": "@Ph7OO2iogIim4+XQ1BVOCEo/K4FFLDg4OpUNDo3QBB8=.ed25519"}, {"id": "@oarOOEI/+KojJq0wqwbNrPGN1MEqRlfZ7YEx6xZUnPM=.ed25519"}, {"id": "@lJPo9+qmk1qFKzhK6GhNk/DYkLVrqtt93vREtdfg4o8=.ed25519"}, {"id": "@gslfzChyXwRD4A1iJ5a88gi0JmphVXyQeb77fXXj2mo=.ed25519"}, {"id": "@7x+lsDrIbLkiub2LVN3YHMYZOGY1ZvaJBcxax9qD854=.ed25519"}, {"id": "@zwgmrSKyMvMZZ+aeUwo+YPgnWkZ3+ReEvNok3q4T3T0=.ed25519"}, {"id": "@P2lREv/l9EuyFCyNAcTjLV5T25yXKJ3D5GoPtoJQ3Tc=.ed25519"}, {"id": "@qv10rF4IsmxRZb7g5ekJ33EakYBpdrmV/vtP1ij5BS4=.ed25519"}, {"id": "@BQXNdakpRpHqxDP2QZP/RJr95osWzW+q89MXYOZJpzw=.ed25519"}, {"id": "@nQshIOg7hIIJJiC3K2feoWgHLSpakXjfU5JdKGFofyY=.ed25519"}, {"id": "@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed25519"}, {"id": "@7eiZCDop9J7PS4urcM3MZPEo8KnvcBjgdgCd2XBY0+I=.ed25519"}, {"id": "@WuIiSwHyJS9v8EZ8RUL8Jgft9GSOPd02EvAaT+3U8oM=.ed25519"}, {"id": "@Vz6v3xKpzViiTM/GAe+hKkACZSqrErQQZgv4iqQxEn8=.ed25519"}, {"id": "@GwFTJ+6rSZB8pZwQhdjeI2uehkqI2dkGfk/0KnyVplY=.ed25519"}, {"id": "@dwfUe98UGhsMNiabP8tlXXzmAqkDlrjjNTXlxNpqrnI=.ed25519"}, {"id": "@dXCp+XfF635CzqIXH3Y4ZmJv61feyfazl0SkfjjDug4=.ed25519"}, {"id": "@Ky/B0xWrUrmEiIqPq6V3BxBvjCtJTqzrFEVNe+GoKtM=.ed25519"}, {"id": "@TVTxNoKa76P1zamCvTlxSu3LGRNb1v3ZmlYKHneWc4c=.ed25519"}, {"id": "@h2+DlZFDnaVddHafAFKrBVCYQgPtwS9gbdC1ouFxYWw=.ed25519"}, {"id": "@XeP2o+FcSdb5YdTvt/nuYPU2PHJSSwRt+X2y8B2dK5U=.ed25519"}, {"id": "@HphGypOafmjPLJcvOBVLqLAXK6XscVa/zZHLY+ioVwI=.ed25519"}, {"id": "@DIoOBMaI1f0mJg+5tUzZ7vgzCeeHh8+zGta4pOjc+k0=.ed25519"}, {"id": "@a6mX/Ehc19578DnHu5X/B//hvXapVvpiwmNdTd/V+vU=.ed25519"}, {"id": "@erKVK/srZEK87KMpEMegNwMhG1PPJVqng//9Wl/p0ms=.ed25519"}, {"id": "@Sl1fA8o1a9KM2gJ9qAzE10gy++2ZznxpjNnWU1XQIN8=.ed25519"}, {"id": "@MkET1XJidT/jxG31blhNeTaXnNmi2KhhLRls+ZiIAOw=.ed25519"}, {"id": "@SYk6YIN/dVeqiyTUuAhNA6N+2Cj6C6aLu28hLj+ksRg=.ed25519"}, {"id": "@G98XybiXD/amO9S/UyBKnWTWZnSKYS3YVB/5osSRHvY=.ed25519"}, {"id": "@e2i4vKBHFP3rpX4PBx7VucVIqFUSX0JPeXmG3TgoGF0=.ed25519"}, {"id": "@zPxy3KNRHsKSxqJsFW6guH7aGEh9LlwgOEgC7PmEJ60=.ed25519"}, {"id": "@DUuG1ivTjZqtPYlDXHukLqsCDvjq5lkYmuZo+N4Oqc8=.ed25519"}, {"id": "@IgYpd+tCtXnlE2tYX/8rR2AGt+P8svC98WH3MdYAa8Y=.ed25519"}, {"id": "@2dtfbuH7XvPVNQvHcEIwwz89XbcobYceIQvvhpA5UZM=.ed25519"}, {"id": "@IWEJQ2SPZUnFYHrDBFJmCZlANoyOQfZ9vXimUNbe48M=.ed25519"}, {"id": "@Koyz/dK76ylp+t4QfK5zS5QPPv2w18EpNW6mOfeFgb4=.ed25519"}, {"id": "@6MSbQNt51Uk8QDgHqLRleVJwKku+DunGu46L/OLug3Y=.ed25519"}, {"id": "@iZZVHClryYpS+XnFZjudRwQn1TqodCKF7A+2pGpf+1U=.ed25519"}, {"id": "@aeJxL8KfBOxnGuTT/rMgKp3n3qTPW9cvLFRqRpiBSBo=.ed25519"}, {"id": "@zFAMhcryAmD5M/HuTH7GJ/KdZguEnD654upI9LKROLw=.ed25519"}, {"id": "@3wl2IivU+ghWlZj4psiRMQlcOKV9iLbXbNIb1wv+0/M=.ed25519"}, {"id": "@O2MYrnNuNJm1+KCriGSSadLDok6IU/WiET4ig4hiZFI=.ed25519"}, {"id": "@fGWzOR/FXU3Acbn4P65CpMewJIynFyqocvfLAyJdDno=.ed25519"}, {"id": "@z2R3kJPSmW9aWBKqhzK1Ma+NuKbjOupd6ZGENZrfL0A=.ed25519"}, {"id": "@/Q5bcBaHSCA0RO3Dzuy5HPitkqVxJyBgHFJm5mP4ulc=.ed25519"}, {"id": "@D/+a3IoxlJZY3Z0eJejrOajFEaudBhMSKiZbIuWsdSs=.ed25519"}, {"id": "@qvGBxH1vDasocIBYlE8yZCdWFECjzFZY1K50YcAIbLE=.ed25519"}, {"id": "@3flA+1WgODxxRXljGHEbBLOPPMxg/AMaTvo7nE29TmM=.ed25519"}, {"id": "@edR9OM5OpEXmzR4ZCkFvD89drl+FGZvBDpnZ3Yv6TE0=.ed25519"}, {"id": "@b4zcVEqkDe8avvbZ202EO4roYntH9d/Qd7jUzpEQ044=.ed25519"}, {"id": "@qFtLJ6P5Eh9vKxnj7Rsh8SkE6B6Z36DVLP7ZOKNeQ/Y=.ed25519"}, {"id": "@tkDxiQw+CTo0MbguBZka0JJLvNGeRDClIh9x20CZIwA=.ed25519"}, {"id": "@SKIc/gO6Du10rTHqujjAP1+LHzVP441U2YsQeU+Up84=.ed25519"}, {"id": "@1CpPacd4ki/GBKnK/ETbT3H/hvjrRXS7deRjii1/1YY=.ed25519"}, {"id": "@rQ7m1TMF/RpPzcaK2x6eWZ2Tb2mdV7h0WtsPo+mvUjk=.ed25519"}, {"id": "@L8VZUi1OVcte7+SfOspkDsT7RdtGXf+MTKDugii8Gs4=.ed25519"}, {"id": "@SfrjweaCFdycjppt8+Y67Rz4Dgwfs4azH92NM2BtyFs=.ed25519"}, {"id": "@WXlT/fWoMq2uQ7mafqA4iaYfsCnJzKeP2GquCBW8dRc=.ed25519"}, {"id": "@5o1mePrqeHHts/Q2rz2Y93fT6Ltac/+eMnJo+mWX6Fg=.ed25519"}, {"id": "@vImOhX7i1NE1NonJpe1jheH9UvRZY4rNMWe2cMqjGtA=.ed25519"}, {"id": "@DpkvclEha51m2Ie2p97WHReTiqzWYy7sZ4YpkeYtlik=.ed25519"}, {"id": "@Pokwz0AyTpGriP4ikwhvFOtry7vq8LQNHq+jnfR6YQg=.ed25519"}, {"id": "@4wXR/KiJrkz9D2LPXpZl5XOLw+gYCoJW6p6rwFlI5yA=.ed25519"}, {"id": "@mUNqmOd/uRBGbk9YMOzaUypf/6aPhxYI0lk6+hRyyK4=.ed25519"}, {"id": "@LQIAf9++i42Gp9P3IYLjZNSou8tEVUIi6kBrff2uwpo=.ed25519"}, {"id": "@KOeCAJi2Ulsg1+U4IayEYTgKiop368WA07Qa4R8BIeM=.ed25519"}, {"id": "@o/3TXIZ6R+UkTf9m/WpZ3XGkUL9mkiPbIDtQP/THxGU=.ed25519"}, {"id": "@+u1vX9VamcbSmLMAW3jAyN3M0JIvNrerOzQ9X8KwlR4=.ed25519"}, {"id": "@i8OXtTYaK0PrF002pd4vpXmrlg98As7ZMaHGKoXixdM=.ed25519"}, {"id": "@TdhWZh201goC5toQ+L2TFezigo0QKqe1UNQ6fMPlGmc=.ed25519"}, {"id": "@zyLRN2EcOS1sj66bSr7OF3/RtLeiOIPQv44/qgZHRxE=.ed25519"}, {"id": "@dDaP8RElvRYdauwNhUXDu5KtMUWNbkr/PBC4hA8drFQ=.ed25519"}, {"id": "@uI6UwHnUDfAU8MviuOb0SiiZeSeBj6V8WlgMYjigsFI=.ed25519"}, {"id": "@fknQDWIbEKmJx/JoNE4L4F51lAEjwEWvaTm0rkO3fVw=.ed25519"}, {"id": "@Z++0tIyinkDK4nn/JP94b/PVd9oLqH8PEw904x8U2WI=.ed25519"}, {"id": "@7eHAR43n/PL7zYGFkvXmQfwfiWlpXQxZlnstdefICug=.ed25519"}, {"id": "@NvyjB+MB5fRod0tnOQT86x2yfCZjnG6Sp77qKbsWAuE=.ed25519"}, {"id": "@0nakXtVIodBfdHwRQLVb64p54jTWS+DFHRqg58ky4CI=.ed25519"}, {"id": "@UZdncOwdiuzgNo3FbZddnK0gBgmnw2n32/DCmxnYk+g=.ed25519"}] \ No newline at end of file +[{"id": "@FEvUwv3A721fT0DWzANJqPa48iD57xv/ZnfQvKxPd2g=.ed25519", "alias": "Custodisco Kiosk"}, {"id": "@Gs0Rz7yEabDd1GyrnjZ1acPrcHL+rx8irnLl4ys/sU4=.ed25519", "alias": "trave"}, {"id": "@XRg7pXoQqsWDDk4dmgvSWHUqzwS6BmqMo4IdbMKPjWA=.ed25519", "alias": "ssb.hypersignal.xyz"}, {"id": "@XgC5wDA2EW++ufaDrjRDHXA7Dyd1ce5bTenCm2u6PZU=.ed25519", "alias": "organicdesign.pub"}, {"id": "@FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA=.ed25519", "alias": "ssb.ekata.social"}, {"id": "@tgzHDm9HEN0k5wFRLFmNPyGZYNF/M5KpkZqCRhgowVE=.ed25519", "alias": "zie.pub"}, {"id": "@uMiN0TRVMGVNTQUb6KCbiOi/8UQYcyojiA83rCghxGo=.ed25519", "alias": "ssb.learningsocieties.org"}, {"id": "@BlOCatSFxkZ59njINNldZRacC4DSdyqr8JlmqhEkOkI=.ed25519", "alias": "max"}, {"id": "@BtcYWeBiSY1CFMKb/f2f1QXZdVas7Vyk0sx4jpf4g0A=.ed25519", "alias": "blave"}, {"id": "@Xr08H6kbGnvIb45yniKFIV45LXuDnz26XWLet3eCx6s=.ed25519", "alias": "Laurel"}, {"id": "@H/haHTZKPFRfyuC5FghQHt2U3f95zahRcLmUh5V0/uo=.ed25519", "alias": "Brian \u00d3 \ud83d\udc1f"}, {"id": "@748Mr1H7h8IPqTjUGKGGsOl4uYHDthH4YpuU5FaJ43A=.ed25519", "alias": "carbonpenguin"}, {"id": "@jC8WC3sNjD7YzpOnfZor36FLXUT/Kq7xcbFehfl8SGc=.ed25519", "alias": "archie-inactive"}, {"id": "@9nTgtYmvW4HID6ayt6Icwc8WZxdifx5SlSKKIX/X/1g=.ed25519", "alias": "substack"}, {"id": "@UbvKNYhwLe13A0AxOnQ6Zx5LNyozeWxbEY+d2AISjGA=.ed25519", "alias": "Brewster"}, {"id": "@7hiCF7WYRn7IMX1sr/p38CPGr3nUjBHNAASSJcMaSAQ=.ed25519", "alias": "jayrbolton"}, {"id": "@N0aRJ78hCNkcBEGGbwJuW0Rp3V6X02L6gPiwV1r3qzk=.ed25519", "alias": "scuttlebooth"}, {"id": "@ZgOuBbnHXiZFpVt3ejD3lduzr48OH23/nOJG7QlBcew=.ed25519", "alias": "buoyantair-work"}, {"id": "@PpT/mpWeOZdUwzmRCnTKTKu98kqiaxRJ3vgwqnYgr5A=.ed25519", "alias": "archie"}, {"id": "@JaRaXuXCe6ujVINlr1+eu0p4rfLxgvtAPDjJJD9eX2o=.ed25519", "alias": "maibits"}, {"id": "@m3ycpNXVP0rbf3OD4qanxkrHeZJu8QjLGAhrGKmeX/U=.ed25519", "alias": "cinnamon_phone"}, {"id": "@MD3RNVfbta1lIVyNWVzHyIazPgFb+1ZAWQ7qzQeU0y4=.ed25519", "alias": "Rivet"}, {"id": "@gJLEh2woepzB9P+W8RFNXcVQCOrSxeMRbyqCMdKUeG0=.ed25519", "alias": "Max"}, {"id": "@Ru79Kvx8HCDzSmHyAXCo0KHnMkt7VcFhK4BclaMwiLE=.ed25519", "alias": "christophernorris"}, {"id": "@vtOpd6g2OlzpeuIJ9qPNfoerWlcsYFqlVDi+XeUTBsI=.ed25519", "alias": "mouse"}, {"id": "@N/vWpVVdD1e8IbACUQE4EVGL6+aodQfbQZ8ByC+k79s=.ed25519", "alias": "sean"}, {"id": "@EZArijiRCJQLZAnpcZOTYzu8IVaUMyqQPGGDLFS2klk=.ed25519", "alias": "Mia Gooper"}, {"id": "@D2u1oU+BMDYWz7xSauI1cmktKmR2M5rCjB2utwpiMig=.ed25519", "alias": "Matt Davis"}, {"id": "@6ilZq3kN0F+dXFHAPjAwMm87JEb/VdB+LC9eIMW3sa0=.ed25519", "alias": "Mikey"}, {"id": "@ye+QM09iPcDJD6YvQYjoQc7sLF/IFhmNbEqgdzQo3lQ=.ed25519", "alias": "mix"}, {"id": "@rWBiw1wOV8DvCqnlWKzvw63JIG60+DLhbbHGOcB8tHo=.ed25519", "alias": "Bronco"}, {"id": "@mEj0rhWhffFisBdB5Mw9x7IsOIIDWmbPKI4T40hQ9jM=.ed25519", "alias": "lizzard"}, {"id": "@jxK/O6NNItII04xlbY+sQyhjLNJUqwJ3U8o6PGRb6Dc=.ed25519", "alias": "eenblam"}, {"id": "@x5eaU6fxF2wDcM7aJStiHtpK6J4bv+B9l8detL4xTMI=.ed25519", "alias": "naphthalin"}, {"id": "@5XaVcAJ5DklwuuIkjGz4lwm2rOnMHHovhNg7BFFnyJ8=.ed25519", "alias": "Cel Space"}, {"id": "@5fX6QTmue/udf7tLwW25vQ63wZSENrksghBt6vfL4/I=.ed25519", "alias": "Emmi"}, {"id": "@gfvX9ns81buaxGUBiT7UlMNhBP0knynfHHDfjv1ZNsw=.ed25519", "alias": "Jenny"}, {"id": "@VRAbRs/uMR2qdfiRNx2+1XRXePjJ75suZAmhGYZihks=.ed25519", "alias": "darius\ud83c\udf1f"}, {"id": "@uSahd0yK0g2yMKtRvQ8wOmC/hsnPGYcttIde3YvSB8Q=.ed25519", "alias": "Merlin van Lawick"}, {"id": "@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519", "alias": "cel - Rural Almost Islander"}, {"id": "@6hwStvpVIQkziTyk2iK0o8lWSU1OdUXzvIl1SdXx6N4=.ed25519", "alias": "jordan"}, {"id": "@P/+UsVIbxDKvBSesX2NJ8KMB/pTc2cU//Aek8+gcO44=.ed25519", "alias": "FrancesSawyer"}, {"id": "@z8aJVHJTc6MM8FwaNE2GIS3AYYt2HYFNWQUO8/iydNw=.ed25519", "alias": "ktorn\ud83c\udf1f"}, {"id": "@+UMKhpbzXAII+2/7ZlsgkJwIsxdfeFi36Z5Rk1gCfY0=.ed25519", "alias": "\ud83d\udcb3_phone"}, {"id": "@cspK+Ali8NqAu7oUjLBebuEEZVfwq85JdlOZkOgrz10=.ed25519", "alias": "St I\u200aGNU\u200acius"}, {"id": "@is/9R/wvc6ckHPz9IAuGDw++E7I35wDuraZk/Wr0ZbU=.ed25519", "alias": "deprecated.riley"}, {"id": "@ll5ACeiXZt5F+GEetOAjhPOslrmWmsat7mKEZzhy/pM=.ed25519", "alias": "judytuna"}, {"id": "@ViyPqXNcAXczSrBORyf1FsSh6musaF/vMErYtlKtV2U=.ed25519", "alias": "Abhik"}, {"id": "@p3Mt92laie8S74PJkv5TcXhSNs2Y7Y/P0EhFfidbv50=.ed25519", "alias": "scott"}, {"id": "@2TFt8rtei4noA7wr/iBu5L3kvpQLTbsmN75+kM1Rqbg=.ed25519", "alias": "micahscopes"}, {"id": "@HnG2sSND9kVybDCLt2gtudHPQGfn4liO9jiO40Lnays=.ed25519", "alias": "lightandluck"}, {"id": "@DrX0cR0jdh6lx0gLMjjyMzlEZpxTY8UGYsT4iEvELf0=.ed25519", "alias": "frankie"}, {"id": "@D7xU1Brt5WxpMmFSnXTJ+K2xO6mAufWGew+bM1in1Uw=.ed25519", "alias": "Kent Overstreet"}, {"id": "@jzXY1v8nnDXMnfRwDi57ye5bB1XqmQGdFI0rhoEWCno=.ed25519", "alias": "palkeo"}, {"id": "@GqsSW1pLJq5qUbJuDAtm7MwwOhpf+Ur6BfDH0kZKCJc=.ed25519", "alias": "xj9"}, {"id": "@Ec2vAcg31bU5K3VAdaF/0+3v8OLl4xtM2FS5O7Kqk4E=.ed25519", "alias": "rchrd2"}, {"id": "@/xp7YJKVmqucgzjHK5uJ3Af/Mq9UUXgYSY3WpIaUVRA=.ed25519", "alias": "kel"}, {"id": "@W1o0EvTFWz6rOxHl0QYuhWnCYpJ3/lnm1ZuSgUy2kQo=.ed25519", "alias": "Taeyoon Choi"}, {"id": "@Sur8RwcDh6kBjub8pLZpHNWDfuuRpYVyCHrVo+TdA/4=.ed25519", "alias": "sir Moid"}, {"id": "@6OxffMLNyxkboLjCqv29WnMPhH8O3qFrcXCR6KrKcPI=.ed25519", "alias": "alanna"}, {"id": "@LzTjF5eAVC6xprPMGeNzqEP/EEBIGpM6hDaaY10hrz8=.ed25519", "alias": "masukomi"}, {"id": "@TXKFQehlyoSn8UJAIVP/k2BjFINC591MlBC2e2d24mA=.ed25519", "alias": "onion"}, {"id": "@Xtha98KEUXDPes7wTje+cW04jMputCSfbeG8wCQed7o=.ed25519", "alias": "chris woebken"}, {"id": "@iVPi/B73hJSpsUB8XbSnlxe3NembPXLjOfIexlYdgJA=.ed25519", "alias": "'Butt Summaries"}, {"id": "@eANNuLfzX/9rlGODXHYV8WJb+zw2h+d7YsT4vpYPvD0=.ed25519", "alias": "Angelica\ud83c\udf1f"}, {"id": "@Pwj2SX04UPKxCWkS+5Y+P5a/apdNvqZD2DVNdN1K6vM=.ed25519", "alias": "TinkerBell"}, {"id": "@yhF7gkOwDb8cLLa4Ejq2Bh7C2RujWL2EPYYXcmu2+H8=.ed25519", "alias": "wendy"}, {"id": "@K/Ipk1KeB20CT6+toD9CNexjgC9oR9yxp5RzZx+uO5M=.ed25519", "alias": "The Writer of Posts"}, {"id": "@QlCTpvY7p9ty2yOFrv1WU1AE88aoQc4Y7wYal7PFc+w=.ed25519", "alias": "Andr\u00e9"}, {"id": "@aN5A7jZ+ZSc+pWdroNQssELd5UnAjRjr2YYSn0/osK0=.ed25519", "alias": "Ana Daniela"}, {"id": "@cBiuqx4yRQcXd1LpPbLOttxyPeiO+tKLLxOe3L9RrOA=.ed25519", "alias": "Sam Hart"}, {"id": "@ebDJSv1zNvctkSLUSVCKoCrXwnNKEfx0BFYiCENZXDY=.ed25519", "alias": "ConsciousnessAnon"}, {"id": "@9hl0g6iMzu7U4vXUdSJtFJ1v+E5WJkYVX90C1kt/7Ks=.ed25519", "alias": "\ud83d\udcf1 Christian Bundy \ud83c\udf1f"}, {"id": "@Ra5YmjJ/gM1awU52/ZUBQiTVMzJuf/C6eXJKErAZI24=.ed25519", "alias": "Robert.Best \ud83d\udcbb"}, {"id": "@EaYYQo5nAQRabB9nxAn5i2uiIZ665b90Qk2U/WHNVE8=.ed25519", "alias": "punkmonk"}, {"id": "@vzoU7/XuBB5B0xueC9NHFr9Q76VvPktD9GUkYgN9lAc=.ed25519", "alias": "rabble"}, {"id": "@3ZeNUiYQZisGC6PLf3R+u2s5avtxLsXC66xuK41e6Zk=.ed25519", "alias": "zelf-contained"}, {"id": "@GSuGLzJa8t3aJCLvs66Ekn7MXdr3yqCSzsd6z2iUEBY=.ed25519", "alias": "kathleen"}, {"id": "@0ERFW4smS9/m4jQIDD1TNqa1tnh1H2bHnVPjw/Lfv0s=.ed25519", "alias": "Dylan"}, {"id": "@EbsxdSGJgsIEzfkHJ7jacGWJBCtQKHhkxQlRGkLUH9s=.ed25519", "alias": "Ajay"}, {"id": "@iL6NzQoOLFP18pCpprkbY80DMtiG4JFFtVSVUaoGsOQ=.ed25519", "alias": "bobhaugen"}, {"id": "@+oaWWDs8g73EZFUMfW37R/ULtFEjwKN/DczvdYihjbU=.ed25519", "alias": "ChristianBundy"}, {"id": "@SXVoA/7CuMRS5IDTNsO8HU2PvCIVq8HKUUx/k+idDiQ=.ed25519", "alias": "mary"}, {"id": "@54Ty4Or83kQxOyUYndMwfOFu4HwZqFRBAW7IpVyB62k=.ed25519", "alias": "khimaros"}, {"id": "@GbuknvnsPZl4DlZ3JCE9adJ6gid1LbV2a08DScV1NEk=.ed25519", "alias": "ace"}, {"id": "@Ero/akP0mWuw0WRLwBQtp6eQbB9zopEcL6Bg7pEwmI4=.ed25519", "alias": "bennlich"}, {"id": "@4lHlogQpBCRPBEIfndVXxwx2kq9EoyuXSpzikIrqfTY=.ed25519", "alias": "Danny O\u2019Brien"}, {"id": "@OiW3wL03TKZfZGxh3Oa/IZ2PnlzgnGSukwsJ1E9GJgM=.ed25519", "alias": "Paul d'Aoust"}, {"id": "@2AWm36HvcuOOcYeNgGgoybKXcMZx+COIf4/aAxJwnVI=.ed25519", "alias": "NicoPace"}, {"id": "@I1LxKPdy3QJmD9kGDRnnsaRxt0MIsLUoXDoFDtZ2KNk=.ed25519", "alias": "Boo"}, {"id": "@na1AJv1iWOflQOwsQ4srJJhYynkYawXiWDwM0ln4DgY=.ed25519", "alias": "Alchemist"}, {"id": "@d1OivgIf3eJc2vjI9eOvdP92YhSev8jod67gyWaNyrw=.ed25519", "alias": "martin"}, {"id": "@X9mHmLEUbfpCIIhSQzUQb7xPU5mi4ZeXUnxOea4uIpM=.ed25519", "alias": "jessykate"}, {"id": "@UFDjYpDN89OTdow4sqZP5eEGGcy+1eN/HNc5DMdMI0M=.ed25519", "alias": "PicoPub"}, {"id": "@ZqH7Mctu/7DNInxuwl12ECjfrAKUX2tBLq1rOldNhg0=.ed25519", "alias": "Zach"}, {"id": "@gQ83w3hAacjlREmbndJN8qoXcZSCcwZxzA/gdRvYnws=.ed25519", "alias": "_xX_Will_Xx_"}, {"id": "@fBS90Djngwl/SlCh/20G7piSC064Qz2hBBxbfnbyM+Y=.ed25519", "alias": "cinnamon"}, {"id": "@rG3Bg7e+w8l7ZixeaeAz9xRK9h4XpVJU40EOfhDT8ok=.ed25519", "alias": "Alea"}, {"id": "@AiBJDta+4boyh2USNGwIagH/wKjeruTcDX2Aj1r/haM=.ed25519", "alias": "Christian"}, {"id": "@qztPFKpm6kfBD1IZVf1cbJ+W4Yy2KqiJ1SWaekLifeA=.ed25519", "alias": "cryptogoth.deadkey"}, {"id": "@A28rlprVNeKqp/puRx6zWFtUHuXCeq/5ZOGzerbKwno=.ed25519", "alias": "Sam Hart"}, {"id": "@Mq8D3YC6VdErKQzV3oi2oK5hHSoIwR0hUQr4M46wr/E=.ed25519", "alias": "tunabananas"}, {"id": "@hbjh4U5BIE3I+Dwk33OcjM7BzdPp3VcqtSrh19cXhNA=.ed25519", "alias": "itrav"}, {"id": "@Jhz3dSf9xQ80FyM6+V5zUd4/5jWqCxXI2yuC5IVdl6I=.ed25519", "alias": "DWebBLN"}, {"id": "@rrHauUFCv83JGuts1BeNmxif/7JZ74zDMwgyx9Xz+sg=.ed25519", "alias": "thinktrav (deprecated)"}, {"id": "@1Lw64EiVTVMmprrk5l2/Os9v8pk0vLTrGpq7dylQuNk=.ed25519", "alias": "MintyOrb"}, {"id": "@xtTsZiqGf9ALp96jNtG4FflG/IAhWGMV0Cdx6LH71c0=.ed25519", "alias": "Elie"}, {"id": "@Ys9lgBLC0MfPUQrbqd0hddjbjElx7ZNvtikxvMIaqgs=.ed25519", "alias": "benhylau"}, {"id": "@Ivlr9ztMGBn5IECnLV0l0WJzvlg0DUR76+SKyfFsHk8=.ed25519", "alias": "Soapy van Dogh"}, {"id": "@UaDd69LROKdpgNokDjdyxgxmXH0J/HD1eK7KEb98/+g=.ed25519", "alias": "F\u00e1bio"}, {"id": "@rUntanbH1/pIEpkuTGVokZIl+8u7jBuroTVraNpu1cE=.ed25519", "alias": "Ace"}, {"id": "@PBlCUzg9Qze4vE1Rmji0EnQ9tw3NC/jdktb+IdpggNM=.ed25519", "alias": "emag3m"}, {"id": "@JjvfR4zNfvdFyxaAGhY7BEIWApnEiN5I1fhfbf/08E8=.ed25519", "alias": "Arcalinea"}, {"id": "@MGtu3A8ogT0HmD55UyYgb47UAu4h8H+w/XxPDg2NWfg=.ed25519", "alias": "Riley"}, {"id": "@3r4+IyB5NVl2in6QOZHIu9oSrZud+NuVgl2GX3x2WG8=.ed25519", "alias": "Rich"}, {"id": "@2YVYXQclEJHVzCON5dsLRwf65b2S6HnvxpGS8/LwjwY=.ed25519", "alias": "emile"}, {"id": "@v62J4ga5utc9Nl0LbPbdlvTZr29HeNeLmjTd/QXXfqI=.ed25519", "alias": "N/A"}, {"id": "@MRiJ+CvDnD9ZjqunY1oy6tsk0IdbMDC4Q3tTC8riS3s=.ed25519", "alias": "daan nand"}, {"id": "@NeB4q4Hy9IiMxs5L08oevEhivxW+/aDu/s/0SkNayi0=.ed25519", "alias": "DanHassan"}, {"id": "@iZZVHClryYpS+XnFZjudRwQn1TqodCKF7A+2pGpf+1U=.ed25519", "alias": "zejma"}, {"id": "@iGLjxMHlCW94tu/lEB8woc7AG2dNCzLY0KsebX+x2Iw=.ed25519", "alias": "eb4890"}, {"id": "@JfQJYnT2o6lbwIfzNcH4GaR+fymvtXSjdfxrKwrc8SY=.ed25519", "alias": "Rick"}, {"id": "@CxnSXWYjPT160y7QbmTFtWaWT09080azgErYPt1ZeZc=.ed25519", "alias": "teq"}, {"id": "@5u6NRxnuuG49KHns5Z7VKKfeKRkStNZsXn3Ph7Est/s=.ed25519", "alias": "Mike Dank"}, {"id": "@2RNGJafZtMHzd76gyvqH6EJiK7kBnXeak5mBWzoO/iU=.ed25519", "alias": "Luandro P\u00e0twy \u2714 (Verified)"}, {"id": "@unpYPUpx14PBNFFEQ+0916giJzmK5jaH0lO+zo8QAZw=.ed25519", "alias": "mini trav"}, {"id": "@tmSzBIGRmYD46IaGHPcVVJ7/Yy5PPfV1mRkpcu5xQxk=.ed25519", "alias": "dilly's pub"}, {"id": "@ThdwRExqsPWzHaUT0ZN3L0g+3AtJxq/9Uz6AUyZWfRI=.ed25519", "alias": "sam"}, {"id": "@4lhmTqtRQTBpVBHx4pIYKy2xkdZe04xy1kLh296u2Mk=.ed25519", "alias": "Jules"}, {"id": "@ZUocyRHUxEx/AMtqsfuv+tkF/lpFlqwlYTu5Aa+nbxQ=.ed25519", "alias": "WillMartin"}, {"id": "@tUMwMvb+roaOJAyohpGUxgqYo4E7HfBlY0NkUzALqjY=.ed25519", "alias": "Daan p20 \ud83d\udcdf"}, {"id": "@Oqa5JW8rwWIVLBu38KkIb1IYz6Ax0yHuwRvLEGR1mkY=.ed25519", "alias": "pospi"}, {"id": "@QfP2kVV4ozyb8vodpm685rmYPpViz96VG3/wWnZFKn8=.ed25519", "alias": " Ana Luisa [phone]"}, {"id": "@w87xXIicF6SVqG0VIBqbKfHJ/QuXdBOBhtMUweZxE4k=.ed25519", "alias": "Sam Smith"}, {"id": "@w6CroJjf0ovg4qqF+uN29sqSztYmMITeD93jaMo0YQ4=.ed25519", "alias": "mia gooper \ud83d\udcf1"}, {"id": "@g6c1/Zywct6TZsff4z26g24ax5HYmGvun7e3qT/yIPg=.ed25519", "alias": "\u6708\u5149\u8679"}, {"id": "@yoZN+y/crk4Gvb4bJ48QIUAhMXlJFaYFiAddc7oItww=.ed25519", "alias": "Ari Rodriguez"}, {"id": "@HmJRl8cGNZ2nVViCDf71TbanvWA9h6rNugUt1xJWXo0=.ed25519", "alias": "dilgreen"}, {"id": "@0uOwBrHIeiRK7lcvpLwjSFkcS3UHSQb/jyN52zf+J6Y=.ed25519", "alias": "\u2026"}, {"id": "@v5OMdbAmmEoIl8dUHoEHb9gyX8AEVYJ6UPqIRHggbdA=.ed25519", "alias": "hoodownr_flutter"}, {"id": "@yy3jnqjV5ejE+JAjubiisOW/4ubu0xZm2M41vEcGasw=.ed25519", "alias": "lolo"}, {"id": "@NYhdXUqZmC7seZ5uyW2jftkMeJM2Uk6BHG3eeOXlO/0=.ed25519", "alias": "will"}, {"id": "@y1YOvd2bTUo34Nu7GzzImoy9I+fMmiVYRTSd0tvTA/I=.ed25519", "alias": "Yolanda M"}, {"id": "@weUmuMeI+unghjmNOMnuhihpC1rdyDcAKTpnoMjuunc=.ed25519", "alias": "Wingy Scruffhead"}, {"id": "@Zh2Smed6SMinqugfEc/7lQlziJmRZNm+jzQFxmbNAjQ=.ed25519", "alias": "Robert.Best/d \ud83d\udda5\ufe0f"}, {"id": "@THUzexG1y6kWofwiN8Lix/jNH/P6roYdlCDgpAn2HSc=.ed25519", "alias": "Rabble\ud83c\udf1f"}, {"id": "@YND2Cb9uk3ZdFyzXpaXDH5HZ9udu+qjg4MhNcynK2RE=.ed25519", "alias": "sami"}, {"id": "@skBzPazHliOXCWLwloGvHYki0wPLOUeJpvW10U7MOJ4=.ed25519", "alias": "scuttle.space"}, {"id": "@EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519", "alias": "dominic"}, {"id": "@qi+mBq3/BQi5OCHQ28n5Uq1+M6GL85Gnvd6ahLHYK9g=.ed25519", "alias": "Mira Mos Crime"}, {"id": "@iOPQ7EL5ZFlA9g1QQyTL0+AYS7xFDrN49ffo6XeRO00=.ed25519", "alias": "Sophie"}, {"id": "@oL0lyOODnGjEYY4YsaOM81F0LlO/NSPo7kjdCP0coyk=.ed25519", "alias": "Chloe"}, {"id": "@WskNHrIn3fEOECbQzrA3WEwTRPq/07CC5kEd/txiX5M=.ed25519", "alias": "Abby"}, {"id": "@YDSXYP3Tog0vjXEwarqdBAm4lvXkYdCPZyfWmkL2Pek=.ed25519", "alias": "Fabian"}, {"id": "@vp/VlFHhdmf9u4lp+/r1LJTSWvJd/A3bIsz+8O8JxuU=.ed25519", "alias": "Ward Cunningham"}, {"id": "@sYwSMPRn6QOXJTearoWxmLm0m5+v2tfOCmoAeLMW704=.ed25519", "alias": "Tod Robbins (he/him)"}, {"id": "@p13zSAiOpguI9nsawkGijsnMfWmFd5rlUNpzekEE+vI=.ed25519", "alias": "\ud83c\udf55"}, {"id": "@NcgzCoOPLjSkj9Y+GIMFbhxbqIzJCOwYBn/QQDYAOmk=.ed25519", "alias": "Murilo Polese"}, {"id": "@5Pt3dKy2HTJ0mWuS78oIiklIX0gBz6BTfEnXsbvke9c=.ed25519", "alias": "\u0913\u0937\u0927\u093f\u0903"}, {"id": "@RoHPOaN65z8ZVYwPr19Ni4KgYCE05k+FAKMdDPyHbvs=.ed25519", "alias": "John Colagioia"}, {"id": "@HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519", "alias": "glyph"}, {"id": "@KpPLISvjzw8CkoWOJ3zKXBgPtNDuzUgfyGbJEfbJ4H8=.ed25519", "alias": "Maleficient"}, {"id": "@eQWBeBMSbhTkt6g/W93gpbAoO99ct10f7vPKDnTc104=.ed25519", "alias": "Ana Luisa"}, {"id": "@C6fAmdXgqTDbmZGAohUaYuyKdz3m6GBoLLtml3fUn+o=.ed25519", "alias": "Alex"}, {"id": "@GF214rVSdwf/nARy7oDh+AxJViVCGfKqw+aa162itZY=.ed25519", "alias": "ferdinandsalis"}, {"id": "@RuNxm8SRujPcJx6GjtTQHp6hprAFv5voEkcvoAkB8Pk=.ed25519", "alias": "kas"}, {"id": "@AdUI5CuK/jgSvUUJG4MckZXNdkUvIFePLy/AQt7w6Z4=.ed25519", "alias": "Noms"}, {"id": "@2NANnQVdsoqk0XPiJG2oMZqaEpTeoGrxOHJkLIqs7eY=.ed25519", "alias": "gossip.noisebridge.info"}, {"id": "@nvwZBFHZQd1QKbureTf0WfXPYiwXsWU+E9ty4OgKhpQ=.ed25519", "alias": "Henning Jacobs (2)"}, {"id": "@/bBS85MFkw5mLY+kksuD/fGUWNpX9uxU24Uh4rp8XOU=.ed25519", "alias": "punkmonk.phone"}, {"id": "@o/3TXIZ6R+UkTf9m/WpZ3XGkUL9mkiPbIDtQP/THxGU=.ed25519", "alias": ""}, {"id": "@G98XybiXD/amO9S/UyBKnWTWZnSKYS3YVB/5osSRHvY=.ed25519", "alias": "Mix telephone"}, {"id": "@qv10rF4IsmxRZb7g5ekJ33EakYBpdrmV/vtP1ij5BS4=.ed25519", "alias": "SoapDog (Macbook Air M1)"}, {"id": "@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519", "alias": "cel-desktop"}, {"id": "@+D0ku/LReK6kqd3PSrcVCfbLYbDtTmS4Bd21rqhpYNA=.ed25519", "alias": "nanomonkey"}, {"id": "@PEqxT8YRvrkf2fyjAgTl8pmdo8aR4KVsKLyh0b5JyOE=.ed25519", "alias": "gwil"}, {"id": "@Ph7OO2iogIim4+XQ1BVOCEo/K4FFLDg4OpUNDo3QBB8=.ed25519", "alias": "koeppelmann"}, {"id": "@y0P7anmcS+TqwiFGlONhFNadXNb9agEAWVRPRk9ed+0=.ed25519", "alias": "aadil"}, {"id": "@sEkjODCLvDw3wHy4hhwhs4m0eSsx6yj4HoXwAMb3pKU=.ed25519", "alias": "decentral1se"}, {"id": "@D03D1D7Woe/iYOqsHa7KmDcgMOzjK5srVDoPs1OhiYA=.ed25519", "alias": "zed"}, {"id": "@DIoOBMaI1f0mJg+5tUzZ7vgzCeeHh8+zGta4pOjc+k0=.ed25519", "alias": "mix.exe"}, {"id": "@GwFTJ+6rSZB8pZwQhdjeI2uehkqI2dkGfk/0KnyVplY=.ed25519", "alias": "elavoie - personal (manyverse)"}, {"id": "@TVTxNoKa76P1zamCvTlxSu3LGRNb1v3ZmlYKHneWc4c=.ed25519", "alias": "[forked?] Daan Manyverse..."}, {"id": "@Koyz/dK76ylp+t4QfK5zS5QPPv2w18EpNW6mOfeFgb4=.ed25519", "alias": "stevelord"}, {"id": "@XU+Ug2Dn4rq/cFmP/3YljhMRPdp+/vv77H9h/YFUJQU=.ed25519", "alias": "romeo"}, {"id": "@+5cL+PmPIpIvr+tto7RzBFHzWrIbar3t3Xv3EiKNasg=.ed25519", "alias": "f\u00e1bio"}, {"id": "@kElj8VIc4r1uGAJMAbKjBvvfiakUc1k7/Dl2R94BVmA=.ed25519", "alias": "Scuttlebutt Post Summary"}, {"id": "@kn/XUeaB7YOCuCguyag6Vazl7E/XGkXFPpJH+gLmows=.ed25519", "alias": "Aadil's Phone"}, {"id": "@IWEJQ2SPZUnFYHrDBFJmCZlANoyOQfZ9vXimUNbe48M=.ed25519", "alias": "lucy"}, {"id": "@0xkjAty6RSr5uhbAvi0rbVR2g9Bz+89qiKth48ECQBE=.ed25519", "alias": "SoapDog (SPX)"}, {"id": "@edR9OM5OpEXmzR4ZCkFvD89drl+FGZvBDpnZ3Yv6TE0=.ed25519", "alias": "gloom pub"}, {"id": "@oarOOEI/+KojJq0wqwbNrPGN1MEqRlfZ7YEx6xZUnPM=.ed25519", "alias": "Julz"}, {"id": "@gslfzChyXwRD4A1iJ5a88gi0JmphVXyQeb77fXXj2mo=.ed25519", "alias": "Giarc"}, {"id": "@zwgmrSKyMvMZZ+aeUwo+YPgnWkZ3+ReEvNok3q4T3T0=.ed25519", "alias": "sam"}, {"id": "@P2lREv/l9EuyFCyNAcTjLV5T25yXKJ3D5GoPtoJQ3Tc=.ed25519", "alias": "Stardust"}, {"id": "@nWjamqvbDIMIgZQchHCZPnROk0jUvjCO7oLLKdHgbJs=.ed25519", "alias": "ZACH ALSO!"}, {"id": "@7eiZCDop9J7PS4urcM3MZPEo8KnvcBjgdgCd2XBY0+I=.ed25519", "alias": "3wc (mobile)"}, {"id": "@LudrLcSABB4Zds5HO3xwVI60o+Qa0VDUKRH+3VL69ps=.ed25519", "alias": "danyork"}, {"id": "@a6mX/Ehc19578DnHu5X/B//hvXapVvpiwmNdTd/V+vU=.ed25519", "alias": "tiny trav"}, {"id": "@VUgbo/ihmVWgh7szFJcG0Tg395T5/8JU0jijEVmyByU=.ed25519", "alias": "rchaves"}, {"id": "@q4D1TukAfTXMS8C6XzZ7FlfXS1Sf+MbJZHe4BxnaqiE=.ed25519", "alias": "KawaiiPunk Oasis Mobile (Lost key)"}, {"id": "@1slPYzIKV2LSlvYm71sIXvpHmlWtQj2g1a5ylsDCMf8=.ed25519", "alias": "hamnox-to-be-deprecated"}, {"id": "@/hbmXs5mOyRZuouksuJox/45xufNA4tiPVrayZaK7qA=.ed25519", "alias": "Devine Lu Linvega"}, {"id": "@lJPo9+qmk1qFKzhK6GhNk/DYkLVrqtt93vREtdfg4o8=.ed25519", "alias": "Myselium Collective"}, {"id": "@Vz6v3xKpzViiTM/GAe+hKkACZSqrErQQZgv4iqQxEn8=.ed25519", "alias": "Powersource \ud835\udc91\ud835\udc93\ud835\udc86\ud835\udc8e\ud835\udc8a\ud835\udc96\ud835\udc8e\u2122"}, {"id": "@Ky/B0xWrUrmEiIqPq6V3BxBvjCtJTqzrFEVNe+GoKtM=.ed25519", "alias": "S0ur_Patch"}, {"id": "@XeP2o+FcSdb5YdTvt/nuYPU2PHJSSwRt+X2y8B2dK5U=.ed25519", "alias": "JoweK"}, {"id": "@HphGypOafmjPLJcvOBVLqLAXK6XscVa/zZHLY+ioVwI=.ed25519", "alias": "aadil \ud83d\udcbb"}, {"id": "@e2i4vKBHFP3rpX4PBx7VucVIqFUSX0JPeXmG3TgoGF0=.ed25519", "alias": "Marissa"}, {"id": "@7x+lsDrIbLkiub2LVN3YHMYZOGY1ZvaJBcxax9qD854=.ed25519", "alias": "Se\u00e1n"}, {"id": "@1ywobRQqla7sPRHCk2iSf4DNRBYbryJiNadieQb0Ebg=.ed25519", "alias": "james.network"}, {"id": "@RtsOc2h1gqh0fRrjrUTHAkRBu9YyDgsD+EWsfLpykrc=.ed25519", "alias": "humberto"}, {"id": "@DCpD6Y59W7a+A8T4MroCK81/547ddkFySz8fDOL3Fm4=.ed25519", "alias": "alt3"}, {"id": "@BQXNdakpRpHqxDP2QZP/RJr95osWzW+q89MXYOZJpzw=.ed25519", "alias": "skip"}, {"id": "@nQshIOg7hIIJJiC3K2feoWgHLSpakXjfU5JdKGFofyY=.ed25519", "alias": "3wc ~ they/them"}, {"id": "@MkET1XJidT/jxG31blhNeTaXnNmi2KhhLRls+ZiIAOw=.ed25519", "alias": "knoflook"}, {"id": "@Sl1fA8o1a9KM2gJ9qAzE10gy++2ZznxpjNnWU1XQIN8=.ed25519", "alias": "CorVore (mobile)"}, {"id": "@DUuG1ivTjZqtPYlDXHukLqsCDvjq5lkYmuZo+N4Oqc8=.ed25519", "alias": "dinosaur.thinkpad"}, {"id": "@WuIiSwHyJS9v8EZ8RUL8Jgft9GSOPd02EvAaT+3U8oM=.ed25519", "alias": "Powersource (phone)"}, {"id": "@SYk6YIN/dVeqiyTUuAhNA6N+2Cj6C6aLu28hLj+ksRg=.ed25519", "alias": "decentral1se \ud83d\udda5\ufe0f"}, {"id": "@zPxy3KNRHsKSxqJsFW6guH7aGEh9LlwgOEgC7PmEJ60=.ed25519", "alias": "wind"}, {"id": "@3wl2IivU+ghWlZj4psiRMQlcOKV9iLbXbNIb1wv+0/M=.ed25519", "alias": "interfect"}, {"id": "@O2MYrnNuNJm1+KCriGSSadLDok6IU/WiET4ig4hiZFI=.ed25519", "alias": "yksflip"}, {"id": "@fGWzOR/FXU3Acbn4P65CpMewJIynFyqocvfLAyJdDno=.ed25519", "alias": "Luandroid"}, {"id": "@1CpPacd4ki/GBKnK/ETbT3H/hvjrRXS7deRjii1/1YY=.ed25519", "alias": "Rudo"}, {"id": "@aeJxL8KfBOxnGuTT/rMgKp3n3qTPW9cvLFRqRpiBSBo=.ed25519", "alias": "KawaiiPunk Mobile"}, {"id": "@erKVK/srZEK87KMpEMegNwMhG1PPJVqng//9Wl/p0ms=.ed25519", "alias": "Cory DeVore"}, {"id": "@zFAMhcryAmD5M/HuTH7GJ/KdZguEnD654upI9LKROLw=.ed25519", "alias": "Gerry"}, {"id": "@D/+a3IoxlJZY3Z0eJejrOajFEaudBhMSKiZbIuWsdSs=.ed25519", "alias": "Sam Hart (unverified)"}, {"id": "@z2R3kJPSmW9aWBKqhzK1Ma+NuKbjOupd6ZGENZrfL0A=.ed25519", "alias": "l03s"}, {"id": "@rQ7m1TMF/RpPzcaK2x6eWZ2Tb2mdV7h0WtsPo+mvUjk=.ed25519", "alias": "Rho"}, {"id": "@SfrjweaCFdycjppt8+Y67Rz4Dgwfs4azH92NM2BtyFs=.ed25519", "alias": "Dylorb-"}, {"id": "@WXlT/fWoMq2uQ7mafqA4iaYfsCnJzKeP2GquCBW8dRc=.ed25519", "alias": "evangineer (Android) "}, {"id": "@LVL4qjvmws3Cxavfi4iCQI6dSOqWqOyq5/5CHImILA8=.ed25519", "alias": "KawaiiPunk"}, {"id": "@h2+DlZFDnaVddHafAFKrBVCYQgPtwS9gbdC1ouFxYWw=.ed25519", "alias": "eejum"}, {"id": "@2dtfbuH7XvPVNQvHcEIwwz89XbcobYceIQvvhpA5UZM=.ed25519", "alias": "Cameron Leslie"}, {"id": "@/Q5bcBaHSCA0RO3Dzuy5HPitkqVxJyBgHFJm5mP4ulc=.ed25519", "alias": "cmos4011"}, {"id": "@qvGBxH1vDasocIBYlE8yZCdWFECjzFZY1K50YcAIbLE=.ed25519", "alias": "andrew \ud83d\udc1d"}, {"id": "@3flA+1WgODxxRXljGHEbBLOPPMxg/AMaTvo7nE29TmM=.ed25519", "alias": "Henning Jacobs (3)"}, {"id": "@qFtLJ6P5Eh9vKxnj7Rsh8SkE6B6Z36DVLP7ZOKNeQ/Y=.ed25519", "alias": "boreq"}, {"id": "@L8VZUi1OVcte7+SfOspkDsT7RdtGXf+MTKDugii8Gs4=.ed25519", "alias": "Amber Case"}, {"id": "@5o1mePrqeHHts/Q2rz2Y93fT6Ltac/+eMnJo+mWX6Fg=.ed25519", "alias": "Old Account"}, {"id": "@vImOhX7i1NE1NonJpe1jheH9UvRZY4rNMWe2cMqjGtA=.ed25519", "alias": "bnewbold"}, {"id": "@KOeCAJi2Ulsg1+U4IayEYTgKiop368WA07Qa4R8BIeM=.ed25519", "alias": "Rho (mobile)"}, {"id": "@uI6UwHnUDfAU8MviuOb0SiiZeSeBj6V8WlgMYjigsFI=.ed25519", "alias": "Mix again"}, {"id": "@UZdncOwdiuzgNo3FbZddnK0gBgmnw2n32/DCmxnYk+g=.ed25519", "alias": "atacama!"}, {"id": "@dwfUe98UGhsMNiabP8tlXXzmAqkDlrjjNTXlxNpqrnI=.ed25519", "alias": "mirsal"}, {"id": "@dXCp+XfF635CzqIXH3Y4ZmJv61feyfazl0SkfjjDug4=.ed25519", "alias": "TheTaoOfSu"}, {"id": "@SKIc/gO6Du10rTHqujjAP1+LHzVP441U2YsQeU+Up84=.ed25519", "alias": "dinosaur.mobile"}, {"id": "@Pokwz0AyTpGriP4ikwhvFOtry7vq8LQNHq+jnfR6YQg=.ed25519", "alias": "umbrella-monkey"}, {"id": "@DpkvclEha51m2Ie2p97WHReTiqzWYy7sZ4YpkeYtlik=.ed25519", "alias": "bunny"}, {"id": "@4wXR/KiJrkz9D2LPXpZl5XOLw+gYCoJW6p6rwFlI5yA=.ed25519", "alias": "Matt Lorentz (phone)"}, {"id": "@Z++0tIyinkDK4nn/JP94b/PVd9oLqH8PEw904x8U2WI=.ed25519", "alias": "leolaporte"}, {"id": "@7eHAR43n/PL7zYGFkvXmQfwfiWlpXQxZlnstdefICug=.ed25519", "alias": "autonomic co\u00f6perative"}, {"id": "@TdhWZh201goC5toQ+L2TFezigo0QKqe1UNQ6fMPlGmc=.ed25519", "alias": "dinesh"}, {"id": "@+u1vX9VamcbSmLMAW3jAyN3M0JIvNrerOzQ9X8KwlR4=.ed25519", "alias": "\u2026"}, {"id": "@i8OXtTYaK0PrF002pd4vpXmrlg98As7ZMaHGKoXixdM=.ed25519", "alias": "decentral1se (decommissioned)"}, {"id": "@zyLRN2EcOS1sj66bSr7OF3/RtLeiOIPQv44/qgZHRxE=.ed25519", "alias": "Techpriest Baunach 001"}, {"id": "@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed25519", "alias": "Squirrel Wizard"}, {"id": "@IgYpd+tCtXnlE2tYX/8rR2AGt+P8svC98WH3MdYAa8Y=.ed25519", "alias": "erick"}, {"id": "@mUNqmOd/uRBGbk9YMOzaUypf/6aPhxYI0lk6+hRyyK4=.ed25519", "alias": "nonlinear"}, {"id": "@LQIAf9++i42Gp9P3IYLjZNSou8tEVUIi6kBrff2uwpo=.ed25519", "alias": "nahee.app"}, {"id": "@dDaP8RElvRYdauwNhUXDu5KtMUWNbkr/PBC4hA8drFQ=.ed25519", "alias": "ex-libris test"}, {"id": "@fknQDWIbEKmJx/JoNE4L4F51lAEjwEWvaTm0rkO3fVw=.ed25519", "alias": "Zon"}, {"id": "@NvyjB+MB5fRod0tnOQT86x2yfCZjnG6Sp77qKbsWAuE=.ed25519", "alias": "Callil"}, {"id": "@0nakXtVIodBfdHwRQLVb64p54jTWS+DFHRqg58ky4CI=.ed25519", "alias": "polylith"}, {"id": "@wDCTPAZWPPn0NFffF9oKX3i49EElFT3hqx1mRVYrFgA=.ed25519", "alias": "custodisco kiosk-DEV"}, {"id": "@b4zcVEqkDe8avvbZ202EO4roYntH9d/Qd7jUzpEQ044=.ed25519", "alias": ""}, {"id": "@6MSbQNt51Uk8QDgHqLRleVJwKku+DunGu46L/OLug3Y=.ed25519", "alias": "scuttlebooth"}, {"id": "@d64Q93XzBhbr2JCLWkZgvzKwTHMvwFgRdtw4fHFlF5k=.ed25519", "alias": "ssb.mikey.nz"}, {"id": "@samhAxb0x+iykkzoUCsuEBQfFUuYQrVFyNBuMpibidc=.ed25519", "alias": "oasis-demo"}, {"id": "@sAQc7ZY8Jr/xlMeQ/7TYIyb0DI0H5aEieP8G2jP4Qck=.ed25519", "alias": "Cameron Leslie (Manyverse)"}, {"id": "@6Tl07CcdHrZ+mcHG8vP4bAZnpqvlqyDw3N7gHIg1vdw=.ed25519", "alias": "Catbutts Today"}, {"id": "@cx4GdCejKD3iiJ97wEcQZE1R9e9kup0b15ejWj/7f6U=.ed25519", "alias": "Daan p400 \ud83e\udd67"}, {"id": "@Hq+jyVhOfSS4XN9l1A1FTudPFNB4KRq5oYPYYr4DIjM=.ed25519", "alias": "Dominic_phone"}, {"id": "@xuq5ATR6hDNt6/0q1RB+L1f0dyeVk1kG1JAXu4jo/GU=.ed25519", "alias": "xj9"}, {"id": "@TpugRyODinGusTfOyYhVrz9rmNsR3K0F1jucrSZv0HI=.ed25519", "alias": "amandabee"}, {"id": "@JlojzW3HcjqMkL22pieuehQRo5uVREASMsOPuwO7VIY=.ed25519", "alias": "NicoPace on Mobile"}, {"id": "@S1h5yat/vRFUJw7ft5+U661/AblIZsdDCA6ZGOb7814=.ed25519", "alias": "zozs"}, {"id": "@FuvN1MpxWHGGYAswLAmfpTkkS5iKaFog2aPL4baU1cE=.ed25519", "alias": "SoapDog (Manyverse)"}, {"id": "@MSTZhtBJyKwMcNaAh0+owfAHxwVn59JBzAZYgMTAiBo=.ed25519", "alias": "ellie"}, {"id": "@Bg62ISbJSvQh/XiY+m8P1GpRCj0KzBErb4GVyyszQd4=.ed25519", "alias": "analoglesbian"}, {"id": "@gaQw6z30GpfsW9k8V5ED4pHrg8zmrqku24zTSAINhRg=.ed25519", "alias": "SoapDog"}, {"id": "@tdeT1cU3xUQaD2Ne5Ox0Dndly50qS+c5+//Fl7tyPqg=.ed25519", "alias": "RangerMauve"}, {"id": "@+pY9goiTAmglEUMx+eXx2MpRExAY73C3RVGPy7QxrqQ=.ed25519", "alias": "Henning Jacobs"}, {"id": "@91QpK60cjBJ8erP+tEw6MQginhlCfQ+cLRVd5KkAw/k=.ed25519", "alias": "Giulio Prisco (2)"}, {"id": "@G0ZKnayx03njuJtqG6eiDp3zKrQXWqIeGpzQvsYE6NE=.ed25519", "alias": "Pierre Buyle"}, {"id": "@TwrWCsGDTaQPQocYkgMHwOpuX8lBfsY9ZTD2W3ztP68=.ed25519", "alias": "Maui (Android)"}, {"id": "@ZSUd8dPpkLkXUxzsbtRi/ELnLlR71ywgdVrzdz/3tPI=.ed25519", "alias": "Reynir"}, {"id": "@rMSYvdfV9ngCDsvAmQ6YkGI5PGWN9+ePGQbtzwP8fKM=.ed25519", "alias": "Planetrav"}, {"id": "@5e3FkSr1OEVb2TEMAYJYIgfT4KC9xpdLdIeDwjZQip4=.ed25519", "alias": "Thomas Renkert"}, {"id": "@wQws/cZT5SqZH80efqrUYQQHyHwi99NyjZdvU+piI+k=.ed25519", "alias": "F\u00e1bio Emilio Costa \ud83c\udde7\ud83c\uddf7\ud83d\udc07\ud83d\udd50\ud83c\udfa9\u2615\u2705 (PatchWork Linux)"}, {"id": "@BCM6DHYJvWzwWi1lFl2tjDXjaqyZAEmJH5ZONSpXhtc=.ed25519", "alias": "joeyh"}, {"id": "@wW2eKDxRLvWvvm1A6vYomr6rVDuRkQ52jgXm4ohotWs=.ed25519", "alias": "Destruktoren"}, {"id": "@RPtXkyJDYSwg++tABnzQbyaeEcC/xNquTSImeQfEKg8=.ed25519", "alias": "Keerthi Vedantam"}, {"id": "@p0D7oBrHCCaRkowZJhLHepC566d4wXCXgQLCuX4qGxQ=.ed25519", "alias": "hulya"}, {"id": "@RmClT86x/o66QdW1dqAfj5Jek4qxUf8rtmvAlhZeZFg=.ed25519", "alias": "Marcos"}, {"id": "@Hl1qEKI00O1OAsyRXMxdcdCH5syszO+sP8TafZNjn/Q=.ed25519", "alias": "vaaghaals"}, {"id": "@XWzAllYs8skhI2RPNysrjAzXGryiPfCU01Ebd8yiV90=.ed25519", "alias": "old_\u00c9douard"}, {"id": "@w3NNEeEPWeqEF7yzIMn74IKk8MBxO6uD1eEbBbc/dL0=.ed25519", "alias": "pub.liebechaos.org"}, {"id": "@ryKYcSN/xYQB14tXoFtiMndYo12MhffFAJkhzgYxAyc=.ed25519", "alias": "pub.sunshinegardens.org"}, {"id": "@uOReuhnb9+mPi5RnTbKMKRr3r87cK+aOg8lFXV/SBPU=.ed25519", "alias": "cryPhone\ud83d\udcf1"}, {"id": "@/GYwci/MrL7DwXLGXrQ2LlMQqcfK2pXcQTxNpdGsxcM=.ed25519", "alias": "wakest (Manyverse iOS)"}, {"id": "@R6fH1dBX3kmwJqowU0nPT3XBN9bEEpJOcXfq4ZMNgo4=.ed25519", "alias": ""}, {"id": "@+DfoBACKcKKy+8PFVO+JslImIWnpxqjGwTe2O4f5k8U=.ed25519", "alias": "Pumpkin"}, {"id": "@3JI5SCSFiL1aAd99vyIn+cU421Lwiy9gw7kz7oTmMQM=.ed25519", "alias": "mariha"}, {"id": "@zg56rgZYkDCWxWfUHTU7AKv5Oium4XLO3xMSUjdkQ90=.ed25519", "alias": "garry"}, {"id": "@0uylhpXqJu00cxKsnyDkSSwZZ//Qzn2YNgaLokosM1w=.ed25519", "alias": "LOUIS"}, {"id": "@0MkIZQooh/THhUXJE3+cVVV4iNqYghGcFsEWoHdA3hY=.ed25519", "alias": "punkmonk.manyverse.desktop"}, {"id": "@L4d44mBJQeUsh7/QymM9qsS4vgvGs7r3Ffxwu0cNmss=.ed25519", "alias": "\u0635\u0641\u0631"}, {"id": "@13DAbye9uCyJUcaE2c5FO1oXRVRrMgohSJytoYV6d9k=.ed25519", "alias": "emi"}, {"id": "@GEilx2vP5r3GgUGMaZyTwx4//u1VqXZva+wRhDexigc=.ed25519", "alias": "Eve"}, {"id": "@OLqOFG57Op2C58MNkanB8xCHUBrPN3x1xUbPs+51f6M=.ed25519", "alias": "dan"}, {"id": "@3bguHFUkW6khQOg9sjeZ+vLz5eNX423d7piWvb4Fnew=.ed25519", "alias": "Mindy Seu"}, {"id": "@rwPz425mJYhvnYFQp/UV/ZieceSoi15l62fXXEBGAG8=.ed25519", "alias": "cafca"}, {"id": "@sHFNLAao6phQ5AN17ecYNUbszDa4Qf6DhyQsjtQfdmY=.ed25519", "alias": "Cory Levinson"}, {"id": "@hVfdnKG3H62Er0ZDFjuEtfxf2JM6ztujM03OS/LYjVo=.ed25519", "alias": "oshoham"}, {"id": "@kbwNcDh5v2ya9IMN7QO9G5f6ab2MX6R2g8qxQcx0oEc=.ed25519", "alias": "pub.communityresilience.network"}, {"id": "@PnTw2Gidhj0h3uvNqXTYa/fVnTwibMczZJgdULntdB0=.ed25519", "alias": "Olya"}, {"id": "@6LtD2Cl3iQAa/CHyz/UHSuLPcGZsgx7EAyVbuzS9/m8=.ed25519", "alias": "Leetus"}, {"id": "@u5xgnS12JHehDvLxHWu3J9UHymX9zdcoK5pjaf3OLKk=.ed25519", "alias": "Alexandrite"}, {"id": "@L2BBIzFuVfCnN6L6K5OqYoAT1fglcuyhFSZS3gh067U=.ed25519", "alias": "Likes Being Assigned Names"}, {"id": "@BrlhGpCCyJDPXlsMjSvT5GWSFc6nDjAhPVLcYGY1Wt0=.ed25519", "alias": "Spencer"}, {"id": "@oyUjpZ4LFz+U+mOYN/HoReQuHg96+HEU8I9MkGoAHmI=.ed25519", "alias": "rathantara"}, {"id": "@AiRjMWzrIf58WmiNqJzejDLp1DVTg1cPQLH0rEvKK+4=.ed25519", "alias": "abekonge.phone"}, {"id": "@EaR4afY8cn/ZpjwClZiDsMk5IWrM3ndMJdjp6umMYsY=.ed25519", "alias": "snufkin (yes it's me)"}, {"id": "@YQCMVB3b8vWFBj6OTkb4VpBoM5wfcAaT1PMs8OsMGlA=.ed25519", "alias": "Hilde"}, {"id": "@GfbHsTI8OxOkxfda0wyuIOQqyRc5Lnh/k7vyBjNvciw=.ed25519", "alias": "Signe"}, {"id": "@37DtTXlZRor1qhVZRAI2GxytpzOwjPNBUoWZrAKIdbM=.ed25519", "alias": "Callum Macdonald @chmac"}, {"id": "@KutKRjsimme+d37Q1kdMnnxC/Hy8zZh9KIwZWkcxxNA=.ed25519", "alias": "many cryptix"}, {"id": "@OyUGYCKQb9+YZQz55wV+Z6B9FAkkbWoLSpK7ArNbB34=.ed25519", "alias": "Solarpunk Station"}, {"id": "@T1e88Mn/lFFOmDdoxsALBY1NST52+y56AWXXJIzlgd4=.ed25519", "alias": "ColinSelf"}, {"id": "@qqkFMW9Lxib9odzdPNsqWy45vmTyRaOyiQG+yPjbadg=.ed25519", "alias": "arb"}, {"id": "@YXkE3TikkY4GFMX3lzXUllRkNTbj5E+604AkaO1xbz8=.ed25519", "alias": "Queks"}, {"id": "@Dk2vLfuHqWhGBpznxQLL5igOCCgN/nrdAT6mRiQfeXQ=.ed25519", "alias": "Tobi"}, {"id": "@U2IV3+mwvCqqjTRe2mVg7bTHaliAF2qokFVp+O4+FZo=.ed25519", "alias": "fiona.aniof"}, {"id": "@C3iYh/12sO1uvKq1KcZXLFxSySzxOkHxXN8rtNB5MGA=.ed25519", "alias": "Kira"}, {"id": "@VUXqH/zofAP4WYNnUFjfc8gBU6kJ6jlBe2I9VC6NVTk=.ed25519", "alias": "\u02d7\u02cf\u02cb wakest \u02ce\u02ca\u02d7"}, {"id": "@kWXMuIThNowm24q7sLYRXxE0l1NuevkFiOkLRmyDNHI=.ed25519", "alias": "jacky"}, {"id": "@FRTUSyDpPfHpoR+clH9Va3LJlhs5iKjP9QyGa2HXsqY=.ed25519", "alias": "moonchannel"}, {"id": "@zo9OwXxf9XrawbV+WE8tb3NoDCFLKAIyNNzY9k+fIiU=.ed25519", "alias": "Alice Yuan Zhang"}, {"id": "@yP6auMQ3HqIL0d6PuEc4nm5do/1nmyKp2sav1PXCUCA=.ed25519", "alias": "Fionn\u00e1in"}, {"id": "@crbVSVKHkgEazu4loUi2j2DLbGMo0K444aAXUzKyMaQ=.ed25519", "alias": "Marlon"}, {"id": "@89cCJmBp7Oq/JewbOTjUQtXxB6QsHsCNVrCr5OIU5mU=.ed25519", "alias": "wakest"}, {"id": "@ivGc1Mg0DOglQFAGDYBfLm97hhvlYQDqrX/IKcyLKa0=.ed25519", "alias": "Surili4theOaks"}, {"id": "@F/Lw6U9khCl8f/BrfYbSnsd1jMFqK+9otnyKBwfp9Es=.ed25519", "alias": "skyebend"}, {"id": "@T4wHt13lfWy+hqNzt2GUxqm4Z6q12K56bVUtSatwJzw=.ed25519", "alias": "M. Stenb\u00e6k"}, {"id": "@GLAOUhpKjsdZmLt/QVlwZxNQ+TAJOpktfkiCBl5SFU0=.ed25519", "alias": "Alice Yuan Zhang (she/her)"}, {"id": "@nBgJ4YNc9DlEO1g4Z+UU+Ki8f1Mnkvf9IAUsgGc38/w=.ed25519", "alias": "wakest (iOS Planetary)"}, {"id": "@g/GTTT2ImoS7nIf847COmK9Z7WT/wAjqlkqBh03f7O0=.ed25519", "alias": "aig"}, {"id": "@rSOIZikUHIpi1QfUPbHjdU1sIrPyzVbeeUfWjYoqmTo=.ed25519", "alias": "Siersha \ud83c\udf16\ud83c\udf3f"}, {"id": "@CvQq5FFOTMGk1UjhCL+foZdvfaPx36DvwTVZ5Mwds4A=.ed25519", "alias": "skittermouse"}, {"id": "@Wnc8G38UdGXlRijohy0hlvSiEEgYyQFabefduR3ZaYw=.ed25519", "alias": "tim"}, {"id": "@VIuhBgr9wnjXWui1JPv0Tz2Oxds8DflzaLouM6QB3do=.ed25519", "alias": "Distribute"}, {"id": "@Rar42tXuNFrhLHIEjzfkt36gKGpR8DfyXKcc31YlYHU=.ed25519", "alias": "Sonata"}, {"id": "@p7dpyaHFTmezxjPWI1IkMPjFXUnrDluRcQDzrpX3A1g=.ed25519", "alias": "cyBertilla"}, {"id": "@T5C+vPo0XK5xTCAtEZjqXPsnQo5VIlN00kr4C9JLTcQ=.ed25519", "alias": "Christian Maniewski"}, {"id": "@OzzlIG1sBdhcRtk2oAnm0wc7Odqxk9T9B9Bapeq4adQ=.ed25519", "alias": "Sol\u00e8ne"}, {"id": "@xf25ivgqN8m7GvaZBVm5lOgGgBm4SBmuTY05as9Duos=.ed25519", "alias": "abekonge.often"}, {"id": "@FB1vjJmK327oVtPEqRFBwDTmGsp8bSPtMGsJeol9mqI=.ed25519", "alias": "EOLd"}, {"id": "@JAulEWTdIzgKuD/RKCDI4gcFM59nKlf3HmFA8ciHMtY=.ed25519", "alias": "Cia"}, {"id": "@rdC/J3PZF3LjOsjWUL6GEzERBOmT5yDaVMjRW24DXmc=.ed25519", "alias": "cyBe"}, {"id": "@f+ELFf2c3dxYxWZ/3qUJbXXLXQ+6mi0rixfN3m/E34U=.ed25519", "alias": "sophiiistika"}, {"id": "@jjU779o3ZZUeHXNvDqD3caxe+ASihmeHINx9jEGeAUw=.ed25519", "alias": "snookie"}, {"id": "@TqUQ4DAggOc7py9VHO+i0ThrfJHqvjfoAWbKO8xMqLc=.ed25519", "alias": "periode"}, {"id": "@NShsZiYDLqLxPxc0p8ha5Nn08+ozfRakrwobAYM/LfY=.ed25519", "alias": "lovsovs"}, {"id": "@lJefyai+d5q5YUx/sJD46Nsfr1PxtrodoCXirlt++NU=.ed25519", "alias": "abekonge.punk"}, {"id": "@2lvll3tWWeDlJCjnew9XR3/8qVwOSjRRyooi3lgmlsc=.ed25519", "alias": "Sam G"}, {"id": "@Gm6WV6NoaQkrCcYEdGUuirh05pOQ8u9I6e9ctDzVi1I=.ed25519", "alias": "flowerdemo"}, {"id": "@JSrjjJja0t6v2Lb8wQN3TPecpPMrdcOcOISsDe68dpA=.ed25519", "alias": "manni"}, {"id": "@cir4/mQyaBabHZTv5oFEpsEd9dr077fXuROzcj1KRC8=.ed25519", "alias": "catherine leigh schmidt"}, {"id": "@SsNspiPLK3GKBlVqsxcjiMG5z2CEAPdeRg4MK7eAweI=.ed25519", "alias": "In\u00eas"}, {"id": "@xyFt5gFK6WtvapR1RM7VWVvOvaBAn9G1BPYdvLQOQ4I=.ed25519", "alias": "maricn"}, {"id": "@Nimne370pzdfql7dXir1lNte7a1A0GRA1JLg0ssnu6A=.ed25519", "alias": "Alex cblgh"}, {"id": "@Oz5q5joRgrnQJ1a8NTc4ZmPGFe00aZs8RxY7NshOyos=.ed25519", "alias": "Ds"}, {"id": "@zurF8X68ArfRM71dF3mKh36W0xDM8QmOnAS5bYOq8hA=.ed25519", "alias": "Josh-alja"}, {"id": "@RPNS2Cst1XYbNH/2/EY+pXCO01s8RKrCrgA+6NdDsm4=.ed25519", "alias": "kei"}, {"id": "@un1I6nHSY39r4hiS+YuaztqfaIzXrwTRQ7dZDTC1VpI=.ed25519", "alias": "notplants"}, {"id": "@LPWCN0NQx3JCwg/bcnK0AtwvZZRESUbHVMfU7u4ZnlA=.ed25519", "alias": "Notwist"}, {"id": "@+tNJMJj0ORf/P8cjnP19Vq+JoCvEOfqKUtn/HyDQO3M=.ed25519", "alias": "wakest (Manyverse iOS)"}, {"id": "@C3HC4X2YxDReA8BBErd8LNisaic5r2XLjBt+AEIGgBo=.ed25519", "alias": "RhymingPumpkins"}, {"id": "@utDnCLzJgZRLpE0kkvoKcNaUxuHnpRdbiS9zjdUfIDE=.ed25519", "alias": "Jeremy"}, {"id": "@Iukra9krn8KTFpi8nXtz6+tCuJw/5Exs/pF5RHJSEbA=.ed25519", "alias": "metempsychosis"}, {"id": "@lh/gJgJPMystRweTXMPjfKDdpv6e8bEKHG8zN9OG99Q=.ed25519", "alias": "fiona.aniof"}, {"id": "@5j4pFrGvQNmQRXNfgEcFSQuZ+TY8tZ7Dcv10RZ1adJQ=.ed25519", "alias": "root angel"}, {"id": "@Y8CbS7aP6rphYB3JhdasDZgMsTo0IXJaz9KWCR095sc=.ed25519", "alias": "Thomas Renkert \ud83e\udd68"}, {"id": "@E91VM1AcGxT3Fsi2hx9QsQcbgDjkhqj0b0aAYFhQpOY=.ed25519", "alias": "pe\u023f"}, {"id": "@9tjB98SHppGndlw6LwLEflLOIuDilY/SlYI78LmcKKw=.ed25519", "alias": "bloodspork"}, {"id": "@Q6i40GEhXQzse3SY0jAs/ajqG+J49v+efa89lXAzHUU=.ed25519", "alias": "rmblror"}, {"id": "@/83CnfEtc4VYBPpfRMLy6/Jkdu8H7XpD49p9pUo8Sj4=.ed25519", "alias": "arcalinea"}, {"id": "@49Sj/4GHVIMo6TgVezqAqkl0bWGDNj2aWqy9plj9IQc=.ed25519", "alias": "Rick Carlino"}, {"id": "@j1/6zJ4bIGJcCuP7dzSo1bbga8pru/3fK+oBwj32rHE=.ed25519", "alias": "acacia"}, {"id": "@s2DHBioEVOCxLclhB9teO+gRTeRswlj8X7h5l4KH7gQ=.ed25519", "alias": "Cory ~\ud83d\ude0e"}, {"id": "@z7cvmRSf6cuBjs7KTiztVGijCQoCZ6ptHFf0rMuMRnY=.ed25519", "alias": "George"}, {"id": "@7Y4nwfQmVtAilEzi5knXdS2gilW7cGKSHXdXoT086LM=.ed25519", "alias": "The System"}, {"id": "@kWYHG1qDENPdffqKxEN4vC/OQ3oVv0Tcq3uScM5eLPE=.ed25519", "alias": "adz\u00b6"}, {"id": "@JwYRlx1d/hrlvYEjvcGqPz6hW6XL+55lQwhNtjIOPOg=.ed25519", "alias": "peach-test"}, {"id": "@rjpfIiY4a5aIzWOp4lKjtPtcz/BhOEQB/xYLnXqZVRg=.ed25519", "alias": "nami"}, {"id": "@g4Xs6EAyzmb2b5HvPrPTSnSfMgnqTQ+zJNV2AiIPuFA=.ed25519", "alias": "Taeyoon 2"}, {"id": "@X9fimGU05VX0md9SmMSTUHCuzqjT77ZJh8O9Ob0lZYM=.ed25519", "alias": "flowerdemo3"}, {"id": "@ZRv10BbfhPi/YngupIdFf7HoBleWZ3IXrYOpuYQdZcc=.ed25519", "alias": "BCueto"}, {"id": "@oaHewtVRqOr8T6GevqAbxHdu74/p5oWSefQ8c2dmKiE=.ed25519", "alias": "AnthillHacks"}, {"id": "@AW+uNeBqZaYscmDnzxZkTtLDIO9nOcsuxu/m2vU98U4=.ed25519", "alias": "liam"}, {"id": "@ppdSxn1pSozJIqtDE4pYgwaQGmswCT9y15VJJcXRntI=.ed25519", "alias": "ansuz"}, {"id": "@cnLKkzXHWFfPa2c4N74pMKCpw6Gmp1vnydEF4qlZsTE=.ed25519", "alias": "Landoo"}, {"id": "@H/LR41vTjzuxb1h4fgN90XlnmtYxOF9ubLlO1TOQOdc=.ed25519", "alias": "stml"}, {"id": "@BStoGDlQpXa0R8Udi6HErJglMiVlsrAI7ISrjsbXkJA=.ed25519", "alias": "LaurenOlamina"}, {"id": "@2SNu+OGquWxUnue7FaUMAA7ZvkWAbYhnbWsX5mVH5VE=.ed25519", "alias": "frnsys"}, {"id": "@3u2quSQ8qX1fTx4HQKthYPDavQI4Wm88kThExFXemYo=.ed25519", "alias": "adz"}, {"id": "@vU/bDokQrQro6t835MkjGct+dmygIv4zkd4oV3UNhgc=.ed25519", "alias": "pub.solarpunk.network"}, {"id": "@kS1GT34Sg+Kzjcqoehz//afmIQC5+CGo8O/KvMddVrM=.ed25519", "alias": "Matt Lorentz (desktop)"}, {"id": "@ZyxkP+J9uThRbJnJ5MH+DCOVQazYOOE20XIKXuj0kRY=.ed25519", "alias": "isthisa"}, {"id": "@g0xA0PhPzNInPFwPq3VoKcx56KZ9PFqY0QiJnKXx3co=.ed25519", "alias": "Lynn Foster"}, {"id": "@pXI/GAQbMztMQXh5nX/MfFSs3FP8RNXp0ZCXlsV4uNc=.ed25519", "alias": "Alexxandrite"}, {"id": "@kmX4IVNioIdgsuOLAvqjZNxOrPiePHPh+3tk0AeQJcU=.ed25519", "alias": "alex // resist.berlin"}, {"id": "@W/cOdhyofugc6lgTYknLjSLIe+0T9JjaXlIFG5beKao=.ed25519", "alias": "Fred"}, {"id": "@rhZFomcXiyys1poj2vrHXTpuwRCOT8tRDBh7nwIrfdY=.ed25519", "alias": "cabrera"}, {"id": "@MMIKroaCDeu1z0OWhtOE+/pEc77WUvp7RPoXq5ZSUuk=.ed25519", "alias": "siersha \ud83c\udf0d"}, {"id": "@fIiLRg2DBcCMtu7o5lNYKyO8blUV1sIJBqpIcMXNI3U=.ed25519", "alias": "Cyan"}, {"id": "@Bp5Z5TQKv6E/Y+QZn/3LiDWMPi63EP8MHsXZ4tiIb2w=.ed25519", "alias": "Hendrik Peter"}, {"id": "@1EiOeRfqP+UMIMdpTWVhCDDbufk2ZMu/Sqn0qFWf52c=.ed25519", "alias": "Cykeltutten Svendborg"}, {"id": "@y/kpyulSuMi6IzyBzdulFmkCLQ0torOHFUACOsqohu0=.ed25519", "alias": "cc"}, {"id": "@6pxtgdpEHee27RsNB1jYlr/b9NOiH123WPwX0vd58Us=.ed25519", "alias": "macdorfenburger"}, {"id": "@QVryZP2IS9SC4n8P5gTsuncJvxAZT3bstnxRLxP9kGg=.ed25519", "alias": "Magnus Money"}, {"id": "@z28Kt0WpnXZa0Ba22ji4rRjjexAC9/UCqE2aZRC1ycA=.ed25519", "alias": "Spencer"}, {"id": "@WTUADOLatBGHUPKHrBcWLmYoEbdXp+uIbh4wbVE1IjY=.ed25519", "alias": "xmka"}, {"id": "@oY8aLV/yEKs75d6TknxlwkhfiThB9HlN5FQY7WWTzho=.ed25519", "alias": "solpunk pub"}, {"id": "@+9hOvwT2SY6BaZtldCBmu3vP2wf3aYOEq7vT5OkH8wI=.ed25519", "alias": "E.L. Guerrero"}, {"id": "@xUSUdppsK/GDSFIsCcpDvvxmWMLmfEK15g85I2jtxUg=.ed25519", "alias": "DanielPinchbeck"}, {"id": "@SmLddSPxpYkJ/8HH8qDycMEwus+tyojjH+a60beRMdg=.ed25519", "alias": "Ladislas"}, {"id": "@RJ09Kfs3neEZPrbpbWVDxkN92x9moe3aPusOMOc4S2I=.ed25519", "alias": "happy0"}, {"id": "@Ij+SDhTNkbDf0HFPiIluCFnsngpJtFOZM88yIx11kr0=.ed25519", "alias": "Melanie"}, {"id": "@IX0YhhVNgs9btLPepGlyLpXKvB0URDHLrmrm4yDlD1c=.ed25519", "alias": "farewellutopia"}, {"id": "@hCDeKTwEhhhNXtg00adkMDi+tx6qrRApFFj49QBM3lY=.ed25519", "alias": "okdistribute"}, {"id": "@bPnMPXtQDqaDTKiDFocbqAYYiEEJIDNsCW7pHmG2OD8=.ed25519", "alias": "contrapunctus\ud83d\udcf1"}, {"id": "@xzWH/SRiCkIRMFVOsKjK2LPWzbirOkNr4f36EP42BI8=.ed25519", "alias": "atyh"}, {"id": "@8ahmd8g0VSGPBONgCwiz0BPfFV/HlfNL0wJ5PP6qaeY=.ed25519", "alias": "dokoissho"}, {"id": "@ZTgbLrufYmP6oZ4MdD4NL8fAOQ9pciUb2cF8dQ8GZwk=.ed25519", "alias": "pub.commoninternet.net"}, {"id": "@ULtTfklxd39BtkQs97OwKRm1vncQHc/foySwTPErkwg=.ed25519", "alias": "Mushroom Pub"}, {"id": "@I1JSeKes1DIBawiMok7WZ8w3Auo7CTq/VMRYId22+5A=.ed25519", "alias": "Gergely Polonkai"}, {"id": "@rV3dinh45rZQ1j31S+Rjp/nAXN3/S3sOVCG4IPij4qI=.ed25519", "alias": "abekonge.desktop"}, {"id": "@y+CywqbY5If181KcX87nQLh4tqAGllkt3lvoY0f+zy0=.ed25519", "alias": "sejo"}, {"id": "@SQuuhPCN/jx6dTKVl8drU4EIO+MF3nCCndtiso+/N/8=.ed25519", "alias": "Flor"}, {"id": "@i16FaHYfh7UNu0QETiAfSDgnRBWU98A1mQV1KxdMnDY=.ed25519", "alias": "Svend H. S\u00f8rensen"}, {"id": "@k53z9zrXEsxytIE+38qaApl44ZJS68XvkepQ0fyJLdg=.ed25519", "alias": "Fabi\u00e1n Heredia Montiel"}, {"id": "@V4TpbIbKGFz5cgvJc7iD2W1aaEG/09w7xsvwLMLMNDM=.ed25519", "alias": "pes"}, {"id": "@ZFWw+UclcUgYi081/C8lhgH+KQ9s7YJRoOYGnzxW/JQ=.ed25519", "alias": "adria0"}, {"id": "@Y5RjRCg8PMKBWDqM5CFbgIp5b0S06oASiWtBp9eSq+g=.ed25519", "alias": "Nico"}, {"id": "@pSGBcTtoOIFoOSWOFjHDhxdn23d7Wab1KoiTgAUa6pE=.ed25519", "alias": "EtaExpanse"}, {"id": "@Yk1PpxsSDavFdotsLyWCYKxxr4BYGdlDR01DBkyLuco=.ed25519", "alias": "Aurelie"}, {"id": "@ucb6r/3uRE7s979/tQ3wL4MfGtWKmXY8QpaVvkkfAHg=.ed25519", "alias": "Nico Pace - mobile"}, {"id": "@op0XP05GmfYqkz7fRPcPtz2KAzIWdS4gpLySeIyn4Jg=.ed25519", "alias": "Kent"}, {"id": "@JUPsQk8TeldsvGYRo6yQ7QhXw4XQd/MP2gRLe1OBf8s=.ed25519", "alias": "infrared-ether"}, {"id": "@4Jf85HKidBB3CZDQekXcJGM7kE3FZDfmKd33e5vdnKw=.ed25519", "alias": "arkadiy"}, {"id": "@PvmKtS6YfGL3nxMYJjzLlYSQTMxD9levOaRoFAQFzR4=.ed25519", "alias": "Matt Lorentz (Patchwork)"}, {"id": "@0k+2yxi+ae+wbMPYg1TjwJ1ep4tVgWBNlraEoIIIkx8=.ed25519", "alias": "dweeb2023"}, {"id": "@AUcbIdvHUqWGS2lwFlSBDRYx6dbpWQRNz9G0N0S80/A=.ed25519", "alias": ""}, {"id": "@t5iZ/IQAYnYsGzQdpTKvbLpZnlmUML408BrjsvlwRew=.ed25519", "alias": "jiangplus"}, {"id": "@SUeR+eS9DH3skIZMSPg3DkXTLNZpJ6GsgevIiRokAYQ=.ed25519", "alias": "inoahguy"}, {"id": "@FA3bRDVXeHP6w2YhKYlODFx04kyPKOvwZOR6nhCzjic=.ed25519", "alias": "its mr yeehaw ali"}, {"id": "@3xVvcHN7Qr0OmAnuWpVCxZYLh/WrZq8hLWXzGjnCyCo=.ed25519", "alias": "aadilphone"}, {"id": "@GVnPbMTxqSSiDeiqA3zNUummPPMGLMtfXU2C9Y0Bw98=.ed25519", "alias": "Shashi"}, {"id": "@cpie7fpNg7u1ybjsju+iNJ5/HXxSEXc9wvjPLFlF2fw=.ed25519", "alias": "Free Sha Voca Do"}, {"id": "@2vw0J8CcaibI7gbeQIkAPuNoh6nbu3uhKBJs9dVorqg=.ed25519", "alias": "Vincent Batts"}, {"id": "@iwcgQwQmSVh7y9JAC4D5WRr1mF88YI1cviQvtIacId8=.ed25519", "alias": "Techpriest Baunach 002"}, {"id": "@+nz2P1+N1BzkqYZh8f1msBSJ8DG2zOTHWhOfwfx7wQ0=.ed25519", "alias": "Interfect On Wheels"}, {"id": "@A++SLmwCSwTQ2caOk+HIgvUgCnM7tCfyoF0e3g9ti8c=.ed25519", "alias": "Juliet"}, {"id": "@L1taond6D3Rgm3ipglbNs+dT7QlMshLCyRp406e8gH8=.ed25519", "alias": "Techpriest Baunach Planetary"}, {"id": "@LtQ3tOuLoeQFi5s/ic7U6wDBxWS3t2yxauc4/AwqfWc=.ed25519", "alias": "cryptix (yet another feed)"}, {"id": "@9qOxsM9ZTlPZeUnOj41hXGqjTjihyQfrSFEhgKZ51hg=.ed25519", "alias": "bengo"}, {"id": "@0zW6Xzzafs2Umic54jMsH98RGUBLjRHtREMvNFHoR5Y=.ed25519", "alias": "Just Simmonds"}, {"id": "@KdAcmKPWpiu2jXSZD8ttS0IfU2KYDJZOqy8BHumsuM4=.ed25519", "alias": "Tasia"}, {"id": "@FGV7T4jXU70z3pCgGLJ02fdipDYtWK+Haxk9luRCkxY=.ed25519", "alias": "aadils.computer"}, {"id": "@s18lWTNt4fPIjAY/3VTIhAc7FP2x4u9Nxzuv5N6Qijc=.ed25519", "alias": "exdysa"}, {"id": "@LuXJHRRvBBaqUjf2F2UoYYX5GdQuJYm40lbN0I9s2qo=.ed25519", "alias": "nice tea"}]