From 0caf0efeef8163cf1b3a29af7f5ebd2d17426066 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 31 Oct 2025 16:34:20 +1100 Subject: [PATCH 01/27] Allow jumping to today --- bouquin/main_window.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 394ccb9..5b8bc97 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -97,6 +97,13 @@ class MainWindow(QMainWindow): nav_menu.addAction(act_next) self.addAction(act_next) + act_today = QAction("Today", self) + act_today.setShortcut("Ctrl+T") + act_today.setShortcutContext(Qt.ApplicationShortcut) + act_today.triggered.connect(self._adjust_today) + nav_menu.addAction(act_today) + self.addAction(act_today) + # Autosave self._dirty = False self._save_timer = QTimer(self) @@ -176,6 +183,11 @@ class MainWindow(QMainWindow): d = self.calendar.selectedDate().addDays(delta) self.calendar.setSelectedDate(d) + def _adjust_today(self): + """Jump to today.""" + today = QDate.currentDate() + self.calendar.setSelectedDate(today) + def _on_date_changed(self): """ When the calendar selection changes, save the previous day's note if dirty, From f778afd268cd3a3f2e677375f5939ef0b78a7381 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 31 Oct 2025 16:46:42 +1100 Subject: [PATCH 02/27] Add ability to change the key --- README.md | 1 - bouquin/db.py | 19 +++++++++++++++++++ bouquin/main_window.py | 2 +- bouquin/settings_dialog.py | 32 ++++++++++++++++++++++++++++++-- 4 files changed, 50 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8b20e14..b874668 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,6 @@ There is deliberately no network connectivity or syncing intended. * Search * Taxonomy/tagging - * Ability to change the SQLCipher key * Export to other formats (plaintext, json, sql etc) diff --git a/bouquin/db.py b/bouquin/db.py index 1ea60fa..15cc4c9 100644 --- a/bouquin/db.py +++ b/bouquin/db.py @@ -64,6 +64,25 @@ class DBManager: cur.execute("PRAGMA user_version = 1;") self.conn.commit() + def rekey(self, new_key: str) -> None: + """ + Change the SQLCipher passphrase in-place, then reopen the connection + with the new key to verify. + """ + if self.conn is None: + raise RuntimeError("Database is not connected") + cur = self.conn.cursor() + # Change the encryption key of the currently open database + cur.execute(f"PRAGMA rekey = '{new_key}';") + self.conn.commit() + + # Close and reopen with the new key to verify and restore PRAGMAs + self.conn.close() + self.conn = None + self.cfg.key = new_key + if not self.connect(): + raise sqlite.Error("Re-open failed after rekey") + def get_entry(self, date_iso: str) -> str: cur = self.conn.cursor() cur.execute("SELECT content FROM entries WHERE date = ?;", (date_iso,)) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 5b8bc97..309ef28 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -231,7 +231,7 @@ class MainWindow(QMainWindow): self._save_date(self._current_date_iso(), explicit) def _open_settings(self): - dlg = SettingsDialog(self.cfg, self) + dlg = SettingsDialog(self.cfg, self.db, self) if dlg.exec() == QDialog.Accepted: new_cfg = dlg.config if new_cfg.path != self.cfg.path: diff --git a/bouquin/settings_dialog.py b/bouquin/settings_dialog.py index 790c4e0..ca2514c 100644 --- a/bouquin/settings_dialog.py +++ b/bouquin/settings_dialog.py @@ -13,17 +13,20 @@ from PySide6.QtWidgets import ( QFileDialog, QDialogButtonBox, QSizePolicy, + QMessageBox, ) -from .db import DBConfig +from .db import DBConfig, DBManager from .settings import save_db_config +from .key_prompt import KeyPrompt class SettingsDialog(QDialog): - def __init__(self, cfg: DBConfig, parent=None): + def __init__(self, cfg: DBConfig, db: DBManager, parent=None): super().__init__(parent) self.setWindowTitle("Settings") self._cfg = DBConfig(path=cfg.path, key="") + self._db = db form = QFormLayout() form.setFieldGrowthPolicy(QFormLayout.ExpandingFieldsGrow) @@ -44,12 +47,17 @@ class SettingsDialog(QDialog): h.setStretch(1, 0) form.addRow("Database path", path_row) + # Change key button + self.rekey_btn = QPushButton("Change key") + self.rekey_btn.clicked.connect(self._change_key) + bb = QDialogButtonBox(QDialogButtonBox.Save | QDialogButtonBox.Cancel) bb.accepted.connect(self._save) bb.rejected.connect(self.reject) v = QVBoxLayout(self) v.addLayout(form) + v.addWidget(self.rekey_btn) v.addWidget(bb) def _browse(self): @@ -67,6 +75,26 @@ class SettingsDialog(QDialog): save_db_config(self._cfg) self.accept() + def _change_key(self): + p1 = KeyPrompt(self, title="Change key", message="Enter new key") + if p1.exec() != QDialog.Accepted: + return + new_key = p1.key() + p2 = KeyPrompt(self, title="Change key", message="Re-enter new key") + if p2.exec() != QDialog.Accepted: + return + if new_key != p2.key(): + QMessageBox.warning(self, "Key mismatch", "The two entries did not match.") + return + if not new_key: + QMessageBox.warning(self, "Empty key", "Key cannot be empty.") + return + try: + self._db.rekey(new_key) + QMessageBox.information(self, "Key changed", "The database key was updated.") + except Exception as e: + QMessageBox.critical(self, "Error", f"Could not change key:\n{e}") + @property def config(self) -> DBConfig: return self._cfg From 3db384e7e440a76887a6f354612509f4d2248c82 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 31 Oct 2025 16:47:18 +1100 Subject: [PATCH 03/27] Add CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..40a4f3b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +# 0.1.1 + + * Add ability to change the key + * Add ability to jump to today's date + +# 0.1.0 + + * Initial release. From cc9453997eb0bf13793efcd475108579758f1b57 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 31 Oct 2025 16:50:53 +1100 Subject: [PATCH 04/27] Add shortcut for Settings (Ctrl+E) so as not to collide with Ctrl+S (Save) --- CHANGELOG.md | 1 + bouquin/main_window.py | 3 ++- pyproject.toml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40a4f3b..07944f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * Add ability to change the key * Add ability to jump to today's date + * Add shortcut for Settings (Ctrl+E) so as not to collide with Ctrl+S (Save) # 0.1.0 diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 309ef28..6b0451c 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -72,7 +72,8 @@ class MainWindow(QMainWindow): act_save.setShortcut("Ctrl+S") act_save.triggered.connect(lambda: self._save_current(explicit=True)) file_menu.addAction(act_save) - act_settings = QAction("&Settings", self) + act_settings = QAction("S&ettings", self) + act_save.setShortcut("Ctrl+E") act_settings.triggered.connect(self._open_settings) file_menu.addAction(act_settings) file_menu.addSeparator() diff --git a/pyproject.toml b/pyproject.toml index 1be51b7..2be1386 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bouquin" -version = "0.1.0" +version = "0.1.1" description = "Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher." authors = ["Miguel Jacq "] readme = "README.md" From 50fee4ec78491f705d9b1c6e991c3e0ce9460697 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 31 Oct 2025 16:55:51 +1100 Subject: [PATCH 05/27] Add repository url to pyproject.toml --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 2be1386..3d2088d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,6 +5,7 @@ description = "Bouquin is a simple, opinionated notebook application written in authors = ["Miguel Jacq "] readme = "README.md" license = "GPL-3.0-or-later" +repository = "https://git.mig5.net/mig5/bouquin" [tool.poetry.dependencies] python = ">=3.9,<3.14" From e0d7826fe0f2bdb1af748f64aeb6389029935f90 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 1 Nov 2025 16:41:57 +1100 Subject: [PATCH 06/27] Switch to HTML (QTextEdit) and a style toolbar --- CHANGELOG.md | 5 ++ bouquin/editor.py | 118 +++++++++++++++++++++++++++++++++++++++++ bouquin/highlighter.py | 112 -------------------------------------- bouquin/main_window.py | 64 +++++++++++++++------- bouquin/toolbar.py | 95 +++++++++++++++++++++++++++++++++ 5 files changed, 263 insertions(+), 131 deletions(-) create mode 100644 bouquin/editor.py delete mode 100644 bouquin/highlighter.py create mode 100644 bouquin/toolbar.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 07944f2..c54582d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 0.1.2 + + * Switch from Markdown to HTML via QTextEdit, with a toolbar + * Fix Settings shortcut and change nav menu from 'File' to 'Application' + # 0.1.1 * Add ability to change the key diff --git a/bouquin/editor.py b/bouquin/editor.py new file mode 100644 index 0000000..bf40a6b --- /dev/null +++ b/bouquin/editor.py @@ -0,0 +1,118 @@ +from PySide6.QtGui import ( + QColor, + QFont, + QFontDatabase, + QTextCharFormat, + QTextListFormat, + QTextBlockFormat, +) +from PySide6.QtCore import Slot +from PySide6.QtWidgets import QTextEdit + + +class Editor(QTextEdit): + def __init__(self): + super().__init__() + tab_w = 4 * self.fontMetrics().horizontalAdvance(" ") + self.setTabStopDistance(tab_w) + + def merge_on_sel(self, fmt): + """ + Sets the styling on the selected characters. + """ + cursor = self.textCursor() + if not cursor.hasSelection(): + cursor.select(cursor.SelectionType.WordUnderCursor) + cursor.mergeCharFormat(fmt) + self.mergeCurrentCharFormat(fmt) + + @Slot(QFont.Weight) + def apply_weight(self, weight): + fmt = QTextCharFormat() + fmt.setFontWeight(weight) + self.merge_on_sel(fmt) + + @Slot() + def apply_italic(self): + cur = self.currentCharFormat() + fmt = QTextCharFormat() + fmt.setFontItalic(not cur.fontItalic()) + self.merge_on_sel(fmt) + + @Slot() + def apply_underline(self): + cur = self.currentCharFormat() + fmt = QTextCharFormat() + fmt.setFontUnderline(not cur.fontUnderline()) + self.merge_on_sel(fmt) + + @Slot() + def apply_strikethrough(self): + cur = self.currentCharFormat() + fmt = QTextCharFormat() + fmt.setFontStrikeOut(not cur.fontStrikeOut()) + self.merge_on_sel(fmt) + + @Slot() + def apply_code(self): + c = self.textCursor() + if not c.hasSelection(): + c.select(c.SelectionType.BlockUnderCursor) + + bf = QTextBlockFormat() + bf.setLeftMargin(12) + bf.setRightMargin(12) + bf.setTopMargin(6) + bf.setBottomMargin(6) + bf.setBackground(QColor(245, 245, 245)) + bf.setNonBreakableLines(True) + + cf = QTextCharFormat() + mono = QFontDatabase.systemFont(QFontDatabase.SystemFont.FixedFont) + cf.setFont(mono) + cf.setFontFixedPitch(True) + + # If the current block already looks like a code block, remove styling + cur_bf = c.blockFormat() + is_code = ( + cur_bf.nonBreakableLines() + and cur_bf.background().color().rgb() == QColor(245, 245, 245).rgb() + ) + if is_code: + # clear: margins/background/wrapping + bf = QTextBlockFormat() + cf = QTextCharFormat() + + c.mergeBlockFormat(bf) + c.mergeBlockCharFormat(cf) + + @Slot(int) + def apply_heading(self, size): + fmt = QTextCharFormat() + if size: + fmt.setFontWeight(QFont.Weight.Bold) + fmt.setFontPointSize(size) + else: + fmt.setFontWeight(QFont.Weight.Normal) + fmt.setFontPointSize(self.font().pointSizeF()) + self.merge_on_sel(fmt) + + def toggle_bullets(self): + c = self.textCursor() + lst = c.currentList() + if lst and lst.format().style() == QTextListFormat.Style.ListDisc: + lst.remove(c.block()) + return + fmt = QTextListFormat() + fmt.setStyle(QTextListFormat.Style.ListDisc) + c.createList(fmt) + + def toggle_numbers(self): + c = self.textCursor() + lst = c.currentList() + if lst and lst.format().style() == QTextListFormat.Style.ListDecimal: + lst.remove(c.block()) + return + fmt = QTextListFormat() + fmt.setStyle(QTextListFormat.Style.ListDecimal) + c.createList(fmt) diff --git a/bouquin/highlighter.py b/bouquin/highlighter.py deleted file mode 100644 index 456dfa2..0000000 --- a/bouquin/highlighter.py +++ /dev/null @@ -1,112 +0,0 @@ -from __future__ import annotations - -import re -from PySide6.QtGui import QFont, QTextCharFormat, QSyntaxHighlighter, QColor - - -class MarkdownHighlighter(QSyntaxHighlighter): - ST_NORMAL = 0 - ST_CODE = 1 - - FENCE = re.compile(r"^```") - - def __init__(self, document): - super().__init__(document) - - base_size = document.defaultFont().pointSizeF() or 12.0 - - # Monospace for code - self.mono = QFont("Monospace") - self.mono.setStyleHint(QFont.TypeWriter) - - # Light, high-contrast scheme for code - self.col_bg = QColor("#eef2f6") # light code bg - self.col_fg = QColor("#1f2328") # dark text - - # Formats - self.fmt_h = [QTextCharFormat() for _ in range(6)] - for i, f in enumerate(self.fmt_h, start=1): - f.setFontWeight(QFont.Weight.Bold) - f.setFontPointSize(base_size + (7 - i)) - self.fmt_bold = QTextCharFormat() - self.fmt_bold.setFontWeight(QFont.Weight.Bold) - self.fmt_italic = QTextCharFormat() - self.fmt_italic.setFontItalic(True) - self.fmt_quote = QTextCharFormat() - self.fmt_quote.setForeground(QColor("#6a737d")) - self.fmt_link = QTextCharFormat() - self.fmt_link.setFontUnderline(True) - self.fmt_list = QTextCharFormat() - self.fmt_list.setFontWeight(QFont.Weight.DemiBold) - self.fmt_strike = QTextCharFormat() - self.fmt_strike.setFontStrikeOut(True) - - # Uniform code style - self.fmt_code = QTextCharFormat() - self.fmt_code.setFont(self.mono) - self.fmt_code.setFontPointSize(max(6.0, base_size - 1)) - self.fmt_code.setBackground(self.col_bg) - self.fmt_code.setForeground(self.col_fg) - - # Simple patterns - self.re_heading = re.compile(r"^(#{1,6}) +.*$") - self.re_bold = re.compile(r"\*\*(.+?)\*\*|__(.+?)__") - self.re_italic = re.compile(r"\*(?!\*)(.+?)\*|_(?!_)(.+?)_") - self.re_strike = re.compile(r"~~(.+?)~~") - self.re_inline_code = re.compile(r"`([^`]+)`") - self.re_link = re.compile(r"\[([^\]]+)\]\(([^)]+)\)") - self.re_list = re.compile(r"^ *(?:[-*+] +|[0-9]+[.)] +)") - self.re_quote = re.compile(r"^> ?.*$") - - def highlightBlock(self, text: str) -> None: - prev = self.previousBlockState() - in_code = prev == self.ST_CODE - - if in_code: - # Entire line is code - self.setFormat(0, len(text), self.fmt_code) - if self.FENCE.match(text): - self.setCurrentBlockState(self.ST_NORMAL) - else: - self.setCurrentBlockState(self.ST_CODE) - return - - # Starting/ending a fenced block? - if self.FENCE.match(text): - self.setFormat(0, len(text), self.fmt_code) - self.setCurrentBlockState(self.ST_CODE) - return - - # --- Normal markdown styling --- - m = self.re_heading.match(text) - if m: - level = min(len(m.group(1)), 6) - self.setFormat(0, len(text), self.fmt_h[level - 1]) - self.setCurrentBlockState(self.ST_NORMAL) - return - - m = self.re_list.match(text) - if m: - self.setFormat(m.start(), m.end() - m.start(), self.fmt_list) - - if self.re_quote.match(text): - self.setFormat(0, len(text), self.fmt_quote) - - for m in self.re_inline_code.finditer(text): - self.setFormat(m.start(), m.end() - m.start(), self.fmt_code) - - for m in self.re_bold.finditer(text): - self.setFormat(m.start(), m.end() - m.start(), self.fmt_bold) - - for m in self.re_italic.finditer(text): - self.setFormat(m.start(), m.end() - m.start(), self.fmt_italic) - - for m in self.re_strike.finditer(text): - self.setFormat(m.start(), m.end() - m.start(), self.fmt_strike) - - for m in self.re_link.finditer(text): - start = m.start(1) - 1 - length = len(m.group(1)) + 2 - self.setFormat(start, length, self.fmt_link) - - self.setCurrentBlockState(self.ST_NORMAL) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 6b0451c..359481e 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -3,24 +3,28 @@ from __future__ import annotations import sys from PySide6.QtCore import QDate, QTimer, Qt -from PySide6.QtGui import QAction, QFont, QTextCharFormat +from PySide6.QtGui import ( + QAction, + QFont, + QTextCharFormat, +) from PySide6.QtWidgets import ( - QDialog, QCalendarWidget, + QDialog, QMainWindow, QMessageBox, - QPlainTextEdit, + QSizePolicy, QSplitter, QVBoxLayout, QWidget, - QSizePolicy, ) from .db import DBManager -from .settings import APP_NAME, load_db_config, save_db_config +from .editor import Editor from .key_prompt import KeyPrompt -from .highlighter import MarkdownHighlighter +from .settings import APP_NAME, load_db_config, save_db_config from .settings_dialog import SettingsDialog +from .toolbar import ToolBar class MainWindow(QMainWindow): @@ -40,6 +44,8 @@ class MainWindow(QMainWindow): self.calendar.setGridVisible(True) self.calendar.selectionChanged.connect(self._on_date_changed) + # Lock the calendar to the left panel at the top to stop it stretching + # when the main window is resized. left_panel = QWidget() left_layout = QVBoxLayout(left_panel) left_layout.setContentsMargins(8, 8, 8, 8) @@ -47,10 +53,22 @@ class MainWindow(QMainWindow): left_layout.addStretch(1) left_panel.setFixedWidth(self.calendar.sizeHint().width() + 16) - self.editor = QPlainTextEdit() - tab_w = 4 * self.editor.fontMetrics().horizontalAdvance(" ") - self.editor.setTabStopDistance(tab_w) - self.highlighter = MarkdownHighlighter(self.editor.document()) + # This is the note-taking editor + self.editor = Editor() + + # Toolbar for controlling styling + tb = ToolBar() + self.addToolBar(tb) + # Wire toolbar intents to editor methods + tb.boldRequested.connect(self.editor.apply_weight) + tb.italicRequested.connect(self.editor.apply_italic) + tb.underlineRequested.connect(self.editor.apply_underline) + tb.strikeRequested.connect(self.editor.apply_strikethrough) + tb.codeRequested.connect(self.editor.apply_code) + tb.headingRequested.connect(self.editor.apply_heading) + tb.bulletsRequested.connect(self.editor.toggle_bullets) + tb.numbersRequested.connect(self.editor.toggle_numbers) + tb.alignRequested.connect(self.editor.setAlignment) split = QSplitter() split.addWidget(left_panel) @@ -67,13 +85,13 @@ class MainWindow(QMainWindow): # Menu bar (File) mb = self.menuBar() - file_menu = mb.addMenu("&File") + file_menu = mb.addMenu("&Application") act_save = QAction("&Save", self) act_save.setShortcut("Ctrl+S") act_save.triggered.connect(lambda: self._save_current(explicit=True)) file_menu.addAction(act_save) act_settings = QAction("S&ettings", self) - act_save.setShortcut("Ctrl+E") + act_settings.setShortcut("Ctrl+E") act_settings.triggered.connect(self._open_settings) file_menu.addAction(act_settings) file_menu.addSeparator() @@ -82,7 +100,7 @@ class MainWindow(QMainWindow): act_quit.triggered.connect(self.close) file_menu.addAction(act_quit) - # Navigate menu with next/previous day + # Navigate menu with next/previous/today nav_menu = mb.addMenu("&Navigate") act_prev = QAction("Previous Day", self) act_prev.setShortcut("Ctrl+P") @@ -112,12 +130,14 @@ class MainWindow(QMainWindow): self._save_timer.timeout.connect(self._save_current) self.editor.textChanged.connect(self._on_text_changed) - # First load + mark dates with content + # First load + mark dates in calendar with content self._load_selected_date() self._refresh_calendar_marks() - # --- DB lifecycle def _try_connect(self) -> bool: + """ + Try to connect to the database. + """ try: self.db = DBManager(self.cfg) ok = self.db.connect() @@ -131,6 +151,9 @@ class MainWindow(QMainWindow): return ok def _prompt_for_key_until_valid(self) -> bool: + """ + Prompt for the SQLCipher key. + """ while True: dlg = KeyPrompt(self, message="Enter a key to unlock the notebook") if dlg.exec() != QDialog.Accepted: @@ -139,8 +162,11 @@ class MainWindow(QMainWindow): if self._try_connect(): return True - # --- Calendar marks to indicate text exists for htat day ----------------- def _refresh_calendar_marks(self): + """ + Sets a bold marker on the day to indicate that text exists + for that day. + """ fmt_bold = QTextCharFormat() fmt_bold.setFontWeight(QFont.Weight.Bold) # Clear previous marks @@ -169,7 +195,7 @@ class MainWindow(QMainWindow): QMessageBox.critical(self, "Read Error", str(e)) return self.editor.blockSignals(True) - self.editor.setPlainText(text) + self.editor.setHtml(text) self.editor.blockSignals(False) self._dirty = False # track which date the editor currently represents @@ -212,7 +238,7 @@ class MainWindow(QMainWindow): """ if not self._dirty and not explicit: return - text = self.editor.toPlainText() + text = self.editor.toHtml() try: self.db.upsert_entry(date_iso, text) except Exception as e: @@ -249,7 +275,7 @@ class MainWindow(QMainWindow): self._load_selected_date() self._refresh_calendar_marks() - def closeEvent(self, event): # noqa: N802 + def closeEvent(self, event): try: self._save_current() self.db.close() diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py new file mode 100644 index 0000000..471fd8e --- /dev/null +++ b/bouquin/toolbar.py @@ -0,0 +1,95 @@ +from PySide6.QtCore import Signal, Qt +from PySide6.QtGui import QFont, QAction +from PySide6.QtWidgets import QToolBar + +class ToolBar(QToolBar): + boldRequested = Signal(QFont.Weight) + italicRequested = Signal() + underlineRequested = Signal() + strikeRequested = Signal() + codeRequested = Signal() + headingRequested = Signal(int) + bulletsRequested = Signal() + numbersRequested = Signal() + alignRequested = Signal(Qt.AlignmentFlag) + + def __init__(self, parent=None): + super().__init__("Format", parent) + self._build_actions() + + def _build_actions(self): + # Bold + bold = QAction("Bold", self) + bold.setShortcut("Ctrl+B") + bold.triggered.connect(lambda: self.boldRequested.emit(QFont.Weight.Bold)) + + italic = QAction("Italic", self) + italic.setShortcut("Ctrl+I") + italic.triggered.connect(self.italicRequested) + + underline = QAction("Underline", self) + underline.setShortcut("Ctrl+U") + underline.triggered.connect(self.underlineRequested) + + strike = QAction("Strikethrough", self) + strike.setShortcut("Ctrl+-") + strike.triggered.connect(self.strikeRequested) + + code = QAction("", self) + code.setShortcut("Ctrl+`") + code.triggered.connect(self.codeRequested) + + # Headings + h1 = QAction("H1", self) + h1.setShortcut("Ctrl+1") + h2 = QAction("H2", self) + h2.setShortcut("Ctrl+2") + h3 = QAction("H3", self) + h3.setShortcut("Ctrl+3") + normal = QAction("Normal", self) + normal.setShortcut("Ctrl+P") + + h1.triggered.connect(lambda: self.headingRequested.emit(24)) + h2.triggered.connect(lambda: self.headingRequested.emit(18)) + h3.triggered.connect(lambda: self.headingRequested.emit(14)) + normal.triggered.connect(lambda: self.headingRequested.emit(0)) + + # Lists + bullets = QAction("• Bullets", self) + bullets.triggered.connect(self.bulletsRequested) + numbers = QAction("1. Numbered", self) + numbers.triggered.connect(self.numbersRequested) + + # Alignment + left = QAction("Align Left", self) + center = QAction("Align Center", self) + right = QAction("Align Right", self) + + left.triggered.connect( + lambda: self.alignRequested.emit(Qt.AlignmentFlag.AlignLeft) + ) + center.triggered.connect( + lambda: self.alignRequested.emit(Qt.AlignmentFlag.AlignHCenter) + ) + right.triggered.connect( + lambda: self.alignRequested.emit(Qt.AlignmentFlag.AlignRight) + ) + + self.addActions( + [ + bold, + italic, + underline, + strike, + code, + h1, + h2, + h3, + normal, + bullets, + numbers, + left, + center, + right, + ] + ) From 72862f9a4f277a86ea895762b2282d714aead5ea Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 1 Nov 2025 16:45:59 +1100 Subject: [PATCH 07/27] Update test to account for HTML --- tests/test_ui.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_ui.py b/tests/test_ui.py index 5df04bc..280a01a 100644 --- a/tests/test_ui.py +++ b/tests/test_ui.py @@ -30,11 +30,11 @@ def test_manual_save_current_day(patched_main_window, qtbot): win, *_ = patched_main_window # Type into the editor and save - win.editor.setPlainText("Test note") + win.editor.setHtml("Test note") win._save_current(explicit=True) # call directly to avoid waiting timers day = win._current_date_iso() - assert win.db.get_entry(day) == "Test note" + assert "Test note" in win.db.get_entry(day) def test_switch_day_saves_previous(patched_main_window, qtbot): @@ -45,13 +45,13 @@ def test_switch_day_saves_previous(patched_main_window, qtbot): # Write on Day 1 d1 = win.calendar.selectedDate() d1_iso = f"{d1.year():04d}-{d1.month():02d}-{d1.day():02d}" - win.editor.setPlainText("Notes day 1") + win.editor.setHtml("Notes day 1") # Trigger a day change (this path calls _on_date_changed via signal) d2 = d1.addDays(1) win.calendar.setSelectedDate(d2) # After changing, previous day should be saved; editor now shows day 2 content (empty) - assert win.db.get_entry(d1_iso) == "Notes day 1" + assert "Notes day 1" in win.db.get_entry(d1_iso) assert win.editor.toPlainText() == "" From 53e99af9128e5b0bf14bd2e1448d05ab53771471 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 1 Nov 2025 17:44:23 +1100 Subject: [PATCH 08/27] Add Search ability --- CHANGELOG.md | 1 + README.md | 9 +- bouquin/db.py | 6 ++ bouquin/editor.py | 2 + bouquin/main.py | 3 +- bouquin/main_window.py | 10 +- bouquin/search.py | 195 +++++++++++++++++++++++++++++++++++++ bouquin/settings_dialog.py | 4 +- bouquin/toolbar.py | 3 + 9 files changed, 224 insertions(+), 9 deletions(-) create mode 100644 bouquin/search.py diff --git a/CHANGELOG.md b/CHANGELOG.md index c54582d..06ef835 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # 0.1.2 * Switch from Markdown to HTML via QTextEdit, with a toolbar + * Add search ability * Fix Settings shortcut and change nav menu from 'File' to 'Application' # 0.1.1 diff --git a/README.md b/README.md index b874668..3307543 100644 --- a/README.md +++ b/README.md @@ -20,16 +20,15 @@ There is deliberately no network connectivity or syncing intended. ## Features * Every 'page' is linked to the calendar day - * Basic markdown + * Text is HTML with basic styling + * Search * Automatic periodic saving (or explicitly save) - * Navigating from one day to the next automatically saves - * Basic keyboard shortcuts * Transparent integrity checking of the database when it opens + * Rekey the database (change the password) ## Yet to do - * Search * Taxonomy/tagging * Export to other formats (plaintext, json, sql etc) @@ -47,7 +46,7 @@ There is deliberately no network connectivity or syncing intended. * Download the whl and run it -### From PyPi +### From PyPi/pip * `pip install bouquin` diff --git a/bouquin/db.py b/bouquin/db.py index 15cc4c9..c75847e 100644 --- a/bouquin/db.py +++ b/bouquin/db.py @@ -100,6 +100,12 @@ class DBManager: ) self.conn.commit() + def search_entries(self, text: str) -> list[str]: + cur = self.conn.cursor() + pattern = f"%{text}%" + cur.execute("SELECT * FROM entries WHERE TRIM(content) LIKE ?", (pattern,)) + return [r for r in cur.fetchall()] + def dates_with_content(self) -> list[str]: cur = self.conn.cursor() cur.execute("SELECT date FROM entries WHERE TRIM(content) <> '';") diff --git a/bouquin/editor.py b/bouquin/editor.py index bf40a6b..7fe55c0 100644 --- a/bouquin/editor.py +++ b/bouquin/editor.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from PySide6.QtGui import ( QColor, QFont, diff --git a/bouquin/main.py b/bouquin/main.py index 9beb4d9..3e5f90b 100644 --- a/bouquin/main.py +++ b/bouquin/main.py @@ -11,5 +11,6 @@ def main(): app = QApplication(sys.argv) app.setApplicationName(APP_NAME) app.setOrganizationName(APP_ORG) - win = MainWindow(); win.show() + win = MainWindow() + win.show() sys.exit(app.exec()) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 359481e..bceaa8d 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -22,6 +22,7 @@ from PySide6.QtWidgets import ( from .db import DBManager from .editor import Editor from .key_prompt import KeyPrompt +from .search import Search from .settings import APP_NAME, load_db_config, save_db_config from .settings_dialog import SettingsDialog from .toolbar import ToolBar @@ -44,12 +45,16 @@ class MainWindow(QMainWindow): self.calendar.setGridVisible(True) self.calendar.selectionChanged.connect(self._on_date_changed) + self.search = Search(self.db) + self.search.openDateRequested.connect(self._load_selected_date) + # Lock the calendar to the left panel at the top to stop it stretching # when the main window is resized. left_panel = QWidget() left_layout = QVBoxLayout(left_panel) left_layout.setContentsMargins(8, 8, 8, 8) left_layout.addWidget(self.calendar, alignment=Qt.AlignTop) + left_layout.addWidget(self.search, alignment=Qt.AlignBottom) left_layout.addStretch(1) left_panel.setFixedWidth(self.calendar.sizeHint().width() + 16) @@ -187,8 +192,9 @@ class MainWindow(QMainWindow): d = self.calendar.selectedDate() return f"{d.year():04d}-{d.month():02d}-{d.day():02d}" - def _load_selected_date(self): - date_iso = self._current_date_iso() + def _load_selected_date(self, date_iso=False): + if not date_iso: + date_iso = self._current_date_iso() try: text = self.db.get_entry(date_iso) except Exception as e: diff --git a/bouquin/search.py b/bouquin/search.py new file mode 100644 index 0000000..8177905 --- /dev/null +++ b/bouquin/search.py @@ -0,0 +1,195 @@ +from __future__ import annotations + +import re +from typing import Iterable, Tuple + +from PySide6.QtCore import Qt, Signal +from PySide6.QtGui import QFont, QTextCharFormat, QTextCursor, QTextDocument +from PySide6.QtWidgets import ( + QLabel, + QLineEdit, + QListWidget, + QListWidgetItem, + QHBoxLayout, + QVBoxLayout, + QWidget, +) + +# type: rows are (date_iso, content) +Row = Tuple[str, str] + + +class Search(QWidget): + """Encapsulates the search UI + logic and emits a signal when a result is chosen.""" + + openDateRequested = Signal(str) + + def __init__(self, db, parent: QWidget | None = None): + super().__init__(parent) + self._db = db + + self.search = QLineEdit() + self.search.setPlaceholderText("Search for notes here") + self.search.textChanged.connect(self._search) + + self.results = QListWidget() + self.results.setUniformItemSizes(False) + self.results.setSelectionMode(self.results.SelectionMode.SingleSelection) + self.results.itemClicked.connect(self._open_selected) + self.results.hide() + + lay = QVBoxLayout(self) + lay.setContentsMargins(0, 0, 0, 0) + lay.setSpacing(6) + lay.addWidget(self.search) + lay.addWidget(self.results) + + def _open_selected(self, item: QListWidgetItem): + date_str = item.data(Qt.ItemDataRole.UserRole) + if date_str: + self.openDateRequested.emit(date_str) + + def _search(self, text: str): + """ + Search for the supplied text in the database. + For all rows found, populate the results widget with a clickable preview. + """ + q = text.strip() + if not q: + self.results.clear() + self.results.hide() + return + + try: + rows: Iterable[Row] = self._db.search_entries(q) + except Exception: + # be quiet on DB errors here; caller can surface if desired + rows = [] + + self._populate_results(q, rows) + + def _populate_results(self, query: str, rows: Iterable[Row]): + self.results.clear() + rows = list(rows) + if not rows: + self.results.hide() + return + + self.results.show() + + for date_str, content in rows: + # Build an HTML fragment around the match and whether to show ellipses + frag_html, left_ell, right_ell = self._make_html_snippet( + content, query, radius=60, maxlen=180 + ) + + # ---- Per-item widget: date on top, preview row below (with ellipses) ---- + container = QWidget() + outer = QVBoxLayout(container) + outer.setContentsMargins(8, 6, 8, 6) + outer.setSpacing(2) + + # Date label (plain text) + date_lbl = QLabel(date_str) + date_lbl.setTextFormat(Qt.TextFormat.PlainText) + date_f = date_lbl.font() + date_f.setPointSizeF(date_f.pointSizeF() - 1) + date_lbl.setFont(date_f) + date_lbl.setStyleSheet("color:#666;") + outer.addWidget(date_lbl) + + # Preview row with optional ellipses + row = QWidget() + h = QHBoxLayout(row) + h.setContentsMargins(0, 0, 0, 0) + h.setSpacing(4) + + if left_ell: + left = QLabel("…") + left.setStyleSheet("color:#888;") + h.addWidget(left, 0, Qt.AlignmentFlag.AlignTop) + + preview = QLabel() + preview.setTextFormat(Qt.TextFormat.RichText) + preview.setWordWrap(True) + preview.setOpenExternalLinks(True) # keep links in your HTML clickable + preview.setText( + frag_html + if frag_html + else "(no preview)" + ) + h.addWidget(preview, 1) + + if right_ell: + right = QLabel("…") + right.setStyleSheet("color:#888;") + h.addWidget(right, 0, Qt.AlignmentFlag.AlignBottom) + + outer.addWidget(row) + + # ---- Add to list ---- + item = QListWidgetItem() + item.setData(Qt.ItemDataRole.UserRole, date_str) + item.setSizeHint(container.sizeHint()) + + self.results.addItem(item) + self.results.setItemWidget(item, container) + + # --- Snippet/highlight helpers ----------------------------------------- + def _make_html_snippet(self, html_src: str, query: str, *, radius=60, maxlen=180): + doc = QTextDocument() + doc.setHtml(html_src) + plain = doc.toPlainText() + if not plain: + return "", False, False + + tokens = [t for t in re.split(r"\s+", query.strip()) if t] + L = len(plain) + + # Find first occurrence (phrase first, then earliest token) + idx, mlen = -1, 0 + if tokens: + lower = plain.lower() + phrase = " ".join(tokens).lower() + j = lower.find(phrase) + if j >= 0: + idx, mlen = j, len(phrase) + else: + for t in tokens: + tj = lower.find(t.lower()) + if tj >= 0 and (idx < 0 or tj < idx): + idx, mlen = tj, len(t) + # Compute window + if idx < 0: + start, end = 0, min(L, maxlen) + else: + start = max(0, min(idx - radius, max(0, L - maxlen))) + end = min(L, max(idx + mlen + radius, start + maxlen)) + + # Bold all token matches that fall inside [start, end) + if tokens: + lower = plain.lower() + fmt = QTextCharFormat() + fmt.setFontWeight(QFont.Weight.Bold) + for t in tokens: + t_low = t.lower() + pos = start + while True: + k = lower.find(t_low, pos) + if k == -1 or k >= end: + break + c = QTextCursor(doc) + c.setPosition(k) + c.setPosition(k + len(t), QTextCursor.MoveMode.KeepAnchor) + c.mergeCharFormat(fmt) + pos = k + len(t) + + # Select the window and export as HTML fragment + c = QTextCursor(doc) + c.setPosition(start) + c.setPosition(end, QTextCursor.MoveMode.KeepAnchor) + fragment_html = ( + c.selection().toHtml() + ) # preserves original styles + our bolding + + return fragment_html, start > 0, end < L diff --git a/bouquin/settings_dialog.py b/bouquin/settings_dialog.py index ca2514c..a59e1c6 100644 --- a/bouquin/settings_dialog.py +++ b/bouquin/settings_dialog.py @@ -91,7 +91,9 @@ class SettingsDialog(QDialog): return try: self._db.rekey(new_key) - QMessageBox.information(self, "Key changed", "The database key was updated.") + QMessageBox.information( + self, "Key changed", "The database key was updated." + ) except Exception as e: QMessageBox.critical(self, "Error", f"Could not change key:\n{e}") diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index 471fd8e..93c7ee3 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -1,7 +1,10 @@ +from __future__ import annotations + from PySide6.QtCore import Signal, Qt from PySide6.QtGui import QFont, QAction from PySide6.QtWidgets import QToolBar + class ToolBar(QToolBar): boldRequested = Signal(QFont.Weight) italicRequested = Signal() From e146a92b315a15e6707cb9f73fb47c0c30128849 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 1 Nov 2025 17:44:58 +1100 Subject: [PATCH 09/27] Bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3d2088d..0e7310f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bouquin" -version = "0.1.1" +version = "0.1.2" description = "Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher." authors = ["Miguel Jacq "] readme = "README.md" From ff3f5fcf3a9ef444779d2267285c55e554076b4d Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 1 Nov 2025 17:52:53 +1100 Subject: [PATCH 10/27] Update screenshot --- screenshot.png | Bin 55893 -> 88039 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index a0d47bfedebbec745b4cd48f7edc6bf997c75686..85b8e83a264485f3884b74aca6086d6eb199c287 100644 GIT binary patch literal 88039 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 PNf|$S(oZKw&RY9liCx8c literal 55893 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 From f9d92811dca8e974e4d73bdacd047cb50ccb31a2 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 10:04:34 +1100 Subject: [PATCH 11/27] Remove explicit cipher_compatability PRAGMA --- bouquin/db.py | 1 - 1 file changed, 1 deletion(-) diff --git a/bouquin/db.py b/bouquin/db.py index c75847e..0073903 100644 --- a/bouquin/db.py +++ b/bouquin/db.py @@ -23,7 +23,6 @@ class DBManager: self.conn = sqlite.connect(str(self.cfg.path)) cur = self.conn.cursor() cur.execute(f"PRAGMA key = '{self.cfg.key}';") - cur.execute("PRAGMA cipher_compatibility = 4;") cur.execute("PRAGMA journal_mode = WAL;") self.conn.commit() try: From 39c0cb61da8da6778d3b3cbd6fbab87cd288f194 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 10:15:27 +1100 Subject: [PATCH 12/27] Fix set/unset of bold text --- bouquin/editor.py | 6 ++++-- bouquin/toolbar.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bouquin/editor.py b/bouquin/editor.py index 7fe55c0..a5b7643 100644 --- a/bouquin/editor.py +++ b/bouquin/editor.py @@ -28,9 +28,11 @@ class Editor(QTextEdit): cursor.mergeCharFormat(fmt) self.mergeCurrentCharFormat(fmt) - @Slot(QFont.Weight) - def apply_weight(self, weight): + @Slot() + def apply_weight(self): + cur = self.currentCharFormat() fmt = QTextCharFormat() + weight = QFont.Weight.Normal if cur.fontWeight() == QFont.Weight.Bold else QFont.Weight.Bold fmt.setFontWeight(weight) self.merge_on_sel(fmt) diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index 93c7ee3..a3a8cef 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -6,7 +6,7 @@ from PySide6.QtWidgets import QToolBar class ToolBar(QToolBar): - boldRequested = Signal(QFont.Weight) + boldRequested = Signal() italicRequested = Signal() underlineRequested = Signal() strikeRequested = Signal() @@ -24,7 +24,7 @@ class ToolBar(QToolBar): # Bold bold = QAction("Bold", self) bold.setShortcut("Ctrl+B") - bold.triggered.connect(lambda: self.boldRequested.emit(QFont.Weight.Bold)) + bold.triggered.connect(self.boldRequested) italic = QAction("Italic", self) italic.setShortcut("Ctrl+I") From baf9b41f44aab3a93ffa14355ca59191331f89cc Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 10:21:42 +1100 Subject: [PATCH 13/27] Reduce size of preview. Fix jumping to the appropriate day in calendar when clicking on a search result --- bouquin/main_window.py | 2 ++ bouquin/search.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index bceaa8d..5208e7b 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -206,6 +206,8 @@ class MainWindow(QMainWindow): self._dirty = False # track which date the editor currently represents self._active_date_iso = date_iso + qd = QDate.fromString(date_iso, "yyyy-MM-dd") + self.calendar.setSelectedDate(qd) def _on_text_changed(self): self._dirty = True diff --git a/bouquin/search.py b/bouquin/search.py index 8177905..8cd2fd5 100644 --- a/bouquin/search.py +++ b/bouquin/search.py @@ -80,7 +80,7 @@ class Search(QWidget): for date_str, content in rows: # Build an HTML fragment around the match and whether to show ellipses frag_html, left_ell, right_ell = self._make_html_snippet( - content, query, radius=60, maxlen=180 + content, query, radius=30, maxlen=90 ) # ---- Per-item widget: date on top, preview row below (with ellipses) ---- @@ -112,7 +112,7 @@ class Search(QWidget): preview = QLabel() preview.setTextFormat(Qt.TextFormat.RichText) preview.setWordWrap(True) - preview.setOpenExternalLinks(True) # keep links in your HTML clickable + preview.setOpenExternalLinks(True) preview.setText( frag_html if frag_html From c4f99f9b2b018310cc772c94a8983637543d20ba Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 10:59:43 +1100 Subject: [PATCH 14/27] Remember app window position on screen --- bouquin/main_window.py | 45 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 5208e7b..0e1364f 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -2,10 +2,12 @@ from __future__ import annotations import sys -from PySide6.QtCore import QDate, QTimer, Qt +from PySide6.QtCore import QDate, QTimer, Qt, QSettings from PySide6.QtGui import ( QAction, + QCursor, QFont, + QGuiApplication, QTextCharFormat, ) from PySide6.QtWidgets import ( @@ -139,6 +141,10 @@ class MainWindow(QMainWindow): self._load_selected_date() self._refresh_calendar_marks() + # Restore window position from settings + self.settings = QSettings(APP_NAME) + self._restore_window_position() + def _try_connect(self) -> bool: """ Try to connect to the database. @@ -283,8 +289,45 @@ class MainWindow(QMainWindow): self._load_selected_date() self._refresh_calendar_marks() + def _restore_window_position(self): + geom = self.settings.value("main/geometry", None) + state = self.settings.value("main/windowState", None) + was_max = self.settings.value("main/maximized", False, type=bool) + + if geom is not None: + self.restoreGeometry(geom) + if state is not None: + self.restoreState(state) + if not self._rect_on_any_screen(self.frameGeometry()): + self._move_to_cursor_screen_center() + else: + # First run: place window on the screen where the mouse cursor is. + self._move_to_cursor_screen_center() + + # If it was maximized, do that AFTER the window exists in the event loop. + if was_max: + QTimer.singleShot(0, self.showMaximized) + + def _rect_on_any_screen(self, rect): + for sc in QGuiApplication.screens(): + if sc.availableGeometry().intersects(rect): + return True + return False + + def _move_to_cursor_screen_center(self): + screen = QGuiApplication.screenAt(QCursor.pos()) or QGuiApplication.primaryScreen() + r = screen.availableGeometry() + # Center the window in that screen’s available area + self.move(r.center() - self.rect().center()) + + def closeEvent(self, event): try: + # Save window position + self.settings.setValue("main/geometry", self.saveGeometry()) + self.settings.setValue("main/windowState", self.saveState()) + self.settings.setValue("main/maximized", self.isMaximized()) + # Ensure we save any last pending edits to the db self._save_current() self.db.close() except Exception: From 327e7882b5021094146988eed1da83d80385ecd0 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 11:00:00 +1100 Subject: [PATCH 15/27] Clickable URL links --- bouquin/editor.py | 130 ++++++++++++++++++++++++++++++++++++- bouquin/toolbar.py | 1 + bouquin/url_highlighter.py | 25 +++++++ 3 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 bouquin/url_highlighter.py diff --git a/bouquin/editor.py b/bouquin/editor.py index a5b7643..1f7e132 100644 --- a/bouquin/editor.py +++ b/bouquin/editor.py @@ -1,23 +1,147 @@ from __future__ import annotations from PySide6.QtGui import ( + QBrush, QColor, + QDesktopServices, QFont, QFontDatabase, QTextCharFormat, + QTextCursor, QTextListFormat, QTextBlockFormat, ) -from PySide6.QtCore import Slot +from PySide6.QtCore import Qt, QUrl, Signal, Slot, QRegularExpression from PySide6.QtWidgets import QTextEdit +from .url_highlighter import UrlHighlighter class Editor(QTextEdit): - def __init__(self): - super().__init__() + linkActivated = Signal(str) + + _URL_RX = QRegularExpression(r"(https?://[^\s<>\"]+|www\.[^\s<>\"]+)") + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) tab_w = 4 * self.fontMetrics().horizontalAdvance(" ") self.setTabStopDistance(tab_w) + self.setTextInteractionFlags( + Qt.TextInteractionFlag.TextEditorInteraction + | Qt.TextInteractionFlag.LinksAccessibleByMouse + | Qt.TextInteractionFlag.LinksAccessibleByKeyboard + ) + + self.setAcceptRichText(True) + + # Turn raw URLs into anchors + self._linkifying = False + self.textChanged.connect(self._linkify_document) + self.viewport().setMouseTracking(True) + + def _linkify_document(self): + if self._linkifying: + return + self._linkifying = True + + doc = self.document() + cur = QTextCursor(doc) + cur.beginEditBlock() + + block = doc.begin() + while block.isValid(): + text = block.text() + it = self._URL_RX.globalMatch(text) + while it.hasNext(): + m = it.next() + start = block.position() + m.capturedStart() + end = start + m.capturedLength() + + cur.setPosition(start) + cur.setPosition(end, QTextCursor.KeepAnchor) + + fmt = cur.charFormat() + if fmt.isAnchor(): # already linkified; skip + continue + + href = m.captured(0) + if href.startswith("www."): + href = "https://" + href + + fmt.setAnchor(True) + # Qt 6: use setAnchorHref; for compatibility, also set names. + try: + fmt.setAnchorHref(href) + except AttributeError: + fmt.setAnchorNames([href]) + + fmt.setFontUnderline(True) + fmt.setForeground(Qt.blue) + cur.setCharFormat(fmt) + + block = block.next() + + cur.endEditBlock() + self._linkifying = False + + def mouseReleaseEvent(self, e): + if e.button() == Qt.LeftButton and (e.modifiers() & Qt.ControlModifier): + href = self.anchorAt(e.pos()) + if href: + QDesktopServices.openUrl(QUrl.fromUserInput(href)) + self.linkActivated.emit(href) + return + super().mouseReleaseEvent(e) + + def mouseMoveEvent(self, e): + if (e.modifiers() & Qt.ControlModifier) and self.anchorAt(e.pos()): + self.viewport().setCursor(Qt.PointingHandCursor) + else: + self.viewport().setCursor(Qt.IBeamCursor) + super().mouseMoveEvent(e) + + def keyPressEvent(self, e): + key = e.key() + + # Pre-insert: stop link/format bleed for “word boundary” keys + if key in (Qt.Key_Space, Qt.Key_Tab): + self._break_anchor_for_next_char() + return super().keyPressEvent(e) + + # When pressing Enter/return key, insert first, then neutralise the empty block’s inline format + if key in (Qt.Key_Return, Qt.Key_Enter): + super().keyPressEvent(e) # create the new (possibly empty) paragraph + + # If we're on an empty block, clear the insertion char format so the + # *next* Enter will create another new line (not consume the press to reset formatting). + c = self.textCursor() + block = c.block() + if block.length() == 1: + self._clear_insertion_char_format() + return + + return super().keyPressEvent(e) + + def _clear_insertion_char_format(self): + """Reset inline typing format (keeps lists, alignment, margins, etc.).""" + nf = QTextCharFormat() + self.setCurrentCharFormat(nf) + + def _break_anchor_for_next_char(self): + c = self.textCursor() + fmt = c.charFormat() + if fmt.isAnchor() or fmt.fontUnderline() or fmt.foreground().style() != 0: + # clone, then strip just the link-specific bits so the next char is plain text + nf = QTextCharFormat(fmt) + nf.setAnchor(False) + nf.setFontUnderline(False) + nf.clearForeground() + try: + nf.setAnchorHref("") + except AttributeError: + nf.setAnchorNames([]) + self.setCurrentCharFormat(nf) + def merge_on_sel(self, fmt): """ Sets the styling on the selected characters. diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index a3a8cef..0951f20 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -19,6 +19,7 @@ class ToolBar(QToolBar): def __init__(self, parent=None): super().__init__("Format", parent) self._build_actions() + self.setObjectName("Format") def _build_actions(self): # Bold diff --git a/bouquin/url_highlighter.py b/bouquin/url_highlighter.py new file mode 100644 index 0000000..1fd1af6 --- /dev/null +++ b/bouquin/url_highlighter.py @@ -0,0 +1,25 @@ +from __future__ import annotations + +import re +from PySide6.QtGui import QSyntaxHighlighter, QTextCharFormat +from PySide6.QtCore import Qt, QRegularExpression + +class UrlHighlighter(QSyntaxHighlighter): + def __init__(self, doc): + super().__init__(doc) + self.rx = QRegularExpression(r"(https?://[^\s<>\"]+|www\.[^\s<>\"]+)") + + def highlightBlock(self, text: str): + it = self.rx.globalMatch(text) + while it.hasNext(): + m = it.next() + href = m.captured(0) + if href.startswith("www."): + href = "https://" + href + + fmt = QTextCharFormat() + fmt.setAnchor(True) + fmt.setAnchorHref(href) + fmt.setFontUnderline(True) + fmt.setForeground(Qt.blue) + self.setFormat(m.capturedStart(0), m.capturedLength(0), fmt) From 4f773e1c1b8085a1ec88c80de2183e7240470232 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 11:13:52 +1100 Subject: [PATCH 16/27] Detect fresh install and guide the user to set an encryption passphrase so they know why they're prompted --- bouquin/key_prompt.py | 4 ++-- bouquin/main_window.py | 19 ++++++++++++++++--- bouquin/settings_dialog.py | 6 +++--- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/bouquin/key_prompt.py b/bouquin/key_prompt.py index 1fe8dee..095093c 100644 --- a/bouquin/key_prompt.py +++ b/bouquin/key_prompt.py @@ -14,8 +14,8 @@ class KeyPrompt(QDialog): def __init__( self, parent=None, - title: str = "Unlock database", - message: str = "Enter SQLCipher key", + title: str = "Enter key", + message: str = "Enter key", ): super().__init__(parent) self.setWindowTitle(title) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 0e1364f..8a03852 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -1,5 +1,6 @@ from __future__ import annotations +import os import sys from PySide6.QtCore import QDate, QTimer, Qt, QSettings @@ -37,8 +38,14 @@ class MainWindow(QMainWindow): self.setMinimumSize(1000, 650) self.cfg = load_db_config() + if not os.path.exists(self.cfg.path): + # Fresh database/first time use, so guide the user re: setting a key + first_time = True + else: + first_time = False + # Always prompt for the key (we never store it) - if not self._prompt_for_key_until_valid(): + if not self._prompt_for_key_until_valid(first_time): sys.exit(1) # ---- UI: Left fixed panel (calendar) + right editor ----------------- @@ -161,12 +168,18 @@ class MainWindow(QMainWindow): return False return ok - def _prompt_for_key_until_valid(self) -> bool: + def _prompt_for_key_until_valid(self, first_time: bool) -> bool: """ Prompt for the SQLCipher key. """ + if first_time: + title = "Set an encryption key" + message = "Bouquin encrypts your data.\n\nPlease create a strong passphrase to encrypt the notebook.\n\nYou can always change it later!" + else: + title = "Unlock encrypted notebook" + message = "Enter your key to unlock the notebook" while True: - dlg = KeyPrompt(self, message="Enter a key to unlock the notebook") + dlg = KeyPrompt(self, title, message) if dlg.exec() != QDialog.Accepted: return False self.cfg.key = dlg.key() diff --git a/bouquin/settings_dialog.py b/bouquin/settings_dialog.py index a59e1c6..d739630 100644 --- a/bouquin/settings_dialog.py +++ b/bouquin/settings_dialog.py @@ -76,11 +76,11 @@ class SettingsDialog(QDialog): self.accept() def _change_key(self): - p1 = KeyPrompt(self, title="Change key", message="Enter new key") + p1 = KeyPrompt(self, title="Change key", message="Enter a new encryption key") if p1.exec() != QDialog.Accepted: return new_key = p1.key() - p2 = KeyPrompt(self, title="Change key", message="Re-enter new key") + p2 = KeyPrompt(self, title="Change key", message="Re-enter the new key") if p2.exec() != QDialog.Accepted: return if new_key != p2.key(): @@ -92,7 +92,7 @@ class SettingsDialog(QDialog): try: self._db.rekey(new_key) QMessageBox.information( - self, "Key changed", "The database key was updated." + self, "Key changed", "The notebook was re-encrypted with the new key!" ) except Exception as e: QMessageBox.critical(self, "Error", f"Could not change key:\n{e}") From 43bbe971eb855ece25b9e6b3e28307cba8a3b0e3 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 11:44:22 +1100 Subject: [PATCH 17/27] Add ability to save the key to avoid being prompted for it --- README.md | 4 +- bouquin/editor.py | 14 ++++--- bouquin/main_window.py | 18 +++++---- bouquin/settings.py | 4 +- bouquin/settings_dialog.py | 77 +++++++++++++++++++++++++++++++++++--- bouquin/toolbar.py | 2 +- bouquin/url_highlighter.py | 25 ------------- 7 files changed, 98 insertions(+), 46 deletions(-) delete mode 100644 bouquin/url_highlighter.py diff --git a/README.md b/README.md index 3307543..94d0648 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ It uses [SQLCipher bindings](https://pypi.org/project/sqlcipher3-wheels) as a dr for SQLite3. This means that the underlying database for the notebook is encrypted at rest. To increase security, the SQLCipher key is requested when the app is opened, and is not written -to disk. +to disk unless the user configures it to be in the settings. There is deliberately no network connectivity or syncing intended. @@ -35,6 +35,8 @@ There is deliberately no network connectivity or syncing intended. ## How to install +Make sure you have `libxcb-cursor0` installed (it may be called something else on non-Debian distributions). + ### From source * Clone this repo or download the tarball from the releases page diff --git a/bouquin/editor.py b/bouquin/editor.py index 1f7e132..eb3b664 100644 --- a/bouquin/editor.py +++ b/bouquin/editor.py @@ -1,7 +1,6 @@ from __future__ import annotations from PySide6.QtGui import ( - QBrush, QColor, QDesktopServices, QFont, @@ -14,7 +13,6 @@ from PySide6.QtGui import ( from PySide6.QtCore import Qt, QUrl, Signal, Slot, QRegularExpression from PySide6.QtWidgets import QTextEdit -from .url_highlighter import UrlHighlighter class Editor(QTextEdit): linkActivated = Signal(str) @@ -55,13 +53,13 @@ class Editor(QTextEdit): while it.hasNext(): m = it.next() start = block.position() + m.capturedStart() - end = start + m.capturedLength() + end = start + m.capturedLength() cur.setPosition(start) cur.setPosition(end, QTextCursor.KeepAnchor) fmt = cur.charFormat() - if fmt.isAnchor(): # already linkified; skip + if fmt.isAnchor(): # already linkified; skip continue href = m.captured(0) @@ -110,7 +108,7 @@ class Editor(QTextEdit): # When pressing Enter/return key, insert first, then neutralise the empty block’s inline format if key in (Qt.Key_Return, Qt.Key_Enter): - super().keyPressEvent(e) # create the new (possibly empty) paragraph + super().keyPressEvent(e) # create the new (possibly empty) paragraph # If we're on an empty block, clear the insertion char format so the # *next* Enter will create another new line (not consume the press to reset formatting). @@ -156,7 +154,11 @@ class Editor(QTextEdit): def apply_weight(self): cur = self.currentCharFormat() fmt = QTextCharFormat() - weight = QFont.Weight.Normal if cur.fontWeight() == QFont.Weight.Bold else QFont.Weight.Bold + weight = ( + QFont.Weight.Normal + if cur.fontWeight() == QFont.Weight.Bold + else QFont.Weight.Bold + ) fmt.setFontWeight(weight) self.merge_on_sel(fmt) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 8a03852..0f90197 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -26,7 +26,7 @@ from .db import DBManager from .editor import Editor from .key_prompt import KeyPrompt from .search import Search -from .settings import APP_NAME, load_db_config, save_db_config +from .settings import APP_ORG, APP_NAME, load_db_config, save_db_config from .settings_dialog import SettingsDialog from .toolbar import ToolBar @@ -44,9 +44,12 @@ class MainWindow(QMainWindow): else: first_time = False - # Always prompt for the key (we never store it) - if not self._prompt_for_key_until_valid(first_time): - sys.exit(1) + # Prompt for the key unless it is found in config + if not self.cfg.key: + if not self._prompt_for_key_until_valid(first_time): + sys.exit(1) + else: + self._try_connect() # ---- UI: Left fixed panel (calendar) + right editor ----------------- self.calendar = QCalendarWidget() @@ -149,7 +152,7 @@ class MainWindow(QMainWindow): self._refresh_calendar_marks() # Restore window position from settings - self.settings = QSettings(APP_NAME) + self.settings = QSettings(APP_ORG, APP_NAME) self._restore_window_position() def _try_connect(self) -> bool: @@ -328,12 +331,13 @@ class MainWindow(QMainWindow): return False def _move_to_cursor_screen_center(self): - screen = QGuiApplication.screenAt(QCursor.pos()) or QGuiApplication.primaryScreen() + screen = ( + QGuiApplication.screenAt(QCursor.pos()) or QGuiApplication.primaryScreen() + ) r = screen.availableGeometry() # Center the window in that screen’s available area self.move(r.center() - self.rect().center()) - def closeEvent(self, event): try: # Save window position diff --git a/bouquin/settings.py b/bouquin/settings.py index 508e12f..ec45094 100644 --- a/bouquin/settings.py +++ b/bouquin/settings.py @@ -21,9 +21,11 @@ def get_settings() -> QSettings: def load_db_config() -> DBConfig: s = get_settings() path = Path(s.value("db/path", str(default_db_path()))) - return DBConfig(path=path, key="") + key = s.value("db/key", "") + return DBConfig(path=path, key=key) def save_db_config(cfg: DBConfig) -> None: s = get_settings() s.setValue("db/path", str(cfg.path)) + s.setValue("db/key", str(cfg.key)) diff --git a/bouquin/settings_dialog.py b/bouquin/settings_dialog.py index d739630..70ae8f6 100644 --- a/bouquin/settings_dialog.py +++ b/bouquin/settings_dialog.py @@ -3,8 +3,12 @@ from __future__ import annotations from pathlib import Path from PySide6.QtWidgets import ( + QCheckBox, QDialog, QFormLayout, + QFrame, + QGroupBox, + QLabel, QHBoxLayout, QVBoxLayout, QWidget, @@ -15,9 +19,12 @@ from PySide6.QtWidgets import ( QSizePolicy, QMessageBox, ) +from PySide6.QtCore import Qt, Slot +from PySide6.QtGui import QPalette + from .db import DBConfig, DBManager -from .settings import save_db_config +from .settings import load_db_config, save_db_config from .key_prompt import KeyPrompt @@ -27,10 +34,11 @@ class SettingsDialog(QDialog): self.setWindowTitle("Settings") self._cfg = DBConfig(path=cfg.path, key="") self._db = db + self.key = "" form = QFormLayout() form.setFieldGrowthPolicy(QFormLayout.ExpandingFieldsGrow) - self.setMinimumWidth(520) + self.setMinimumWidth(560) self.setSizeGripEnabled(True) self.path_edit = QLineEdit(str(self._cfg.path)) @@ -47,18 +55,65 @@ class SettingsDialog(QDialog): h.setStretch(1, 0) form.addRow("Database path", path_row) + # Encryption settings + enc_group = QGroupBox("Encryption") + enc = QVBoxLayout(enc_group) + enc.setContentsMargins(12, 8, 12, 12) + enc.setSpacing(6) + + # Checkbox to remember key + self.save_key_btn = QCheckBox("Remember key") + current_settings = load_db_config() + if current_settings.key: + self.save_key_btn.setChecked(True) + else: + self.save_key_btn.setChecked(False) + self.save_key_btn.setCursor(Qt.PointingHandCursor) + self.save_key_btn.toggled.connect(self.save_key_btn_clicked) + enc.addWidget(self.save_key_btn, 0, Qt.AlignLeft) + + # Explanation for remembering key + self.save_key_label = QLabel( + "If you don't want to be prompted for your encryption key, check this to remember it. " + "WARNING: the key is saved to disk and could be recoverable if your disk is compromised." + ) + self.save_key_label.setWordWrap(True) + self.save_key_label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) + # make it look secondary + pal = self.save_key_label.palette() + pal.setColor(self.save_key_label.foregroundRole(), pal.color(QPalette.Mid)) + self.save_key_label.setPalette(pal) + + exp_row = QHBoxLayout() + exp_row.setContentsMargins(24, 0, 0, 0) # indent to line up under the checkbox + exp_row.addWidget(self.save_key_label) + enc.addLayout(exp_row) + + line = QFrame() + line.setFrameShape(QFrame.HLine) + line.setFrameShadow(QFrame.Sunken) + enc.addWidget(line) + # Change key button self.rekey_btn = QPushButton("Change key") + self.rekey_btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.rekey_btn.clicked.connect(self._change_key) + enc.addWidget(self.rekey_btn, 0, Qt.AlignLeft) + # Put the group into the form so it spans the full width nicely + form.addRow(enc_group) + + # Buttons bb = QDialogButtonBox(QDialogButtonBox.Save | QDialogButtonBox.Cancel) bb.accepted.connect(self._save) bb.rejected.connect(self.reject) + # Root layout (adjust margins/spacing a bit) v = QVBoxLayout(self) + v.setContentsMargins(12, 12, 12, 12) + v.setSpacing(10) v.addLayout(form) - v.addWidget(self.rekey_btn) - v.addWidget(bb) + v.addWidget(bb, 0, Qt.AlignRight) def _browse(self): p, _ = QFileDialog.getSaveFileName( @@ -71,7 +126,7 @@ class SettingsDialog(QDialog): self.path_edit.setText(p) def _save(self): - self._cfg = DBConfig(path=Path(self.path_edit.text()), key="") + self._cfg = DBConfig(path=Path(self.path_edit.text()), key=self.key) save_db_config(self._cfg) self.accept() @@ -97,6 +152,18 @@ class SettingsDialog(QDialog): except Exception as e: QMessageBox.critical(self, "Error", f"Could not change key:\n{e}") + @Slot(bool) + def save_key_btn_clicked(self, checked: bool): + if checked: + p1 = KeyPrompt( + self, title="Enter your key", message="Enter the encryption key" + ) + if p1.exec() != QDialog.Accepted: + return + self.key = p1.key() + self._cfg = DBConfig(path=Path(self.path_edit.text()), key=self.key) + save_db_config(self._cfg) + @property def config(self) -> DBConfig: return self._cfg diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index 0951f20..c796ac8 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -1,7 +1,7 @@ from __future__ import annotations from PySide6.QtCore import Signal, Qt -from PySide6.QtGui import QFont, QAction +from PySide6.QtGui import QAction from PySide6.QtWidgets import QToolBar diff --git a/bouquin/url_highlighter.py b/bouquin/url_highlighter.py deleted file mode 100644 index 1fd1af6..0000000 --- a/bouquin/url_highlighter.py +++ /dev/null @@ -1,25 +0,0 @@ -from __future__ import annotations - -import re -from PySide6.QtGui import QSyntaxHighlighter, QTextCharFormat -from PySide6.QtCore import Qt, QRegularExpression - -class UrlHighlighter(QSyntaxHighlighter): - def __init__(self, doc): - super().__init__(doc) - self.rx = QRegularExpression(r"(https?://[^\s<>\"]+|www\.[^\s<>\"]+)") - - def highlightBlock(self, text: str): - it = self.rx.globalMatch(text) - while it.hasNext(): - m = it.next() - href = m.captured(0) - if href.startswith("www."): - href = "https://" + href - - fmt = QTextCharFormat() - fmt.setAnchor(True) - fmt.setAnchorHref(href) - fmt.setFontUnderline(True) - fmt.setForeground(Qt.blue) - self.setFormat(m.capturedStart(0), m.capturedLength(0), fmt) From 6cae652643a18627a747753ae6534e19225f077c Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 11:56:28 +1100 Subject: [PATCH 18/27] Abbreviated toolbar symbols and add tooltips --- CHANGELOG.md | 9 +++ bouquin/toolbar.py | 169 +++++++++++++++++++++++++++++---------------- 2 files changed, 118 insertions(+), 60 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06ef835..b45483f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# 0.1.3 + + * Fix bold toggle + * Improvements to preview size in search results + * Make URLs highlighted and clickable (Ctrl+click) + * Explain the purpose of the encryption key for first-time use + * Support saving the encryption key to the settings file to avoid being prompted (off by default) + * Abbreviated toolbar symbols to keep things tidier. Add tooltips + # 0.1.2 * Switch from Markdown to HTML via QTextEdit, with a toolbar diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index c796ac8..182b527 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -1,7 +1,7 @@ from __future__ import annotations from PySide6.QtCore import Signal, Qt -from PySide6.QtGui import QAction +from PySide6.QtGui import QAction, QKeySequence, QFont, QFontDatabase from PySide6.QtWidgets import QToolBar @@ -18,82 +18,131 @@ class ToolBar(QToolBar): def __init__(self, parent=None): super().__init__("Format", parent) - self._build_actions() self.setObjectName("Format") + self.setToolButtonStyle(Qt.ToolButtonTextOnly) + self._build_actions() + self._apply_toolbar_styles() def _build_actions(self): - # Bold - bold = QAction("Bold", self) - bold.setShortcut("Ctrl+B") - bold.triggered.connect(self.boldRequested) + self.actBold = QAction("Bold", self) + self.actBold.setShortcut(QKeySequence.Bold) + self.actBold.triggered.connect(self.boldRequested) - italic = QAction("Italic", self) - italic.setShortcut("Ctrl+I") - italic.triggered.connect(self.italicRequested) + self.actItalic = QAction("Italic", self) + self.actItalic.setShortcut(QKeySequence.Italic) + self.actItalic.triggered.connect(self.italicRequested) - underline = QAction("Underline", self) - underline.setShortcut("Ctrl+U") - underline.triggered.connect(self.underlineRequested) + self.actUnderline = QAction("Underline", self) + self.actUnderline.setShortcut(QKeySequence.Underline) + self.actUnderline.triggered.connect(self.underlineRequested) - strike = QAction("Strikethrough", self) - strike.setShortcut("Ctrl+-") - strike.triggered.connect(self.strikeRequested) + self.actStrike = QAction("Strikethrough", self) + self.actStrike.setShortcut("Ctrl+-") + self.actStrike.triggered.connect(self.strikeRequested) - code = QAction("", self) - code.setShortcut("Ctrl+`") - code.triggered.connect(self.codeRequested) + self.actCode = QAction("Inline code", self) + self.actCode.setShortcut("Ctrl+`") + self.actCode.triggered.connect(self.codeRequested) # Headings - h1 = QAction("H1", self) - h1.setShortcut("Ctrl+1") - h2 = QAction("H2", self) - h2.setShortcut("Ctrl+2") - h3 = QAction("H3", self) - h3.setShortcut("Ctrl+3") - normal = QAction("Normal", self) - normal.setShortcut("Ctrl+P") - - h1.triggered.connect(lambda: self.headingRequested.emit(24)) - h2.triggered.connect(lambda: self.headingRequested.emit(18)) - h3.triggered.connect(lambda: self.headingRequested.emit(14)) - normal.triggered.connect(lambda: self.headingRequested.emit(0)) + self.actH1 = QAction("Heading 1", self) + self.actH2 = QAction("Heading 2", self) + self.actH3 = QAction("Heading 3", self) + self.actNormal = QAction("Normal text", self) + self.actH1.setShortcut("Ctrl+1") + self.actH2.setShortcut("Ctrl+2") + self.actH3.setShortcut("Ctrl+3") + self.actNormal.setShortcut("Ctrl+N") + self.actH1.triggered.connect(lambda: self.headingRequested.emit(24)) + self.actH2.triggered.connect(lambda: self.headingRequested.emit(18)) + self.actH3.triggered.connect(lambda: self.headingRequested.emit(14)) + self.actNormal.triggered.connect(lambda: self.headingRequested.emit(0)) # Lists - bullets = QAction("• Bullets", self) - bullets.triggered.connect(self.bulletsRequested) - numbers = QAction("1. Numbered", self) - numbers.triggered.connect(self.numbersRequested) + self.actBullets = QAction("Bulleted list", self) + self.actBullets.triggered.connect(self.bulletsRequested) + self.actNumbers = QAction("Numbered list", self) + self.actNumbers.triggered.connect(self.numbersRequested) # Alignment - left = QAction("Align Left", self) - center = QAction("Align Center", self) - right = QAction("Align Right", self) - - left.triggered.connect( - lambda: self.alignRequested.emit(Qt.AlignmentFlag.AlignLeft) + self.actAlignL = QAction("Align left", self) + self.actAlignC = QAction("Align center", self) + self.actAlignR = QAction("Align right", self) + self.actAlignL.triggered.connect(lambda: self.alignRequested.emit(Qt.AlignLeft)) + self.actAlignC.triggered.connect( + lambda: self.alignRequested.emit(Qt.AlignHCenter) ) - center.triggered.connect( - lambda: self.alignRequested.emit(Qt.AlignmentFlag.AlignHCenter) - ) - right.triggered.connect( - lambda: self.alignRequested.emit(Qt.AlignmentFlag.AlignRight) + self.actAlignR.triggered.connect( + lambda: self.alignRequested.emit(Qt.AlignRight) ) self.addActions( [ - bold, - italic, - underline, - strike, - code, - h1, - h2, - h3, - normal, - bullets, - numbers, - left, - center, - right, + self.actBold, + self.actItalic, + self.actUnderline, + self.actStrike, + self.actCode, + self.actH1, + self.actH2, + self.actH3, + self.actNormal, + self.actBullets, + self.actNumbers, + self.actAlignL, + self.actAlignC, + self.actAlignR, ] ) + + def _apply_toolbar_styles(self): + self._style_letter_button(self.actBold, "B", bold=True) + self._style_letter_button(self.actItalic, "I", italic=True) + self._style_letter_button(self.actUnderline, "U", underline=True) + self._style_letter_button(self.actStrike, "S", strike=True) + + # Monospace look for code; use a fixed font + code_font = QFontDatabase.systemFont(QFontDatabase.FixedFont) + self._style_letter_button(self.actCode, "", custom_font=code_font) + + # Headings + self._style_letter_button(self.actH1, "H1") + self._style_letter_button(self.actH2, "H2") + self._style_letter_button(self.actH3, "H3") + self._style_letter_button(self.actNormal, "N") + + # Lists + self._style_letter_button(self.actBullets, "•") + self._style_letter_button(self.actNumbers, "1.") + + # Alignment + self._style_letter_button(self.actAlignL, "L") + self._style_letter_button(self.actAlignC, "C") + self._style_letter_button(self.actAlignR, "R") + + def _style_letter_button( + self, + action: QAction, + text: str, + *, + bold: bool = False, + italic: bool = False, + underline: bool = False, + strike: bool = False, + custom_font: QFont | None = None, + ): + btn = self.widgetForAction(action) + if not btn: + return + btn.setText(text) + f = custom_font if custom_font is not None else QFont(btn.font()) + if custom_font is None: + f.setBold(bold) + f.setItalic(italic) + f.setUnderline(underline) + f.setStrikeOut(strike) + btn.setFont(f) + + # Keep accessibility/tooltip readable + btn.setToolTip(action.text()) + btn.setAccessibleName(action.text()) From fb4a9e5e27f49e6a9cd15a7f26f5812a411b65a7 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 12:49:19 +1100 Subject: [PATCH 19/27] Add export options --- CHANGELOG.md | 1 + README.md | 9 ++-- bouquin/db.py | 116 +++++++++++++++++++++++++++++++++++++++-- bouquin/main_window.py | 58 +++++++++++++++++++-- 4 files changed, 171 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b45483f..1fe1e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * Explain the purpose of the encryption key for first-time use * Support saving the encryption key to the settings file to avoid being prompted (off by default) * Abbreviated toolbar symbols to keep things tidier. Add tooltips + * Add ability to export the database to different formats # 0.1.2 diff --git a/README.md b/README.md index 94d0648..4bf621a 100644 --- a/README.md +++ b/README.md @@ -19,18 +19,15 @@ There is deliberately no network connectivity or syncing intended. ## Features + * Data is encrypted at rest + * Encryption key is prompted for and never stored, unless user chooses to via Settings * Every 'page' is linked to the calendar day * Text is HTML with basic styling * Search * Automatic periodic saving (or explicitly save) * Transparent integrity checking of the database when it opens * Rekey the database (change the password) - - -## Yet to do - - * Taxonomy/tagging - * Export to other formats (plaintext, json, sql etc) + * Export the database to json, txt, html or csv ## How to install diff --git a/bouquin/db.py b/bouquin/db.py index 0073903..90aca09 100644 --- a/bouquin/db.py +++ b/bouquin/db.py @@ -1,9 +1,16 @@ from __future__ import annotations +import csv +import html +import json +import os + from dataclasses import dataclass from pathlib import Path - from sqlcipher3 import dbapi2 as sqlite +from typing import List, Sequence, Tuple + +Entry = Tuple[str, str] @dataclass @@ -21,6 +28,7 @@ class DBManager: # Ensure parent dir exists self.cfg.path.parent.mkdir(parents=True, exist_ok=True) self.conn = sqlite.connect(str(self.cfg.path)) + self.conn.row_factory = sqlite.Row cur = self.conn.cursor() cur.execute(f"PRAGMA key = '{self.cfg.key}';") cur.execute("PRAGMA journal_mode = WAL;") @@ -102,14 +110,116 @@ class DBManager: def search_entries(self, text: str) -> list[str]: cur = self.conn.cursor() pattern = f"%{text}%" - cur.execute("SELECT * FROM entries WHERE TRIM(content) LIKE ?", (pattern,)) - return [r for r in cur.fetchall()] + return cur.execute( + "SELECT * FROM entries WHERE TRIM(content) LIKE ?", (pattern,) + ).fetchall() def dates_with_content(self) -> list[str]: cur = self.conn.cursor() cur.execute("SELECT date FROM entries WHERE TRIM(content) <> '';") return [r[0] for r in cur.fetchall()] + def get_all_entries(self) -> List[Entry]: + cur = self.conn.cursor() + rows = cur.execute("SELECT date, content FROM entries ORDER BY date").fetchall() + return [(row["date"], row["content"]) for row in rows] + + def export_json( + self, entries: Sequence[Entry], file_path: str, pretty: bool = True + ) -> None: + data = [{"date": d, "content": c} for d, c in entries] + with open(file_path, "w", encoding="utf-8") as f: + if pretty: + json.dump(data, f, ensure_ascii=False, indent=2) + else: + json.dump(data, f, ensure_ascii=False, separators=(",", ":")) + + def export_csv(self, entries: Sequence[Entry], file_path: str) -> None: + # utf-8-sig adds a BOM so Excel opens as UTF-8 by default. + with open(file_path, "w", encoding="utf-8-sig", newline="") as f: + writer = csv.writer(f) + writer.writerow(["date", "content"]) # header + writer.writerows(entries) + + def export_txt( + self, + entries: Sequence[Entry], + file_path: str, + separator: str = "\n\n— — — — —\n\n", + strip_html: bool = True, + ) -> None: + import re, html as _html + + # Precompiled patterns + STYLE_SCRIPT_RE = re.compile(r"(?is)<(script|style)[^>]*>.*?") + COMMENT_RE = re.compile(r"", re.S) + BR_RE = re.compile(r"(?i)") + BLOCK_END_RE = re.compile(r"(?i)") + TAG_RE = re.compile(r"<[^>]+>") + WS_ENDS_RE = re.compile(r"[ \\t]+\\n") + MULTINEWLINE_RE = re.compile(r"\\n{3,}") + + def _strip(s: str) -> str: + # 1) Remove ", + "", + f"

{html.escape(title)}

", + ] + for d, c in entries: + parts.append( + f"
{c}
" + ) + parts.append("") + + with open(file_path, "w", encoding="utf-8") as f: + f.write("\n".join(parts)) + + def export_by_extension(self, file_path: str) -> None: + entries = self.get_all_entries() + ext = os.path.splitext(file_path)[1].lower() + + if ext == ".json": + self.export_json(entries, file_path) + elif ext == ".csv": + self.export_csv(entries, file_path) + elif ext == ".txt": + self.export_txt(entries, file_path) + elif ext in {".html", ".htm"}: + self.export_html(entries, file_path) + else: + raise ValueError(f"Unsupported extension: {ext}") + def close(self) -> None: if self.conn is not None: self.conn.close() diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 0f90197..f364779 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -3,7 +3,8 @@ from __future__ import annotations import os import sys -from PySide6.QtCore import QDate, QTimer, Qt, QSettings +from pathlib import Path +from PySide6.QtCore import QDate, QTimer, Qt, QSettings, Slot from PySide6.QtGui import ( QAction, QCursor, @@ -14,6 +15,7 @@ from PySide6.QtGui import ( from PySide6.QtWidgets import ( QCalendarWidget, QDialog, + QFileDialog, QMainWindow, QMessageBox, QSizePolicy, @@ -102,15 +104,19 @@ class MainWindow(QMainWindow): # Menu bar (File) mb = self.menuBar() - file_menu = mb.addMenu("&Application") + file_menu = mb.addMenu("&File") act_save = QAction("&Save", self) act_save.setShortcut("Ctrl+S") act_save.triggered.connect(lambda: self._save_current(explicit=True)) file_menu.addAction(act_save) - act_settings = QAction("S&ettings", self) - act_settings.setShortcut("Ctrl+E") + act_settings = QAction("Settin&gs", self) + act_settings.setShortcut("Ctrl+G") act_settings.triggered.connect(self._open_settings) file_menu.addAction(act_settings) + act_export = QAction("&Export", self) + act_export.setShortcut("Ctrl+E") + act_export.triggered.connect(self._export) + file_menu.addAction(act_export) file_menu.addSeparator() act_quit = QAction("&Quit", self) act_quit.setShortcut("Ctrl+Q") @@ -338,6 +344,50 @@ class MainWindow(QMainWindow): # Center the window in that screen’s available area self.move(r.center() - self.rect().center()) + @Slot() + def _export(self): + try: + self.export_dialog() + except Exception as e: + QMessageBox.critical(self, "Export failed", str(e)) + + def export_dialog(self) -> None: + filters = "Text (*.txt);;" "JSON (*.json);;" "CSV (*.csv);;" "HTML (*.html);;" + + start_dir = os.path.join(os.path.expanduser("~"), "Documents") + filename, selected_filter = QFileDialog.getSaveFileName( + self, "Export entries", start_dir, filters + ) + if not filename: + return # user cancelled + + default_ext = { + "Text (*.txt)": ".txt", + "JSON (*.json)": ".json", + "CSV (*.csv)": ".csv", + "HTML (*.html)": ".html", + }.get(selected_filter, ".txt") + + if not Path(filename).suffix: + filename += default_ext + + try: + entries = self.db.get_all_entries() + if selected_filter.startswith("Text"): + self.db.export_txt(entries, filename) + elif selected_filter.startswith("JSON"): + self.db.export_json(entries, filename) + elif selected_filter.startswith("CSV"): + self.db.export_csv(entries, filename) + elif selected_filter.startswith("HTML"): + self.bd.export_html(entries, filename) + else: + self.bd.export_by_extension(entries, filename) + + QMessageBox.information(self, "Export complete", f"Saved to:\n{filename}") + except Exception as e: + QMessageBox.critical(self, "Export failed", str(e)) + def closeEvent(self, event): try: # Save window position From bed37292069e291e59281e719b2e4d1253deab4b Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 12:50:14 +1100 Subject: [PATCH 20/27] Bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0e7310f..84f891f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bouquin" -version = "0.1.2" +version = "0.1.3" description = "Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher." authors = ["Miguel Jacq "] readme = "README.md" From c9db440c851094a898a677a82bd3ce16606ee15d Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 12:51:04 +1100 Subject: [PATCH 21/27] Update screenshot --- screenshot.png | Bin 88039 -> 81884 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index 85b8e83a264485f3884b74aca6086d6eb199c287..acf689c29f02729498d1fd59e15572f97c9b5322 100644 GIT binary patch literal 81884 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 PNf|$S(oZKw&RY9liCx8c From c4091d4cee491c1f4fffa476a7497f7f9cd6a857 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 13:11:05 +1100 Subject: [PATCH 22/27] Add Help menu with documentation link --- CHANGELOG.md | 1 + bouquin/main_window.py | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fe1e6f..32fd2d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * Support saving the encryption key to the settings file to avoid being prompted (off by default) * Abbreviated toolbar symbols to keep things tidier. Add tooltips * Add ability to export the database to different formats + * Add Documentation/Help menu # 0.1.2 diff --git a/bouquin/main_window.py b/bouquin/main_window.py index f364779..7fe5498 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -4,10 +4,11 @@ import os import sys from pathlib import Path -from PySide6.QtCore import QDate, QTimer, Qt, QSettings, Slot +from PySide6.QtCore import QDate, QTimer, Qt, QSettings, Slot, QUrl from PySide6.QtGui import ( QAction, QCursor, + QDesktopServices, QFont, QGuiApplication, QTextCharFormat, @@ -146,6 +147,15 @@ class MainWindow(QMainWindow): nav_menu.addAction(act_today) self.addAction(act_today) + # Help menu with drop-down + help_menu = mb.addMenu("&Help") + act_docs = QAction("Documentation", self) + act_docs.setShortcut("Ctrl+D") + act_docs.setShortcutContext(Qt.ApplicationShortcut) + act_docs.triggered.connect(self._open_docs) + help_menu.addAction(act_docs) + self.addAction(act_docs) + # Autosave self._dirty = False self._save_timer = QTimer(self) @@ -388,6 +398,13 @@ class MainWindow(QMainWindow): except Exception as e: QMessageBox.critical(self, "Export failed", str(e)) + def _open_docs(self): + url_str = "https://git.mig5.net/mig5/bouquin/wiki/Help" + url = QUrl.fromUserInput(url_str) + if not QDesktopServices.openUrl(url): + QMessageBox.warning(self, "Open Documentation", + f"Couldn't open:\n{url.toDisplayString()}") + def closeEvent(self, event): try: # Save window position From ef50c8911ecc3f461014cfe3faac4cf2c9cd3442 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 15:42:42 +1100 Subject: [PATCH 23/27] Add auto-lock feature and 'report a bug' --- CHANGELOG.md | 5 + bouquin/db.py | 1 + bouquin/main_window.py | 219 ++++++++++++++++++++++++++++++++----- bouquin/settings.py | 4 +- bouquin/settings_dialog.py | 61 ++++++++--- pyproject.toml | 2 +- 6 files changed, 247 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32fd2d5..bd2c84f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 0.1.4 + + * Add auto-lock of app (configurable in Settings, defaults to 15 minutes) + * Add 'Report a bug' to Help nav + # 0.1.3 * Fix bold toggle diff --git a/bouquin/db.py b/bouquin/db.py index 90aca09..39226f5 100644 --- a/bouquin/db.py +++ b/bouquin/db.py @@ -17,6 +17,7 @@ Entry = Tuple[str, str] class DBConfig: path: Path key: str + idle_minutes: int = 15 # 0 = never lock class DBManager: diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 7fe5498..d7726ca 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -4,7 +4,7 @@ import os import sys from pathlib import Path -from PySide6.QtCore import QDate, QTimer, Qt, QSettings, Slot, QUrl +from PySide6.QtCore import QDate, QTimer, Qt, QSettings, Slot, QUrl, QEvent from PySide6.QtGui import ( QAction, QCursor, @@ -17,8 +17,10 @@ from PySide6.QtWidgets import ( QCalendarWidget, QDialog, QFileDialog, + QLabel, QMainWindow, QMessageBox, + QPushButton, QSizePolicy, QSplitter, QVBoxLayout, @@ -34,6 +36,61 @@ from .settings_dialog import SettingsDialog from .toolbar import ToolBar +class _LockOverlay(QWidget): + def __init__(self, parent: QWidget, on_unlock: callable): + super().__init__(parent) + self.setObjectName("LockOverlay") + self.setAttribute(Qt.WA_StyledBackground, True) + self.setFocusPolicy(Qt.StrongFocus) + self.setGeometry(parent.rect()) + + self.setStyleSheet( + """ +#LockOverlay { background-color: #ccc; } +#LockOverlay QLabel { color: #fff; font-size: 18px; } +#LockOverlay QPushButton { + background-color: #f2f2f2; + color: #000; + padding: 6px 14px; + border: 1px solid #808080; + border-radius: 6px; + font-size: 14px; +} +#LockOverlay QPushButton:hover { background-color: #ffffff; } +#LockOverlay QPushButton:pressed { background-color: #e6e6e6; } +""" + ) + + lay = QVBoxLayout(self) + lay.addStretch(1) + + msg = QLabel("Locked due to inactivity") + msg.setAlignment(Qt.AlignCenter) + + self._btn = QPushButton("Unlock") + self._btn.setFixedWidth(200) + self._btn.setCursor(Qt.PointingHandCursor) + self._btn.setAutoDefault(True) + self._btn.setDefault(True) + self._btn.clicked.connect(on_unlock) + + lay.addWidget(msg, 0, Qt.AlignCenter) + lay.addWidget(self._btn, 0, Qt.AlignCenter) + lay.addStretch(1) + + self.hide() # start hidden + + # keep overlay sized with its parent + def eventFilter(self, obj, event): + if obj is self.parent() and event.type() in (QEvent.Resize, QEvent.Show): + self.setGeometry(obj.rect()) + return False + + def showEvent(self, e): + super().showEvent(e) + self._btn.setFocus() + + class MainWindow(QMainWindow): def __init__(self): super().__init__() @@ -77,18 +134,18 @@ class MainWindow(QMainWindow): self.editor = Editor() # Toolbar for controlling styling - tb = ToolBar() - self.addToolBar(tb) + self.toolBar = ToolBar() + self.addToolBar(self.toolBar) # Wire toolbar intents to editor methods - tb.boldRequested.connect(self.editor.apply_weight) - tb.italicRequested.connect(self.editor.apply_italic) - tb.underlineRequested.connect(self.editor.apply_underline) - tb.strikeRequested.connect(self.editor.apply_strikethrough) - tb.codeRequested.connect(self.editor.apply_code) - tb.headingRequested.connect(self.editor.apply_heading) - tb.bulletsRequested.connect(self.editor.toggle_bullets) - tb.numbersRequested.connect(self.editor.toggle_numbers) - tb.alignRequested.connect(self.editor.setAlignment) + self.toolBar.boldRequested.connect(self.editor.apply_weight) + self.toolBar.italicRequested.connect(self.editor.apply_italic) + self.toolBar.underlineRequested.connect(self.editor.apply_underline) + self.toolBar.strikeRequested.connect(self.editor.apply_strikethrough) + self.toolBar.codeRequested.connect(self.editor.apply_code) + self.toolBar.headingRequested.connect(self.editor.apply_heading) + self.toolBar.bulletsRequested.connect(self.editor.toggle_bullets) + self.toolBar.numbersRequested.connect(self.editor.toggle_numbers) + self.toolBar.alignRequested.connect(self.editor.setAlignment) split = QSplitter() split.addWidget(left_panel) @@ -100,6 +157,24 @@ class MainWindow(QMainWindow): lay.addWidget(split) self.setCentralWidget(container) + # Idle lock setup + self._idle_timer = QTimer(self) + self._idle_timer.setSingleShot(True) + self._idle_timer.timeout.connect(self._enter_lock) + self._apply_idle_minutes(getattr(self.cfg, "idle_minutes", 15)) + self._idle_timer.start() + + # full-window overlay that sits on top of the central widget + self._lock_overlay = _LockOverlay(self.centralWidget(), self._on_unlock_clicked) + self.centralWidget().installEventFilter(self._lock_overlay) + + self._locked = False + + # reset idle timer on any key press anywhere in the app + from PySide6.QtWidgets import QApplication + + QApplication.instance().installEventFilter(self) + # Status bar for feedback self.statusBar().showMessage("Ready", 800) @@ -155,6 +230,12 @@ class MainWindow(QMainWindow): act_docs.triggered.connect(self._open_docs) help_menu.addAction(act_docs) self.addAction(act_docs) + act_bugs = QAction("Report a bug", self) + act_bugs.setShortcut("Ctrl+R") + act_bugs.setShortcutContext(Qt.ApplicationShortcut) + act_bugs.triggered.connect(self._open_bugs) + help_menu.addAction(act_bugs) + self.addAction(act_bugs) # Autosave self._dirty = False @@ -305,21 +386,33 @@ class MainWindow(QMainWindow): def _open_settings(self): dlg = SettingsDialog(self.cfg, self.db, self) - if dlg.exec() == QDialog.Accepted: - new_cfg = dlg.config - if new_cfg.path != self.cfg.path: - # Save the new path to the notebook - self.cfg.path = new_cfg.path - save_db_config(self.cfg) - self.db.close() - # Prompt again for the key for the new path - if not self._prompt_for_key_until_valid(): - QMessageBox.warning( - self, "Reopen failed", "Could not unlock database at new path." - ) - return - self._load_selected_date() - self._refresh_calendar_marks() + if dlg.exec() != QDialog.Accepted: + return + + new_cfg = dlg.config + old_path = self.cfg.path + + # Update in-memory config from the dialog + self.cfg.path = new_cfg.path + self.cfg.key = new_cfg.key + self.cfg.idle_minutes = getattr(new_cfg, "idle_minutes", self.cfg.idle_minutes) + + # Persist once + save_db_config(self.cfg) + + # Apply idle setting immediately (restart the timer with new interval if it changed) + self._apply_idle_minutes(self.cfg.idle_minutes) + + # If the DB path changed, reconnect + if self.cfg.path != old_path: + self.db.close() + if not self._prompt_for_key_until_valid(first_time=False): + QMessageBox.warning( + self, "Reopen failed", "Could not unlock database at new path." + ) + return + self._load_selected_date() + self._refresh_calendar_marks() def _restore_window_position(self): geom = self.settings.value("main/geometry", None) @@ -402,9 +495,77 @@ class MainWindow(QMainWindow): url_str = "https://git.mig5.net/mig5/bouquin/wiki/Help" url = QUrl.fromUserInput(url_str) if not QDesktopServices.openUrl(url): - QMessageBox.warning(self, "Open Documentation", - f"Couldn't open:\n{url.toDisplayString()}") + QMessageBox.warning( + self, "Open Documentation", f"Couldn't open:\n{url.toDisplayString()}" + ) + def _open_bugs(self): + url_str = "https://nr.mig5.net/forms/mig5/contact" + url = QUrl.fromUserInput(url_str) + if not QDesktopServices.openUrl(url): + QMessageBox.warning( + self, "Open Documentation", f"Couldn't open:\n{url.toDisplayString()}" + ) + + # Idle handlers + def _apply_idle_minutes(self, minutes: int): + minutes = max(0, int(minutes)) + if not hasattr(self, "_idle_timer"): + return + if minutes == 0: + self._idle_timer.stop() + # If you’re currently locked, unlock when user disables the timer: + if getattr(self, "_locked", False): + try: + self._locked = False + if hasattr(self, "_lock_overlay"): + self._lock_overlay.hide() + except Exception: + pass + else: + self._idle_timer.setInterval(minutes * 60 * 1000) + if not getattr(self, "_locked", False): + self._idle_timer.start() + + def eventFilter(self, obj, event): + if event.type() == QEvent.KeyPress and not self._locked: + self._idle_timer.start() + return super().eventFilter(obj, event) + + def _enter_lock(self): + if self._locked: + return + self._locked = True + if self.menuBar(): + self.menuBar().setEnabled(False) + if self.statusBar(): + self.statusBar().setEnabled(False) + tb = getattr(self, "toolBar", None) + if tb: + tb.setEnabled(False) + self._lock_overlay.show() + self._lock_overlay.raise_() + + @Slot() + def _on_unlock_clicked(self): + try: + ok = self._prompt_for_key_until_valid(first_time=False) + except Exception as e: + QMessageBox.critical(self, "Unlock failed", str(e)) + return + if ok: + self._locked = False + self._lock_overlay.hide() + if self.menuBar(): + self.menuBar().setEnabled(True) + if self.statusBar(): + self.statusBar().setEnabled(True) + tb = getattr(self, "toolBar", None) + if tb: + tb.setEnabled(True) + self._idle_timer.start() + + # Close app handler - save window position and database def closeEvent(self, event): try: # Save window position diff --git a/bouquin/settings.py b/bouquin/settings.py index ec45094..fc92394 100644 --- a/bouquin/settings.py +++ b/bouquin/settings.py @@ -22,10 +22,12 @@ def load_db_config() -> DBConfig: s = get_settings() path = Path(s.value("db/path", str(default_db_path()))) key = s.value("db/key", "") - return DBConfig(path=path, key=key) + idle = s.value("db/idle_minutes", 15, type=int) + return DBConfig(path=path, key=key, idle_minutes=idle) def save_db_config(cfg: DBConfig) -> None: s = get_settings() s.setValue("db/path", str(cfg.path)) s.setValue("db/key", str(cfg.key)) + s.setValue("db/idle_minutes", str(cfg.idle_minutes)) diff --git a/bouquin/settings_dialog.py b/bouquin/settings_dialog.py index 70ae8f6..2f8ce5d 100644 --- a/bouquin/settings_dialog.py +++ b/bouquin/settings_dialog.py @@ -17,6 +17,7 @@ from PySide6.QtWidgets import ( QFileDialog, QDialogButtonBox, QSizePolicy, + QSpinBox, QMessageBox, ) from PySide6.QtCore import Qt, Slot @@ -56,7 +57,7 @@ class SettingsDialog(QDialog): form.addRow("Database path", path_row) # Encryption settings - enc_group = QGroupBox("Encryption") + enc_group = QGroupBox("Encryption and Privacy") enc = QVBoxLayout(enc_group) enc.setContentsMargins(12, 8, 12, 12) enc.setSpacing(6) @@ -64,10 +65,8 @@ class SettingsDialog(QDialog): # Checkbox to remember key self.save_key_btn = QCheckBox("Remember key") current_settings = load_db_config() - if current_settings.key: - self.save_key_btn.setChecked(True) - else: - self.save_key_btn.setChecked(False) + self.key = current_settings.key or "" + self.save_key_btn.setChecked(bool(self.key)) self.save_key_btn.setCursor(Qt.PointingHandCursor) self.save_key_btn.toggled.connect(self.save_key_btn_clicked) enc.addWidget(self.save_key_btn, 0, Qt.AlignLeft) @@ -100,6 +99,31 @@ class SettingsDialog(QDialog): self.rekey_btn.clicked.connect(self._change_key) enc.addWidget(self.rekey_btn, 0, Qt.AlignLeft) + self.idle_spin = QSpinBox() + self.idle_spin.setRange(0, 240) + self.idle_spin.setSingleStep(1) + self.idle_spin.setAccelerated(True) + self.idle_spin.setSuffix(" min") + self.idle_spin.setSpecialValueText("Never") + self.idle_spin.setValue(getattr(cfg, "idle_minutes", 15)) + enc.addWidget(self.idle_spin, 0, Qt.AlignLeft) + # Explanation for idle option (autolock) + self.idle_spin_label = QLabel( + "Bouquin will automatically lock the notepad after this length of time, after which you'll need to re-enter the key to unlock it. " + "Set to 0 (never) to never lock." + ) + self.idle_spin_label.setWordWrap(True) + self.idle_spin_label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) + # make it look secondary + spal = self.idle_spin_label.palette() + spal.setColor(self.idle_spin_label.foregroundRole(), spal.color(QPalette.Mid)) + self.idle_spin_label.setPalette(spal) + + spin_row = QHBoxLayout() + spin_row.setContentsMargins(24, 0, 0, 0) # indent to line up under the spinbox + spin_row.addWidget(self.idle_spin_label) + enc.addLayout(spin_row) + # Put the group into the form so it spans the full width nicely form.addRow(enc_group) @@ -126,7 +150,12 @@ class SettingsDialog(QDialog): self.path_edit.setText(p) def _save(self): - self._cfg = DBConfig(path=Path(self.path_edit.text()), key=self.key) + key_to_save = self.key if self.save_key_btn.isChecked() else "" + self._cfg = DBConfig( + path=Path(self.path_edit.text()), + key=key_to_save, + idle_minutes=self.idle_spin.value(), + ) save_db_config(self._cfg) self.accept() @@ -155,14 +184,18 @@ class SettingsDialog(QDialog): @Slot(bool) def save_key_btn_clicked(self, checked: bool): if checked: - p1 = KeyPrompt( - self, title="Enter your key", message="Enter the encryption key" - ) - if p1.exec() != QDialog.Accepted: - return - self.key = p1.key() - self._cfg = DBConfig(path=Path(self.path_edit.text()), key=self.key) - save_db_config(self._cfg) + if not self.key: + p1 = KeyPrompt( + self, title="Enter your key", message="Enter the encryption key" + ) + if p1.exec() != QDialog.Accepted: + self.save_key_btn.blockSignals(True) + self.save_key_btn.setChecked(False) + self.save_key_btn.blockSignals(False) + return + self.key = p1.key() or "" + else: + self.key = "" @property def config(self) -> DBConfig: diff --git a/pyproject.toml b/pyproject.toml index 84f891f..37d4413 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bouquin" -version = "0.1.3" +version = "0.1.4" description = "Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher." authors = ["Miguel Jacq "] readme = "README.md" From cf9102939fd5fda8ecc2fc9c779119c39686ebf1 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 15:48:13 +1100 Subject: [PATCH 24/27] Update screenshot --- screenshot.png | Bin 81884 -> 82371 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index acf689c29f02729498d1fd59e15572f97c9b5322..be2ec9f1ea2f924095b11bc26bed21666927a193 100644 GIT binary patch literal 82371 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 LSaNaEXZ!vO{FE{s literal 81884 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 Date: Sun, 2 Nov 2025 17:02:03 +1100 Subject: [PATCH 25/27] Refactor schema to support versioning of pages. Add HistoryDialog and diff with ability to revert. --- CHANGELOG.md | 4 + README.md | 1 + bouquin/db.py | 278 ++++++++++++++++++++++++++++++++++---- bouquin/history_dialog.py | 179 ++++++++++++++++++++++++ bouquin/main_window.py | 45 +++++- bouquin/save_dialog.py | 35 +++++ bouquin/toolbar.py | 9 ++ pyproject.toml | 2 +- screenshot.png | Bin 82371 -> 83899 bytes 9 files changed, 520 insertions(+), 33 deletions(-) create mode 100644 bouquin/history_dialog.py create mode 100644 bouquin/save_dialog.py diff --git a/CHANGELOG.md b/CHANGELOG.md index bd2c84f..4234e6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.1.5 + + * Refactor schema to support versioning of pages. Add HistoryDialog and diff with ability to revert. + # 0.1.4 * Add auto-lock of app (configurable in Settings, defaults to 15 minutes) diff --git a/README.md b/README.md index 4bf621a..404c4e8 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ There is deliberately no network connectivity or syncing intended. * Search * Automatic periodic saving (or explicitly save) * Transparent integrity checking of the database when it opens + * Automatic locking of the app after a period of inactivity (default 15 min) * Rekey the database (change the password) * Export the database to json, txt, html or csv diff --git a/bouquin/db.py b/bouquin/db.py index 39226f5..df5aa62 100644 --- a/bouquin/db.py +++ b/bouquin/db.py @@ -26,14 +26,17 @@ class DBManager: self.conn: sqlite.Connection | None = None def connect(self) -> bool: + """ + Open, decrypt and install schema on the database. + """ # Ensure parent dir exists self.cfg.path.parent.mkdir(parents=True, exist_ok=True) self.conn = sqlite.connect(str(self.cfg.path)) self.conn.row_factory = sqlite.Row cur = self.conn.cursor() cur.execute(f"PRAGMA key = '{self.cfg.key}';") - cur.execute("PRAGMA journal_mode = WAL;") - self.conn.commit() + cur.execute("PRAGMA foreign_keys = ON;") + cur.execute("PRAGMA journal_mode = WAL;").fetchone() try: self._integrity_ok() except Exception: @@ -44,15 +47,18 @@ class DBManager: return True def _integrity_ok(self) -> bool: + """ + Runs the cipher_integrity_check PRAGMA on the database. + """ cur = self.conn.cursor() cur.execute("PRAGMA cipher_integrity_check;") rows = cur.fetchall() - # OK + # OK: nothing returned if not rows: return - # Not OK + # Not OK: rows of problems returned details = "; ".join(str(r[0]) for r in rows if r and r[0] is not None) raise sqlite.IntegrityError( "SQLCipher integrity check failed" @@ -60,16 +66,62 @@ class DBManager: ) def _ensure_schema(self) -> None: + """ + Install the expected schema on the database. + We also handle upgrades here. + """ cur = self.conn.cursor() - cur.execute( + # Always keep FKs on + cur.execute("PRAGMA foreign_keys = ON;") + + # Create new versioned schema if missing (< 0.1.5) + cur.executescript( """ - CREATE TABLE IF NOT EXISTS entries ( - date TEXT PRIMARY KEY, -- ISO yyyy-MM-dd - content TEXT NOT NULL + CREATE TABLE IF NOT EXISTS pages ( + date TEXT PRIMARY KEY, -- yyyy-MM-dd + current_version_id INTEGER, + FOREIGN KEY(current_version_id) REFERENCES versions(id) ON DELETE SET NULL ); + + CREATE TABLE IF NOT EXISTS versions ( + id INTEGER PRIMARY KEY, + date TEXT NOT NULL, -- FK to pages.date + version_no INTEGER NOT NULL, -- 1,2,3… per date + created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')), + note TEXT, + content TEXT NOT NULL, + FOREIGN KEY(date) REFERENCES pages(date) ON DELETE CASCADE + ); + + CREATE UNIQUE INDEX IF NOT EXISTS ux_versions_date_ver ON versions(date, version_no); + CREATE INDEX IF NOT EXISTS ix_versions_date_created ON versions(date, created_at); """ ) - cur.execute("PRAGMA user_version = 1;") + + # If < 0.1.5 'entries' table exists and nothing has been migrated yet, try to migrate. + pre_0_1_5 = cur.execute( + "SELECT 1 FROM sqlite_master WHERE type='table' AND name='entries';" + ).fetchone() + pages_empty = cur.execute("SELECT 1 FROM pages LIMIT 1;").fetchone() is None + + if pre_0_1_5 and pages_empty: + # Seed pages and versions (all as version 1) + cur.execute("INSERT OR IGNORE INTO pages(date) SELECT date FROM entries;") + cur.execute( + "INSERT INTO versions(date, version_no, content) " + "SELECT date, 1, content FROM entries;" + ) + # Point head to v1 for each page + cur.execute( + """ + UPDATE pages + SET current_version_id = ( + SELECT v.id FROM versions v + WHERE v.date = pages.date AND v.version_no = 1 + ); + """ + ) + cur.execute("DROP TABLE IF EXISTS entries;") self.conn.commit() def rekey(self, new_key: str) -> None: @@ -92,42 +144,214 @@ class DBManager: raise sqlite.Error("Re-open failed after rekey") def get_entry(self, date_iso: str) -> str: + """ + Get a single entry by its date. + """ cur = self.conn.cursor() - cur.execute("SELECT content FROM entries WHERE date = ?;", (date_iso,)) - row = cur.fetchone() + row = cur.execute( + """ + SELECT v.content + FROM pages p + JOIN versions v ON v.id = p.current_version_id + WHERE p.date = ?; + """, + (date_iso,), + ).fetchone() return row[0] if row else "" def upsert_entry(self, date_iso: str, content: str) -> None: - cur = self.conn.cursor() - cur.execute( - """ - INSERT INTO entries(date, content) VALUES(?, ?) - ON CONFLICT(date) DO UPDATE SET content = excluded.content; - """, - (date_iso, content), - ) - self.conn.commit() + """ + Insert or update an entry. + """ + # Make a new version and set it as current + self.save_new_version(date_iso, content, note=None, set_current=True) def search_entries(self, text: str) -> list[str]: + """ + Search for entries by term. This only works against the latest + version of the page. + """ cur = self.conn.cursor() pattern = f"%{text}%" - return cur.execute( - "SELECT * FROM entries WHERE TRIM(content) LIKE ?", (pattern,) + rows = cur.execute( + """ + SELECT p.date, v.content + FROM pages AS p + JOIN versions AS v + ON v.id = p.current_version_id + WHERE TRIM(v.content) <> '' + AND v.content LIKE LOWER(?) ESCAPE '\\' + ORDER BY p.date DESC; + """, + (pattern,), ).fetchall() + return [(r[0], r[1]) for r in rows] def dates_with_content(self) -> list[str]: + """ + Find all entries and return the dates of them. + This is used to mark the calendar days in bold if they contain entries. + """ cur = self.conn.cursor() - cur.execute("SELECT date FROM entries WHERE TRIM(content) <> '';") - return [r[0] for r in cur.fetchall()] + rows = cur.execute( + """ + SELECT p.date + FROM pages p + JOIN versions v ON v.id = p.current_version_id + WHERE TRIM(v.content) <> '' + ORDER BY p.date; + """ + ).fetchall() + return [r[0] for r in rows] - def get_all_entries(self) -> List[Entry]: + # ------------------------- Versioning logic here ------------------------# + def save_new_version( + self, + date_iso: str, + content: str, + note: str | None = None, + set_current: bool = True, + ) -> tuple[int, int]: + """ + Append a new version for this date. Returns (version_id, version_no). + If set_current=True, flips the page head to this new version. + """ + if self.conn is None: + raise RuntimeError("Database is not connected") + with self.conn: # transaction + cur = self.conn.cursor() + # Ensure page row exists + cur.execute("INSERT OR IGNORE INTO pages(date) VALUES (?);", (date_iso,)) + # Next version number + row = cur.execute( + "SELECT COALESCE(MAX(version_no), 0) AS maxv FROM versions WHERE date=?;", + (date_iso,), + ).fetchone() + next_ver = int(row["maxv"]) + 1 + # Insert the version + cur.execute( + "INSERT INTO versions(date, version_no, content, note) " + "VALUES (?,?,?,?);", + (date_iso, next_ver, content, note), + ) + ver_id = cur.lastrowid + if set_current: + cur.execute( + "UPDATE pages SET current_version_id=? WHERE date=?;", + (ver_id, date_iso), + ) + return ver_id, next_ver + + def list_versions(self, date_iso: str) -> list[dict]: + """ + Returns history for a given date (newest first), including which one is current. + Each item: {id, version_no, created_at, note, is_current} + """ cur = self.conn.cursor() - rows = cur.execute("SELECT date, content FROM entries ORDER BY date").fetchall() - return [(row["date"], row["content"]) for row in rows] + rows = cur.execute( + """ + SELECT v.id, v.version_no, v.created_at, v.note, + CASE WHEN v.id = p.current_version_id THEN 1 ELSE 0 END AS is_current + FROM versions v + LEFT JOIN pages p ON p.date = v.date + WHERE v.date = ? + ORDER BY v.version_no DESC; + """, + (date_iso,), + ).fetchall() + return [dict(r) for r in rows] + + def get_version( + self, + *, + date_iso: str | None = None, + version_no: int | None = None, + version_id: int | None = None, + ) -> dict | None: + """ + Fetch a specific version by (date, version_no) OR by version_id. + Returns a dict with keys: id, date, version_no, created_at, note, content. + """ + cur = self.conn.cursor() + if version_id is not None: + row = cur.execute( + "SELECT id, date, version_no, created_at, note, content " + "FROM versions WHERE id=?;", + (version_id,), + ).fetchone() + else: + if date_iso is None or version_no is None: + raise ValueError( + "Provide either version_id OR (date_iso and version_no)" + ) + row = cur.execute( + "SELECT id, date, version_no, created_at, note, content " + "FROM versions WHERE date=? AND version_no=?;", + (date_iso, version_no), + ).fetchone() + return dict(row) if row else None + + def revert_to_version( + self, + date_iso: str, + *, + version_no: int | None = None, + version_id: int | None = None, + ) -> None: + """ + Point the page head (pages.current_version_id) to an existing version. + Fast revert: no content is rewritten. + """ + if self.conn is None: + raise RuntimeError("Database is not connected") + cur = self.conn.cursor() + + if version_id is None: + if version_no is None: + raise ValueError("Provide version_no or version_id") + row = cur.execute( + "SELECT id FROM versions WHERE date=? AND version_no=?;", + (date_iso, version_no), + ).fetchone() + if row is None: + raise ValueError("Version not found for this date") + version_id = int(row["id"]) + else: + # Ensure that version_id belongs to the given date + row = cur.execute( + "SELECT date FROM versions WHERE id=?;", (version_id,) + ).fetchone() + if row is None or row["date"] != date_iso: + raise ValueError("version_id does not belong to the given date") + + with self.conn: + cur.execute( + "UPDATE pages SET current_version_id=? WHERE date=?;", + (version_id, date_iso), + ) + + # ------------------------- Export logic here ------------------------# + def get_all_entries(self) -> List[Entry]: + """ + Get all entries. Used for exports. + """ + cur = self.conn.cursor() + rows = cur.execute( + """ + SELECT p.date, v.content + FROM pages p + JOIN versions v ON v.id = p.current_version_id + ORDER BY p.date; + """ + ).fetchall() + return [(r[0], r[1]) for r in rows] def export_json( self, entries: Sequence[Entry], file_path: str, pretty: bool = True ) -> None: + """ + Export to json. + """ data = [{"date": d, "content": c} for d, c in entries] with open(file_path, "w", encoding="utf-8") as f: if pretty: diff --git a/bouquin/history_dialog.py b/bouquin/history_dialog.py new file mode 100644 index 0000000..b4f3bcd --- /dev/null +++ b/bouquin/history_dialog.py @@ -0,0 +1,179 @@ +from __future__ import annotations + +import difflib, re, html as _html +from PySide6.QtCore import Qt, Slot +from PySide6.QtWidgets import ( + QDialog, + QVBoxLayout, + QHBoxLayout, + QListWidget, + QListWidgetItem, + QPushButton, + QMessageBox, + QTextBrowser, + QTabWidget, +) + + +def _html_to_text(s: str) -> str: + """Lightweight HTML→text for diff (keeps paragraphs/line breaks).""" + STYLE_SCRIPT_RE = re.compile(r"(?is)<(script|style)[^>]*>.*?") + COMMENT_RE = re.compile(r"", re.S) + BR_RE = re.compile(r"(?i)") + BLOCK_END_RE = re.compile(r"(?i)") + TAG_RE = re.compile(r"<[^>]+>") + MULTINL_RE = re.compile(r"\n{3,}") + + s = STYLE_SCRIPT_RE.sub("", s) + s = COMMENT_RE.sub("", s) + s = BR_RE.sub("\n", s) + s = BLOCK_END_RE.sub("\n", s) + s = TAG_RE.sub("", s) + s = _html.unescape(s) + s = MULTINL_RE.sub("\n\n", s) + return s.strip() + + +def _colored_unified_diff_html(old_html: str, new_html: str) -> str: + """Return HTML with colored unified diff (+ green, - red, context gray).""" + a = _html_to_text(old_html).splitlines() + b = _html_to_text(new_html).splitlines() + ud = difflib.unified_diff(a, b, fromfile="current", tofile="selected", lineterm="") + lines = [] + for line in ud: + if line.startswith("+") and not line.startswith("+++"): + lines.append( + f"+ {_html.escape(line[1:])}" + ) + elif line.startswith("-") and not line.startswith("---"): + lines.append( + f"- {_html.escape(line[1:])}" + ) + elif line.startswith("@@"): + lines.append(f"{_html.escape(line)}") + else: + lines.append(f"{_html.escape(line)}") + css = "pre { font-family: Consolas,Menlo,Monaco,monospace; font-size: 13px; }" + return f"
{'
'.join(lines)}
" + + +class HistoryDialog(QDialog): + """Show versions for a date, preview, diff, and allow revert.""" + + def __init__(self, db, date_iso: str, parent=None): + super().__init__(parent) + self.setWindowTitle(f"History — {date_iso}") + self._db = db + self._date = date_iso + self._versions = [] # list[dict] from DB + self._current_id = None # id of current + + root = QVBoxLayout(self) + + # Top: list of versions + top = QHBoxLayout() + self.list = QListWidget() + self.list.setMinimumSize(500, 650) + self.list.currentItemChanged.connect(self._on_select) + top.addWidget(self.list, 1) + + # Right: tabs (Preview / Diff vs current) + self.tabs = QTabWidget() + self.preview = QTextBrowser() + self.preview.setOpenExternalLinks(True) + self.diff = QTextBrowser() + self.diff.setOpenExternalLinks(False) + self.tabs.addTab(self.preview, "Preview") + self.tabs.addTab(self.diff, "Diff vs current") + self.tabs.setMinimumSize(500, 650) + top.addWidget(self.tabs, 2) + + root.addLayout(top) + + # Buttons + row = QHBoxLayout() + row.addStretch(1) + self.btn_revert = QPushButton("Revert to Selected") + self.btn_revert.clicked.connect(self._revert) + self.btn_close = QPushButton("Close") + self.btn_close.clicked.connect(self.reject) + row.addWidget(self.btn_revert) + row.addWidget(self.btn_close) + root.addLayout(row) + + self._load_versions() + + # --- Data/UX helpers --- + def _load_versions(self): + self._versions = self._db.list_versions( + self._date + ) # [{id,version_no,created_at,note,is_current}] + self._current_id = next( + (v["id"] for v in self._versions if v["is_current"]), None + ) + self.list.clear() + for v in self._versions: + label = f"v{v['version_no']} — {v['created_at']}" + if v.get("note"): + label += f" · {v['note']}" + if v["is_current"]: + label += " **(current)**" + it = QListWidgetItem(label) + it.setData(Qt.UserRole, v["id"]) + self.list.addItem(it) + # select the first non-current if available, else current + idx = 0 + for i, v in enumerate(self._versions): + if not v["is_current"]: + idx = i + break + if self.list.count(): + self.list.setCurrentRow(idx) + + @Slot() + def _on_select(self): + item = self.list.currentItem() + if not item: + self.preview.clear() + self.diff.clear() + self.btn_revert.setEnabled(False) + return + sel_id = item.data(Qt.UserRole) + # Preview selected as HTML + sel = self._db.get_version(version_id=sel_id) + self.preview.setHtml(sel["content"]) + # Diff vs current (textual diff) + cur = self._db.get_version(version_id=self._current_id) + self.diff.setHtml(_colored_unified_diff_html(cur["content"], sel["content"])) + # Enable revert only if selecting a non-current + self.btn_revert.setEnabled(sel_id != self._current_id) + + @Slot() + def _revert(self): + item = self.list.currentItem() + if not item: + return + sel_id = item.data(Qt.UserRole) + if sel_id == self._current_id: + return + sel = self._db.get_version(version_id=sel_id) + vno = sel["version_no"] + # Confirm + if ( + QMessageBox.question( + self, + "Revert", + f"Revert {self._date} to version v{vno}?\n\nYou can always change your mind later.", + QMessageBox.Yes | QMessageBox.No, + ) + != QMessageBox.Yes + ): + return + # Flip head pointer + try: + self._db.revert_to_version(self._date, version_id=sel_id) + except Exception as e: + QMessageBox.critical(self, "Revert failed", str(e)) + return + QMessageBox.information(self, "Reverted", f"{self._date} is now at v{vno}.") + self.accept() # let the caller refresh the editor diff --git a/bouquin/main_window.py b/bouquin/main_window.py index d7726ca..7d2fbfc 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -29,7 +29,9 @@ from PySide6.QtWidgets import ( from .db import DBManager from .editor import Editor +from .history_dialog import HistoryDialog from .key_prompt import KeyPrompt +from .save_dialog import SaveDialog from .search import Search from .settings import APP_ORG, APP_NAME, load_db_config, save_db_config from .settings_dialog import SettingsDialog @@ -146,6 +148,7 @@ class MainWindow(QMainWindow): self.toolBar.bulletsRequested.connect(self.editor.toggle_bullets) self.toolBar.numbersRequested.connect(self.editor.toggle_numbers) self.toolBar.alignRequested.connect(self.editor.setAlignment) + self.toolBar.historyRequested.connect(self._open_history) split = QSplitter() split.addWidget(left_panel) @@ -181,10 +184,15 @@ class MainWindow(QMainWindow): # Menu bar (File) mb = self.menuBar() file_menu = mb.addMenu("&File") - act_save = QAction("&Save", self) + act_save = QAction("&Save a version", self) act_save.setShortcut("Ctrl+S") act_save.triggered.connect(lambda: self._save_current(explicit=True)) file_menu.addAction(act_save) + act_history = QAction("History", self) + act_history.setShortcut("Ctrl+H") + act_history.setShortcutContext(Qt.ApplicationShortcut) + act_history.triggered.connect(self._open_history) + file_menu.addAction(act_history) act_settings = QAction("Settin&gs", self) act_settings.setShortcut("Ctrl+G") act_settings.triggered.connect(self._open_settings) @@ -330,7 +338,7 @@ class MainWindow(QMainWindow): def _on_text_changed(self): self._dirty = True - self._save_timer.start(1200) # autosave after idle + self._save_timer.start(10000) # autosave after idle def _adjust_day(self, delta: int): """Move selection by delta days (negative for previous).""" @@ -358,7 +366,7 @@ class MainWindow(QMainWindow): # Now load the newly selected date self._load_selected_date() - def _save_date(self, date_iso: str, explicit: bool = False): + def _save_date(self, date_iso: str, explicit: bool = False, note: str = "autosave"): """ Save editor contents into the given date. Shows status on success. explicit=True means user invoked Save: show feedback even if nothing changed. @@ -367,7 +375,7 @@ class MainWindow(QMainWindow): return text = self.editor.toHtml() try: - self.db.upsert_entry(date_iso, text) + self.db.save_new_version(date_iso, text, note) except Exception as e: QMessageBox.critical(self, "Save Error", str(e)) return @@ -381,9 +389,34 @@ class MainWindow(QMainWindow): ) def _save_current(self, explicit: bool = False): + try: + self._save_timer.stop() + except Exception: + pass + if explicit: + # Prompt for a note + dlg = SaveDialog(self) + if dlg.exec() != QDialog.Accepted: + return + note = dlg.note_text() + else: + note = "autosave" # Delegate to _save_date for the currently selected date - self._save_date(self._current_date_iso(), explicit) + self._save_date(self._current_date_iso(), explicit, note) + try: + self._save_timer.start() + except Exception: + pass + def _open_history(self): + date_iso = self._current_date_iso() + dlg = HistoryDialog(self.db, date_iso, self) + if dlg.exec() == QDialog.Accepted: + # refresh editor + calendar (head pointer may have changed) + self._load_selected_date(date_iso) + self._refresh_calendar_marks() + + # ----------- Settings handler ------------# def _open_settings(self): dlg = SettingsDialog(self.cfg, self.db, self) if dlg.exec() != QDialog.Accepted: @@ -414,6 +447,7 @@ class MainWindow(QMainWindow): self._load_selected_date() self._refresh_calendar_marks() + # ------------ Window positioning --------------- # def _restore_window_position(self): geom = self.settings.value("main/geometry", None) state = self.settings.value("main/windowState", None) @@ -447,6 +481,7 @@ class MainWindow(QMainWindow): # Center the window in that screen’s available area self.move(r.center() - self.rect().center()) + # ----------------- Export handler ----------------- # @Slot() def _export(self): try: diff --git a/bouquin/save_dialog.py b/bouquin/save_dialog.py new file mode 100644 index 0000000..5e4095e --- /dev/null +++ b/bouquin/save_dialog.py @@ -0,0 +1,35 @@ +from __future__ import annotations + +import datetime + +from PySide6.QtWidgets import ( + QDialog, + QVBoxLayout, + QLabel, + QLineEdit, + QDialogButtonBox, +) + + +class SaveDialog(QDialog): + def __init__( + self, + parent=None, + title: str = "Enter a name for this version", + message: str = "Enter a name for this version?", + ): + super().__init__(parent) + self.setWindowTitle(title) + v = QVBoxLayout(self) + v.addWidget(QLabel(message)) + self.note = QLineEdit() + now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + self.note.setText(f"New version I saved at {now}") + v.addWidget(self.note) + bb = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) + bb.accepted.connect(self.accept) + bb.rejected.connect(self.reject) + v.addWidget(bb) + + def note_text(self) -> str: + return self.note.text() diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index 182b527..1304acf 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -15,6 +15,7 @@ class ToolBar(QToolBar): bulletsRequested = Signal() numbersRequested = Signal() alignRequested = Signal(Qt.AlignmentFlag) + historyRequested = Signal() def __init__(self, parent=None): super().__init__("Format", parent) @@ -76,6 +77,10 @@ class ToolBar(QToolBar): lambda: self.alignRequested.emit(Qt.AlignRight) ) + # History button + self.actHistory = QAction("History", self) + self.actHistory.triggered.connect(self.historyRequested) + self.addActions( [ self.actBold, @@ -92,6 +97,7 @@ class ToolBar(QToolBar): self.actAlignL, self.actAlignC, self.actAlignR, + self.actHistory, ] ) @@ -120,6 +126,9 @@ class ToolBar(QToolBar): self._style_letter_button(self.actAlignC, "C") self._style_letter_button(self.actAlignR, "R") + # History + self._style_letter_button(self.actHistory, "View History") + def _style_letter_button( self, action: QAction, diff --git a/pyproject.toml b/pyproject.toml index 37d4413..1797db1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bouquin" -version = "0.1.4" +version = "0.1.5" description = "Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher." authors = ["Miguel Jacq "] readme = "README.md" diff --git a/screenshot.png b/screenshot.png index be2ec9f1ea2f924095b11bc26bed21666927a193..e0843e598cb9d2813731eaa0a6920b1c56bba727 100644 GIT binary patch literal 83899 zcmbq*byQVr*Y5@erKG#TB9u^4LIDvGr9(QTQ;_bK7L|~Y5Tv`iEtD?l?(XK!bGQ-+>0l8*i_gk6bkRDl!O8bb!iiYLjQUd6MnLMVJ`>& zyKE=+ROu?b+^)WQi$XD=o=QAYa!Obob98%taB*dGkT&v$IKlh3es3uVv9Jh9iu4C= zOXsQQ^~dRyc%%z{94@(SHef>f_}QP}=VDhGA2Id*7Pno?nIDl>a%feT)(-#YFC;L2CkPOG z88H-iOioTF|E8~O@Hnd$8j<|Z-=i!nEczmhI})<4O+WTB+Wh?fz0cvHlXz+5+kaoE z%Ia!#6bUwl(VsZ~#YL0I`xjU&EG$k(+c&Ng1wEpY`p+9Zl#sZ*Jdl?YdGpuA$@%V* zVwmsBKpvYs2Jx*I?8=vd{(ZM?HcQQ8-UUYohXApZhZYv>D*2jNVRTMKYPlY@Mt`W- zwW>)>O--r%S)!V8`ix(_(*0X(7%Sv#8$|U)LSolC^3$gve;o2ukF#S69H94I&b;bDt-@ZK;m!^(U@jF$_c=1?T8vCQPVWg+6t!<&zm|)`TGC?od zr%$`DPNFf~xr0|!R74Qcwk*mNDK%5Yx;E7kh)Pz*BqWqKy?*^V^5H12o6qBPhYIyD ztsU(Dhqmq+{=;LNs?1T7336!QS%w0WF;gFCHLxjN=+4=oSpTS zdeWt&q#DU}+|Y=Li6tZ@_2+&?nGEDo9v^H(IPc7-hzDMCIy>eO6BnPFo%O>PIYdQA zNB{W!yS3JNr>o3d75>Te&kwf>%getdKk}WNolR4&kh$5?
pXhzPw(^O~!x>+Z$` zeR+Ag&r&v>eY!#r?E?n}c6MA|US0}*8-|30gsxg=yV?2q>GQJ_pNSf#$g4MR-h>m2 zdgu84e7w$8>giMOswx3}eSMq5O+AUnkDL1XNGwOn9|vBeMHcVkq~XH1rl!Va@tkkM z%{MLWy4%hlK9twwq%Mts?d6v*U&5O;1`*%tN`7<+mtLgy$7%M;0Q@&#;J7pKEb#@gCin~iZ{lvhPX#qop1)xRa1 z+uJ_z@zm?%bs;*QXQa%Mp>p&WX9pAAg?i#nPEM1+? zs;Ul+jLdX@c~V$f+V?4+^#az`q$?RMj@L3Dou7r_kRiWNW~`m>dNFn%YA>U^=WdIYuMIPF+l-d*F)qS(H?p858pqXQE)G(4=|mnkpD8Wk(*DY8D%fFC50dbfRem}=&GL?C=36tU@< z8OBH{0vej!&#v>!%h=DJJ+ptHUTzU|Fz$+vdh^xT$Os*ko14q2*L*o|+uPGhYSvoT z0~Ubac{}Y`6CWR+f|8Q){(Tatl8Xa*)YXm~;eCBdzY`yj59Vu$f4KR)Z-Ja$ktvcv zNQkDYstWeaLpWvx^z;#JA>=uoofEt%rx+3B_OwtlcUe3&S?_b7!re9*F3swwyzhCQ z8qh-?O^^EeB9S%rBB!99mAgUe`nUcZ)$U@$XJPv}J_pmS{Zu(!3lWFPZ}tdgML&xs z$x$N3g4J`QQ0lr*SQy@Ne@>w5!8)Ue2;J+~uT2K?X`z@OkFqLfXLc4Sq+@>;cE$W8 z^Hs#k+&t&p>fXJ3El?R4iGpBRLg7z2D=Xu5503X%0^yENk61VO2L@h|45dJGbaZTb zqkP0;)hL_uO5gPA-{Aso#c@tBsBrWlkAog2dn3~t)I)f{ah!` z|V`~O~QOPi1WF@n4gP_5YC)*I#Ezi5GNOxH~gHQ;w*stJ~_86=l4A z`zmaiz>tuTV;TnQm8w7SeBvo`3^#6I+|elS6ByKpy19F1KmVI@w8jyCe}DgNM8p*o z?Ch!0Dm$O0HWtwfJ1x6O&yzL2SFc_%aB>nTWRc|O=NA?i`=qDec#$L$mYd7&7Z`X6 zb$WWL3+n>s5V>-G_v8Dpy8=c>H7Tg6#o5WeJo3eSC!LP`ytt%<$D{FW+ceV-xtrFF zx^URE=~14U)$gF^lL-XYWh&2Vl$yw!craKe#y1b&-mRQu-E9QCDE^s)!d5BkMq@0JMzcagdGdjp5I}WA~ZBq*Vs7F zal)OP$9&*2O6C(chU@-n6I`sWrDYh}CCtXoPJH-%<|pB;_3kG&r-!faTa8k9cz9Gg z@7!$F=gQ5?T2gcgL$PPrvz}{l+ItwH3u|9Q`SA7 z?vqzKZ?-}wA#Kc=P1^A|Sl0?Gvj{dT_(pK-bF1#>D^HKt#DtL|OX`g7J!wzX7qY{j zr7OrJ3M#KSLDMa=Ur`Aw#lRt3%pK|NRdhG5tzvro!iRGx|p->z;^{vnvc!uTvxx%!68ryw1mD$_mq^B{49z|-Q z8WmPqgYV_%$b+^62FNw-=EGbjp@M8}PPGteX<}|lNTkVTZ$!a1V}MPFz{BlPp9r?# zC^l6letwFF-62~a(}O({0Wl(Q(QNTlKtNzw%WC|(r-$Hy_r-Ef0jJ~oD3Nlixd=KT zVRw9SX{kh#h&u{(?bH0s(mZ4mC_W3D|anBb>95| z?3|^prF}OhCQ}!H7xH4Ih6;e~j}CxPt;*K0d*lbgyxm33=_3-Tr{mzWHJ5XlG%0p+LJ13Z&UfCFQ$4y}eu0 zZ8+k5Uo_9ib?*K1R`QQkvQZw>twD=_OESJCJ&B-Wym=E7R#++N;IDC#-pT%2x}|xf zC8dxPC)A%lQ}Vl-jeS{)&$RXn8qR~^WJFabeEj&4yWtuufW1~|4?I0Y#Khet#^9RpzxU^g9nT$*;fQ@iiW2|}S?O7~d>+#UoSPBGVo*r&xDrG5{ z#`{DvKbfxCsBh^?5!bV_%C|pl4I<`$J$+fb!6VFNZ&?pk34!R%&CNEeLtHZPywAUc ziJt8e8+CpT%gns(=jWF!|3wnD?K5M)GQbF(0nlli?-hIm#RC_bhH5ZWVvG+cT-V$@ z1U{{~rR5T;P_G3OE?vJPK>+2IrI^t?Fi`$G|HW{IAJ42R!&jlqSA_91Bu`i2Q(0=){o!t(19Ua06cNZg%BbLwP1#Bi! z(0+sNYE|nlcBQD*INT|>_{*d=5KjAm^YygEo5e1)v*W#%+?OSr?Hmn@>52c|Z>3U& zgGTG|T1w=8pc>oSFo3$S?w*pesptZ1JKSu+M??LIddM|8I@(p^XuUdCL%y@n8K`;pJ9OwGyM-5d z+}CLMy}mw=&vspb9wHC?Yi|q4<)bX6X+UFzMMaO|c`Y|jHX00IJvaCF10sh3YyJ-;_Zv4-NJ6=TEf; z58>neHH~auqJPir)<;3Fi-wC6QD{JgLkocc0n?{PJN#~koFAocz<;y00;oTVKyLVq0I|I{G5p{q9Mo|RZA9)$(^r5*u zeW{^gF#98tLd4DKQ$LsWxKQm*$AiMMGUW_mw?l#l4y%o8BNhESGt|5mSN+A%7_1NL zB$%3Dv5Sm5>2N8zB?>L5si}pWHXoj8!d(E6vb@my^?3^rAwSR{&`{sPX>;<$uM?R@ zsnQLKzYPk)3JnV@vYrs>%hRY(bAJEf0}q|X%a>8gJO5U!OfT-gSL!+IT=tsbM&B>z z#=*hqHK&C;)z;{JsmNhX-Co_rMG%B6zD{Vo*!QF#l$0G zuQBfY3?ToykFPHp3c8%~l}&(*pFVwhC%v;CBIJHda!dBJ(n1+*8Wol3Z{{2kD~u8V zaG)Hkm0M80;{H^921vi>lQHa|WqI_Ga?9RW?EkxXqpp)r!fAqj{Ez~E_XPpTGBSQe zMO^5YF72sz!dWSF+|b^$jpBaEp9}YMS$__s4&cIKfDB)`&l@0+dP(*(G`STc>L%(w#5E_qDr^Dl8bQGLY z6{|tMwtn79Y8)G*4G#~8g?{t3Uz&#<)bDDvHflP&T>8d^~6r#KYNw|En#zz(CG)Mw3 zvN_qe+^5>%f7% z)yvEtu}0}n)Vos%ITe0$b2T?NSJTjl$&`UlMsf1-aqJ5@v9YmrxZnDxI&*vRU7HM{ z&Ws7%wrZbj@_oIxtPIQGw$(-srB1wRK<8s|B^`VlG2k$}+IRnL^`x>@o!%FGCgZhL z17!9W4nUiD-w^-1KhJxAxs$s52UxHQ}Auph#?grH=yp#*1rw|Y%pZ6B%h$4(QGBVOy zNn2jzXqGrZ$XUU9Zf~jg%E9_ruhavlO@{g3pT1NGq9#F?fO5hwBqTJsv=jum8WAyE z@@AgHA;5=@$R{;M@4ib2z4uF`!}+OmDCIrLv(w+7?!^k&-E`Ss4T5W>PNM~~jciCn zoCCqVHF1Dv2kL8{^VeTym#81M7yh9`xbP_SB8dDKu6We%t)&p)`H=5 z5XGoc_=|bFpX{f=-Ed*M2lNb1Bb6x}i%PqN@bP8j+`}!JoSybU82pb&W(rPS6!*P* zdn(`KvGMVtKt1Rxx76_M^W2$#4pOK|+Kubi5!SoB@aWN_!oor?g)D?T;q`>Cu3CUz zrZ?5>kB}lj1PGvEU}eqL96>{^udl0>7~!2C&fv>@7NP{S-*@uIFP_hOdUvUJsMs(> z@&RZ&d4n#$TA)t8`~3OZl`B{NySy%d@rFxHFTr;KDQ*e?D}}Jj{ph<|*@G^Cx}dcM zJq{s5uwUhyC87Xa%G5zY(4g6z4AukbJsyHY#26(FaOPTH0RY&&d2%|saHP$ZCM3{k z);h_%6PtevrCgk7@JyMjb=pENG48xu;sC7~c56{UmrjiX9&ojHKVMNrOh`cGMg(No z>Wu*SVB^9`=vs-$hc|>f&@?utwYm3E@_btQa2#~ zF-Nrk5g-vD!_%XhtL6t|F08@3 z_Blg`KiKAhAX4&Ljb^@x7jouC@UQt`ehL8Mxq)k_#leCk!9U&IgwR?W6CXHsWh=AQ zl^Y<)3CK!KM_p_;?F&?&HIjgkf-8xQaw3I(P3%~B5rw7=zxc4>3aJrOVg)xHZ37wVyk z3K@_CKiGo^mV%pISW=?sd95??K_Gx>xPnWi`;< z0+|q&qb^!wV0CQ`N}jiX-8_)n%uzC28ENU}06gl+nHgV@u+6n9z+FN3KEOh`jP$Qx zQ-NMAj#O}j(+DWsHD_vVYhz?*mpQw|%Uk|?h28RjcAbm=LT6G-e}6y28p!AmO-yb( zY>bD2dd0-R@Ni?zr1vWxsKCE0hJAkdVBmCR$}9icIqrdbebI8P+=k z$LZGWAUcwfk+~#>Siuf}d#}6Dk+@t6XRrC&H%y>eXsFfEDn;Scsf;9#=2FvMM1Kc8 zn+7_5^TC8CJ_@0JAn)Lz5EU7CUI5&|%pFo*{hI;;FJ~sSBqaR4Z2{#`6h=3MiVUZu z@gs{Or^OJbJ%@V;*&PtSx~lAq->i>P0^^5@!ne6zvwsOd2D~&t{qIur>V{IofA# zKu0-wcm3f=1> zJZfHCr2W+&PUC<;rw1VIaMBka^wZJ~tx^+0Skkm>>qxZ$UW@P&lZkp^xROA)o%C?` zTR_zhh0>SmxG~P}y3bC=p{=>N;&!;1a_p=(5hVLrs0o%m1eORL1-%o^1ap(sd?2?8 zWOgq7)~l#SxQE^K?yg8be>iU93mSj(_&6PEa(Ouz)CDRmEG&TkZGfZSLLo6Z6@3n; z>Oy2r#IGJc5h)trx^SBH-F7<|a|DVd32bR1Q-~4z3~1wBD+Kb9QfWNw8o)i+$yV|{ z0~g+#2@S>7tg^*`%MQrNG5>^HROfcY?QyoJ3WOdHJP$8G!79Q)N{8y*YbM|6XDJ1P z>evj$5o+)^xZ*8X%a4DT+mRbE?s?(9w*zHq8szjIfzaCAfE(l)w6;|=upt7}*uOy; zYEQe@z@!#G<>0qEs<~}7z4~bzmk#?$#MAZx$0%u_4W0K zvmay;zyj(<%ul(kiZHR1Mr2=uuA&FW1#_%Nx(x~(P-xcPwmFfL)q55r<#?S*q8uN# z2ce6=Mq;{sTgoQwswpsDpNa~{PX)FG)02~4fX70qc(9?*wn0hEeyylL56UejK3yoZ zSVSl>87a@3Bw+_@Gd4DM60Wk+VU5aa6g^Fp{l8g&O7G-k1}N=lC@|E5VecXz4s10b zF%gUxEU4#rz|rf%uy=NLTE=P|UxP9QK!6(d82AXpG+YQl2VS(d1DhWZHxQId1fTag zjeb+?P5Z%Sf;QdztOk^~%xTsN!rIvup(9GYcrkE7 za0~^&00`*vBrhn1h(ZOxEv-TjWEDgfyG??PavnT}>IRZRuLdoKfS{oM`RP%m>%m<( zJb{<4T+6KJ`qk0#4NRc^ke0cHg@r(9N%}kUe~|qu8BUW`0RNMvl?Wdfh67}>5*!TGOI5hd&AGSk^ z-Hx`oNA`OWMzh%-g zGFo8AfYwi?v1SiQ2cUZk;zYWd_##l+ zYk(P`XPF7z#Zs~!*B+aZ8CSjeNQP89>5npMdV3+K5H{6#iN1Yj@cy?f$NEJO|`FNM+xSIamU$wdjc?puJ4Rw0wY z`7sJk%`~Ws%Ays8gp=BLB<^uweQ#5@9V$^*H?%Q~to}O^E7Dm3t~^2%y`nNVaI1-YQ!Ts+?v^|z8g?da!iVF?ih@J*+hRIMN zBO*}3KfQeUvTj>2Das2P<`l3O#EVN-Vny1J#b_lVtP$JxFiAPK`#GW=f$z<4Hkcm< z`i&l}>9W8wpf9h82z*f3UL^2)gM`Wm&I27C9f%XykadA~O;Pn5)BOv03_V81ltdvKZnEH z0b=Q82mu-WhzKYgR7*CMGf2olUO}EiMfKy2XVFN`0glBTOGV`Tqnp7hK@SRs)JU#o zRk0Ho!T19gA>OX?bx)uly5toA;V>-jw11k&|2lO@lqpMJVa?*`w23rSUR;QRas#CJJDmL2P?vk|Biv`4X^z+L+%h^LL344-bEfcdks5m? zt1uxUrM8g~Qn!(+26D`~4)pt7dU*iR?)hSfyOFL4O%Gy8yMTr5Evy3~U>5!JdZmUt3EvKRjialJFGBOQc_V_djp&zuxQr|Bnjdd|q!e@8@gRnJwP@=Zd1#+N1A0O9(_0BCOj3 zO8(!Ula7F-crJOw@AvuNud;Zj5%vG{N4c9LKkSF7)XCb2x;-2JcH`lVT}C8=RO}$( z|1O!eH}{hFEvD3BM=%MYEt;o8AEegj+UO*bUqY~S#e_$%G}I{(IRCG_$Y7B!IWZj% z$^#cYT1ZM!V&&-ptP~DsVd*!h%z+K($IsZtK$O?k))w6H_xGQI9-_VkXH9$$G~=%A z_kXMH*?^0tM}7YE35%Hc19whL=56Q-k_rk6DGO5R3b7zP_w*2f^y;6NXDLt?9?S-i z1~_8BbP|s_Sv?dXTkFm`*8>8oY~kl6fW{FBf3QzLNGaxzHA(u3;9iJgM70EQAaJb*KUqTuh!t_KR;g}i5IsNL zkxe{;Pojn%{G3f#P_X)P-pyYhkRVI_$qTkRC^jJE`J$;S*@9&A5SmcXHbQ!}Y8=|0 z(7XFV?}(OfU$iU-HP-EDE=GMxUS2*^IVT!T9n9u)RtZ$W51B`^aq{nszcM}8=ep#S zTA}8!%KYkyXlqG7^VEH3>Q*BaOw%XOeap}fL1*{#_fG-O!N(Z{o!hYraztBO+Z32Y>Px^6StQwlq<-wLjckFjNLh{K zN=U;WxlZ;sxk?5z#>+E?nl7PqjLmk+@+^z^>rj*w^Qq9je=;e@yFcn|w`O$BlY@U{DYgO?j z;r>&~E>=giUD(o*iQ&fPl1--D_yqA9G3H}nsl~mA^e3oux zB`r4O0%gq9tl~z2<1qtKinn25q(Y9+bYdSk-etdocaJpC3lx+YfUN3EP}g}Mn!kN} z6;!m&NiD_1Y$FqGwv8vhr0899>nX5Mo3@31S&4tKbqTNoE^_P40$HmM0f24jBVtGyZIKlZH z`uo=u<4QHURZ80mHXV5!eL;>8NW-Qh#fCVwb#**F`|D#N0IkGQl5yf>c<4x^K#y_it2M#paX;=qF6`7X);rYCoX4+WYKVR~{ zxkVQl^fJ>_9;>BxE%N=1mapxdXsD<(eYc*kyd9Ka>XBG=b^c>d ziODxZY+BEcWbY{vOaM1oooLWuz5@~xkUjOCUL4HLj*bqe z;#zP-#CM2Uyaq7?io+CGH=zF^Y!gbgAL6PudZ8IsXWJ?%kzAt}35Cjx1M;MpzCIIp zpFq3t5S;^1>JuPnQ!6VPvqH0oZyxWN16xUkHgDtT_yla$O%SWIT(#{5 zK*I$wA|*-$6hJ81qt*5}h@J>L{9SD9RS+`YEcXFSm3bIO#dClApTCC00LVCyV8aLJ z4l$>IG7{4~O?l>AuL^0gCt_mgwzhs38~C`mtqVz>`BCTRCmSoLwSbYPz%xMz1CrDm zEYM-TcaK;(Tge;Jg%BI+%2DOG4}Ngpnx`VL^KXcR0J@18ZAefMiwfoOF)oq|oS6_t z0Ud7(cdVzU=l(Wq zaeUC=`lVctcUd5!maqH-3M>L+qw-fyk9IR08JT*iCxqs5yyWlbmAJX_t~CzZq>ussK}k;9bHtj##Bd~>)) zsp-m}HG;$YSXH(+0(dG~O7}aQq9Q{Av6d*N3?k0ycsNarIj0rvCiSen;h1)@XG~}5q?!AMWRE1X=%(gB3{GCHOyFXo+NE$CWKRSTuZ)wkVJXkt6UnFFD zoI?l(afzAbq@O+|92I$?y5R~oE@E!N&S!q`Kx5?)B)!*QDz1*#QA1Xs`TdP&oS%77OH$xZvz@Y|DQSfC4Uibex0wd`=uq1DgX$=6-_!#;J1n5Ir#7Eo$Z4!Q1`FiG` z2qW|bJ#gL;Z%IOMpdB$i5Q!~H1eg)Kb}faD+m^p1hb5d%aBhnr)PB0%&VfWM0TaX3 z<&_1y%E;h?P!2ADs4kFdwNjJFO^oAs#_=3D=`$d#2uA4CyHP@WACNxS-R;AkB*n%+ zFg=3yxwz!nWFa{Z>D34bxFfy`;FU|f7DFgLz6yo90KRndn#VXeA!0jAC-)%n<^V|r zZRS5ee`a-|>L-uD85X>B2s#3y>IUM|4@iM^^*#MrOrh}T+5ZYzhV9Ilhl@>qbjO#Ag7y(`FiU6;>|-t zOm4fmO}p}M!yb533!3$I^-tsTA6DxY(os`~yuJE|+6aNa*umKQJv!BIo|+F8JUQW}nQt*I%Ze;AI z5W5JSmMm#)kD{ymT;-Hjvey1jEw{;1vo0JxqDHz|e*B2aAx{r^+9B4OBh#8bD;)Fo zF((Hnhfcp@-tkEH@MZl-sj+g7nwshTU6mmb{*7x5*}|+pKXKF4!j4i1n$4ZYAaB!S zCpCC!%~!i(6=ELwGj_XO{0FJCUbPvOSCLZgxyIgyTNfl~uFniC=vTur%jW^DVy2F3zocD_LwvlQ zn!L1mJnJXL-e7e0@>tjF*27{$0tY80B}IK9Sb~XPP;gn3#O!E$4pLNklSS{5I1}8? zl>RRVH$gn&H0fdhrHb6$77eLiKv0xYg&_BDAGrWO{sN>0Ox9;bzn})xPvUt8Z)!&k zK<;M?5=}AuI-nL~UZZ&n7FzV9obA)SK^>%;fe;*kj1GY0`50^;i2r2STY;cc=HjRP zYv*2O!9%Ae9}K~aX_8V1gMc~wF}psPsF6dnk^oe>$DiS@tIRgo2T3>yGiWV=)-Q=k zDaOH7;y2Tp_g4M8^QM^COz-REDYiG3a(KVo#D9J$*+!QRQoD>p%%V{Is*o$^GD_;# zZycu?h2qz9FNsbQ^0+b#w4~aYXzC8ox&4WPJ~pt!*>b#8 zJl8C&bM!Zsl981Khu6rtZg@$6`}Rla>qb9x_1N3u8kn{Y9|uU%IoCsGDz70~tL>LW zu(CUKa#kHicwl|&LW8KJRlWcG=h_ZG*nfTb@A*8-_9wp3+0J6OUSHVjx?jli9nP_Q z+wZH-I)s|)M_yCe-^Rv0P#xRly4!E|tFF05?uOJrcee(esX3(?^uU@-0AXotk6_OF7q1~|>K;lve>H&R{ zrz0NdF(xiWGEZmCb!dNYRSQZ7O&~T6?kGFxrk4TW18EfUIHiCD0zty999A}FW^uN$ z-d;HUzL%r?{$zg$ADqWgU1y~Da34#GQArAXcwSCTjKsH0y&=3U@ zrgL+1v$;5TcRSk~R2R+%T@ab!m|R)OiM0B0VAkx1wJfkH<}CyJXz0zJz%sP4Kz zxYZH9|2vKc2fji;Ss4%5q+F0_&l`+`ngCYG(kdZG9w?DyD?-T7z+j5P=cGsOmzx0_ z!#G#fWD(*oY|s8Itf+Vb7DoN)_A{`qE=e0M&A(Uvh|)F$rG0U%h7TmXfjo^sHr0HS zM7zmGG?4$~jYq(r%8I%fDfQ+>69dyRANLUJF77l=#k#_E!Rq0M@2zj_9QM&%{+^Z! zcb*KRujTLe04zVd7eGLzG4 zS)x!40ksb$^J#!PSy1*-%tu{+`|M{xhVKm_+HJ{*Qzv1}gPGn!LpcK>mq_oEEz?Xr zy->%o9S^C~y)+A*k&$M(rW)ygga#)FQ8YF_e6ul5>*b)EPlc{icuV*K-3bO)z^{l? zafh_9pVD!sXCCwdwIY500cX&85RVtEsI(V$kSs)IA3y>$zkCasxr0;(;uMa?eVnw1~P?2sroqJ!pa$n_cfqGfCE;Se&>4c5c z$8~X>dg!Pz;YbK-_=F72Awlb=T?Bi;1*wQSLQVhzoRf2N={)YUklv}ZoeLiL6Sh4K zeg%B$a>9l7_&@s&6jaiL@*c<~(Fi%oX$6|;wE_rYx_&)P$zCN5TI}-;s_jvayW*#GH5)Ke**U^>a?A0R6eT@aYM#P$BoktjG&DCngu({P2w{yv-GL z%Pj>jNL#;tw0M#Ij=EEEQ}ja6M6HG9V7jMpx*2-pJX>eciV-_Np2Bh+@!aJRlyBWC zL6Z8hU`T4*cPn<%FCiMrZ_Z9+Td3wyUdf9}><qP5W30B9I6V)Ze7x%j_Wj#Nh<5HFDscmNj7)C z)Stb4lx5XNLPDM)5cid-Ry92`I{GF*Yb%l#{80&$C+7zZ7g*7TZ>u(0A>EY;@+O28 z?l{%fiu&rmUh-s36tI)zbcY1Jx_3FmA?G`jbe0A8x~<$dH#fV~FL%M%hx_p^p-{tQ zL;Gn$Vq!>?B-~G@bqbP!yIJ}qMT%*vkX!%U6+b+-M)r-t+UQ&7=EdRy!Mw(%JzxWE8 zu7NHIFXs8Zh6kIbM78xN#{Dy)npNNIP$u=KNqRODI^jOfH-cO!1W>cTq7K(b6?6G7 zaCz>qKKd#*ZRnEk;&i^YsFcTz#&GtO^VL#Z(v_?#(%&ohN!={P0#;=wC=iCK}9l$>|@=ZNwRWzw&VDxetk51<|iBqXVhfzu`Qe&Q%&a6)3 zfch|8+t5t*-l99(c|i3D8SQ!gHlH_?f-AMvP^-a1i?a^gAfF}uB8v0#bMUP)BwZXF zctHoy$h|WLk%-bBzkr@)LDfNDotc+c#a!42ycHze2hkTX2;znGmlp$QWhS^g)Qda2N5f|^B)93NRgiw2 zRT^~xst1aY&EQN+7e@X&J>xs z5P;L&FRn8BxY{qEcX`;cPFr|wgFwqJ2nREabgGUOFXaI9c5R@7>Zal_M&Fww2#UiX zSzaU=Eo~T!;@3$Cv{EgBl^6@wkjkd{+fH3mfECwom|C-`t4*337+eBksek8OrJHp0 zk9b>as|2UkpcOGn7mTB9-yefwB5VxWR7W8X%|33zIG`E~(&H zQJJ>U-qfaHVX-cM;V(xGvsdFLb4FT*q>?6wRr$q!NVF||X<3Wi=?sm;wY?TWx&it7 zE7j)@wI|tj1-cf>ZU+O@aabQ^8Dge}@y;@4FGdmH>Z@T+x1|Q7?fvUG+62zO2KO4d z_mo99#dm0MP!!(tx|MnnhuwWiHZ6qpt*Y=%7vk#qXGu^)%o(eF79fd70S+HByzEsw zp7K1N7po(REIR{aH6MFEP|I6Ib?x`mNKe2;f_;|44pUu#KeF9pB3H#++r3wNJG>t1%)iscoIy^ii zIe>WtXz7F=`bAJA~gd1u#u;32{E;$o(~m6}>?NBlM5JZw7R-_3fn#M$Adm<|InaEVogUg)#YQXl@DX3U%g73{5%a|cAM9)SxVQpRS3t~ z7_7%I8U6Q$piYJP&yOMZw$PZm>#TmMn#}NqkdUU0h9rZv-p|ut+xJWi)9V(E6cmUc zzgX6zny>kCwQktofej`J`{E7?iVePp>qp^St)L{RHwBYkC$-b=u^mkP!DQg$m58pl zx8WwR!35lHQnLAjs_6v9gj!IVh&3t4`umk_MAraXPY>#N-YNYJz+&>^eB%NccIQ!T zxDHVa=0oNSfL~40%!#wTAty>20$O0d` zu0TAtcnp?jU!YY!93Rz9Iaqi$g_Uz7?8~W+`R!9H+30`W`tZ|FA|T1^c__ zYy}WJ4tmnEM+yc^2B82<2qSOH{hkbyKLSqj4qm9NE} z9{hNp4W2)ey?_LwDeVK>*{d*m;SbqW1lU0c0<7AHy1ERY6(gfdVLON?3bQCAI_`T> zlGTvoh8d%7xEN&k3jB3`k5hj5j4b607_V+^8-{O?)$4RD=RCL0gA#HZ8OA+Y^ItqnyNv$$+r{s>LD7QFW@{o zIT(z~(2h=Of=irSDQFmw7KPDS$PFN2ZWta3Q|=1+0$Hz2)dD(DqH`lZzk7#*%7G-r zAhLQDhF_`@Q|`i(Doh|hGSD0c3}CT01Alq203T9vun9=2n;*cm04@I&DCNY#%a3EE z(|zg+9*)x}!psMZht7xnvW5&H!pR`?r@Ar(_SkEXM8!tF;@>mwK+FIepkjFj&`DrD zoQm4jAz^z(%pHiZYmBU=SFbtRcW3 z+Ln-&w2Q5h1|NgV^Zb-(P=gF=j(t9#yh>6Numa>kAjmfojD|@}2!D~5SIS`FVIaR&ZH|ag zzO99Ecej9yoIGQ2?VW<6B8ICSYaArWC|^@6W&B| z8h6k@Ht0M|_10jSrTXh22_{5#1`GLizx3KeZPXihFanZzkvKx8Bp?X?@#J**J@+nr zcgUHDfsZ?J+ZudVo70QGH9Lo~>t_)&1wUWm6TMd>E|y*;NhiJh=+0x9qtY;Akya)r zS8cEB*CxHOCL5A!V%q&j-6dpz?%CU`L26V?L3d8-W#$jQ-(N6-ht9lYPgY5U{p)o= z(@saGA?w$7cU$Bj)bJ}5PqX;d)2b7Zv)x|S7*QB~z)ouY=upwA4=GqEt?9o6aP@#Z z8gh@BqNh>bGui|pi@MZfk6cHWmcT14iGBbLP3?RqDas{@l@&WA@c~}koVIe`)dr1A zwW$XKkhoXy{2`mb9|?$*%YM19hBv>@j0f8HRNcWi^ZomM3=QNk<_i+dO?LLs7#)wQ zW=tRTysxmY91}QyH#K>~_bxFXybFRHtEN#N6pr7Yh2!Df2uVoZOy~r%#Ga^U^_u}) z{sy692;m{qSOq=RlTeqKSXqPN{KP!q6aVP~%3c#(4wBa|s;Fq#SXE9@$;p!cf(g0F z-L;Vz2m#x|Og`K*8JHqrb1NvSzw*F-8HpsD!oc4r1J)=c=V}WT_rZ&6FC)1Oz7@h) z9hhG#R)0H%c5tDVd<9WZ`R)nmG_PQ=V9p~6wmw3{;p&V^_vZWw#9{-oLFFHYXPZFP zgMjYmakXk!!|*-pXEigi<38vXaXjMp^e@M4&7>3(gfKtp8pslt*G+zE3v*jj^Yf6% zWrLv01EAz62q5}`+7lTQ<2X@5p?dSlPlGmDbI9k3Lrjg5$BZQT!k2D2 z-1~0uec(|#+>p>UOp1w7tumkd3{#p{t^`UKM7UPaEJv{wX_mhA>CfptK1@Dd;b7li zPq#VVt%=UluA|y3x15cM(_DTb04Zm-sH!0dkt~6G7&X4b&}CKz3hHOj*54;2$iQra zgM$MiT);3M{Bq9j<#lb7`&58Vs+_i%pbL3yE~E4wvOL z+roIm-wJDbNZqQvd(a zE#rAf>d$ybTWHq+Vr;|PbHf}c3JKjnLbC&Q<43#got-1_#RQ;T!dWl|r4OjgRWF!l zf+>`T;DisAni4}$Xpa8k@QJ^y#xKR$6lh~QuF`k*u26c$c|ZwOB-NvYU?#YBc!y8fiq zyjfC!iD*;s=|C4!`FtBTQZbwgILr33C7KgUCAU>-NxGr9DXbfxM|ht4!l6~HbFqKO z_b9fk%s%RtRrLp0_2oGW5nEedqGQFpS{SmjyMqS`QlXr8K9p3vTy$ppc z$Vu~=_7^aAP_F1K`@Foe|Xn)e2kXTd-F2%Phe@of>T;-2`~N~~}u#N&CteTp4a zGkhQ*fJ`*_#<2MjOgC)~*{2K+6yWoi>GBw0l1)v?nZ2hEnfYFHTY%+-Hr?`#XOkPB zH12?hZnmmcSoG+ghY;CFx!%i;(6T7xu@%66-b#L9WMK({uh|1Ppw3R)W$6Y?R5wCr zcmcsM=i{Y}s2fQz27=6bBi=X!es94+kAYwOT>SACBcnImsNgVvw9Gu%dr*Ks(vGHBrXCIO0vRxB!G(sMiyWzK+2%XW(pmS==aXf2%xVB zzM8{w1{WBlAD9M?f#)%8|KXdk0rBqS@bWK5mR>)g9NhEW6x=WB>uCJ6uot*r>uq#!1Ob8qStpqu26&~ae08x;Y zu;&jTCIQdvnS-n{xI%zm$;0VIJ0OA-MfrZEFRKNzOQ^B2Q($HgW;1`UhYS735b{dD zh9*I|O@LSkmtM0UYg8}%%Q<2A_Q~)I5Txa_Usf{I*-~79dJp^}<4w9X90CYEz>^<} zEk}5vz{V62Ld7g6IW#!J7ehuhc?>_j> z!9b6+RC1;=+x-%wlq1(XlRr2dUMeBW^Uue6kM3#}9`32$FK7raH&v{B6O^jZLgDxC zS}E@w@=SWChSUC>D8nf(DdM-ioU_zh1g+TzkDB%1oao+5^Tb5?^z<>iXz0VAtQ*c? zW|AVBL+6EuN4@PT4DCC?Gp>MCuA29L4I6*YdBeEh0Um17-0TC++84f?@E9x5fUy<7 z$~?+bQB+cr(9@d|4jbEmL4^wI37FLg0EE5MMy>^o-1ql;UFUF|$8nr4E&HAFCtsg)G~i>ES%k{U ziv{8B)5@OPPhEBP?4sG)ql@K}2Stzn%-7nuam0v4 zdiv%TCwG~a4PC7hTDC$4CjL6cEq!EUeEj}NPfb09`Y3J}RAHyy^L-)}7L-k}sPtj} z(tfCxbf!vRhv@pPn>TN6q{OCfUOcQg3QHKD@{x)iL0t6KtX=El=hCiiTfrk|&@Acw zjbN?1@zp3Eppd?kVT#CEqNRd>PH9{(86CH|lgzFULDOy*Wu(2bVzEG41m5 zBgxMKrIzXW>)zi{c)T@b;QQ8^BU`RF7bfXRnq$S);LBE|uFZB`YMkKVlzX>z!sss2 zx4yOPh;Uh`cd7pCE0vKA4PM*s?C~v9dh+zC2h0RNCg8pruMi%q$#+|M7iI<@M`VIw zXRLFRlJ-KUys;{(Z6ed7L+7+jKVqjpK{LisW$rd@afhg+!@Zm#eiES8DaSepY0W0_ZpiiH$ zzU9%HTbuh|+nDXW`Q@A2S8kZRY{|2_bH&E?UFFcT;%!I2&;IhcYv;}l_JQ*|4N_Dm zrLQ5UJB3a6)BcD5;OuGI@B78SUqCEapu&^=WQV$uD8M)O|tF^gSDf=b$Jg4_kWZxarr%Qp|mvZn8zq-qfKfnk^ zSmx2SLN&kt>eWd)79p@1w$NXffl_r{-NQF;qVn!+cVACrtU6J?3eatV9$s;8$Z{y?>Ra+e3l9xTRz-UrB0vN<`mk11H!i_g66>Cs zNxjnA$t!C+Vu^!B`ytp;*@D#`3QP2_D$JgJrC09@Hy5eDihFVT!L=8LbLY({e`lSM z|6yRT{ab3}PJ>8NIk2s?pjuGADPmR@0HdI=&-(7#La@g@z22?Ruj6zR$ z?!CvyM}}!yiDHOJTy%K%7!Amn`QvhDJ$Z2P!FlOWuile1{Kg*p6#_kdQ?_)C{q_IP z>{LDWM2G+WMbBgZ^A}?!vfrwzwyo{6()`4%^Y1fh z+kOUCR#)C1Q|K|<O@vFp&)ucRxU1$g~Z5cc_gXZJihlP|#j6 zRKlPWao@!C9)QL-OcP8#>{3|~kqD~ds~_^RhTFs>XO4-9A{~tQ8L(Vn&DoeR{o_Uc zHD*i?q-P2P28e?vkw`9S@M>rCn~3@mXySqC!3=7KY9HnJ3SRZHWy^$l96#t%WW_GL z=fvj_gU#j31zAtt@TN)hI2%fKO1{*`kN=uBZJ;a6b)>s_&UO`gcQtd5VD|mi(}>4lTlIfHJ$X zav=pw8xW+-DZ^D&PsGM*5>DqJg58GN!_k9Z6u~o$1-uzCYLwct;sJKuO1XH)&Yxe% z*%>in#9OjC+lBk(`Jmloh_h$UdT$1Nf~Bg<56AxF(xpqs&YfEzqHnMt(890`Gdu>fmEV%Ok#S`N z$QdfhkasWgI;0>~3Mm{wUh31QmtiQZ!+cS+K9u^LszIQ$Z?;}j;7Lf~EhV&+d?U>J z22Gs!D!^-mR`tW)68ns&Pd`9;p(Q)v>x(p zx@vIMdyZ{cOR~l)W8)}fgnYVH3A@kHJG7Bin{RHzmuNe}J*TMka&U0}QQFo~oay(a zrOKuufq{WG$U+&?UI;qO=H_eQ>oyGnW7 zt5>go>0bPb$s)yI$EBb^!_vHceYN2zqVvCE7+rFm=TDi?m+XNvjcv6c^IP} zofv;FR$(aThh}%p&2gnABRR6j_oe9N=0=(6(;iXD-gBx~LL=eSr0XZN`@F+m{rk_S zUaR@XB=A|lGpj`*FFT}d!~Bbhj}#81A`(Z9<{C@s>>66GqGfSd;a6F7Q2YFwM~P#W zhwlUG&cer$>F_fvHJ$(^ue5M9a|9jdCm2RsLSdJU)i=Bz5a3FX1l?RnC+E|GsUsw1 z(%Mh)u9g-jp(Hirs!bnd3OdT)4wYJ_2KY4szz?BOK}9I8s6q@iBdAm|J$taf(_#Lg z*YV>sFlC-+D^6bI7UPjzR#((| zQuBX(CHX2IkI=_4Y=v(lNU8Vl-$!yM?~1q{{M@d@fyg)}wyG_WM&04$zyG!sAT>A( z=g29ALtpQ27hBn% zXu_tFaVhn1*YAFLDsIFHss*~?{Qyu(x8t*~=qJ5h81&`K7hwvRmL`n}PQ;2(o5fch zwDuJpu+!7)9#EcTV)L}^+S1?IO7naAtNptnGmTn#SNDw~S_nF~cL)UAOP>Bw`TqSw z5L<_u)ZyJu2Yx#g2_8>QH1~*!juz*^2*Zf(-6dHTn1_yC@3Dq!EaJfk zdMQDjPaNR3M)qHq%^m$Wf6xg$9bMA$Df{NTxGjo9E|uQW8ue_1Jw*#oqxzm|)2O-+ zC%wJ@p%USWJI!~wv$fEl!JrU7ayEo91Ij;A0{vAttwZ_wHm+MX?ZmE{I6u)UKbdIC zH_o&-9i#YEDtg{0ff~EHb!14I7r$#|RO*_oTRqR8KR?gb>dp$TpLd54s(dDpDm!Xo zoR?@?uhP*u98T=(4n|dy8WR{enCmPkeyi?nYm-^8cje=-qd!w1ulsUCe31y#ffL^L ze;K~^Vei)dPv3oBoqTZkC+lJ37Ry)tx_+{++dX$Jr1svQ;(q6bJ@+YXz(x}TkVx`M z_r}IXj+A`RI72@LhN6FT=pY|kv1Y@a(`4!;4jynbNcf9BjN*E#eOu?`lZx5%KLGow zX=$^#GO;m}KW@=QTyUtld1n`C>B@Ubt}!uFy2-2krLNxKQ7Svd?arNg<7wm9epC5A zF=2M$M8~*aA4}6i@l=QAy?UWWYe|3=vOSJ=d{;~88#}MV#*O7MdUGw!%r0nlQ@8B? zD}_G{Oxxu3y7RAJ?CW{4=6}^Z|LYe=RXb>DYUar%8!e}ViW)3+B2X>$LgkFqTM=H? z7T5ayel7>}<*QIiO`LOUNiRi3J(Am#0egY6QU_@a(U!6K-Rek&8-M&+IdVb{y1Aa>idjtHOtC6GyCl8*-62 z3dBPCnzL%v+3;z^M%eYWV0%hUbVcq1tr~6aImzIdiu-A)-s{^PA3O+fv@OnVRp-{y ze@usi$g5t87V0#d}e=_ zAC44$Z}8>dz5~M+yqCj!@>IotW>Xfh9{6Zr{1XzdZVKx4LKAnL*OameYh7z}+Q_?C6n2xBO{g%S z8^+uT%g9~|3h7wS>-x7@4eG^^>KQf^w_li!0;U5_SA{Pe|NWEl^PSVYYXCE{=m3R< z1rPKoLVdx%;0$3piPGy2G}&sqN^nE8i>T<_T$0vPp=+G;{9@x@=Xvnh+};lEbCPiH z!Q$h7PEK^XHI*s-xTvc{J%PUAJu0$M%WfvBwK;Nlb+f}<-F;i~S68im{$k}!s&c}( zh|<`%_Z_{;s-`QI873MQS_(sKLV`n0({ z;jQnez`c|UPhDyAk!4Z$+WyA|C;aRVala3QBeSP8H^xz0_x^j|1})9Yu6`d zE;#Qn-up1CZlI5sS8wnV*NTx2jH)>WB?VPuPm)i^*?!PvbOb@*kH3ZwcO%_gKkTe@ zO7!Q*lum?ysi@FnBLfa(7pfBm>WJbeKmQz#n{6_&yg}5F2!h_JOBdDU9%~4&Oc?zE zO#NcFNZ}zmaZ_fu@mH7k{?TOGsms4d`rS`X*7W;*ivIBnmEMI01&ri=N=ip6i?5Z1 z3%6|>%flVr&?-(7^GV79Xh;R{;xCYN%O~)4Z9U$^yHqs(F3@_w8TRO4Z44+ z{?WsS!t{hn4l{_sW5#%5Xj27HK=ryF`oj1p4YNiv>v38b{c^(u$Q6ty_^n&CCB$QG z!dSY&G;E;GYeherGCj;BdeDeqJ-^|ezu&=F@eWj0J_0fKS&9Slx6)~?slsV!Iz1BE zPU?M0$*pbgX68h073S5}d%N}T;MQaBxdDCpBr1n}{JN{w-MU<*gsM}g*pN>0o zs$mc1(;2=3_BE#|;QS)`{j2EWf`^%Ln2hV%6uaK98^53auWxX(6%EPdqH6%)1!xcoMD~I{RHICd$Lc zZI-_m&3vTlVejb9pZlt`?a`ywyw}eRRrII%SM&FWHlQ^ihEO^}n`qzJ&|L5~Z}B=6TAtuQqQ&Xi>t3hNX9b_n%OXU0Vg3t%dr%1mONX zCmU{~*ST}vfzzTGezIloR`@H7!Q2R(Q~Yo5ZgE1%bDwGc zBaub=>4{f&Q9-qX34qtykyEF}J$U4tT1&a{gy^VyOh^2F(No2P9d^RfXPmu;sf<$- za{@=)oR~>#K)_gsebMF45gTMQ8;6i&&upEk=P~b^@vSxOL6t7h+zLaH^lEzOOa{N$ zJhI#6#V-3lZVgV$wjekyL!`UKdjCw$ZWH> z52B@V3Ika6)d&MIF@G9DQ43oRDf}O|Ft_M91oLH!|Yv)m~ zz_y5v#@rq=VS*1>)~7E`kguPt+#0u}q((GtAms$$6ozRav>0I?vB?NE3YFh*XT_Vl zw{DGWh-D-rW?1;Zv7X~HH|52(CDQaEOfYZWyz;%p$o5q?R*cLik5Nwy=AYqjz&;l3 zhG?!~DKr>X&l-1U#gkLx){1WqZsC+7UY#h5x4m@@A2WKi z2hWOsrR#}Wg4*ZYNKeWv5**C9OT7CXy9(*TCOOrO0DGJs@=_p6_#@e6TYo=rPZ3}U zTBR++Mz;7k6df9lt*c{D!iP1$E&^ENN7JQpeLB#N1@V7Z46oS~dinYW@7QY?WWZ*i z!P9qa<_!M>laNmvL02dddHbN-Oy&a-g}WNgZD+`x!yL(Kv4KHF6XnI?GHj}DN3=GV zPP>Er?}cy&mHc29x}h8|uLTPhgc>*|hf%RvRi+*rwBk!$S!-_h9@!g0L+|7qJ?gAf zVPYe+Moqln@-IzzG2MZjU~qSgN$iz7nD-Rivrf9CahR5FzO)rqRw0I$FWC0sYM#4G z6=RWciyAi+gmt+Mlcx1C_T`ruyN11b^yspVdExVn`L``rY%Wts@!WXFU4BX2^`XK`eU5XioA0c%C#LoTz=FJ`~pM#4jrkvM1JgQ*NK5=3wxLN=o@U` ze)lUqYW4~&ct_s;R)XUWZeN>9rakT$P(j^c^>Rb~fVB1zJhmKW$xEX)g&KvlF#oBS zd?JW^1=Y*JZ(g-tZGF~1{Ra#%E}3i;W@3E#dS+&(k`I)#HgOGvN-J9%n+WFoqiY*E za`T(88O*zNoge7iRNrO=2GL(gZV{BVCGpukvj>AS=CX@OwXz(4{fSyyCQLw9#C9K+zU7+Q6;8IC`K$|n%sW0Ag$3%g!)JJZy zcAh$E(z0A6|DnrcGPUQ-2}i9ef7F=DN zZ-Y}}1Gl6k{K@hL?rf%&nvB0~)!P|jRmm35L)Va?UZPfj_ZE|W3vVeX7z=@Td?XR! z;Yzo|%#sc?oc+^o;mz~T6&eH~gAcXy^z@!FNjwZs;no<}UxiC3nq!7L!X6WnOB)PI z-(ntAiYc=Bfo^#j^|I<);OvidYQoWL2GaonR1flYjlfGmqp173pj_*Z7zyCyNiu5h+c4$V?&t9aF084){7va29 zH~pFjt-&0aHCPv^}yoL&Xn z_JVlm_{9b34xQNRwT~lvYyIU^g)n9VZo zVK-gp>7b(E)+JiA)lScG4|u=WYR8U`***G>-sh~K-4f79k07`d0nUFH@=1d3FETWI zNZBB(x^8ZegmxjJPQL%v*y;|g-?I}WXMKHqlELV^9xJf3r;WlpFvr_@Q~IfKBDlTL zLYv1`e(>_;9Z9{n+Ui6pLCC=qp0K4!}B5%hv5HY`@7Ll85 zcg5yu%PL_#;FDU1b1Q&D*N=~Gd&-Xc7v|MF4^vxM_64JU0Q|Kg#?q{Ru~-t%)hb^Q z@eR*S!`H4I^X)r#?{2}&NNmNU_|2~_i>JV^9x*o8^u_-Z3a8~LU+|a_v$dU_q5SYU zfkw0D9^7Jc#@d3Nx8ZA>I?QWeLJ0`S2^yE`g-ai; z5vPK-ubo|f9qjX$Q$D0;WLScrI;9jkmJW#94A5rc@UDH_F4EKU-1zh5`c4LVWQCFs zlRwHoV^7At;`g>vAOg=~%$Su7k9#!bDfZhEaJ#kJ zLzZSgxzh4AcdU6A2Jn#uF|zd7kiS15!uZ*GpCV(NYg{x%#W3GA- zcNT^sBV-jSE!a1QsmTi)CcU|)l)vjGunfMa=a?j%R_my*|Mp#*?c0y}cC0OBR=0ZV z)*OX7S=9Zi&HJj5{k0cwa_5o&p1 zo7QIUVyA%UePCNDzYJ>J?bfdG`}d-E?=D1!UCW*m_^j$t|E)J;A6^?wI%mhgi-7r6 zKJo9C=|5$v=UujIiJys8P|CByjQSCAZFPym+eXy4{zF*CW+Vx4BTXf&F8m}mdSN&3 zn~s8qe7=iOI7?ibjnhPPt2ngBrt?N%^$4Xqcj+Q*p*7)X2tLZ3mD}h3*{|c4Ez!d( z?8|4id|y;FZ|}JFfBX?(a8(%gQjBT`8Qg+@JiVcA9qoMtlLkifRX`zPy@gjP)8&8A z<{B$gE4t|fT{8$w?x_I<#1?2i8DEt}R}Bf`B$%%LbXRw`!u^Ll!G_no4AIr*jmD_dR>{pitCJe}8vcm7vNBK%v-YyP(VKrhjObUKXS3j400LAJp8iT>$v zTdsI_vMF6_Tl!#1Wnz8#+oCmD=LaqxQMqH0x&Plr?^&NARL8hY`-xLa>J*ZWES&{s z9jTj$ik6wf??1Xmhxa4WWN+c~=U(7OS%5sBTPxf_pm$`rN7v+K+!5nfcxk0LI7#AZ z{BN13^+hAu_2i#+#x3(puZ^&DR38R*wfsY8hxJ4IziDuuiZJj(q_O5Zqx_)ZaZMisJ-O>Q!_S>M zWtI7;spTG&Xi>w$EHL;AIWruh8Le0PDcxYOHGETNRo2R@uImJ$WK&Suy+Weap{EF0 z1iMVW1XLT3sd5kV2&-o^w}Qc#Y?VDHE{sy?o-cy9;u#IuSCG7HVmdoJIP{d2y%Jfu zJI3$KwTi6LlM4NeNwIXq*ZRJi%V0q;QtRa_86-3p4{T*i!C}6DuOr3IlS^_cDk^d` zBL(qj2)v#1nZPmRE&}O%&s1FUqbW|2?{TzXJEKa7hj$IO@c)npLvJ1}^>^0WYV{14 zp!x&KEYk9RC=e9ouvh~#KR)Zj;*Wb=+KLZ*jp3G{N*3&DFcv&5lIs;L{z#S-KGmW* zJI8>n-0fn8@LhbeN(=6t;Dyty37R%>_R9Tuk0$zhlMh#|`S)?+x>xKR-|}@O7J%zN zTRBmTB!R*EELnDVc*f2jjiuF9Rq$KR6MJoFe@Z$eQDIz&ZQUKFP2gtvK|(>6J@gOJ ztr3`Qh#xVd^FNfAi)lxl{1^U#)wG2ok0Wxo28a;Te_ZIPb2^wh&JdM#pSkV8htjX# zym^ecWlcpt#s4|bg}L98j&T)$x#vlPN(-&f0oTiKp;rDtuQ5bJqp@J`v^h+?e^wT% z>kekUoJx;Rxwhm}3yn69q=Y=>G`}mn%oDheO~&}B3(Hf>4|KG|BMd&3B##dldwYivo9v;KV<8!?t}GG0<_Su zJ-~m&nAv*UHnHx<)U>cmnD2!fDST1}iDGRJAjM&jk^JY`xaD?Z+@;N^n(sJi%9P^b zV%v-oF;DH`Rk*v!9b_Y~K9)1sTR}k=iWY!+)_%^1;vckCJ64%CnT6&`B!}TqNZyuc zRX|$6Qp>$y@mI;%7xh)u)#DyZ`lG@T`}-PG<;hF**Ie!_r7%G#_or2cOfY zH++*)HcC7-E;F>hw`^|k+=Xse7vInB#|p~tc1e~}q6{OFvzPTuf$S_-PTHTcvdca! zDKMD%C|&<-5Cc_4W}^Jt+coB1w!%WK#v#DIv5Wy3#K~$V0bDy4yQ>RT2c_i)hEN}X z9GprOCT(-&^D+av5AbueW~x)<|G_Sc7j)lVuS9Jhv89`P|D?1rU2GCZ75An@tc0|zHYk3bdab6-~TCzYJva%z$EEYe`1mc685^@9)EpR=iJCy`hR*qp5bt>V$SOi zPi}6I`JB_fGS2essGq>;Oihb)tq!}ne?spQoBHOw4q;77~bU9Kqd@1ERu)G}8(1NE&1mx#$?Nr6a3%hxEAFuCo@ zDGPk)J-(m)?z>@Z?|!TzA3XTp_9t~3Ia(Gu$onT^sZ z{5fF26RKeGMj#7ec#u13>R=_PgMz>kzL~oZ!|GXdZ9mYgBem*?_$n0 zRSc{ovn&OR-hD4S|Lqd2U}m-`dAZPkiAY*9eq}q@SwizFCI<3rN|v+6j~XNxV%{*F zr4L?)u)8n%#slfTu0Aq$Wouqp$C1p|P|{iW-HIkiuO^9>9JYg&Yj0P zs*YOKsiXv6fl=6j9@ErzO%$~YL1l(TQ@OB?L4WJbaQGN5+=x<0c+gVgYK6=Qrhy}R zk|(`iWcA9+H!IMz%I-dM=3j$nsW11HgF7aM9)b4f6V8ZUg8|F7FF6wgY!l}+fsYH@ zCijwtATTf}5mRCjngD79*JX3dTdGDxehvJEE%^ogAdCs+vw2M{zcw>B zPX;jm2y~fhgNTgR35j7w$V*=TeJB7PtPa0l9!;~%I-IvrrT)c~A=y(z1%Rx~`wOIM zY&I7#*I7XQzoqbi;#B@rKrCo)QsSPQ7Tr!&ITy_ki&unu=BEB@A0)@Tq2dST>1bCN z*`V6Ej!{2EMM}MP&dyCr39Wo11`ZuF^P8Q(M?+Q}&_MAP4ujUbX@5Tx7JfeYIb;(w zs+H{oq0GspXSZLir&t#A>0Bgjjmhpt^ICfuMNQccPhT!rmmP7nB6ZEowh>#mo}7gA ze*z7u-G+@;9>8=IgN5CD3C|cv@wU8aezR@=mwcG8c!IBu9qYT=KDhw3Yk`R4%$_@{} zWOEm?w!_yqmVTIiF}(0mDrdGNDP>VWbEcZurCWc)6o@(K7ghWA*d|pQ8Nn81d^n-t zb8WKd(XytlAE>peq0%_UE+sb3KL10E-LueLQ&+p*uwJuoS^>=iO`jN?uqHFm;Ogro zXWJb-a%3%^LUOe9k%7JkIhnmiI`mDBj5vhV7QE%GmE#ioXmB}zAw%VYrndZ5Q1a3 z2L(7CV;hLv%dvDND-CDnr(5qO=iht=YA&m;wk}@%u+zQW z1LP-UxgSy2IeOUkUQEp5Wy`F*qm|DD(qT1&#$CF68M)`tGiP#*hYwPl(;b(IUcGyZ zCyk4hj_>YS{h3o5r<~3>HEu6BoefS`P=BGbLuv+oGzyvE5LfcYNSAcyTN5_gg>}?* zR9^xE>rJfVczSmASr^^3Iem^;G4imxff1AvBt>ookCLKkyU&}fE|dnfyUM;HJa?PpoqC?5R^(*bHrAM< zSbfY5g2K!v9M7L`GMQ5aVq6Swe<*D`+Tj}J1SkDmtGV0DPDZb9lqiQSVr*7&S%1~4 zys4H4j~;yw1EUmJ8^UZ2ojDdlEjAfbp|Rn|Fa-3Tga9xpt7g^nN6Dxq4)B3NxMwi? zHa;c2|>GFtHez zX&<_9?%Wa2e{R`~!U@N+}6og#a!Ov5&pb5Z^=Vn`@8xDrX{B-*3w@ z5mUG+QBe_Lt8cgyhQldV0qOQD`5Gf4;9d)$BYZ1MZ^VnIdRhY={_~i8hmJ5*X9C)E z`&J{L>2nJeDU%_OIf43LRZL<}(PowT_#HnkwlLM#^lcKP8Cs>ZQ6b;5=8v)F8`_lb zVkw4j3z4Mnxycedp!C^s7i55dE#E!ZFSC092(Kl7(A-Fn+U|or2z?cIMY#!!iW}+L zV+nf{fk|9)?_!*~uKr>y>fh+-Bm^pXVJGrSJ0f)>OwOV|mCAp=eQ1BZ62ECKTC^>~ z$pSiiiz$n01-IraXQWQPlEDZL(IXC*xZ~PRa!ojzk6u!VAA2%d&;Gy+|>LNelQo%N`n&|Kr$~D=Sk81gP3Oa zkCquYFoUwp`%w%OX-q=cJ38K6;yq>e0Q$c*NJ@2z#nJ##{Nfnbwu&q9jCN6ITq>Ga zRPLBvIYZPc2iIh|_M530jt@pUn7{WI5qXV5>it)^FxHVdNytbA>Jt0an5t)=DGqR$ zr#8KE{T4zn*y=k-8t6S11NkdiMuvwMfx?Ix5B!RofT`j#u=(kVam+-qwo+nncFBd8 z8%W^YsrNy-KdK}wtJ$cuofriSCQM8GaL$8;+}3WPXO97sFJ()G=^S9Qz%c~w`1y*= z6eWkYJ`EC77uWs!+ml_)`6z;d2Afo0V=Kfvr-g~r*rkMu0OhQ2Rty#za4^1)C`BPO zqp<;Y=e&grmwrMj-Gd{sDrUPodfLM3@>A6Cg5NKSdjj|^IIF)k1yW+`ldy%0s?11D z9rV{<@U1)q>c9#~Pv;dEe@YlUI|kZa7~?OOn+NjrWI&r^3PJO_?>dp>Af7_dnaCqY zq&XO_6^FK1H#8vH@71^O9PVnGN-^a{054h!q`EI)D_V1@0L_-Csj1JJnoY1xl~=Qp z668E~H+RM9Cd6R-ofV>F#zj?{h&goJxZ~87@Zf9e`Y(E9uyjA20YIk~vI1yZf|lyN z*k}0nX)IKtb7REO&eF0}sgw(*e{wg@f@4L94LB1Cr@0?+eNc7xMdVMCm(PJ1?sjxd z>4y)3m#L&~2|Sd@5qT4{V+>A1`X~Kk@h&tlNzJIBaar^uKTx{|%SF0;d=-LckwujH zM3C0HEj=5XnrfLcDCbf+=%@>Z027*3m%BoR7x;#G`$LI|iISamqRMyBl?!TPYIFU3 z6e6SNSgYBlAc;1#ncF>8f4{;3WUh@kQTTkJiX6GnibO*I^T=8TTJ~i?|ElEt8%OAR z7Budtz9uG7S^ZPKU<}&e@9ei}9PwQIEp_RNOAg_2*Puv5nJoObCjRmXXcj1&z(iaT zYf=uRF9` z%4JnbyEpY|&7Pqem)+##<=0qQ9sD)JEFq-{f}!j7iA^mG&Y8d0PNs0;9?9uC&zpy#uSUXM>6f?c| z4I$lGW(7XFTgt7N8sGY(>2Kcy&V2xSfo10D=(LS6ReW!%RY9&-w)f)(EZObCp6Q=M z%yTn#V<_z@W4RukQy-1~P8&8{d%C+M2n=6R$s!VHHDQ^4)wL<7Tl4HcX6}I_HNq2- zwTabKk}!)yq;d|GsmZ&mt~b-KG!>eRn>YU&I<&nj^0B@e?~EP&2a6A>InDpzyw4&$ za1MOT?Q2lV>?hM62lEl!YHL7(@Gwo)UhH%lwjl9&?+)Fvw0uh|69)YyrKuUP#aMP? z*BbjfqhiMXEkfRc(`q8u@ge{8o93~T4c`mt!7&n;xj%(GHG^N+@2*)mWQo4D>-Mvs zkTZ`RXl)r6JgB6wf%+E&rri z>p7C1uW%l$G30onx}-Eu@wlT#`$iKoR87sBD0%2taC`Lj{$BeNIW-Eqt0`NRL$i6x z7MObBVbL~c%y>Z*aITCCe*R=?YZOKoy@A2D@tKBCSr#< z-nhn=4{oS-x%926B%yVGL&4s#gaa$?L^S9v>UrIGv zH?QW|w9A>0SXr3Ry3FfVo1JXw+{stP3x|^X2}}r|%|K?eJ@$;2Yz&LL9Gf6kX|V;# zea>FCyHgL%9zEaaBm{myxVPN%*%kC-Vz*sXG6Y>{q@7T3NC}c5;FXz$#bw=39i#K# zG}Vbp7#$$G9#(}37a`-jQj+b5 zH_8DPrtkQ!$;!*uyuIJfJfX-U{HLa6#8sVzZ~LjN_y--NC`KGn!JMTSt0_7%rftsh zbJLIv&!-uldBeg14M48&Y1DqhXV#}qpFY{7o9cPEnA9gG#Lb*RNymoh#=_t(huM9* zBv__FaQ(kky^~Q)Ax#Ko>6o~>Ucyksl0rnrCE@d%cC*}OnjHBY>zMQEThRP>7v@PM zi+{Yb<6O-2+TjYNO1bk+3QXD!!(Pc*HrCefnCtMI7ByacM*Jn&KIdM;uU>Sm2I0n3 z0RlyC5qrZaC+V#y)q4XTh93JP9%6{vrq{;^4Q!D9>n zx-DF|5P)nyq{aP@ju-N_G?-EYgN(|S?Q$fLYq%5DjQ~=iQ+oW2A7eczwI zp7z49X_dpb))U{mEXtbql6BrIKMvWJJT%3z^Exv^?R~yXryf0qYiRh0|G4pL zsM)%84_S)(fUVzi0eP{*lzgtHN>N#|JixeC(SsA*&;iq zc|G(BB8GPvaKz*+`XE)xi%>3Nt1@<_%&SEQw_#v8Dut#B9CjC5qPXBT-uM&>CMG-)vo= zK=wv6CcLsalxSsCY_4yW>tIl|yDU#m>&LRD*wE0gJ6v1O=Y4Su2oBb!X-K=SxpCvh z706^QN~U^1FA>eZj{6`_*1#R|H6E|79!zHybVFD1v(jVNL4|ztIkj<)19tRx_?0yfaQMJhyz>+t*fAp>; zCe}2vAJbjGperJO9MRp7rrdqjtXbF)`kag)B!Unq3=e&G82g95|ag|5933oO9;Y z-m%}6APOf}Hhnmgv;1SLOW*h5-HH`C;YDylN~ZNlwg%L}%Ht@yC1`Ez(Q#Fr>U5JA z)5X2mjOjQc?Gt`}%P&}CqqMa2hyvp$Aug`IAtR&h4^Ga$^V=z(a#r=VR?ymcit1>j zSE>D%9I+3RA%n5vo<6%0WM!vYUD>YNd~QmPzw-C*IdWycXA7-5K|`zXL>mMjz7Y*h zJFpbPlPj+=2nX*r8m1(eaC3EZl$zu+iieN%cZjMt8nu%NCOh)(lI| zP&g^gFKdC)M*2ibex!^0;0#`;>|{Hus3+~Ku1o@p!v6kPO@YF+-Djz|A@)ipA1kW# zjZph?tas**Cdf_Je>b&_FaR&F)69$THVG*4EGDk-HTh} zpKbT-(Y?dexYm~Ucj{bf-6xvu*pcl~mVa|bjG>X-@C}7KYr9!KJuB9c5|&DWS2-y( z9}yBC_RV&KoW|6_hF2%}4qZHx5G^wchVwsPjPjoacEnY1OzphSIyLd!abcxbr#P~Q z=V7r(fxl@GVx$7;>Hs8pX0o0WJR1Jo)5j&@pV{jzgLc@0&0ksG`$PK3+~00Y4tiy* z{oMc|iAF$d|84(jfQteb&b;SoBeu%?qQdl@{Ki-x3z%6U;iu~-Pc_apFUT@D^U(JJ zXwvfS*3Hu9a$;1Bg3pi~`J()sZ++u0Ekt)1JO)n=wv37&6A))g4~)=U>1B(-W$R19 zv+N?inm8UU7u$gi!^BcD6lOtA?&3l3>*=!|`~n!M=6I8%v$Gg8<5obl^hxO690(QD zr`2GY=b9}yHt*>tg$#bRnVJ3@GpR*EIzBe0d%v%*d6+lG-`}VI-d{g0BVhPl>ECWB z{P-W*y&QhMQ6Sfme|7$E`;|T;e8*MEOtp2=$4E3o(!I^GNs7a)Kc1NM^ZoDZIaGgi z=bgL>N#JXPkk}NDRP}CKg~GaZ)8m|~el)!;Z%WwZp|Gdy z`JiDPaw6R_7mX;ra~G03TMLIGb7v%lq->n3s#5l3X)jdi@WPSSd@L&y9t~nQZv5`# z-3?x+PfLIXGta$efVJX&idCEt-c;o*Y_JN9k>--(XKE&CAAP3Ww?Vv*9Pb* z^eqLBrRQoo|NWQL*Ux+QcD!>a=KR1*mp4QvC*MySll1s_RqobfXRo)!orS0?cH@Fb zfr?qFowf>|X=x{nbbebhWxg`Dwz8VC@@i5`m!6t1|IDSrdl&NK*LGCf)G6t} z9qpC9#99YDtGJyj?d`xP*ju#A106(0(xiYpg>W>1scHg zhqmTlYO6P<(n0K--2?p1%kt^Fmv3uiWF+xCbZFlGlw-$^P3JW-R7inN?s)$95j79{ z?*fq$w9BS6i6pB`ar1@^I{e+nJJBWy-CbI{jklb6q;JlRx`16zQ%YT$qN4T$4Lv(` zrIxkkJE~8m*cb;z=3D%H;8r4y88oqx);!YH8#Ww!xC-V2g;J$Jqk_b&$HcFW7-p&bT)v zMeKRrYPu|@@8t!gq%XCH4z*8-2{FtmJwKjsB(@PQU7D?P)il(|_D8cLuaVi_74L%1 zJrp%XEhbvTuqo5XQq)m^zQWi_d?KcCT|9*YDXWk!KC@!FHOtiWJjmqnGiO%5yY*k^ zIAY#s)SB~Xu-3C?S)96;8yF!V?|t~M5T66wwoD8t48|B zeExj#qxg`Q8`R_%?B5=&K4C&K1Z2leYt}sAIa%A+vSy{23UT^=S|2`Ef z-lBU-B5Qf4FrE&eEJeI3ZZyr_eV`<E5jX~y?nFZMr8oCu@m8M`fMl9qgxF^+1x>$~gzeWh!( z{=)@mZ>5%F|8ClkWx2Z)BUEZICLey+c3b8Rnbwy}%?GB;0xS^55H;VR)^!Y^(UHk9 z*PJ~0G%=P77p!S%W%YRem^eeTaZ-6PJ3Kkzd?j793G|yp!lj=^Rr!?BBQm^VufR-t zVvvF$NF~HfKR-E;W3VWBWMGP#4z3vK2BjbTzU;YK-lTiZOJiQFY9C?qsjTc7lMkD)QhnmH zc3iAnqw;aEdR{rhcwYXM=bK|x5k}uI_+*bDlh`Nz`?_`eE|`_%O9XPtL;tCy<3=x(i8P_qq71TFi z#BTs{l2CuTEru#jdR6j2fl1C^;)c3d_%g4b<-Eb?>scei<-ba;vO^|wPyzpNXS6P) zW-IP)N@WNvr1RmMp^ypfFk}8d`L1Z8O`2nah0G$Huz+XwkDV#0D9G}xJCUN`~{3UpJLZ-?_tWgoa z-cs=K2o9nDa_*_c<70!mDr%nMK>P~}#XJ{~Lsr9Pi12=bd?nbTluK$tpMyG6{|w16abBE=QCuJzlxetW-@|`A9z#hdtafjMiaS1@b*P5{t2WAhvey z+VzjsOtuAA3VzP@#|_%zQWvcsqVjXd!O?m`IaEfQL=W@r+qauQ#Dezsc{~nVL9@Rx z;~0#+2ifx$I!xYKiV&(wA-iI6%&ZGSQu+rm5fsB69)j4BUc|8zUWokJ;$J)?;b%>! zGC8ajBvUwW@+3f4l~g__!wVta7FAYyMn*OaZm4{7d$<@i#`d`meage}>!E=0GKE)To17s#`Qwv2$D)R;VM)kKYVkI2F;fuEZ*Mq06KE=o zuYF&l-OudFm_jbww76PStsZs$w}Z(nJoym1sj9vwipJQs7NKg?OQGC+x$!p!{txCcC2FK!YSoS4h%W+6~^>cND0h2goy*c;?IVz zG4=BEo40C}0?Ga|wTJjE+@-vuD}a)2vBQt3IfIX_f#)~pNLgR~#|f&d#qmvjz#{sePKhQ>>3&pEZQWb1vW-rv4+hUvDHMI+lk<3h65hk^nCAP!D_P2k3<5 z(Sw23&EgxBaVBqtL5~RL`!nf+EJH3^2N7uKjq!r$MEfN8F>ukyt!d!kM?N1mT|qVr zWWq&IbR(2c-v0S9KWBbjj$1|I)FUD6eU{zlhJU9`e^g!(4%8q`p_uS^uzxoq^(`IuI_cc zB|37pA4892_T*`-XQryEinS^9vd)X2yR`1V0fCohjRucKcw~ODfDNk+bFf7uRquSi z8}>5g1)+GBm6cVa`<|txT8;T17=U*f;H9+hio?R9!mhBMM~xaKiSwsO|D^lJ(q8n) z=vRE^wNOcvyy~^t!s0+ojI$q5O7QUc_l0_)C~ApWc_JMaC)fU!+2~NpX(%<4u}VJ= ziue;{iw1RW78-QQIzfp9>2>~W17Lmm_WR=^R*Dl<9ed@N{ag0TB{KZ;n{2;fw&8H` z-^Fig+Dd>Am`t!AQJMJzxUk4R;ONV#Js7nG(-g2?vg~MrrghODQ22*XI3c-Yarw4$ zs-B8dC48Z=9o0qRqO^~0d*2^)2-XLi@#MDbHzc~j#8_0 zbc#tLlJJFezij{UB|0;KcNAafN{+Y2bK+Fb`j0M6M|=BIYaM2Qh#nnYRT}lwm>^ zxM?eH{Ru5!`-`gJqD$+KkLBfSw{Fcq_Qbnd{Pj*mg!lX3zG;IVF24HUE#u;DFZq(-$n8j&>8PADN+6k5-~5f837W$pr_#=nVZf^>e3qj zpGUZFL~j|M;l@{8K~Z2ww6PlQpUXA_U@9qwbz+XrEt6UXM;0E46jIW zTvk{(P&Cy;2}lcNb>nk9q5$4@o&W z;!_E;8l^C@@dru>c%)~cvI^4=yQuRMH_NjL%#0?17a`uzQ~#+epSg|rug4zMh1QaK zUBH5y>>>bs0w8!Lce{dFCaJy+_-1l?x^CHu9>Ohv+xjbx z%nM!xyGv96Cja9f2+`@^=SFa_8@rE==ca0Jfs>0JSbTn3!~&n2lI zaOe*a9^S%#KS{$|0Vv9*`-`;Cy6)hg0 z7AUHv4<5Az6J@-HFsJr0k zvLD4GX2=Di(mwvsSmUuIKQrc`BaRqh}oZaA))SkC)c03hv-D zK+=082rmy|)87orn;2MTz))AjW8*U zjEJW}@me}MfzP&qiTpyUl%IzyqYmmr)~Am2`F_XTexdJvlJlAk8&-UNc%R4WuTU~k zde>^p#=l1IyP`?YSInl4OO#Q3qlCK@;H(^Y&EH5+vgC$=T8zi018&LdIA?V_meDq? zFh{q6AuO=9>W3DQ5`t*;*S4Woe0($XQH$NGmjFX%MrpT>{~0d`zeMI(7k z%t(2lSvSpQ3Hd3w{&FNPF3r`#R95Kw7##B-+X#0$7%O7z#bbDOeffCiVwX2%RPtC4CRvS=9#4)b(Yz+Aw z-BBQ)yw~L`#{|6>tjvk1{7Du#1C>%TL(cU1h;bEq8+SND?28{@yWVf$i;7|odTcof zrT=}=qD9d~&kXQHYq_!f=JgJfVXH{;2-x%7K|3Tf2_M4J(Q!ed7^0c4k&wdcPv_wiXJ|$uFkC(GWqDVd0j0b?}9sZ5YAqb{E zo=MgHBsp0m3Ds)LbJKq!VIxqCA(@=d%}B78X05NUTM%Zmt_E@J@)tMp z0RtaMPfJq>W>23*C*(GigE+SYPp{xhm`1Jb%CSo08O@}BXZ=3HksxzPMC}gWLbg9C z`%+1m`?z?9pT294_6kS_;H>CgY6EU&FN@eC2xX>Y2TkQH8sTFx*+>|Mkz&a6?>XZf z^R{OV57Wa_u9-$EApUG(QZ6qb7pAGh zWM$cPUp#wW@hm?M!&dfA$_`=ZY7oSVogmes8)f(GHYu8x2`%Y#I=OC3 zC6p;s;F10+T(DMX+PwKqB7GZO$DtT|{LN2^>?eOG*4aHs66Awjvg(G@mg-|E;4nVdN)nYizA}sA+x%of2LR+ zq$Sko(6(jv2q92j2 zpv-$73f%vmvu77QK5`#O>(|G_tHitnG+aHR9mzErha@=w!pfB73y7p+UMjC<>L^Y2 zOXyeYJa+e7stOsErC%;B)znIX%x{#^GcKotwrw2!zs#vn#fAi6TO47@zwAB-98jzX zcH~C*Vts%lK>u0Ilv9_2xQ7&7!IXPE;fE z&{po1IzXN?fSD*68R*pd;I0p}3DD5tkK93w)d6?Tb}0~&kT^@0+wjn3!dfls97>WVkc5H}DRJriy)|RyJYf6ue{n-fz#Ch`~Q@o|G&+ab-s(+V?b% z=HzlY1dWzYQoD1Q-oZSc5R1J=0^x@yl5H0misNi{;<^>*VGsW*5KxPI^^s!z12}D+ zG*r(G>**7|fbf|{+ph8Gu)ck}cI+ypxVLYQU=*|( z@D<|i6K9z?77ZTU3Z$5OSp#2s5qOnR zWy(alz$4-dKo};Ul?HWTHtCsQWw)NW0q_T8X~Au`W-dP;9N>dBnWZ`6jn-UJ^r6Ft zxBC4X(H)apCXu9ExO}-A&=y6*%cg=7i()GE znoXNFotk;240km2G?HnMRdM#}zy65TU6;I)EWNta5wkC33zXTggYJ^|}RQu^cETWhFK>d@cI_0~JqC6f&2xS(ljw|K(hYg!O*!gp0J zx~%c&{UB0SZv(;eth-XD~pi1Ygo z9yDDzhX%Q-mz9q94{$BcAYEbCHgfQrPR;jvY(Aywsh&tg$0eTPS^liCvAgj zTP`~k(fm)FBmL06pxn$&@a{r#IX&T530$v6{d7B_CvJ4`d&keN9$^ z3WV{xS;r~J&y{fxLK`+>@C0Z+7EUD9M$LbfCBMkHL;ATZ<~tLpZep@AZOQH?GB<)G z5ty<^B2i{y)C@HhYx9CxFM5?pX!Ok07F}dNjf`928G2=|w^%yLz4dYp;>3oD|0^FG zeQV^gPlbm!e9O}N&T;suVGz9)cj&!jTkC0VBJN(DJk$8B5$4YU_e|A(Y>>P!tH*&_ z6)fGXY3G`z51VQ_e~!-kZkibNq={=Esgi2P7Bd`d1d;glW()2vCyI4g2@QvZPa}xlcS+ z*gcO9S=y^|ZVzTkp?I6J4V8XjC^OXY*ZH-*C|9t_ve4)mHtsfi!Fx?gfRs9TMn1Mi z20q+<*VV}cmRt=u6W9_WjzFrp;b`Qerdx{#JG}Ix-jpU5CS0n% z$wm-T&X{A<@4mZs)u7DhW9}j0>x@_S&f`t9j3Ypuy@$kJ(f*v1^PE;6kjC4*HTiccKQ^7vN^u(H?8i=%fGO1Iy&^^<(>-uNThkm?uIoeM$VdQ$Oc zV&;Vc%a_FJD0rV8IjMBv6Lfm5a|BRu+u2=)UifKAI?$&N;=9&NQ3|rSu8UiYP>#q< z1jpvk1xO6rXN#Cb+;c@VDqV9H*PUFu#VHJYdLg*<$KypZ3~HyKi7A}sJ&}$YpXjT` z_9J^cfqq@~@w%B#rrOB3czA4kX<&K}Y6^gZDJ>!Z!Xc zyN}E0PMZt&_$jx1en!KF4R7DNRTD`XOpsKM9K3d!`AU$)qI!ski(LA=4pYK}V+QY1 zeEYS5drKa8kUo0Or-TZoAJ1@t({G59Qa|`3$=5^nC3cwoc@~DV^8V4Xs^HN#*mEDm z1R(SY_0FMzOK(E?o`}fPL)&32jevyg+sVlX=mqiRKB&KegqVajn9*dXNNN~B>Gj5Q zL;Rc#P_x2MVewCX0|*+g_MHAOsT=uD(k8VV(?s%4Z}q)oeTM8bE*1kES^=D<&U(u^ zJ^>IxQg6-D^Q%}SCfC}0oXJBk~$ z=+I#b01Y@sz}_L0fJ7{ysRrN7{UYZC80xIwwQ7ROhIj8`H@2-=b4&9%Eg17t4L5rA zPwVQ9wj6~d$QHSb&+pVtZ=wNY`=ed?um=S%27bI2T`VVB4PRcQSyzZREt*K z79XTOA}#iAzm4dk`S*W})S0r0_96OII0w}utmYv+5*c6j?&GrUC|FtKn=V-^q2ID` z(m!#fTz?iZwhkMp=fzzMCp-WetAQrX$1cc*NW_QpaoicM5JFjY4BNE3u=eYZ1?Oqc6U|a0rfSf1$m29{m`= z_@4Nza_jXYLi*9_V)$|)tEL-D3waz@+f`o-F8J!+K5>9={Xr5eKc-8Y4q*wCFn8sv=PzQJ%NE@JV66azsUOY47N6n4=U=Pr@)|&s8`h(FMVGT5u+_E+WMh5#h_8T z%cJ`+H3QLx3}qW}ZSOf|QAtV#4Yd##)Gpn+`B;7BIS$VmA8d5C#+vFWS=`ym83BDe z2Qqk>u!?;HZP_#ILeH0T_ITZeU=rX;+Wy;QtX#C{4*n5gU&BFFVoSek$ruc%B-ng4 zg%sB}Z>C>J-*~0ni0*x6W>-(>BN4Vc^P<(S=*&4d8PPS|wb_gyBjT6FfJpkR@%A_u zu`VzmpqZ+wKG2OV^~En048$^TPj77j?0*9o()19CE@iDSxq1o3%;bFYUh_yW%Q!h@sN?y5-9f3 z$j$cs;mt_NkQ zn?}MSYn!C=0!WcUI*Pk%=&x?lJKG4tMvueGCk`HAGCFfL0F2^45Em41oiK&}n?#>d*Vey~$Vg`jJEV+%#C^l&wYX$?3>%)lZ6b;%U{6u5ps;95reIY(4>As6ruAB_WDm1K2aZ!NS z5c1SZ|Bw1rauN0H580$I$0q%}ySoi73!NY2|6w<)pBA=*v!yi{+@r=mfDd9j%)FX{ zszFp_RA36wuWdk`&%T&fk)@3A(l2&&;XeD^m{z^LjvLH^(Mdc4*^2FwG#{X2r<1BN z^$(Omoe>OnAtf!&3kb3t|s7cGN}fF4eoG$B<3e zS-T7!+^}JT$SWI6&7`$Sy*_mei)&1E6A#Z~F2auGL;ClZfG6Wzu}EV2=*34Y8OX=a zUQ`x=g|_UMgj_@ySi0@QRla$fHaqkKo(28cSQib0WTMysx(AJ$7g2h+bn2koarDya zZk_yBZwzkTyH{_>kVs99Kd-oHw5-N^G?+&zm^bwOdEwu1lOOFl;p@Kv(JfH6b@h$v zSm7Sy;QpYbti#ZXFY04@816W8mQiq_)sIe-J;3XuS~c3&YOI)*Y;t{ z=UbJgY#kKX$l7oEr?l_wCX6wBcU@20(P`yTk6Y3H?swJPzbF2P3e72xYLn`p( z&PHH?bI^U6u|bSvP>6 zC?ool<%5IOjAOq(efjbkdCsxmmWcy zQU<;|kaAkSjK0ha5`GrS0UObype5MJ&ZMLcf?i+}1VFz(;Sc+qmY|N(WlX9jlYVXO z?Gp?fkRa7wSSz;HAO6b2({nSw0=ste<;xive!Q{;mUZ-OE19As1%wm|zy)qr#Pn2- zVqnJ63T`-^qDI;qIlvXvLC0B_G64X{EgWyXJx*%6j`t8r`~x=Z6`4ClLNNq7^{^5& z;Bayp8N&cjNyy&3eS2MaT>Yb)=SvE9`wi1Tj!?#WK#Ctf-cf-XLR2TnNCvFU98W#C z6@x8UlMD!4aFsd=&PaKH^`;dptW`0rcHO!lraQn2D5atjz%fNfBt$A%-dzl~Fb_5> z{`}>OCN-7<{e2wj?EJ#Qnrc&4_@m`RLkuc|+)Q5=LCOXv=! z-9#3vqBZ1%;xWv|B|&j}k zSoX=VFpG1!RVHd-ezb6?^e~d7rzABT+Yej`q+wK)rgR@GmMmQwbG9GH-QS(_x(e1s zNH#^a2oiyr)MPiAH#G0+ zEMh6c4Gnm|_6^nUEb%G%_#T&+c;epLpDPGQsTepcNHMf&GF1 z3`5O^iR2k-7iQpop*i~!0y$wiVH7sJaA$PiClLFSEB#Z$vGkp>}R#9gFBu+i> zk_R<1u&&bOk*&jvhT8|B>y_h&j=B*1frD@hoi7T|uKC_Zt?`rt~ z{lsqC3)v>Ui>_7K#RX@5`gG>P2I*Lkbj=o^UiamaQY6@1hstx+=kf)RXnV!qD zjW+X)JFpM`wdZusTPBxq4ODphvtz)fNFOxXKJ@Nup~j&NRPSw*Nf9bOBUI`TEqrl= zBl|D}Y^7=-!dQrUGIFsm;GaEfd45DM?3+h~%xIying9$cW8k4LK~j+Q-$HV1nrSLt zwupkO&dA%d!ED=ETNfr*74VMZYgmkwZ~-LC17ih3w-vtoG{(T7XY!H?7LfJ3Ar!m7 z@&?emFb@Ba7-&4O8XWgLnc&MOj*ZPnQ+_~Z7N{mmAr7$4>3}rs>b(n!wf{A^FM1(2 z;%`2Imzmoi<}o=0t!Q-$UmvgDvw!Y!8}sJ?Pqn;=y;AjY?pE2-TR-4P4Pvv8m7crF z2Z($?m)IABtAcBFa`;ll#6u9FOB`Y{6CK4+=HDvlYLU5uVZ*hBoaBNmmL2wtyFP}F zR+>C-c6M=t&OL{D#A?$dY^-{l(FYAUUg3TL*(07H%9U3zje6JuBoR%IEk{=j_MrDJbq^QeT1@qPdex^_{Jk zzn3gJog}eC%{mR|a!267vmJ6lWzk>t%^RvmGesMo_dEmYR zFh1K-T1aR~a>TS$U*wVVxyyi?^gC{lgdgHl36{D)I+M9%9%B2!kFFPG`^@>IoKFva zP0@3L?(Cf746rA)G1^wB(h;PX-WS1CWZ)gD1a{bQWDBAU(BR&SrUGn1bK$*xHA*$k zguor};2xvT_9~URt_0s8DjjfGqfj$nYVgC9VhlF9gNo=?>_#nF8K4eWR*qXR#2&hc z!&FLAGFkKi>XtZo%w=_oRjHX7J-)_|!~KE8iGhnbOK}E1EWJaYo^*t8AI&jK!3v&T zfA;J*^PQ9btlJH@SRvvUPT3$0LsUo7B#N?m=G++0Wd_A{M%qzd3J`FW7gqxLg0xxG z*oTcaIZBnff_@|JMCXnjmC#wG<$tQ+LT7@1iMb-k#R+0kT!u#lO}__zztyZ^ag&A` z8Ms1QsXPjr0HDMF~sU)fVuH?VyMQ!@`_x7*{6^Jsh4G7y7Nzt9?lYGf@)I zz%`ZRkDOCA)UI2q4qvAZDk``&(A)C>gVy3L#nvgI6A@bc?AUU5-QW1LGy#x$L|cQG zMo%8XNpdu7J>)Yh%8M-Oy#u;z|~H8oF=vZ@wqmp4B)(zQW?(Jyo^9^T%r!NEO& z&+)K0fSR{?`}Xw7^&l<_ix|Y*wJoh36W&V3$$_(%#UsPSIK)=7IXU+DmLsDU*Y|U9McsP2d{cQo(&NI%n#ERu-9NtvDEI?^6{pK3+Xd8ncCPH^9VysYkj> z^_q%4EcF=F0DVjeDL*+!5S^4T#_7q^r}raQa$2FD_AHo*Ny@>4XV$nAGVf$}ckl&j zGCV%Ab{}jngWn-;2W7kBP}~P#T5+*X#foquIO?rowB?7I*Ocp)nt-+RVw*+VdN@~>A7EY4 zP^^Qn{Pf$f;L^$#dJ+Fij@7_%@}ISPO#|~cfr^o7E;UQ0wxW5%wc8`I>8!)6VvnQO z2bK_jN-~dr_%lSTLPI198}K}V;>gWm(t37x4KckS+CPCR*ws{kjumwuZ6{k&BBvKS zCZe=i{apNf`wbra5$<0#8H+GHs1YeW@by(Q(tZv-T)XCTt6?*=O^$$3lG0OG z{exl{{ZL13?Xsv8`}xp-2}NbV?2Iz6KLUtlCgWPsoW&uOc7Z~KhdQeLh7v9wY1P`S zgs04tqWC$bosCBA3W7&2(*C$<6>J2|+X(yxyd-<(PjpQ^^z>dEtIeg=QT6cVCis-0 zmaHL-49vSe_HaaM?8a+j4+DBV`O9Sm#V6+^c(w-;C^C|#&!5+fgK6gyS^z0TMcH|n zH)zR&b`^XE2HHqBYc(w&0@oi#9|(jCEF5AA=pq5BYHeYY4{xneOk%wYg zfeqGp+zbR!BilmQB_c4G{e6qIL`(y1nh;tDL&V~%>w>w)e!A`dtIfFYBOa9O2!Ilf zR!wx1W?D~M->FW_%#!IFXfWq@S*HlTc@orXN0i=l9%V-Tef>&BMd>Q?wY=sxTL6Lb z!QGP|yCr6TEJ{x#UMB~dzRn0LM3KkgH_YTUXS5sAXu2oc>`0ulXi>NS%JQrqEoz#( zS3qP=-Il?7%j`N=0V+E)z%@kl$}VQzxoqElx2OB@GnLfHB%~BChQAVTh*RrD!xJ9vuyoBIXm+#{k%kf18{f^-Zv7fc zta`s}wN)N3b8`N~x!PT%aIXHV)EfT*<*xeAPVLD5zb;s3uM zWBY*m7_)=`M|cG+lVb0<`B`wpkfwxbRW%2=MQ)a4J6}~MHj^dDRClRmIOld9xp&s6 z2L@-sjw_LAvRL{?n3F^xTX6n<(BLMgZW|r@b?3Gi=l`n(@c90YCMaUY#-$r8X$2uo zh>iGJb-VNrRez2E7r=lQ#V>lI?@e+ZY0EZFWZJvXmQkskXJTWiQa4>ic)0n&y(Q1k>`j}+Cv!~{KJ}{4nB349A;3cOb`>X3o6t4d?I(Y)(Dm~;aQqWxi4g>$EWqZ zZd&!-Qpd{Lxoyyj9wv|%&O`dgvK=fKP9u&r>>X(WC2I-z%CXcu~5_0jkBo6pb;`B znP4uAAN~xj>7pm+twYZngfuXG-+`@Up}R$Te9vh-g64fIB($MjJh*j8Kl&t=`t-G! z%*jAllGLz`u~Rc?C*{)h*GAj_SSI0-z%;1&ukH|r6X-gVMtYY!23rH8u3fWcjFhl% zRA6oNoU|dBq%@%^>pa~SRdW*uuSz`^v47vbI6xL}T}(iJp%6oBStpHKtw7MSRgOf+ zaMB&GU}+YGAo8lECJn^APg6Skz>St*ijOCzOrPSo4t!!t5W$kfdDE)dRYh8oXEVr% z*@!5oui99Um7OhiUr{^)X~dFQ7T{rt@61s)(xX7XH-_-zd9Tm!uj>IUl)Ut%mx+Yr zB&Qd^QLp!dK7fVr@%wyy#x7jgg;GK0eo2-utOCR)dw`n@NH-xUnXFyJV2*uELXUVx z>or5A4u@L;U{E+QwUC5q8_gi#IuDX8rY#VvYOQlsBnx|^HJ}DaPqG>-IEIP3>`5trMF}+`!je;DQ3{bRbB?xPD$%PN z$5XaKPx_8rjut2 z9t?cNxQyElG>arGX69f@@?AP5ap3Q8ouT`>R_wE;_ol8eEl$d#vJv?+>)k7<9 zwzMY$=5jGBh|rDZDU3Ajtbh=CzVclM^conON7 z(`q9;F*RHpq_|X%0sLRea@tVnxAa{s?%`C{VuPwAopq4@-nA+wRLbRolD>NVdfHhd z4an&^r(VI0F%-EwNw)F&Xy+8_7D}uecs(`iJa#Tr1ILl{J|Vi`WBVFw( zpWM*W>YLQ5H@MdiR3_smOqd6cLB5^u+O{0VAES|52K92Y?prm80imM@c3tKrQCEnrvAtD1SlUkXs zHWk}du!t0N0R&{%)Y(QXSg#(&`U?{5Cy3VrwpjD#0X^KX+EWE+olti|+R>@}S~8?< zR|B7>)YlxF?~e}3%d>6tS?CD3UMUvUrw1nqT|s~ZXBE?GvUEim2mTR8a*!VgiNS1N zcY2pK8+c3ojHPVI5gkXkUonmnRCN03hJ<%P>Iv;+{kN#b2ab&ue1tP;EMA{7X@k>1 z^_xG{FGz%8kYQJlhzZoE;Ao4e03?~ft$6ySWyaD@u^3>_0(-6iG7vH0M&|<9zvb}Z z!v*bS>am?}IKU?@RsvN57-siqqO9DR({xzs1UJv3)06$3ef1CY*%K2}Zk^PdndW{u zX@yua?v08nvHr2&zie#2!DjXwYjI=eDz;^-`h?sUEq~+e;_2lj#0p7j$elXVcY{u85w)Dl-RI-V>4s(~0>pz%&H%X=(>YlAGt&bbGmPrSlP68# ze#xhIy$FP;LEkE)dC=sZ$EX{Qph+A6V?1_@_etla@Bejm`*UaHxu8)3HIg<+<&9qJ z7`vP4wnned)mQUB{1!n3zL&q=S5}CLBf&n4BVFb=P)6;?gobJZPYzA#gZqN#jvu`e z3irSiUA!k}q>Z0JO*wGyJo`h02Vl^i&o*?vy~}?8hU3*){fREo1L`{>$;I8x=;a38 zn9~E%!(v>(S6~OB>!jx;Ym!&Qx?Dg3WSBO=W=wJZ=GE zt`Ni(RU&#qgf{q#>x$HZ)NC8QN-k#CKI+8``1yR?bRCQ(5(k}{f@RG<)EbLt67Y8x zedVF#-fa0hUD}GFtT-XBzZ{A})0M1|5-n^{^2CNk4K|XZ3>vQnrvcnfOaax;=5T0Kxn|m zS4|h+Zhe4bqN1V#o!3+J0&F{Ji}eooV@K~IlB0JK`JI4zR1SLv6OkUVo4|}ZQei`C zY^U8x8vCW=kCb><#Ou`Oh;8?vY2)}y4Af)(xc`LEIQ4bZK|8ZDR)zbBG8G7A0$hJ}z zARBr4YtRu8YiY`5xqzE1T=@R|(ZY$uog)FPwr}3dDww9?0fO7r$mX5S{QRMlv@Tc+gd2)e8mMd32M(wqeit(bx zVq%1-yErNrA!@(dt%BPHb!NL5B=W|wisB6>^@ z>7E_edYV8!+AV$=he<0HfO@z0YkT$#u8{)?JuG?9oH_4mZ1C(mQ9cj%M2>OQwkhDN zGA3t2YJA%dlMaro>_l7}2QMJf0l>APT3S+xhFi95?udhF!7u{t+Z$WUj*h=`Qy#65Y^FZr1-DHWpo4T|rnF~MD=BZc~@ zAIiqGe9xnhkfej7s7DnChuidkg{rG|{fUN2XgiWdqM-WWjaB;2=-@6)OM_4E&+;?7 z_H@Iy6ypk|-l>1BBE+`7@PDJt8p#8HgRAz?GdVML6K8Y{cZ<_H8}+v_BmoYl=lSb$ z#TbOB>mBy>&H7!oeD;*PFKHOdso7(n8<4=BlJ?LBF%ST}$(etAmibL0a*+!Tb5{!bb?(ctBCBT)Inl<{GOH*3br)vj#6#uR?hvXJ%6;hpqC?>#V-HwL{yA+R;>8o6$RV9bz*pON zQ(cqUQzAd7rAe(J!@7XE>dvLsh-P?>*xC_%r}Fe2r(9A9{S3dz-pu&=^SecU2paN74Y}Rriuf%U5pA0beg{j}YTrKs9Yt|okPM=g(_|X`<{VZZl z--xAIEkwpoGZkli^wxW7Q;tqCFnC~n@)21wD5z_7c2oN@-d#%Vvr3U5MLVRk)eSqq74QOExlhB7kJN^a|=PNNb@5Fqa2Pj9RHXt9O zf1^{^yeZO13MM(9Mk6%QtYJ&VE09&Ps=7i@tKQF{1n005a+$_;1r0~L);ZaN7ZT0K z1sHxvProUxg*G<{J+f;U9S=5Hm&wx$c9wZcKXf|~N}BfYQQAUD1Hyv(#1DRgig+~S z;%7!s8}d#U$akO*M6$ygO8B(upZ7}IlfRIr#Uqb|5MGEVKm^a@FYJ7a;^lB|v;Faw z|BbSj#Ku91JpUDb@^9i1b$Lw0m8!%kb&;m4dCS+FaaTuZ zJaT#`QL-TKo8`CTCXp8lv=1@GsV6DnR4v7l0IkYNB2U5^(=qJ(e*hiXu~1La6d3Rj z11chiQ~3`Q-0jB3u)evoGRX#Q3%Tvo<0D;1mO2!DYR1X(2~C_R?Ai^DBk%B9OGyQ+ z<4S4#EHo%+sfVA;M8XpdSSFrl;hoipyg}RX*FIo~CrrcDtt_+NbLkFo4QZ(xtpj+J zpFVf1&sQy(Ya$wJRyL4tdS>Qra*tgtga6PF>yNjN9|(FRKKronlKfU;a|G+X-7u9m z-qUQYZFFJ8_U+p>HA{OT_p`Jw1vsRhbk0MLhkq*_7$B~pUGfqeC@VkM@H>w?rC95Y z)tG#Bx<_`9<#0PuE-tXLn*FH|ltQFwfHqhiDxtlY_W1l|MunuNnz!+AJ_HGkIs;RK zeu>%l5@F96&iMg z$PxI}IB`aSyatv`D7It1`^Q9o98;AA9azz-s6GB7jd)*@P?sUjErwT^JGAtiO8!kf@SH1-XcBK=yXQJp)p`bCpsj~f}m{lFn zTc9uQ=o0$)#5a^oX3Q6iT&y7P@?0~jUB=Sqbgdt)?gNRKl^qcgVV1LM*Wrnyz7Gi4 zHQoHe{4thiou-vzJOUYe5&J>xc$Hr)v+)Rgs>cbRVH?5gNFq&6T}=!x@!=@GdL)zoZ`%ZIqZ61psmeBSYzMy`7y>IV-hje&yw0k#+jIYlPe@?*p6mHoIR0P z-9!UP(y`Lx3yf}CTSxQt#Il{yZA@GnsJKA{yll9I^Jw*lo3*o+Tp_eF0wUzV#n-RE z`K}Ob^L`~?f+mg2SXgm?*FpThNPkXGlY6(s%IZ1Em2g#j+Rhgi#4JI#y%#g#B%wID zS|VT1a}%E(tHk31Rc}`0O!Ljtunxy&_FSPAsidBpp4hjw=r!+ayK3fg}b7 zTZW(O&m=-X4SYltC9bVcE)xx<34tA-Fo>2J_JFV>Schqxr-ld+Ex=5mO(5U-p!opg zHQk4J8DR8+Wgta?lyj7#C7@+WP`q_0wZvrxj4mIDCNsq>cP1g@A)Xq1SAMEO@EbVT z%b^)6JeiqA!X-0$fkWb({n?ASU~;t;oOR(v}!WKFm3-M5ojn`K++IsR%&OT(p0HhvE}fpXXq99fuS z$Bhd#-M9$TeHiZ^MrZa}g=-C~Tg`VyEA#pJ37H!%7v?-eDUGyWf9%*h)*&~X#nX!p z#qMMiUXKdRyO9R&nN-VPortrka|YsU`|rAty*nKz|Cx`GUO9nHznr;$VcKhYH;`lR zp>N^UTYo~OTXWfE7Z)dP_?NfM{}Mg@+7tA@dEmn6;I;wK2=!5YYuqB^w7lasAjm|u z7xPRv@yM`Sc$|oz{`2PpOiEZzUhl5|5fO}ZD~q09zbr=@kI5XT(3nIH{Mc9*RU!ea zQnk~c-Bd4suwC}cI6hP+%YqEH0pu2Nh=f*@T1Zk+&P=2YQbus5lH6b^&TLVCu{c3vp5rJazDJq1w8A5&X+^>l&)g%E5{QT`q&*~geJk>+zf--Ask3t5 z)+-}k*kMI{Au>`#0E7xfKT=+ic5t8qQtQHlbjRB+s5RUXIg6B*Y_+kdcJ}Wdg?v@~ z2oPW_A}nR_ar#AoOcAljum2@1p~%>^ACTwX;wxCB5Ba<5{HNAjQS^9E zoI7Tv2s565k&4+b+$@s>ZqW!JxcH()BFSN;%_Dq>sxAoiUL$sAoe}IWg($)5XH9_t8RyKebLWnQ%!#Pqn1VAM z&e6_iBLz*oVPXzmblgTLsJU~GT{PEaCmp>q>#CvtOTPar$rk*~Z_opgz;Ws5cFf0d%?>VUsh1VuCW^k+Ba=eV~&> zx4vr~{#~;bhf{-U#j5*l=zTRdw!->o5=ZP~;%H$nricky4MU}8GI6Bai74mFik!yP zBdVgu;3HvSa2+}AB97k2k>>!EG2;EDGPd(p+fGDe5W#f>5VP(a{v>CFO?az5Gn`p- zl(Tc0z3_JGAUYbP37m4v;>^*_0C)4|&)*#Sy|Pk8P8K9|Jo+9NoT}nLs?EhZ#I=Ga z?4nNJw&dRivzY?6A@k7~t~=c$N5?i#L2}5^1!GWLxb>`fPJ&-VudbrhB(fy`KuU#L z+<1O@bt`HcX|XvVE)AsVYE7EB&recr)M(6Kf6k)1C7Dhl*~B=pi$OI}HK&p4`9DHh;h@HBA{VuY@Y4WwLD0JnT8e~ zZc^`X%VZQhU8}P+z?0O-F0dlXC(CGvc4E)-;d|9|^rd$0-~WE0@7uR;k-yy!e~3vw z{Z1|a>l@#1X+NzOD25DR0{WA|AG9`3#1Mr${D07Nn>}x%1Fz|=KL%ouXI3)~9)?`X znkFa;@8Ggq6=XSLl*N4Tw0t*dCcO`qQSv1?Onj|bI08SQqL3jAvaY#v6z=h_Uzc2R z?3@0r)&I&6-5vHD2W~D4la(b10jT}IzPok+gAhyv+6x%T4kCx-y;}t(cCTN?!4qYh zf8x%IQZhd2T}L+&gcTt*P#WcMCY6oYK>~Y-MOxPnl>h^;XpCHY0uZt`Cw1+)u#7ak z?ExlK62u-hW(4b$ogtlNs%sbsoR*!vopA!82XEcHiM{Z$*hEIs3<7cVS?v4YbWqjS zDWJ<%UB(tVF=m4(MIwJebNCQW8h9VCpxaz;Hbeo<0X|fS`J_w*+?<{h^ht6RVkZXs zpkKq8(K1j_R9RET)*>Q|p_+M`l#~UoAa@nBPx#j%)WdgBz<*8->j2pL&+OUVeB9D0 zJxbNyjPGX2cCTb7L-pR!bg}Wj(L67g@1apE;_dM%|jfDzA2J_j-H($ML?f zX76dsVQ!ckJgLNy!4}~53i<(WL1=-U$6T}pMtDG2gCLvQ{3A;sYsqkG7t02E+UAGN zL7=k=pC=Zqiy=g!;1CRpFH5DRCr)lBS8d!_?r5>u7`-yIsbdCin>?ix2dDI`dX_u& zxAhovK}Ty+`R8T{B(^ecV{f}*BiF4fGWZ;Jtl16HqMGjG)EhNwG^ly&jyuKn@c#oL z2xamG$aZWSk0w~qP}U^G0EvJ<(+K<; z1H}vJYi(>ES>K8dEPb@9{tf!-#B}Gv@9M1a5aGM!oABvNc4>|bBALjxAsMzj)k4jG zNBOzUV`~*!nYg8s7`FrwK1D(YB_&RBXp)qkBqeo)@djm*y^A22imZ?H766#`^04Ix zq)LtGp_~UU#P-jpgrQ5Qk+yji*}f86gO9 zGH$|Z>I2!WC_@2K#s*nIHM8i@?;+^i4#Pg_blT2jQIXKDCeuK0svDFbup4zeMP)Ye znUBu4w_Eq&rfc?>NF>c{&+f@TIKrBve9{kKMQo;(#kyJ8z?aIp?BGdr?&3i@=0s-3|1Ky)otf*}rkVRj^kXYf?$ z?FnusLGlWvv_gNN0nfH2%`0{MfWH7X%zn%o)?>xEZKIsC`OGiU``kG-!RpxVc{b<`Dzs0|=`S{G(wAkR^`9%9fEs#GJ zLxyf$y9SI-Vdo*B3Lc%}B!7$#p9>^ksM9mHOTej9GD`>MOF3o;Stf8>^Icgs8|%8t zWDp&la@Q2~PsRU`UL!iqMhXGgn&JA}ZpOrk53M%_0-KHbt&`uQYxnNg*YroQYik`n zpmSd0kb~I5Ha#F3OE}MVXXdkx- z7SJo_H(`oz>kzb232BOOLfjVo5%n5OO0{q;i``N=9Q}$IoX}`jdUcdt2qzF_Zk;re z@u)?q0#WEV{ABYK4!=p{%HQU&c&u1Fcj;|*r73AIw--!wFd{E9_MTb)YvRJ=u7j+# zrZj0&P-@t4oZkYgLRk1W!(}oJIjomtC%S&leqcnD;UQ4*(A({owWEz!H12^382bHEmL6)4= z&W`L6hJDTwXCNeUxON~Mq=_VO)68e|qFn`r6QG@#&nx)h(_ed)FOulWxk8g4j#>X0 z80;cYVQ8O7#Y7*)3DPDKwn;%UOP$P@gBs#mwE9^A{{XSa(ZeMu(t*AfcbF1FM9bC+ zPoF8uQHltO$I?Du)lW=gxS;Xe9?6lYa!xyz6vSnWW-VWmwq-(B_Oe2p3MnD?gB~G` z-IuLXazD5DpLsltc+fn3K)JvA&)<6I-a0lN5saAFkb;p+eahj%E7o2D^o)lC5jquQ z!u4mH7A-`tg;TCH6u}?$w5+|cE-e@7oLXQ^=a)Y3MkxgY)Cy{v@=2&+R_$m4=Rs!p zutCTCZcKlV7>=Mpo9M5rV`4|g5GM+#==t&A*w(*Rc{KY~X_fo<*4eYID&3v`8n}A& z=w@qf1{qH6Z`7_|qp1O`(fYnk!Ek_MOzN}zPoz!QjUvHP>|)aEs2w? zZ`$3)0{qCdc5NQ#Hc|U|pmTOyvo)`NI_We?yfw_h)aqOK<$_@j-!3T~tHSf4(1i>{4VkjXP{XP1mzW4}FfMsfLE0<{N()FPOHt0GJL{w zARdstX&eoU`FThZWW0ZFy}~Le7FX$8MYN5b<)~L3x_Yi(#nLHG<$vo{mLxh0;ql|s z(@|{koo;UDRog$qAch{Kk>Eiu89jE4?UD6bhRj#J1KCz%=a(Q4zJ5->X^l5FV1t>= znBjA3v-=GQiXy;pE1<$JZ==H19KQDFh*Iy|c@#zHoz^u-M82fPT)S|TTb62{(|dv; zXp}KaS=(mW>x%&x0$7E|vhil{7RIEAM%phj5;P|a7} z57Lk2>9sg2e*RO=cO63svfkq-Lram zk*N0G9CV*ciK;qa(eAN(+XX=q2cvnSq1aREM}SHz*5;jj?X{V1n3*2~MmR$WHly@m z?q49<7624?R@CBNtiBS;*%M3pzB~BoFpGOch^45UQ^FU!W7ZSOm424zk3j7>;Y&6E zoOBeqQwZ`xly85P66!BXJERRczh}!19l~hBRUbO^O5E?vQA0LgOa8F@HzzKmt-Va-@mVnF6MN80CW1Q*J1kYNOQkXKA$y@xk~-N$2!HlY1p)r zf^9Ceo;iB-R(Sn(D?6|_M!M8>>Ex-E`MabfD=JdE_=(v#;~>NMUorG7=^GeW+rB}N zbnnrlZpm%OFN67i{wszXt3Q7HJ};fov83_|_wMau-63aN`lAhlAtp#T z;%$E*!&ydLzq9X08Fry(rj9y+=Yq}eqNRu5h{QfVKK_^I9oh^qS1@vPjOL>PI43h` zHXYXH`s`k<_yti&h*`Yl1=Dpzh@_zDcaINOx!eI~BGY%8Quw#mu{SdOxuhlZdgtgj znrqTW^YS1d-Ns1+#y!r?&dfa3ysN%?@7|9-EJ(}EU8Ry5@HJ5ri!-+TMblpVkJjx& z^!I+q>pUGBudk2KR?>%_I-^vfXwtfdwxXrSTlX|>=yX__5TExe5BeCTHOwpN9cFsr zM1Q0A((%$8+QNJtx=@AjUSC# z9lZJXCZ_N8YGvT}ZDqN3UyIn~%d;6R2W6i*`#T9AlEzb5L}HFL0c^B!Qu2)V)haC* z(vp!)nx*C(6f{7x?fhWevnAu-xGWt=SEqiT{W~6*^O@jVn?QYXLqh$ zzkUXRGYLfvO6~i{3+N#{Ml@@)g5fW#)t_9udi5+s)*;=ESDWo*Y_hsW=}+lZ?rk3Z z%C-_-`_2>k%$t%*Pc;1btrbZ5z@McL2PD!VH1ke*8pl-sFCX2?es4m=$lmnI4yU`# zl{0&xS0qV%MmtXO3v_zyxtzIjabu2oB+L^)cuY98+J^?~xax@G$?tEG@6Wx&jU@0< z-`-ze(-Hb^+?%Yo)=d<@tUATj9MLRl^@q)3-cPoU_;|dii&q~8N(m-QM^We(Tk+cp zG-f;p?&({Wc%7K?oC}JJ6AR0}-&J#%NPe7hWzES^r6d)}73HNN-#c*N`$%Q?WWcp| z@810Ynmxm@_5})8+(uOTnwuH^JY_~*`HV_`ASI2wzX;MVtl+4Afgk;#m2XWk^O^rJu(Q;oOL@G9hORl$Whp&lzrg`t&>$$s zJ!eZqN+?-ugN6-_IOGO_1_#f)U8q%ubWUDDiQTe!bAg?fvTzzF*+4rFx6M1orU*nO zv*6iKLGwryX~L+`_0?9^9>?AExRFjzFchCX+4 z`uOo~m@QnwO=kO-{T6!rPSFT%L)iw3eFeZ~nVC%oJ*Q}7=)r(?gO)rQK{AlUm+PzH zaO#Gf1Sn|F(4xQW)%oLmNz3pukmadB9N-=lM&n#_s?Sgwc z8o3;?lAE!+IxWsVQEEP%m=5VAAFR4)BT|U21mxu8(^6AY?Q~o0ia$a2@^R^cy{LzBNN?rc z8+_QSzFdzPxL*1`y_OcYV}70?S-cUFmp3V^=BfPr%d}UkqeIt>BqLn6L~Uz3j?3vJ zKtBj0DPI#QVqZdUzd)eBy|}(Y-M*{7*Oims+S6Y0{=Eg?F^L5yi{|^Lx-KUc=6I|q zevXOA8B*z4@Af-Jmi+qlcK_P7SE8a`JGM+dN>sRf=vbe-o!zxPb3>FiXfE|97~V<@ zy6%mxegPdA+p<;h`{rAyTOniAO0t$%Pk*gbWL*We!5}b}085w!uG!a79`h}$K&R~fSqV+fm zY$$~#QmJ)xH%@qlUZG|C_AAa^Lx2(7^9Nl=PbivO;%tYyRL1G0fQO&@x_BOg-=;|( z$|8nid+D&c78kL4NV7DhV{Tw1CcptbkUw&io`pxz_k`34;EAfkT}aae`TM$(0?P@8 zBvP#K6UcUYXlt7h0SgKWJiD|Xx_X4f@e7q`H>lK&@8poHf963x;a(=8g=fr>>=)0f ziU=k1b7Vk*o&`z%k&tlJWP1%RXoFJt6YeU_#)p%37a_-e3hK0u8z;3>moB5xc#?=d zC}RG!`oMukJdhsKPHd&pS#>R%3dst$H{#I4@a0dA{j=oBMcB{;RRDf@LDr_wc>wV`((bXx@Q4=^?=jW*jPe=6c?)ytDV6$ce;J^81_-*NIn#oQX)W%;LSOYx^m{ibP3 z@`HX#e46~zZG_AJ^(HPk?^5!mpXJRPvn#9rAy>bqd`W5NOC*A5MS@D_?5XQ>`0$$* ztKhm`k6adlFP`5v&D?s;8jow&O3Op<)cnl4^Bj7Bi*-4%{(X%ymh1~E=Qk;J zTq_t*bz5$hNwXfn)8n_P0=tZR+(j@^4_;&J_Lb^$N#a{o(o z;*I{bc}auyCb^puOYW~ghc=6sUDzA*O>yu*OrbN)aAd-RN6C$GDSP*$V^LJ4OJe&} zYoFE;jTF{bf0#WkIoh-df7|l0PNTfbKJUK|Ry;i3FI$fvDN4V8Zu)z%pWWD2yT(8W zZ29+nI~I9L*{oXGN`7ngTb=7Q{IzbkNZYjiKuE`;tsD5^vApjOn*KhbmsUS7?$(2s z_1fKZFb5)=zHHf9VuG|L;^o7U2&oeq$Sh=!*!6!i0 z5(vp>&&Bo3hv;S@T+Wt>BJ3nY^|@A*dBbBa9!uJzB28#h#S9j_1) z7lo&Cq9lr*-JyG|gLnRRtt5Y2r_Ko*z4$fvGg6C42P?2CRH%y+6~ zg4a_HGh>816P^Jb4RR{8tt!1E5HixP-xFpCV9Idp*loIHd82qnpD7ePIo^eC-AHz* zKWUONODhRGr{JpsLZNk$%5Aqtvtc}gOHij0r6jGQw3DUNe%RX4{L%~V?LZ`bMAIpr zvLNJoPx(FR*4jLXnn#hz@u*hD( zWqg80r%oe@wO1LIvpe;X{{xWmRG4|BUL zl}3~)78`$f0|lRkv6>EboP+~i0Gm+t$04>Y*?w1Kh<3KN$Th|TYWMhm+B@^0D$gv9 zUz3=qF`Ax)L`+;df{GiiD4>u{@QMnuswf(X3yZknutlMb(T;(LD3D-;s3<$Qa9IV6 zNn->76%b_+6GQ}AqHsa>`5iLVT{Y7+HB-~`*R)lsGAi)h?|t8Mp7T7bm+IJaPOs1N}!2g_^)UTLuNrz&K7`cgvvk>Z{vot$8e6B zA=6gB7qjDxHbdprlrf_t2&-34rcE7`%}RJUrYd%n!LWd&?KGxX2Ob~uV7J_27LL2O zwy`murcxIY_nJ$a11O(`yrhhSRxtB=;WG*@cRF|jH0PL*{*N8+{o;LiGYt)mO$Ul0 zzv@{>Au7;W&R`K)L1vyGLIk_I*^j&J&f_L+yFMx6p;HlQ$X!^eX{#-R+9>X}LP-3+ z1Va5F5lP7#*{Hji8t@zr7Yes+{C#r9^eK9JwiuV^C;ptue0tt`?nODnGiDU7%BJV4 zm-a&5v>bW)Qh5l9i$7NtJqfmRxCJ=V-eewvO<}40Lld7}N4AcF^uh9zh-4wh4VkNi z8jJy1=O~2ZKzO+}eGFoV)Af-Wiz@Aenv9V4c5}nDHpK?L&UKs6a%~VP0=jDeTW`Mg z)@4OQSM?T^5md%?RuwZ(l#i(d-5yXq!HRsWK zhL&Vd)P-%SmI{V&t7WcCJr9_ z9H3UCCR@ZiP!FzSpIl6DBAi2%Xge;*PUz)jniCz-e1qM4p6^`L-_t4#sJv5LOZCLc zE*QqvMnft!0iE52e}L#DyN*htr9uj=(G$+PMJ=cL6#f@=!D-t1%zsUQ3w+3?B@#`Z zIrHYKc4o#%V4x~I3UN&2Ncg%5PD+ilZmY=JY!MO@QhQ*bOEwZBQjuHqn>$Xc+J#EeS+7b`AZLDvX9|eyG9a zfGmaF>OeUDY0CH28O;fU=A}}m65{flUv9Tgtxnl?;%Nq~Wcm3|J}2~SpT-TJfd!hC zan>=XMf%XwyW^>=ufICT8paT6>$;~e#9}PGDxAf>3R!binCo296@7+(l2E6-H(}7O zhS0#k?zNc9EBL$XA}7Zu&OQ9@Tk>w&6DJJ;PVrLn;{ zUgFroSP9I|$m- zm811{MRI?ov`fbj5QTTc?^f}lN{8UUOn`Vq&nO^N477(phgoO#;~$<&ANaJL(4 z+=Q67rTWG@G9G*6XJs_&gu!g<&^{EmXZl-T&AMTAPeJRF zOrq!12@`%iwdHKx{YO~+V%Mhc3cucexSY&}739<1Cf%olitDsusIkf+`v!nlgmHgj z@KA-~#wIe`h~<6FEiFm>`vz|Ng!vnN?Cv1XwAzJseP!a#<{&%)|M_?mhAJ{t2L<4!k0p) zw0N$^YGi>r!6sP!(!3Y_4!tvI?3Is%mzOlI<%F$5#FWx!6w)6a9(mJ%N?Gf0D)0Or*Bf$M3{vC+dB$#rMhWUwdbD>|y_VAT@xI=qXmNA) zca`P1&fsdr!$@-Er+^na9Pb$Y5?!&4n{<0l!IRW;W7$oXwmGc_{$4aPp#E`btA}>F z)?ImV(^q_H8#>JWr`d`JpO_M3EVvZ$D+08Zl3`3Y8OQR8s)wh9m&@SE@AA>r+(dZ4 zbhhi5cY0J+Nk&gWPmj-rI%L$<8Z`>v3?8)vIM|YyTReS%%jL*R#J*%kYP~kbAbE)M zP{oepPkIxfI+hdVg_xAwM%h5bUMc``O&zPyMJiAMECjs6#sERR+J%h83A+SyxfBEh zx)_L7E2ODVt*XmjR?rGJS$UiEU7G+uA3{w}KJO2ywp7}8H*Y>CqN|7uhzez()@j55 zvicg!_L;>Dd9}kIYfJ8)he0AeE$yyr2Z1&j5U`GGJ7I+{YWg>hInh(TGY(Uc3s4J{ z%Ys_Dlqm!dvL-?9_;saHVlkb$mQ&i$!E_=&Gr8zCu`&4Q(Nh4K*EDB;%p-(q35FC7 zo_Ef~&}bs)G8lqld}Jy{QAqs)!c5Ls(*YKB#%3m^f(W?d#zidLGd;Spr#z^J7$%?? zC3L(}UW#ZzXpt4sruZ%Xoqj4{wl95%UqQ0QAf?8z74(kOG@UP7KWs|Nimn4f>AD~= z!JZ$3EsSRx!>DV`oD@P#7$w130<#M(nDX-ry80QRbolG9Z7IS9>alovNXP`1XHTE5 zBz6a=(V)%{S)52FUhP&EKJ?tVv@Wb7Hvx6`fI_@{eBylj`#_e*+kETNGBY#fxlcjr8O`Gi zpyQ-kZ`^oVE~|tMD_@lJs&hY&I+wO#<-OE>%mZ4=%_^sNuI*DN`PMU0S3X#{Z=V;I z2+a!2Ck^oUq>jvokh17J>gFo@!ooXcK?AE~+`m?!E%roV$&|N2ThOEl0NBTDzF4le zCO@7Pc{?Z>gO1cT!j!T9#2hY*Z@x%v9bWT-VskFE)kqbP?>c-nHGu^Z?$c|PbBY!^ z_I$E{?aM@_RpI~=@HnElilSGzQ^2J&7UK+Wbu7pt4s(vulE+muDawV?$4s7h3V3F%XCvSj!2sQ*Qf!D?<1}rtx%f;a;Odr^rS~zo(^n3w&5g zpI#(KrSccYW9tpwN)fW9hGmsXY4(c4a=0{a>@RX9)}r>ij-#>n2(Y9dV@ckK{ZM|? znk5)ER2Vm<9JyP^GL&#$(laugc~ZQnHk|n504e082KbdrqZi2-E3u0Z0>6hA^?!e7 z-2OaOSx6;St&}m7L8?ImUJACX0b-+;6TgAy4bqYvFC#-J%HAA3I##>_@DzGa9!2+b zneD5sa*7Cygt9FeVk0`^Kvm+qQ*@!TcmsH&^5%GB!oe);Mzt<8)6J4LhkB9u>4iZi z*H%)LUIK7W)G=Jb*{}g%5BxLE!6W?H@Jl;LdN}_=HL~bY13|e^Z5o= zsq30?-znUAi?Od{h*>AG|>?}LOs|Txm0hNLpA{(!aWj7*mG@$iFAYrMou{puN zgw5IVHEg#0uQEtVaG7j8#?Th?)osqY2D2jgsH@>2^jGtel4TIB7#^U;ajk`FiLIuX z0`fSJiB#qS$tjOd1Lk{5i5xOt7Ury_0rbO!$XFV4PFx$TxZyt)$nH%2Vad_dKs~_7 zR?`b1nESjJq$IZ(l|bSvE%6mq^-4e%AI5hlPZCR}ibo2w;YvVUG8LP)wss7#LzHlt zuPEdM6?v+CF6K2GX2&h+e0WSY72;jh#R>>|Ixv($q&b21%fFqiUF1!wv~qV(-uZ<$ zVy!$Y!!_4FxFDB2W;gvjooEetgWV@ECnu-$qG%|Dv4-lL94&#h!V*BWSd(JJ%s|ez zS-SKvmJVUZc^#{B+dmY|vrIXoVN)P7~4$LvFMNfZvLm0Q;OWng41(ar=eHbxV&={-cr{bd#A3 zjVV9=p}ouOgW4)(#Lu_5pS$UGLUbhwL0MC zoykSUycl`8(g??oI#k%wQ*I2c1{TYr#t?55$wOO-87_CoDJ}#z#qS;$?%kk6G+e=U zzeC81l^`4w6@DA^jW2sJju2B`Lkat2qrasPyiik-;wWN%xgZaW6m2ApScD=uYOJi3 zrpqIY)`<|pW{)=si#&JEndc{2mEhNKZJVK(Isb))emR!~Gl&xmEG|_E=*D`W{!V1) z%z9Xi%K{zzFb%Ta-Wjq5dDD(nz})@>N84z;s2~JekxW5 zbL_v)<;gL(`e?2g{L)Jc+Vt-_CgnV|yMMC%%Xia{Tw>{WF7~AE5-OK46>yQ?$BB{j zo+;5;gUwE|m@;#w1r`mV5(5;W6Hr!J%ZpDlIM=x?UngI??=_kcTZoAR1RU3YAefzE zsENHgl`MR3c#`EW-Jb!f)Zpl;1_o;ovQ|>2i{6N}`<+33cZ}BaA|_m}>sbA;tZsYl z&z&dNcVi{oazsn>qeslhoPeReia{Jw%!e4OORU5^BCs!Qr=$2CL5+F`f9QVxeAKl+ zPMfw2#A{L|hZw8ZDD&+cRT(gUi$kG74*-|z zS^^twe^_uW;m25Ahs%>02?4|T7{qOxFTt7vR%>s( zlnF!XmBPs5klC|m3s0!LcS`<^?U5n7_w+KY7I$hy%gx>P5lIQxq>rM`J~1n$atipI zn&Se6vSeLY0|D7ITZuFD_+E|T{QUeOGZz2F!S{O7Wf}?$8{TNYU!?EGhq2?d*WyBVC5mx%{0bF0)Hl{tpDuQi>F3KG)^nCkWrF9d>_Za#tW z-Qm;8phBuNkJM$DuGV$D3U28D$THN4#ydaUGV+~jTG+C`e7hM7w}%1!6V`H%)crKo zk38BpzT-Wf7iy+NbekQ9aFjviA|ruaH>$oyOAYsF)+Z-jfBs_m#tWlr-*$H$=4|SQY-2}(O2MxI#e=@8*>TRJ z{`O)qD0rK=7iPt?X)X*K3OkXyI`!S6g{}TjWt$dSnpOK z=tefypT$9&v_^-t_Ad zpT?6>JdN19GzdKiXpa$Nl7|Hj)^UxX1J066VgvLO#*m4+xi`J+>2Xb_Lv1;ZDmgx6 z+en!G1#8WH26hf`vW!k)iGJ#)3OjD=v0%|zE?u2WbKaU6aZMykqrT^k@*%sZRBD@= zwlzkPZvaQ~cZ9JsWLUHvhoFm-{_M_cq1KqkVAY!Z*^1|J|H0B_d30pQi+-7)%jNh= zddIZXk&`oMPGyi&Jnyr7?G`qxBwVSIN${fjdNu2-fMOVJQ&T;{H?`+2fz1*ovA*7E z_&ik|IK#l}S)}N8bx+Mw#i9yxNr-MtxgHLQ@x&X~?%c6Y+@H)W#gD43r4^5BlU#J3~VkO<$K$(qL3q zIjljqGuUI&-qYie`UTzrS@;aD9+UgTa>6|sxGEi3CtY4~=WX;Di>FxV11Frnzy z=6=DX%M!z_>=cTZyObY)V7=@(ltNXJb)MTLn%u%`JkSTk*C&iniG{DiGmuDVP_4gj z7adA2cw6LE!FZeay|Te=vBrZjN8fk=Os?>;9NXs&bW-sM3y+lHFc=wn^<~fO?3Wa; zu%$G*@^l{zL5sYKKkNKgn6pOYrEh;5>N9QJH$ROSAVL3Ej+4L3aLTv+pV(IZ`Az<_ zmFJ)DuDbu* zS3LH0Y8~k@+BO5DtbB~${FsOMMb)Onj`P1i{rGVh1(Gv`rjlQkrs;38=Xy`t9<$oMsOeEY$_eaWA*{`MtCyFdNwm!uWF ztNGV2X`W+xu%K@K0V8w2j*br9*o=Yi>i6EpmptiT1)Qk&-4RosLUH$(DN2}B`e@Rs wMf~SiDm{_GTKbgxYnpej8~CI52lW}7ZEU^zxpAYe{DE@uijNaN+_3-O0M>e1`~Uy| literal 82371 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 LSaNaEXZ!vO{FE{s From b71e7ea1e364d3fdcaf543e84def30af32c09fce Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 19:15:55 +1100 Subject: [PATCH 26/27] Tweak UI for diff --- CHANGELOG.md | 4 ++++ README.md | 1 + bouquin/history_dialog.py | 4 ++-- bouquin/main_window.py | 4 ++-- pyproject.toml | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4234e6e..86bf338 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.1.6 + + * Fix shortcuts for next/previous day to not collide with Normal text (Ctrl+N) + # 0.1.5 * Refactor schema to support versioning of pages. Add HistoryDialog and diff with ability to revert. diff --git a/README.md b/README.md index 404c4e8..ea1cbdc 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ There is deliberately no network connectivity or syncing intended. * Data is encrypted at rest * Encryption key is prompted for and never stored, unless user chooses to via Settings * Every 'page' is linked to the calendar day + * All changes are version controlled, with ability to view/diff versions and revert * Text is HTML with basic styling * Search * Automatic periodic saving (or explicitly save) diff --git a/bouquin/history_dialog.py b/bouquin/history_dialog.py index b4f3bcd..1c906ac 100644 --- a/bouquin/history_dialog.py +++ b/bouquin/history_dialog.py @@ -77,14 +77,14 @@ class HistoryDialog(QDialog): self.list.currentItemChanged.connect(self._on_select) top.addWidget(self.list, 1) - # Right: tabs (Preview / Diff vs current) + # Right: tabs (Preview / Diff) self.tabs = QTabWidget() self.preview = QTextBrowser() self.preview.setOpenExternalLinks(True) self.diff = QTextBrowser() self.diff.setOpenExternalLinks(False) self.tabs.addTab(self.preview, "Preview") - self.tabs.addTab(self.diff, "Diff vs current") + self.tabs.addTab(self.diff, "Diff") self.tabs.setMinimumSize(500, 650) top.addWidget(self.tabs, 2) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 7d2fbfc..6cd6f17 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -210,14 +210,14 @@ class MainWindow(QMainWindow): # Navigate menu with next/previous/today nav_menu = mb.addMenu("&Navigate") act_prev = QAction("Previous Day", self) - act_prev.setShortcut("Ctrl+P") + act_prev.setShortcut("Ctrl+<") act_prev.setShortcutContext(Qt.ApplicationShortcut) act_prev.triggered.connect(lambda: self._adjust_day(-1)) nav_menu.addAction(act_prev) self.addAction(act_prev) act_next = QAction("Next Day", self) - act_next.setShortcut("Ctrl+N") + act_next.setShortcut("Ctrl+>") act_next.setShortcutContext(Qt.ApplicationShortcut) act_next.triggered.connect(lambda: self._adjust_day(1)) nav_menu.addAction(act_next) diff --git a/pyproject.toml b/pyproject.toml index 1797db1..795ba1e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bouquin" -version = "0.1.5" +version = "0.1.6" description = "Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher." authors = ["Miguel Jacq "] readme = "README.md" From 329e016f8db636e0bca10b98c00ac572c5cd6714 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sun, 2 Nov 2025 19:29:13 +1100 Subject: [PATCH 27/27] More fixes for shortcuts, move Rekey button to bottom of settings --- bouquin/main_window.py | 4 ++-- bouquin/settings_dialog.py | 18 ++++++++++++------ bouquin/toolbar.py | 2 +- pyproject.toml | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/bouquin/main_window.py b/bouquin/main_window.py index 6cd6f17..7d2fbfc 100644 --- a/bouquin/main_window.py +++ b/bouquin/main_window.py @@ -210,14 +210,14 @@ class MainWindow(QMainWindow): # Navigate menu with next/previous/today nav_menu = mb.addMenu("&Navigate") act_prev = QAction("Previous Day", self) - act_prev.setShortcut("Ctrl+<") + act_prev.setShortcut("Ctrl+P") act_prev.setShortcutContext(Qt.ApplicationShortcut) act_prev.triggered.connect(lambda: self._adjust_day(-1)) nav_menu.addAction(act_prev) self.addAction(act_prev) act_next = QAction("Next Day", self) - act_next.setShortcut("Ctrl+>") + act_next.setShortcut("Ctrl+N") act_next.setShortcutContext(Qt.ApplicationShortcut) act_next.triggered.connect(lambda: self._adjust_day(1)) nav_menu.addAction(act_next) diff --git a/bouquin/settings_dialog.py b/bouquin/settings_dialog.py index 2f8ce5d..c981388 100644 --- a/bouquin/settings_dialog.py +++ b/bouquin/settings_dialog.py @@ -93,12 +93,6 @@ class SettingsDialog(QDialog): line.setFrameShadow(QFrame.Sunken) enc.addWidget(line) - # Change key button - self.rekey_btn = QPushButton("Change key") - self.rekey_btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) - self.rekey_btn.clicked.connect(self._change_key) - enc.addWidget(self.rekey_btn, 0, Qt.AlignLeft) - self.idle_spin = QSpinBox() self.idle_spin.setRange(0, 240) self.idle_spin.setSingleStep(1) @@ -124,6 +118,18 @@ class SettingsDialog(QDialog): spin_row.addWidget(self.idle_spin_label) enc.addLayout(spin_row) + line2 = QFrame() + line2.setFrameShape(QFrame.HLine) + line2.setFrameShadow(QFrame.Sunken) + enc.addWidget(line2) + + # Change key button + self.rekey_btn = QPushButton("Change encryption key") + self.rekey_btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) + self.rekey_btn.clicked.connect(self._change_key) + + enc.addWidget(self.rekey_btn, 0, Qt.AlignLeft) + # Put the group into the form so it spans the full width nicely form.addRow(enc_group) diff --git a/bouquin/toolbar.py b/bouquin/toolbar.py index 1304acf..241e15c 100644 --- a/bouquin/toolbar.py +++ b/bouquin/toolbar.py @@ -53,7 +53,7 @@ class ToolBar(QToolBar): self.actH1.setShortcut("Ctrl+1") self.actH2.setShortcut("Ctrl+2") self.actH3.setShortcut("Ctrl+3") - self.actNormal.setShortcut("Ctrl+N") + self.actNormal.setShortcut("Ctrl+O") self.actH1.triggered.connect(lambda: self.headingRequested.emit(24)) self.actH2.triggered.connect(lambda: self.headingRequested.emit(18)) self.actH3.triggered.connect(lambda: self.headingRequested.emit(14)) diff --git a/pyproject.toml b/pyproject.toml index 795ba1e..85c063f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bouquin" -version = "0.1.6" +version = "0.1.7" description = "Bouquin is a simple, opinionated notebook application written in Python, PyQt and SQLCipher." authors = ["Miguel Jacq "] readme = "README.md"