From dc92c3dde79a346d5ca26df262f766a8c2a93ca3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9ophile=20Choutri?= <theophile+horizon@choutri.eu>
Date: Mon, 22 Jan 2024 18:11:50 +0000
Subject: [PATCH] Add qrcode juicy pixels

---
 develop/flake.lock          | 706 +++++++++++++-----------------------
 horizon.dhall               |   2 +
 horizon.lock                |  10 +-
 overlay.nix                 |   4 +
 pkgs/pg-entity.nix          |   4 +-
 pkgs/qrcode-core.nix        |  26 ++
 pkgs/qrcode-juicypixels.nix |  26 ++
 7 files changed, 325 insertions(+), 453 deletions(-)
 create mode 100644 pkgs/qrcode-core.nix
 create mode 100644 pkgs/qrcode-juicypixels.nix

diff --git a/develop/flake.lock b/develop/flake.lock
index 9df2fa7f..3b85d5e7 100644
--- a/develop/flake.lock
+++ b/develop/flake.lock
@@ -18,11 +18,11 @@
     },
     "crazyshell": {
       "inputs": {
-        "flake-utils": "flake-utils_9",
+        "flake-utils": "flake-utils_6",
         "get-flake": "get-flake_2",
         "horizon-core": "horizon-core_2",
-        "lint-utils": "lint-utils_8",
-        "nixpkgs": "nixpkgs_15"
+        "lint-utils": "lint-utils_5",
+        "nixpkgs": "nixpkgs_11"
       },
       "locked": {
         "lastModified": 1697046007,
@@ -41,11 +41,11 @@
     "dekking": {
       "flake": false,
       "locked": {
-        "lastModified": 1701878161,
-        "narHash": "sha256-pvo4VvN6Mrs2B45+Q3h0GG/mWSr5Htaz3820U/EuSDI=",
+        "lastModified": 1702048665,
+        "narHash": "sha256-DHGLHBiZMNUaaVDVM979gKh2N5BqOssBIQTWGKfoPls=",
         "owner": "NorfairKing",
         "repo": "dekking",
-        "rev": "ffe66d395201bcbcf98a9da5c36186a4346996ea",
+        "rev": "e74091e032254c70740769996564d55ceac51278",
         "type": "github"
       },
       "original": {
@@ -82,11 +82,11 @@
         "validity": "validity"
       },
       "locked": {
-        "lastModified": 1701944562,
-        "narHash": "sha256-qQKklG0jSeUpCFxmsbRzanmMo9R6EULQ0BXQCo67CYw=",
+        "lastModified": 1705617203,
+        "narHash": "sha256-KbhdkpYQ3H6/SJ25BZCOOpE3VGGMN8MDfj3SKERZjX8=",
         "owner": "NorfairKing",
         "repo": "feedback",
-        "rev": "f1d54595f3bdebc091bd269926bc99a657e7bfda",
+        "rev": "19c15ebcac752b7c53959799afaeb841ab3b77ed",
         "type": "github"
       },
       "original": {
@@ -98,11 +98,11 @@
     "flake-compat": {
       "flake": false,
       "locked": {
-        "lastModified": 1673956053,
-        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
+        "lastModified": 1696426674,
+        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
         "owner": "edolstra",
         "repo": "flake-compat",
-        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
+        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
         "type": "github"
       },
       "original": {
@@ -111,34 +111,32 @@
         "type": "github"
       }
     },
-    "flake-parts": {
-      "inputs": {
-        "nixpkgs-lib": "nixpkgs-lib"
-      },
+    "flake-compat_2": {
+      "flake": false,
       "locked": {
-        "lastModified": 1704152458,
-        "narHash": "sha256-DS+dGw7SKygIWf9w4eNBUZsK+4Ug27NwEWmn2tnbycg=",
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
-        "rev": "88a2cd8166694ba0b6cb374700799cec53aef527",
+        "lastModified": 1650374568,
+        "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
+        "owner": "edolstra",
+        "repo": "flake-compat",
+        "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
         "type": "github"
       },
       "original": {
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
+        "owner": "edolstra",
+        "repo": "flake-compat",
         "type": "github"
       }
     },
-    "flake-parts_10": {
+    "flake-parts": {
       "inputs": {
-        "nixpkgs-lib": "nixpkgs-lib_10"
+        "nixpkgs-lib": "nixpkgs-lib"
       },
       "locked": {
-        "lastModified": 1701473968,
-        "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
+        "lastModified": 1704982712,
+        "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
+        "rev": "07f6395285469419cf9d078f59b5b49993198c00",
         "type": "github"
       },
       "original": {
@@ -188,11 +186,11 @@
         "nixpkgs-lib": "nixpkgs-lib_4"
       },
       "locked": {
-        "lastModified": 1701473968,
-        "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
+        "lastModified": 1704982712,
+        "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
+        "rev": "07f6395285469419cf9d078f59b5b49993198c00",
         "type": "github"
       },
       "original": {
@@ -206,11 +204,11 @@
         "nixpkgs-lib": "nixpkgs-lib_5"
       },
       "locked": {
-        "lastModified": 1701473968,
-        "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
+        "lastModified": 1683560683,
+        "narHash": "sha256-XAygPMN5Xnk/W2c1aW0jyEa6lfMDZWlQgiNtmHXytPc=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
+        "rev": "006c75898cf814ef9497252b022e91c946ba8e17",
         "type": "github"
       },
       "original": {
@@ -241,24 +239,6 @@
       "inputs": {
         "nixpkgs-lib": "nixpkgs-lib_7"
       },
-      "locked": {
-        "lastModified": 1683560683,
-        "narHash": "sha256-XAygPMN5Xnk/W2c1aW0jyEa6lfMDZWlQgiNtmHXytPc=",
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
-        "rev": "006c75898cf814ef9497252b022e91c946ba8e17",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
-        "type": "github"
-      }
-    },
-    "flake-parts_8": {
-      "inputs": {
-        "nixpkgs-lib": "nixpkgs-lib_8"
-      },
       "locked": {
         "lastModified": 1701473968,
         "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
@@ -273,9 +253,9 @@
         "type": "github"
       }
     },
-    "flake-parts_9": {
+    "flake-parts_8": {
       "inputs": {
-        "nixpkgs-lib": "nixpkgs-lib_9"
+        "nixpkgs-lib": "nixpkgs-lib_8"
       },
       "locked": {
         "lastModified": 1701473968,
@@ -318,11 +298,11 @@
         "systems": "systems"
       },
       "locked": {
-        "lastModified": 1685518550,
-        "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
+        "lastModified": 1701680307,
+        "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
+        "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
         "type": "github"
       },
       "original": {
@@ -362,24 +342,6 @@
       }
     },
     "flake-utils_12": {
-      "inputs": {
-        "systems": "systems_4"
-      },
-      "locked": {
-        "lastModified": 1701680307,
-        "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "flake-utils_13": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -394,7 +356,7 @@
         "type": "github"
       }
     },
-    "flake-utils_14": {
+    "flake-utils_13": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -409,7 +371,7 @@
         "type": "github"
       }
     },
-    "flake-utils_15": {
+    "flake-utils_2": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -424,7 +386,7 @@
         "type": "github"
       }
     },
-    "flake-utils_16": {
+    "flake-utils_3": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -439,7 +401,7 @@
         "type": "github"
       }
     },
-    "flake-utils_2": {
+    "flake-utils_4": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -454,13 +416,13 @@
         "type": "github"
       }
     },
-    "flake-utils_3": {
+    "flake-utils_5": {
       "locked": {
-        "lastModified": 1644229661,
-        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
+        "lastModified": 1667395993,
+        "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
+        "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
         "type": "github"
       },
       "original": {
@@ -469,46 +431,16 @@
         "type": "github"
       }
     },
-    "flake-utils_4": {
+    "flake-utils_6": {
       "inputs": {
         "systems": "systems_2"
       },
       "locked": {
-        "lastModified": 1701680307,
-        "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "flake-utils_5": {
-      "locked": {
-        "lastModified": 1644229661,
-        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "flake-utils_6": {
-      "locked": {
-        "lastModified": 1644229661,
-        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
+        "lastModified": 1694529238,
+        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
+        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
         "type": "github"
       },
       "original": {
@@ -552,11 +484,11 @@
         "systems": "systems_3"
       },
       "locked": {
-        "lastModified": 1694529238,
-        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
+        "lastModified": 1701680307,
+        "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
+        "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
         "type": "github"
       },
       "original": {
@@ -620,11 +552,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1660459072,
-        "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
+        "lastModified": 1703887061,
+        "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
         "owner": "hercules-ci",
         "repo": "gitignore.nix",
-        "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
+        "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
         "type": "github"
       },
       "original": {
@@ -635,17 +567,35 @@
     },
     "horizon-build-packages": {
       "inputs": {
-        "flake-parts": "flake-parts_5",
+        "flake-parts": [
+          "horizon-develop-flake",
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "flake-parts"
+        ],
         "horizon-ghc": "horizon-ghc",
-        "lint-utils": "lint-utils_4",
-        "nixpkgs": "nixpkgs_9"
+        "lint-utils": [
+          "horizon-develop-flake",
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "lint-utils"
+        ],
+        "nixpkgs": [
+          "horizon-develop-flake",
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "nixpkgs"
+        ]
       },
       "locked": {
-        "lastModified": 1701564295,
-        "narHash": "sha256-ibYE2ZnXBLDlZax5YkDeCsK4uw+8G/34ryotBut0IHY=",
+        "lastModified": 1705690128,
+        "narHash": "sha256-/kfN7WBO9hrsObiFceAybcbPSWaDIodUsO1GTERTlkY=",
         "ref": "refs/heads/master",
-        "rev": "f9c03cb2e31af63709cde8b4b6421b0e3c6d42fc",
-        "revCount": 6,
+        "rev": "b9646aa4428f5ece1c45a58804ee3e07eaa76064",
+        "revCount": 34,
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/package-sets/horizon-build-packages"
       },
@@ -656,10 +606,10 @@
     },
     "horizon-build-packages_2": {
       "inputs": {
-        "flake-parts": "flake-parts_9",
+        "flake-parts": "flake-parts_7",
         "horizon-ghc": "horizon-ghc_2",
-        "lint-utils": "lint-utils_10",
-        "nixpkgs": "nixpkgs_19"
+        "lint-utils": "lint-utils_7",
+        "nixpkgs": "nixpkgs_15"
       },
       "locked": {
         "lastModified": 1701564295,
@@ -677,18 +627,33 @@
     },
     "horizon-core": {
       "inputs": {
-        "flake-parts": "flake-parts_4",
+        "flake-parts": [
+          "horizon-develop-flake",
+          "horizon-core",
+          "horizon-build-packages",
+          "flake-parts"
+        ],
         "horizon-build-packages": "horizon-build-packages",
         "horizon-hoogle": "horizon-hoogle",
-        "lint-utils": "lint-utils_5",
-        "nixpkgs": "nixpkgs_11"
+        "lint-utils": [
+          "horizon-develop-flake",
+          "horizon-core",
+          "horizon-build-packages",
+          "lint-utils"
+        ],
+        "nixpkgs": [
+          "horizon-develop-flake",
+          "horizon-core",
+          "horizon-build-packages",
+          "nixpkgs"
+        ]
       },
       "locked": {
-        "lastModified": 1702987897,
-        "narHash": "sha256-DnGXyb2KFO5Dvo6hmzvJwaA8v6tm9MLmC3HaUHJV5vE=",
+        "lastModified": 1705691485,
+        "narHash": "sha256-JPf+SmI8PSeDm7NLd0IzYpOhvXuQ7TcxkTa4Ufms9A0=",
         "ref": "refs/heads/master",
-        "rev": "da32f93ae07d4333aca28fd82003ecdd07201d54",
-        "revCount": 1228,
+        "rev": "b9b43248497e4d641a3747c7788c785b6b7460f6",
+        "revCount": 1281,
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/package-sets/horizon-core"
       },
@@ -699,10 +664,10 @@
     },
     "horizon-core_2": {
       "inputs": {
-        "flake-parts": "flake-parts_7",
+        "flake-parts": "flake-parts_5",
         "get-flake": "get-flake_3",
-        "lint-utils": "lint-utils_7",
-        "nixpkgs": "nixpkgs_14"
+        "lint-utils": "lint-utils_4",
+        "nixpkgs": "nixpkgs_10"
       },
       "locked": {
         "lastModified": 1697043887,
@@ -720,11 +685,11 @@
     },
     "horizon-core_3": {
       "inputs": {
-        "flake-parts": "flake-parts_8",
+        "flake-parts": "flake-parts_6",
         "horizon-build-packages": "horizon-build-packages_2",
         "horizon-hoogle": "horizon-hoogle_2",
-        "lint-utils": "lint-utils_11",
-        "nixpkgs": "nixpkgs_21"
+        "lint-utils": "lint-utils_8",
+        "nixpkgs": "nixpkgs_17"
       },
       "locked": {
         "lastModified": 1701564656,
@@ -744,15 +709,15 @@
       "inputs": {
         "feedback": "feedback",
         "flake-to-gitlab-ci": "flake-to-gitlab-ci",
-        "horizon-gen-nix": "horizon-gen-nix",
+        "horizon-core": "horizon-core",
         "horizon-shell": "horizon-shell"
       },
       "locked": {
-        "lastModified": 1704445700,
-        "narHash": "sha256-pd137SOVbb2V2vqubt9WEJSbCuN+0f04YhpgW4Qq2QA=",
+        "lastModified": 1705926317,
+        "narHash": "sha256-bDI306BAZbfeVCSkJ18PGdr6N+WPlCBrPe+9c9L9cjM=",
         "ref": "refs/heads/master",
-        "rev": "b7bc60ac08cce21bcd50e1ab2a0c480ec6b2c80c",
-        "revCount": 26,
+        "rev": "c12b461cd126d7eec06437a9717c51dc1d28b603",
+        "revCount": 28,
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/nix/horizon-develop-flake"
       },
@@ -761,40 +726,18 @@
         "url": "https://gitlab.horizon-haskell.net/nix/horizon-develop-flake"
       }
     },
-    "horizon-gen-nix": {
-      "inputs": {
-        "flake-utils": "flake-utils_4",
-        "horizon-core": "horizon-core",
-        "lint-utils": "lint-utils_6",
-        "nixpkgs": "nixpkgs_12"
-      },
-      "locked": {
-        "lastModified": 1703437758,
-        "narHash": "sha256-vmvcRC5XaVDCvkqS7CtOs7zkIaoQN4kSVcxUISNAQls=",
-        "ref": "refs/tags/0.11.1",
-        "rev": "a4fdff8f2ad83b1406fecfef95e9f9d798da9bba",
-        "revCount": 194,
-        "type": "git",
-        "url": "https://gitlab.horizon-haskell.net/haskell/horizon-gen-nix"
-      },
-      "original": {
-        "ref": "refs/tags/0.11.1",
-        "type": "git",
-        "url": "https://gitlab.horizon-haskell.net/haskell/horizon-gen-nix"
-      }
-    },
     "horizon-ghc": {
       "inputs": {
-        "flake-parts": "flake-parts_6",
+        "flake-parts": "flake-parts_4",
         "lint-utils": "lint-utils_3",
-        "nixpkgs": "nixpkgs_7"
+        "nixpkgs": "nixpkgs_8"
       },
       "locked": {
-        "lastModified": 1701518837,
-        "narHash": "sha256-92faPC+q5EMNf37EGhdt9pvWWFi0mTq0Szk6wOyxyrQ=",
+        "lastModified": 1705522069,
+        "narHash": "sha256-rzc9hZcaajtg3z+kwfW9w/7FKaqvVSJzf1iqMNIhQQo=",
         "ref": "refs/heads/master",
-        "rev": "0b35eb150bfc8ee338688adda23587521cd97da6",
-        "revCount": 6,
+        "rev": "e37578d961a514ed1391df33a70de298c34daa50",
+        "revCount": 32,
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/ghc/horizon-ghc"
       },
@@ -805,9 +748,9 @@
     },
     "horizon-ghc_2": {
       "inputs": {
-        "flake-parts": "flake-parts_10",
-        "lint-utils": "lint-utils_9",
-        "nixpkgs": "nixpkgs_17"
+        "flake-parts": "flake-parts_8",
+        "lint-utils": "lint-utils_6",
+        "nixpkgs": "nixpkgs_13"
       },
       "locked": {
         "lastModified": 1701518837,
@@ -878,10 +821,10 @@
     "horizon-shell": {
       "inputs": {
         "crazyshell": "crazyshell",
-        "flake-utils": "flake-utils_12",
+        "flake-utils": "flake-utils_9",
         "horizon-core": "horizon-core_3",
-        "lint-utils": "lint-utils_12",
-        "nixpkgs": "nixpkgs_22"
+        "lint-utils": "lint-utils_9",
+        "nixpkgs": "nixpkgs_18"
       },
       "locked": {
         "lastModified": 1702983712,
@@ -934,17 +877,21 @@
         "url": "https://gitlab.homotopic.tech/nix/lint-utils"
       }
     },
-    "lint-utils_10": {
+    "lint-utils_2": {
       "inputs": {
-        "flake-utils": "flake-utils_14",
-        "nixpkgs": "nixpkgs_18"
+        "flake-utils": "flake-utils_3",
+        "nixpkgs": [
+          "horizon-develop-flake",
+          "flake-to-gitlab-ci",
+          "nixpkgs"
+        ]
       },
       "locked": {
-        "lastModified": 1699441004,
-        "narHash": "sha256-7v7CH8ZiB2RClPtpgDLfQxeR+14KXoFl2qTdXd27sL0=",
+        "lastModified": 1681737193,
+        "narHash": "sha256-c+0eLyF/VWZWGeB1DA88aDUZ3BjO6+jnsJpVW4wxs4w=",
         "ref": "refs/heads/master",
-        "rev": "226003d10c2d192b088f7c3c9ee7ca549c421a9c",
-        "revCount": 52,
+        "rev": "efaf89d12a6811f0e00034444904b8d169f0fa34",
+        "revCount": 48,
         "type": "git",
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       },
@@ -953,17 +900,18 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_11": {
+    "lint-utils_3": {
       "inputs": {
-        "flake-utils": "flake-utils_15",
-        "nixpkgs": "nixpkgs_20"
+        "flake-utils": "flake-utils_4",
+        "nixfmt-rfc166": "nixfmt-rfc166",
+        "nixpkgs": "nixpkgs_7"
       },
       "locked": {
-        "lastModified": 1699441004,
-        "narHash": "sha256-7v7CH8ZiB2RClPtpgDLfQxeR+14KXoFl2qTdXd27sL0=",
+        "lastModified": 1704840768,
+        "narHash": "sha256-vcm9RkJDR4aTVTKocdmKPSjAgAJw3Tu7UEDJxjAVxNk=",
         "ref": "refs/heads/master",
-        "rev": "226003d10c2d192b088f7c3c9ee7ca549c421a9c",
-        "revCount": 52,
+        "rev": "2d7660ce8ee2aa8eac650f670692706a1945f5a7",
+        "revCount": 64,
         "type": "git",
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       },
@@ -972,21 +920,17 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_12": {
+    "lint-utils_4": {
       "inputs": {
-        "flake-utils": "flake-utils_16",
-        "nixpkgs": [
-          "horizon-develop-flake",
-          "horizon-shell",
-          "nixpkgs"
-        ]
+        "flake-utils": "flake-utils_7",
+        "nixpkgs": "nixpkgs_9"
       },
       "locked": {
-        "lastModified": 1701713103,
-        "narHash": "sha256-IstHSRxNrhyYTeIWAaUjmkdtGFXQlgQQdr28le1RwGA=",
+        "lastModified": 1681737193,
+        "narHash": "sha256-c+0eLyF/VWZWGeB1DA88aDUZ3BjO6+jnsJpVW4wxs4w=",
         "ref": "refs/heads/master",
-        "rev": "4dffa421c015db30f3755bfa358b15fc9cf5c6ff",
-        "revCount": 56,
+        "rev": "efaf89d12a6811f0e00034444904b8d169f0fa34",
+        "revCount": 48,
         "type": "git",
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       },
@@ -995,12 +939,13 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_2": {
+    "lint-utils_5": {
       "inputs": {
-        "flake-utils": "flake-utils_3",
+        "flake-utils": "flake-utils_8",
         "nixpkgs": [
           "horizon-develop-flake",
-          "flake-to-gitlab-ci",
+          "horizon-shell",
+          "crazyshell",
           "nixpkgs"
         ]
       },
@@ -1018,10 +963,10 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_3": {
+    "lint-utils_6": {
       "inputs": {
-        "flake-utils": "flake-utils_5",
-        "nixpkgs": "nixpkgs_6"
+        "flake-utils": "flake-utils_10",
+        "nixpkgs": "nixpkgs_12"
       },
       "locked": {
         "lastModified": 1699441004,
@@ -1037,10 +982,10 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_4": {
+    "lint-utils_7": {
       "inputs": {
-        "flake-utils": "flake-utils_6",
-        "nixpkgs": "nixpkgs_8"
+        "flake-utils": "flake-utils_11",
+        "nixpkgs": "nixpkgs_14"
       },
       "locked": {
         "lastModified": 1699441004,
@@ -1056,10 +1001,10 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_5": {
+    "lint-utils_8": {
       "inputs": {
-        "flake-utils": "flake-utils_7",
-        "nixpkgs": "nixpkgs_10"
+        "flake-utils": "flake-utils_12",
+        "nixpkgs": "nixpkgs_16"
       },
       "locked": {
         "lastModified": 1699441004,
@@ -1075,12 +1020,12 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_6": {
+    "lint-utils_9": {
       "inputs": {
-        "flake-utils": "flake-utils_8",
+        "flake-utils": "flake-utils_13",
         "nixpkgs": [
           "horizon-develop-flake",
-          "horizon-gen-nix",
+          "horizon-shell",
           "nixpkgs"
         ]
       },
@@ -1098,75 +1043,35 @@
         "url": "https://gitlab.nixica.dev/nix/lint-utils"
       }
     },
-    "lint-utils_7": {
-      "inputs": {
-        "flake-utils": "flake-utils_10",
-        "nixpkgs": "nixpkgs_13"
-      },
-      "locked": {
-        "lastModified": 1681737193,
-        "narHash": "sha256-c+0eLyF/VWZWGeB1DA88aDUZ3BjO6+jnsJpVW4wxs4w=",
-        "ref": "refs/heads/master",
-        "rev": "efaf89d12a6811f0e00034444904b8d169f0fa34",
-        "revCount": 48,
-        "type": "git",
-        "url": "https://gitlab.nixica.dev/nix/lint-utils"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://gitlab.nixica.dev/nix/lint-utils"
-      }
-    },
-    "lint-utils_8": {
-      "inputs": {
-        "flake-utils": "flake-utils_11",
-        "nixpkgs": [
-          "horizon-develop-flake",
-          "horizon-shell",
-          "crazyshell",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1681737193,
-        "narHash": "sha256-c+0eLyF/VWZWGeB1DA88aDUZ3BjO6+jnsJpVW4wxs4w=",
-        "ref": "refs/heads/master",
-        "rev": "efaf89d12a6811f0e00034444904b8d169f0fa34",
-        "revCount": 48,
-        "type": "git",
-        "url": "https://gitlab.nixica.dev/nix/lint-utils"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://gitlab.nixica.dev/nix/lint-utils"
-      }
-    },
-    "lint-utils_9": {
+    "nixfmt-rfc166": {
       "inputs": {
-        "flake-utils": "flake-utils_13",
-        "nixpkgs": "nixpkgs_16"
+        "flake-compat": "flake-compat_2",
+        "flake-utils": "flake-utils_5",
+        "nixpkgs": "nixpkgs_6",
+        "nixpkgs-stable": "nixpkgs-stable_2"
       },
       "locked": {
-        "lastModified": 1699441004,
-        "narHash": "sha256-7v7CH8ZiB2RClPtpgDLfQxeR+14KXoFl2qTdXd27sL0=",
-        "ref": "refs/heads/master",
-        "rev": "226003d10c2d192b088f7c3c9ee7ca549c421a9c",
-        "revCount": 52,
-        "type": "git",
-        "url": "https://gitlab.nixica.dev/nix/lint-utils"
+        "lastModified": 1704833612,
+        "narHash": "sha256-yhnKT8z5FOTUb/1ZXaErmFHsv1oKg1aYQVLVUCzQWMA=",
+        "owner": "piegamesde",
+        "repo": "nixfmt",
+        "rev": "82457ef5fc7b324d3cab4300af0ff7f854135cfa",
+        "type": "github"
       },
       "original": {
-        "type": "git",
-        "url": "https://gitlab.nixica.dev/nix/lint-utils"
+        "owner": "piegamesde",
+        "ref": "rfc101-style",
+        "repo": "nixfmt",
+        "type": "github"
       }
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1701539137,
-        "narHash": "sha256-nVO/5QYpf1GwjvtpXhyxx5M3U/WN0MwBro4Lsk+9mL0=",
+        "lastModified": 1705458851,
+        "narHash": "sha256-uQvEhiv33Zj/Pv364dTvnpPwFSptRZgVedDzoM+HqVg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "933d7dc155096e7575d207be6fb7792bc9f34f6d",
+        "rev": "8bf65f17d8070a0a490daf5f1c784b87ee73982c",
         "type": "github"
       },
       "original": {
@@ -1194,24 +1099,6 @@
         "type": "github"
       }
     },
-    "nixpkgs-lib_10": {
-      "locked": {
-        "dir": "lib",
-        "lastModified": 1701253981,
-        "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
-        "type": "github"
-      },
-      "original": {
-        "dir": "lib",
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
     "nixpkgs-lib_2": {
       "locked": {
         "dir": "lib",
@@ -1251,11 +1138,11 @@
     "nixpkgs-lib_4": {
       "locked": {
         "dir": "lib",
-        "lastModified": 1701253981,
-        "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
+        "lastModified": 1703961334,
+        "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
+        "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9",
         "type": "github"
       },
       "original": {
@@ -1269,11 +1156,11 @@
     "nixpkgs-lib_5": {
       "locked": {
         "dir": "lib",
-        "lastModified": 1701253981,
-        "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
+        "lastModified": 1682879489,
+        "narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
+        "rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0",
         "type": "github"
       },
       "original": {
@@ -1303,24 +1190,6 @@
       }
     },
     "nixpkgs-lib_7": {
-      "locked": {
-        "dir": "lib",
-        "lastModified": 1682879489,
-        "narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0",
-        "type": "github"
-      },
-      "original": {
-        "dir": "lib",
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs-lib_8": {
       "locked": {
         "dir": "lib",
         "lastModified": 1701253981,
@@ -1338,7 +1207,7 @@
         "type": "github"
       }
     },
-    "nixpkgs-lib_9": {
+    "nixpkgs-lib_8": {
       "locked": {
         "dir": "lib",
         "lastModified": 1701253981,
@@ -1358,85 +1227,37 @@
     },
     "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1685801374,
-        "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-23.05",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_10": {
-      "locked": {
-        "lastModified": 1644525281,
-        "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
+        "lastModified": 1704874635,
+        "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2",
+        "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356",
         "type": "github"
       },
       "original": {
         "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_11": {
-      "locked": {
-        "lastModified": 1701253981,
-        "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nixos",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_12": {
-      "locked": {
-        "lastModified": 1703134684,
-        "narHash": "sha256-SQmng1EnBFLzS7WSRyPM9HgmZP2kLJcPAz+Ug/nug6o=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "d6863cbcbbb80e71cecfc03356db1cda38919523",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nixos",
-        "ref": "nixpkgs-unstable",
+        "ref": "nixos-23.11",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
-    "nixpkgs_13": {
+    "nixpkgs-stable_2": {
       "locked": {
-        "lastModified": 1644525281,
-        "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
+        "lastModified": 1672580127,
+        "narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2",
+        "rev": "0874168639713f547c05947c76124f78441ea46c",
         "type": "github"
       },
       "original": {
         "owner": "NixOS",
-        "ref": "nixos-unstable",
+        "ref": "nixos-22.05",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
-    "nixpkgs_14": {
+    "nixpkgs_10": {
       "locked": {
         "lastModified": 1686701582,
         "narHash": "sha256-uCj6bWmhb2RF+kmCP7T5ov5pg3HjksIyv4WDsCHZQyU=",
@@ -1452,7 +1273,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_15": {
+    "nixpkgs_11": {
       "locked": {
         "lastModified": 1696757521,
         "narHash": "sha256-cfgtLNCBLFx2qOzRLI6DHfqTdfWI+UbvsKYa3b3fvaA=",
@@ -1468,7 +1289,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_16": {
+    "nixpkgs_12": {
       "locked": {
         "lastModified": 1644525281,
         "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
@@ -1484,7 +1305,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_17": {
+    "nixpkgs_13": {
       "locked": {
         "lastModified": 1701253981,
         "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
@@ -1500,7 +1321,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_18": {
+    "nixpkgs_14": {
       "locked": {
         "lastModified": 1644525281,
         "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
@@ -1516,7 +1337,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_19": {
+    "nixpkgs_15": {
       "locked": {
         "lastModified": 1701253981,
         "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
@@ -1532,23 +1353,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_2": {
-      "locked": {
-        "lastModified": 1689261696,
-        "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixpkgs-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_20": {
+    "nixpkgs_16": {
       "locked": {
         "lastModified": 1644525281,
         "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
@@ -1564,7 +1369,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_21": {
+    "nixpkgs_17": {
       "locked": {
         "lastModified": 1701253981,
         "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
@@ -1580,7 +1385,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_22": {
+    "nixpkgs_18": {
       "locked": {
         "lastModified": 1702272962,
         "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
@@ -1596,13 +1401,13 @@
         "type": "github"
       }
     },
-    "nixpkgs_23": {
+    "nixpkgs_19": {
       "locked": {
-        "lastModified": 1704194953,
-        "narHash": "sha256-RtDKd8Mynhe5CFnVT8s0/0yqtWFMM9LmCzXv/YKxnq4=",
+        "lastModified": 1705856552,
+        "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "bd645e8668ec6612439a9ee7e71f7eac4099d4f6",
+        "rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d",
         "type": "github"
       },
       "original": {
@@ -1612,6 +1417,22 @@
         "type": "github"
       }
     },
+    "nixpkgs_2": {
+      "locked": {
+        "lastModified": 1704842529,
+        "narHash": "sha256-OTeQA+F8d/Evad33JMfuXC89VMetQbsU4qcaePchGr4=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "eabe8d3eface69f5bb16c18f8662a702f50c20d5",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixpkgs-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "nixpkgs_3": {
       "locked": {
         "lastModified": 1644525281,
@@ -1662,31 +1483,31 @@
     },
     "nixpkgs_6": {
       "locked": {
-        "lastModified": 1644525281,
-        "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
+        "lastModified": 1667292599,
+        "narHash": "sha256-7ISOUI1aj6UKMPIL+wwthENL22L3+A9V+jS8Is3QsRo=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2",
+        "rev": "ef2f213d9659a274985778bff4ca322f3ef3ac68",
         "type": "github"
       },
       "original": {
         "owner": "NixOS",
-        "ref": "nixos-unstable",
+        "ref": "nixpkgs-unstable",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
     "nixpkgs_7": {
       "locked": {
-        "lastModified": 1701253981,
-        "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
-        "owner": "nixos",
+        "lastModified": 1644525281,
+        "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
+        "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
+        "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2",
         "type": "github"
       },
       "original": {
-        "owner": "nixos",
+        "owner": "NixOS",
         "ref": "nixos-unstable",
         "repo": "nixpkgs",
         "type": "github"
@@ -1694,15 +1515,15 @@
     },
     "nixpkgs_8": {
       "locked": {
-        "lastModified": 1644525281,
-        "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
-        "owner": "NixOS",
+        "lastModified": 1705316053,
+        "narHash": "sha256-J2Ey5mPFT8gdfL2XC0JTZvKaBw/b2pnyudEXFvl+dQM=",
+        "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2",
+        "rev": "c3e128f3c0ecc1fb04aef9f72b3dcc2f6cecf370",
         "type": "github"
       },
       "original": {
-        "owner": "NixOS",
+        "owner": "nixos",
         "ref": "nixos-unstable",
         "repo": "nixpkgs",
         "type": "github"
@@ -1710,15 +1531,15 @@
     },
     "nixpkgs_9": {
       "locked": {
-        "lastModified": 1701253981,
-        "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
-        "owner": "nixos",
+        "lastModified": 1644525281,
+        "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
+        "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
+        "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2",
         "type": "github"
       },
       "original": {
-        "owner": "nixos",
+        "owner": "NixOS",
         "ref": "nixos-unstable",
         "repo": "nixpkgs",
         "type": "github"
@@ -1733,11 +1554,11 @@
         "nixpkgs-stable": "nixpkgs-stable"
       },
       "locked": {
-        "lastModified": 1700922917,
-        "narHash": "sha256-ej2fch/T584b5K9sk1UhmZF7W6wEfDHuoUYpFN8dtvM=",
+        "lastModified": 1705229514,
+        "narHash": "sha256-itILy0zimR/iyUGq5Dgg0fiW8plRDyxF153LWGsg3Cw=",
         "owner": "cachix",
         "repo": "pre-commit-hooks.nix",
-        "rev": "e5ee5c5f3844550c01d2131096c7271cec5e9b78",
+        "rev": "ffa9a5b90b0acfaa03b1533b83eaf5dead819a05",
         "type": "github"
       },
       "original": {
@@ -1750,7 +1571,7 @@
       "inputs": {
         "flake-parts": "flake-parts",
         "horizon-develop-flake": "horizon-develop-flake",
-        "nixpkgs": "nixpkgs_23"
+        "nixpkgs": "nixpkgs_19"
       }
     },
     "safe-coloured-text": {
@@ -1830,21 +1651,6 @@
         "type": "github"
       }
     },
-    "systems_4": {
-      "locked": {
-        "lastModified": 1681028828,
-        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-        "owner": "nix-systems",
-        "repo": "default",
-        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-systems",
-        "repo": "default",
-        "type": "github"
-      }
-    },
     "validity": {
       "flake": false,
       "locked": {
diff --git a/horizon.dhall b/horizon.dhall
index 06d74d3b..a8cbb7e7 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -487,6 +487,8 @@ let packages =
           H.callHackage "prometheus-metrics-ghc" "1.0.1.2"
       , prometheus-proc = H.callHackage "prometheus-proc" "0.1.5.0"
       , proteaaudio-sdl = H.callHackage "proteaaudio-sdl" "0.10.1"
+      , qrcode-core = H.callHackage "qrcode-core" "0.9.9"
+      , qrcode-juicypixels = H.callHackage "qrcode-juicypixels" "0.8.5"
       , quickcheck-arbitrary-adt =
           H.callHackage "quickcheck-arbitrary-adt" "0.3.1.0"
       , quickcheck-assertions = H.callHackage "quickcheck-assertions" "0.3.0"
diff --git a/horizon.lock b/horizon.lock
index aadf55ac..7ba8d614 100644
--- a/horizon.lock
+++ b/horizon.lock
@@ -1456,7 +1456,7 @@
   }
 , { mapKey = "pg-entity"
   , mapValue =
-      "a096cd0594e147bf36c626cc1416c4c45771120225978e8e4cbc1f4a688b54cb"
+      "4e4e8efcef4d9f79972c1dbcf64e93438b7b896a226beefc72b64d2b3fdcdcb5"
   }
 , { mapKey = "pg-transact"
   , mapValue =
@@ -1578,6 +1578,14 @@
   , mapValue =
       "aa03e052d7c70ec6e60fcbe31afe3b2e92e30a6d57d15da1dcafd9e1f00644c5"
   }
+, { mapKey = "qrcode-core"
+  , mapValue =
+      "24dec85ec539e26c8b97188bab768a218f72e42849e0626b25bd051ecd6b1cf2"
+  }
+, { mapKey = "qrcode-juicypixels"
+  , mapValue =
+      "117304d6d0921953214356216cf7567b0c8cbec4ee287e22d91650d18563cc0f"
+  }
 , { mapKey = "quickcheck-arbitrary-adt"
   , mapValue =
       "ce8eed872f32faa4c2964374883393682138c91a0e6bd8ccead9b816f648b355"
diff --git a/overlay.nix b/overlay.nix
index 158072f3..dbdab8d2 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -791,6 +791,10 @@ final: prev: with pkgs.haskell.lib; {
 
   proteaaudio-sdl = final.callPackage (./pkgs/proteaaudio-sdl.nix) { };
 
+  qrcode-core = final.callPackage (./pkgs/qrcode-core.nix) { };
+
+  qrcode-juicypixels = final.callPackage (./pkgs/qrcode-juicypixels.nix) { };
+
   quickcheck-arbitrary-adt = final.callPackage (./pkgs/quickcheck-arbitrary-adt.nix) { };
 
   quickcheck-assertions = final.callPackage (./pkgs/quickcheck-assertions.nix) { };
diff --git a/pkgs/pg-entity.nix b/pkgs/pg-entity.nix
index b060aab8..95bf3756 100644
--- a/pkgs/pg-entity.nix
+++ b/pkgs/pg-entity.nix
@@ -6,8 +6,8 @@
 }:
 mkDerivation {
   pname = "pg-entity";
-  version = "0.0.4.3";
-  sha256 = "63ff6433eac2abfa835d7c8d07e222bce48e7a86fa44de2642494a816b51b609";
+  version = "0.0.4.4";
+  sha256 = "02d6e5b4464caeeeec549f9086a84f5bb89a252bdb1c00f7a8045d0389f67a75";
   isLibrary = true;
   isExecutable = true;
   enableSeparateDataOutput = false;
diff --git a/pkgs/qrcode-core.nix b/pkgs/qrcode-core.nix
new file mode 100644
index 00000000..d3021a33
--- /dev/null
+++ b/pkgs/qrcode-core.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, binary, bytestring, case-insensitive
+, containers, dlist, lib, primitive, text, vector
+}:
+mkDerivation {
+  pname = "qrcode-core";
+  version = "0.9.9";
+  sha256 = "bc596ab168b4d2fdc34ad2ffe4fa3e52f30e8a8ef3215a798a8851f7409050ad";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base binary bytestring case-insensitive containers dlist primitive
+    text vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = true;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/alexkazik/qrcode#readme";
+  description = "QR code library in pure Haskell";
+  license = lib.licenses.mit;
+  broken = false;
+}
\ No newline at end of file
diff --git a/pkgs/qrcode-juicypixels.nix b/pkgs/qrcode-juicypixels.nix
new file mode 100644
index 00000000..5817af59
--- /dev/null
+++ b/pkgs/qrcode-juicypixels.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, JuicyPixels, base, base64-bytestring, bytestring
+, lib, qrcode-core, text, vector
+}:
+mkDerivation {
+  pname = "qrcode-juicypixels";
+  version = "0.8.5";
+  sha256 = "6f594f2e03c5aec83e3244919a2032a3a74ad1fc16919e0527a0fb784e6cec61";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base base64-bytestring bytestring JuicyPixels qrcode-core text
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = true;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/alexkazik/qrcode#readme";
+  description = "Converts a qrcode-core image to JuicyPixels";
+  license = lib.licenses.mit;
+  broken = false;
+}
\ No newline at end of file
-- 
GitLab