)]}'
{
  "log": [
    {
      "commit": "f9ebbd80ae6ec82d3a4ec5543d03e356720c1f83",
      "tree": "dc0a6d3febfba884a0c2cf0963ddc7bff08e97fa",
      "parents": [
        "9bebe16726b3a61c8c213eeee3b7cffb462ef34e"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Aug 27 23:58:13 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 23:58:13 2026 -0400"
      },
      "message": "Update README to remove v2.50 documentation note\n\nRemoved note about ongoing documentation for v2.50."
    },
    {
      "commit": "9bebe16726b3a61c8c213eeee3b7cffb462ef34e",
      "tree": "4e61fcf333d21dd37e603ba93fbe450785b32a00",
      "parents": [
        "5f6a0a0ca66c34e1dad6da7ce43d1d34ca8fef4d",
        "6546e407eb1a04241a94edd5ff8aab2b1ca880dd"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 22 14:36:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 14:36:49 2026 -0400"
      },
      "message": "Merge pull request #458 from vkedwardli/fix/netbsd\n\nFix float overload deduction on NetBSD"
    },
    {
      "commit": "5f6a0a0ca66c34e1dad6da7ce43d1d34ca8fef4d",
      "tree": "eebf67541a3a767edb80a52c6f35edb81f064835",
      "parents": [
        "d77f9308e2d363c4a8b60d11be33e09a16290fe3",
        "28ab277db8c7ef7d900c5bdf46bd31fd1d16e1e4"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 22:28:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 22:28:39 2026 -0400"
      },
      "message": "Merge pull request #463 from BinomialLLC/fix-ktx2-level-uncomp-msg\n\nKTX2: fix wrong error message for oversized level uncompressed length"
    },
    {
      "commit": "28ab277db8c7ef7d900c5bdf46bd31fd1d16e1e4",
      "tree": "eebf67541a3a767edb80a52c6f35edb81f064835",
      "parents": [
        "d77f9308e2d363c4a8b60d11be33e09a16290fe3"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 22:24:57 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 22:24:57 2026 -0400"
      },
      "message": "KTX2: fix wrong error message for oversized level uncompressed length\n\nThe sanity check on a level\u0027s m_uncompressed_byte_length (\u003e\u003d 2 GiB)\nlogged \"Invalid level offset (too large)\", which names the wrong field.\nCorrect it to \"Invalid level uncompressed byte length (too large)\".\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "d77f9308e2d363c4a8b60d11be33e09a16290fe3",
      "tree": "87f267bd5be133275b863bc1c25baae9c21fd388",
      "parents": [
        "edfa1fc3a45319b41d3f225563b9cf2ac43c1a47",
        "018cc67cd06da18587b7a0b8114b3039978bdf71"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:45:32 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 19:45:32 2026 -0400"
      },
      "message": "Merge pull request #462 from BinomialLLC/webgl-build-clean-slow\n\nwebgl/build.sh: run make clean on --clean, add --slow serial option"
    },
    {
      "commit": "018cc67cd06da18587b7a0b8114b3039978bdf71",
      "tree": "87f267bd5be133275b863bc1c25baae9c21fd388",
      "parents": [
        "b512234dff2aadb840391b48ad817ada66a4c3bf"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:37:52 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:37:52 2026 -0400"
      },
      "message": "webgl: add --slow option to build.sh for a serial build\n\n--slow uses `make -j1` (one file at a time, the classic manual `make`)\ninstead of the default `make -j$(nproc)`. Useful for readable output or\nconstrained machines; parallel remains the default.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "b512234dff2aadb840391b48ad817ada66a4c3bf",
      "tree": "b303e74fe8ebc68a4ad34e1cdc9a454d7bc0bb01",
      "parents": [
        "fcab97d37136d1455c0f64928017e0e9a1d33d30"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:33:48 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:33:48 2026 -0400"
      },
      "message": "webgl: build.sh --clean runs \u0027make clean\u0027 before wiping the CMake cache\n\nFor a more thorough clean, --clean now runs `make clean` (removing the\nbuild outputs and object files via the existing build system) before\ndeleting CMakeCache.txt/CMakeFiles and reconfiguring.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "edfa1fc3a45319b41d3f225563b9cf2ac43c1a47",
      "tree": "0e8a01e08713c24b7963c1609398a4ef1776fa2a",
      "parents": [
        "368e2a51222b7df5bdac2763dd22b06116f64847",
        "fcab97d37136d1455c0f64928017e0e9a1d33d30"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:15:31 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 19:15:31 2026 -0400"
      },
      "message": "Merge pull request #461 from BinomialLLC/ktx2-init-range-checks\n\nwebgl: add build.sh to build the transcoder/encoder"
    },
    {
      "commit": "fcab97d37136d1455c0f64928017e0e9a1d33d30",
      "tree": "0e8a01e08713c24b7963c1609398a4ef1776fa2a",
      "parents": [
        "3b0017e6779e0db1a9f8fe8289a961d74c5fd561"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:05:54 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 19:05:54 2026 -0400"
      },
      "message": "webgl: add build.sh to build the transcoder/encoder with Emscripten\n\nConvenience script (place: webgl/build.sh) that runs emcmake/cmake/make\nin webgl/transcoder/build and webgl/encoder/build. Stops on the first\nerror (set -euo pipefail), builds both by default or a named target\n(transcoder/encoder), supports --clean and -D... cmake pass-through, is\nrunnable from any directory, and auto-sources emsdk if emcmake is not on\nPATH.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "368e2a51222b7df5bdac2763dd22b06116f64847",
      "tree": "ea1896c9721316b55044c704ee859f7f38bdcf5f",
      "parents": [
        "399927dc36c7fd52866d0a75bde0b587494876cf",
        "3b0017e6779e0db1a9f8fe8289a961d74c5fd561"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 18:55:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 18:55:48 2026 -0400"
      },
      "message": "Merge pull request #460 from BinomialLLC/ktx2-init-range-checks\n\npreviewers: free rgbBuf with free() instead of delete"
    },
    {
      "commit": "3b0017e6779e0db1a9f8fe8289a961d74c5fd561",
      "tree": "ea1896c9721316b55044c704ee859f7f38bdcf5f",
      "parents": [
        "38168767f42d5a77fb777594630825e0547b4489"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 18:38:36 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 18:38:36 2026 -0400"
      },
      "message": "previewers: free rgbBuf with free() instead of delete\n\nBasisThumbProvider::GetThumbnail() allocates rgbBuf with malloc() but\nfreed it with delete, which is a mismatched-allocator (and delete on a\nvoid*) undefined behavior. Use free() to match the allocation, as is\nalready done for the sibling \u0027data\u0027 buffer.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "399927dc36c7fd52866d0a75bde0b587494876cf",
      "tree": "563a82b62d9ae8b026160de105e479d3b53bd982",
      "parents": [
        "1b33fd5098c6e7b58324146b8f5518cbb4cdfb72",
        "38168767f42d5a77fb777594630825e0547b4489"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 18:18:14 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 18:18:14 2026 -0400"
      },
      "message": "Merge pull request #459 from BinomialLLC/ktx2-init-range-checks\n\nKtx2 init range checks"
    },
    {
      "commit": "38168767f42d5a77fb777594630825e0547b4489",
      "tree": "563a82b62d9ae8b026160de105e479d3b53bd982",
      "parents": [
        "57a0a0b4c6e787acfde9c66a2245442dcc4ae10c"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 18:11:39 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 18:11:39 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "57a0a0b4c6e787acfde9c66a2245442dcc4ae10c",
      "tree": "dac4f4eb75c8780c30adb2eb3cd313c6e8c83343",
      "parents": [
        "f2497f14d6c43c0b1c75e58e161c455d0cd058d7"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 17:59:57 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 17:59:57 2026 -0400"
      },
      "message": "previewers: regenerate single-file transcoder with KTX2/Zstd enabled\n\nRegenerate contrib/previewers/lib/basisu_transcoder.cpp from the current\ntranscoder sources with the single_file_transcoder combine.py script,\nreplacing a long-stale copy. KTX2 and Zstd are enabled.\n\nOnly the Basis Universal sources are amalgamated; Zstd is kept as an\nordinary #include \"../zstd/zstd.h\" (via combine.py\u0027s -k option) rather\nthan being inlined, and zstd/zstd.c is compiled and linked separately,\nso Zstd is neither touched nor duplicated.\n\nUpdate the previewers project to build the current (C++17) transcoder:\n- set LanguageStandard to stdcpp17 (the transcoder uses inline variables\n  and other C++17 features);\n- define NOMINMAX (the Windows shell headers, included before the\n  transcoder, otherwise define min/max macros that break the\n  std::numeric_limits\u003c\u003e::max() calls);\n- add the zstd directory to the include paths and compile\n  ..\\..\\..\\zstd\\zstd.c as a separate compilation unit.\n\nThe DLL builds for Debug/Release, x64 and Win32. The previewer still\nonly registers .basis files; enabling KTX2/Zstd just makes the\ntranscoder compile cleanly out of the box.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "f2497f14d6c43c0b1c75e58e161c455d0cd058d7",
      "tree": "e98c4dbde55fd82a545159e5de9c0e24ae06e230",
      "parents": [
        "3454230543d5d50ef95a5a89c15b2206c70a4dca"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 17:12:51 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 17:20:38 2026 -0400"
      },
      "message": "KTX2 transcoder: build with BASISD_SUPPORT_KTX2 disabled\n\nTwo things prevented the transcoder from compiling with\nBASISD_SUPPORT_KTX2 set to 0:\n\n- ktx2_image_level_info was defined inside the #if BASISD_SUPPORT_KTX2\n  block, but dds_transcoder::get_image_level_info() takes it by\n  reference and is compiled unconditionally. Move the struct ahead of\n  that block so it is always defined; it has no KTX2-specific members.\n\n- The \"#include ../zstd/zstd.h\" was nested inside #if BASISD_SUPPORT_KTX2,\n  but the Zstd decompressor (zstd_decompress()) is compiled whenever\n  BASISD_SUPPORT_KTX2_ZSTD is set, independent of KTX2 (Zstd is also used\n  by other codecs). With KTX2 off but Zstd on, the ZSTD_* symbols were\n  referenced without the header being included. Gate the include on\n  BASISD_SUPPORT_KTX2_ZSTD alone, matching where the symbols are used.\n\nBASISD_SUPPORT_KTX2_ZSTD still defaults to 1 (unchanged). The default\nbuild (KTX2 and Zstd both enabled) is unaffected.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "3454230543d5d50ef95a5a89c15b2206c70a4dca",
      "tree": "e9a4c9fead75c550a13407880032976a1fc5f7c5",
      "parents": [
        "1b33fd5098c6e7b58324146b8f5518cbb4cdfb72"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 16:47:58 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Jul 18 16:47:58 2026 -0400"
      },
      "message": "KTX2: overflow-safe range checks and input bounds in ktx2_transcoder::init\n\nThe KTX2 level and supercompression-global-data (SGD) offset/length\nfields are full 64-bit values read from the file. init() validated them\nwith \"offset + length \u003e m_data_size\", where the addition can wrap around\nand incorrectly pass for out-of-range values. Rewrite both checks as\n\"offset \u003e m_data_size || length \u003e (uint64_t)m_data_size - offset\", which\ncannot overflow (offset is confirmed \u003c\u003d m_data_size before the\nsubtraction, so it can\u0027t underflow either). The result is identical to\nthe original for every in-range input.\n\nAlso in init():\n- Reject a level whose byte_length is 0. This case already logged an\n  error but fell through without returning false.\n- Add KTX2_MAX_SUPPORTED_LAYER_COUNT (65535) and reject files whose\n  layer_count exceeds it, mirroring KTX2_MAX_SUPPORTED_LEVEL_COUNT, so\n  layer_count * face_count * level_count stays bounded.\n\nread_slice_offset_len_global_data(): compute image_count in 64-bit,\nverify m_sgd_byte_length \u003d\u003d image_count * descriptor_size before sizing\nthe descriptor array, and use try_resize() (returns false on failure)\ninstead of resize() (which aborts the process) so an out-of-range count\nfails cleanly instead of attempting an oversized allocation. Also\ncompute image_count in 64-bit in decompress_etc1s_global_data().\n\nValid files are handled exactly as before.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "6546e407eb1a04241a94edd5ff8aab2b1ca880dd",
      "tree": "f718de5fbf02c6257f21e716ad89f1a20ca549cc",
      "parents": [
        "1b33fd5098c6e7b58324146b8f5518cbb4cdfb72"
      ],
      "author": {
        "name": "Edward Li",
        "email": "vk.edward.li@gmail.com",
        "time": "Tue Jul 14 22:01:58 2026 +0800"
      },
      "committer": {
        "name": "Edward Li",
        "email": "vk.edward.li@gmail.com",
        "time": "Tue Jul 14 22:01:58 2026 +0800"
      },
      "message": "Fix float overload deduction on NetBSD\n"
    },
    {
      "commit": "1b33fd5098c6e7b58324146b8f5518cbb4cdfb72",
      "tree": "5ea127b834ea40551f658c008a252095754d0c75",
      "parents": [
        "0f540010c5f28d66de3481d53dd2ab6e6ced3191"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sun Jul 05 21:38:40 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sun Jul 05 21:38:40 2026 -0400"
      },
      "message": "Adding Cache-Control to dev web server to disable browser caching\n"
    },
    {
      "commit": "0f540010c5f28d66de3481d53dd2ab6e6ced3191",
      "tree": "fde09d5057d5f4ac0d62789672a13f835100c2de",
      "parents": [
        "20ed781c4b8d98b36074019a3389d4f71527a4d9"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sun Jul 05 21:37:48 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sun Jul 05 21:37:48 2026 -0400"
      },
      "message": "adding channel weights comment\n"
    },
    {
      "commit": "20ed781c4b8d98b36074019a3389d4f71527a4d9",
      "tree": "129deff8a983af270c69ab16addc6d06c83c377f",
      "parents": [
        "dc86b2cdbfe888847b185d7287a7abedf2c052c2"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 23:01:13 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 23:01:13 2026 -0400"
      },
      "message": "updating comment\n"
    },
    {
      "commit": "dc86b2cdbfe888847b185d7287a7abedf2c052c2",
      "tree": "ec75b5aca7696ccebb2d29a580c9177ed8542e54",
      "parents": [
        "fc3a67a5c028c19f24099dac77f4f78290f2bd0f"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:51:04 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:51:04 2026 -0400"
      },
      "message": "comment fix\n"
    },
    {
      "commit": "fc3a67a5c028c19f24099dac77f4f78290f2bd0f",
      "tree": "c35e307ef2b5e6838eb98f2fed07719c04c33f79",
      "parents": [
        "a73f8b80ed6f3be93f4582cc840a02a50bc2a87a"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:45:41 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:45:41 2026 -0400"
      },
      "message": "comment fix\n"
    },
    {
      "commit": "a73f8b80ed6f3be93f4582cc840a02a50bc2a87a",
      "tree": "d4b21177a18ad27a8c4cefcb73a025163fbc9fb5",
      "parents": [
        "b0c0216d7ecc2533a159c6de7922ebf75eb1645b"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:18:21 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:18:21 2026 -0400"
      },
      "message": "rebuilt\n"
    },
    {
      "commit": "b0c0216d7ecc2533a159c6de7922ebf75eb1645b",
      "tree": "3e4b66878975e74d59aaa997f6931e24aabab0c1",
      "parents": [
        "984978bb2c208384eb2f309dea028cbe187f636b"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:13:18 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:13:18 2026 -0400"
      },
      "message": "per-channel weight parameter rename (discovered during documentation pass)\n"
    },
    {
      "commit": "984978bb2c208384eb2f309dea028cbe187f636b",
      "tree": "559a1b6a05e0948e7b7327afe6206f4d8318f9f2",
      "parents": [
        "bbc49c63a802071ea427e72e4ae5d0efb8621823"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:12:26 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:12:26 2026 -0400"
      },
      "message": "updating per-channel weight comment\n"
    },
    {
      "commit": "bbc49c63a802071ea427e72e4ae5d0efb8621823",
      "tree": "359fc9a11b6fe83e665c36509b4f6124e089b910",
      "parents": [
        "079b0129ee1e836e661261d9691b0d60d54e7055"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:09:46 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:09:46 2026 -0400"
      },
      "message": "rebuild artifact\n"
    },
    {
      "commit": "079b0129ee1e836e661261d9691b0d60d54e7055",
      "tree": "14ddfaa2dc750af07754693b79a39f6b1683c4c0",
      "parents": [
        "fecef375e7c5023b170177cff815dec7a1fc6382"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:05:48 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:05:48 2026 -0400"
      },
      "message": "updating comment for set_srgb_options()\n"
    },
    {
      "commit": "fecef375e7c5023b170177cff815dec7a1fc6382",
      "tree": "76c021289c2c00afe501690565c4fb0ff439f35b",
      "parents": [
        "b50b394845bfecb5ed72f005d3eedcd7fefe1341"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:03:05 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 22:03:05 2026 -0400"
      },
      "message": "Compression parameter rename: renaming m_xuastc_ldr_channel_weights[] to m_ldr_channel_weights[] (it\u0027s no longer XUASTC/ASTC specific, it\u0027s also used for XUBC7 and DDS creation)\n"
    },
    {
      "commit": "b50b394845bfecb5ed72f005d3eedcd7fefe1341",
      "tree": "fed55d2f33ebe5dc49428be0f00a99ff326c5b2e",
      "parents": [
        "e79d46aadd8ec8a2963c0a4c0ef1a2ee0f85a11c"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 21:40:00 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 21:40:00 2026 -0400"
      },
      "message": "adding set_ldr_srgb_channel_weights() compression parameter API (it\u0027s no longer XUASTC/ASTC specific)\n"
    },
    {
      "commit": "e79d46aadd8ec8a2963c0a4c0ef1a2ee0f85a11c",
      "tree": "074ea952d67e51b6a5fcc19baebe1b0b9e1b78a3",
      "parents": [
        "0857faf8d7e7e856c28e2adf3c9aaf6e8d09ba4c"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 02:17:29 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 02:17:29 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "0857faf8d7e7e856c28e2adf3c9aaf6e8d09ba4c",
      "tree": "91d66f33f3278aa16c2c3e3be946cc1c2d3f7bdc",
      "parents": [
        "0442737aa7d9d01861cdaf1b827590943a9e6ac3"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 02:06:10 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jul 03 02:06:10 2026 -0400"
      },
      "message": "changing the GL base internal format for BC6H to be RGB not RGBA\n"
    },
    {
      "commit": "0442737aa7d9d01861cdaf1b827590943a9e6ac3",
      "tree": "f8774eacc02f2b98b72aee5c0efa79320064903b",
      "parents": [
        "306ff5f9511d8760b670d2b0831ccc9009675d47"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 23:14:30 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 23:14:30 2026 -0400"
      },
      "message": "deblocking comment update\n"
    },
    {
      "commit": "306ff5f9511d8760b670d2b0831ccc9009675d47",
      "tree": "5cc10450a9054a5d58ea51d633fc73301e3f9a98",
      "parents": [
        "174366837383bac3dce8c5eec3c862592a4f64ee"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 22:55:40 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 22:55:40 2026 -0400"
      },
      "message": "minor change\n"
    },
    {
      "commit": "174366837383bac3dce8c5eec3c862592a4f64ee",
      "tree": "0ded96b5a1067827bdbfe05acddd2e9682cf3723",
      "parents": [
        "2ac31268415119961c06d68f47c1a7abf5c2bba0"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 22:52:05 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 22:52:05 2026 -0400"
      },
      "message": "adding D3D 11 shader deblocking sample (a port of the native OpenGL version)\n"
    },
    {
      "commit": "2ac31268415119961c06d68f47c1a7abf5c2bba0",
      "tree": "5539951fced6469cd9357ae72a9a0c44817ac2be",
      "parents": [
        "f99e343c0047a65a7f9d0f497bf20d00d68bc280"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 04:20:51 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 04:20:51 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "f99e343c0047a65a7f9d0f497bf20d00d68bc280",
      "tree": "d4f9171909d290bd88124ebfe563ae4e8bf3540b",
      "parents": [
        "929f80198df13a031d4254ac924a0e635d4f7a33"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 04:11:58 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 04:11:58 2026 -0400"
      },
      "message": "code fix found via AI audit\n"
    },
    {
      "commit": "929f80198df13a031d4254ac924a0e635d4f7a33",
      "tree": "6c87c76dfdd26eca0d59fa12507cca08f6963f9c",
      "parents": [
        "2de810cd711ce72e1169581f6107a0208ca556df"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 01:32:34 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jul 02 01:32:34 2026 -0400"
      },
      "message": "fixing comments\n"
    },
    {
      "commit": "2de810cd711ce72e1169581f6107a0208ca556df",
      "tree": "562f9619ab28ea7477fb0896c2fece4fafd73625",
      "parents": [
        "069e065454bb4fd476c0e3b2f30413d12dcf828a",
        "1105886f569e810789131c86c5b52e2017e7efd4"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 23:43:02 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 23:43:02 2026 -0400"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027\n"
    },
    {
      "commit": "069e065454bb4fd476c0e3b2f30413d12dcf828a",
      "tree": "7e059ebde2bb16a064c4bb09e1a30d0c3179abfc",
      "parents": [
        "37b08e0a5beae2edc81333373760af0893626665"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 23:43:00 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 23:43:00 2026 -0400"
      },
      "message": "formatting fix\n"
    },
    {
      "commit": "1105886f569e810789131c86c5b52e2017e7efd4",
      "tree": "d46c139a249c3be3d6f8ec8dac531414de0fa018",
      "parents": [
        "7dbf3308ebf2c2d2c05bf09f487e79c8ad04c469"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:52:22 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:52:22 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "7dbf3308ebf2c2d2c05bf09f487e79c8ad04c469",
      "tree": "e880d49ed8b9e23c718b7a4ba00bb67d6377799d",
      "parents": [
        "11f4bf8a141a9db3585394d44a63fcc76a71a7f8"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:50:42 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:50:42 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "11f4bf8a141a9db3585394d44a63fcc76a71a7f8",
      "tree": "55c7b31ef2df2cadcc80268087fb6a6938c4e173",
      "parents": [
        "a27c30c9647e43fda246a7f97eb67d50d5474d69"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:49:17 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:49:17 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "a27c30c9647e43fda246a7f97eb67d50d5474d69",
      "tree": "5e885df11b5a1fbf068c318d9f3281845d2fcd4b",
      "parents": [
        "0e4cd3e4e520a786f8b08dad8dc5339983c88288"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:46:43 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:46:43 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "0e4cd3e4e520a786f8b08dad8dc5339983c88288",
      "tree": "0118e501716f7bb4ecf064b1d3d2c1f68f3cdcd0",
      "parents": [
        "37b08e0a5beae2edc81333373760af0893626665"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:45:14 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:45:14 2026 -0400"
      },
      "message": "Update NOTICE"
    },
    {
      "commit": "37b08e0a5beae2edc81333373760af0893626665",
      "tree": "a4d632922c41ddefa43a5fb9283201b881088776",
      "parents": [
        "bfa665aa267615d18f078fc4f43b11f074c9e446",
        "f6a7da553217b0f2f38972e96b0f3136341e0314"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:10:13 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:10:13 2026 -0400"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027\n"
    },
    {
      "commit": "bfa665aa267615d18f078fc4f43b11f074c9e446",
      "tree": "03aca6111194ba190317a3a0291b6dda96fb520b",
      "parents": [
        "7ba9f36875dd1164b7393855003ac01ef2759128"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:10:10 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:10:10 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "f6a7da553217b0f2f38972e96b0f3136341e0314",
      "tree": "ca9fe73e00b10b80bf52504716c956396faf7749",
      "parents": [
        "4de7c436346b80ceb919d5b637794a112b2dec93"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:04:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:04:15 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "4de7c436346b80ceb919d5b637794a112b2dec93",
      "tree": "3135c6361383ddf9ccf2c03548a84fc3ddc26cc6",
      "parents": [
        "7ba9f36875dd1164b7393855003ac01ef2759128"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 15:03:38 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:03:38 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "7ba9f36875dd1164b7393855003ac01ef2759128",
      "tree": "7cd0f23ed4816d206cbbfb74f1aaaa85331e7c6d",
      "parents": [
        "c5e05d088eb3dd737c104903abdbedd5c7e1db6d"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:52:07 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:52:07 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "c5e05d088eb3dd737c104903abdbedd5c7e1db6d",
      "tree": "a30f35925874c3ca82931173b1c2d870687ccb7b",
      "parents": [
        "02b43c874fa2e059286be6cb85d089a097e18818"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:51:05 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:51:05 2026 -0400"
      },
      "message": "Update README to include DDS transcoding support\n\nAdded a new section on DDS transcoding support, detailing the capabilities of the transcoder module in version 2.5."
    },
    {
      "commit": "02b43c874fa2e059286be6cb85d089a097e18818",
      "tree": "d615e2c4f690f479a157d23ba1d2a88a68eaa619",
      "parents": [
        "1159d2567f122b9966432561cfac723b6cefb059"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:49:52 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:49:52 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "1159d2567f122b9966432561cfac723b6cefb059",
      "tree": "faae2a6f27b07835932f8545a8bef6accccb381d",
      "parents": [
        "58e0fe2164f76602c737041a858e5805472a9aea"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:45:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:45:51 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "58e0fe2164f76602c737041a858e5805472a9aea",
      "tree": "92189c361145cb6e6ba2c4602001ddcce54a2242",
      "parents": [
        "b2f76edb93fcdcc75aae496f3b64da791d97574d"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:44:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:44:48 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "b2f76edb93fcdcc75aae496f3b64da791d97574d",
      "tree": "60beb1c7ca797f64a22ed190669a1d29b11d4869",
      "parents": [
        "c8e1ddf4ecda44995019feaebf7b83d61487b48e"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:43:30 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:43:30 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "c8e1ddf4ecda44995019feaebf7b83d61487b48e",
      "tree": "7080131de729194214dcda4567d2c21532f0226a",
      "parents": [
        "796b716cb23b804b921a67faf2361ec60bf56d7e"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:43:08 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:43:08 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "796b716cb23b804b921a67faf2361ec60bf56d7e",
      "tree": "f973eb56402026c7543db84bdfd64759adb6706f",
      "parents": [
        "77677a5fd9636e11d9666d70054751ef93cd5f44"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:26:16 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 14:26:16 2026 -0400"
      },
      "message": "fixing -test_codecs so it\u0027s multithreaded in WASM WASI MT builds\n"
    },
    {
      "commit": "77677a5fd9636e11d9666d70054751ef93cd5f44",
      "tree": "c5cd9f7543eee6b0e0bb0572086d19d832a91368",
      "parents": [
        "3bfdc566d1945a6de368841371a012b31da37cda"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:52:13 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:52:13 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "3bfdc566d1945a6de368841371a012b31da37cda",
      "tree": "a5ebd568594faf0312deb465d7090d5ca7d76d6a",
      "parents": [
        "1152785ab69346e69eb2748f8e658bd1dfd38b24"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:31:11 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:31:11 2026 -0400"
      },
      "message": "modification for v2.5\n"
    },
    {
      "commit": "1152785ab69346e69eb2748f8e658bd1dfd38b24",
      "tree": "acbb3cba626d941918b437b74aace4457223d93e",
      "parents": [
        "e4a81a0066b2ad7adf4f0cd873aba6cff21c364e"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:30:21 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:30:21 2026 -0400"
      },
      "message": "modifications for v2.5\n"
    },
    {
      "commit": "e4a81a0066b2ad7adf4f0cd873aba6cff21c364e",
      "tree": "6a0dd05a87602666c7fa4770fe34625311b93281",
      "parents": [
        "1093ca17ef1a39d3741969677ff80ee5ba695a14"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:30:03 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:30:03 2026 -0400"
      },
      "message": "new files\n"
    },
    {
      "commit": "1093ca17ef1a39d3741969677ff80ee5ba695a14",
      "tree": "39e6720f790669c503669a768ad9f7545ece600f",
      "parents": [
        "3cfdd2240bb08e36e4881a8c4d0f0c7d7bd99e6d"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:20:19 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:20:19 2026 -0400"
      },
      "message": "modifications for v2.5\n"
    },
    {
      "commit": "3cfdd2240bb08e36e4881a8c4d0f0c7d7bd99e6d",
      "tree": "d4aeb2d17b0f2f024d9f74511ccb7e1b57362ac0",
      "parents": [
        "56ba46d4859f48d98886ea903267cc825c5dd83c"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:20:12 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:20:12 2026 -0400"
      },
      "message": "new files for v2.5\n"
    },
    {
      "commit": "56ba46d4859f48d98886ea903267cc825c5dd83c",
      "tree": "85c1a758d176a16866ba545b41ff606f877f69e7",
      "parents": [
        "8291f1b23855acd6dceb634b5507187a3c2231c9"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:19:14 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:19:14 2026 -0400"
      },
      "message": "UBSAN bug fixes (shifting)\n"
    },
    {
      "commit": "8291f1b23855acd6dceb634b5507187a3c2231c9",
      "tree": "d57942e4d26e8d16afde610e0dd29a9ef2f878a4",
      "parents": [
        "8805a4fbc68ee0550fe20bece4301b5b1bc26aac"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:18:24 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:18:24 2026 -0400"
      },
      "message": "modifications for v2.5\n"
    },
    {
      "commit": "8805a4fbc68ee0550fe20bece4301b5b1bc26aac",
      "tree": "c60c0e418f1eff5e21e98405282f094adbfbeea5",
      "parents": [
        "afb3d4aef228b3bf15b433a0d1710c0303b14f9b"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:16:44 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:16:44 2026 -0400"
      },
      "message": "removing file\n"
    },
    {
      "commit": "afb3d4aef228b3bf15b433a0d1710c0303b14f9b",
      "tree": "4e6b9d8df6ea32bc88ef0cb3133ecebe29ca8beb",
      "parents": [
        "e5aa8306f31faef483fde72bd4bd1166335c621d"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:16:04 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:16:04 2026 -0400"
      },
      "message": "modifications for v2.5\n"
    },
    {
      "commit": "e5aa8306f31faef483fde72bd4bd1166335c621d",
      "tree": "e5aa630f3dd61c628adb0e2d72b41a90136ef8a1",
      "parents": [
        "a452ae7f31b1ba88880aef90e38b1973bc0e3b19"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:15:57 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:15:57 2026 -0400"
      },
      "message": "adding new sample\n"
    },
    {
      "commit": "a452ae7f31b1ba88880aef90e38b1973bc0e3b19",
      "tree": "5b1118b0e6f8e0101470b5a3a7604e37e5edd5ae",
      "parents": [
        "d2c91746facabffcffe6c4f516128bea799b4fb9"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:14:04 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:14:04 2026 -0400"
      },
      "message": "adding new sample\n"
    },
    {
      "commit": "d2c91746facabffcffe6c4f516128bea799b4fb9",
      "tree": "d57cdb1e2d4eef5bca4756030a026dcdfa867179",
      "parents": [
        "1f728895a8bc1dec8af4c101e15dec76cbab97cc"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:13:54 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:13:54 2026 -0400"
      },
      "message": "removing old sample, replaced with python/shader_deblocking\n"
    },
    {
      "commit": "1f728895a8bc1dec8af4c101e15dec76cbab97cc",
      "tree": "04aa28b7024ee47ae5d7a27260b0408b44cd56a7",
      "parents": [
        "6172955c43e656efe0665cd15b33a568e515d286"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:11:58 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:11:58 2026 -0400"
      },
      "message": "new shader deblocking sample for v2.5\n"
    },
    {
      "commit": "6172955c43e656efe0665cd15b33a568e515d286",
      "tree": "78e3f648d4810bc4b3f7e3db5b03b5697e3c2305",
      "parents": [
        "43abe94b4d333c0a93a0f79f3b853c839c20152f"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:11:07 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:11:07 2026 -0400"
      },
      "message": "new test files for v2.5\n"
    },
    {
      "commit": "43abe94b4d333c0a93a0f79f3b853c839c20152f",
      "tree": "023a7b4da05cb57faeb38916632cb822f1e96226",
      "parents": [
        "5d424ba999ff26ee958658607d09969d9ff8ec51"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:10:42 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:10:42 2026 -0400"
      },
      "message": "changes for v2.5\n"
    },
    {
      "commit": "5d424ba999ff26ee958658607d09969d9ff8ec51",
      "tree": "3aee8560d9ae179e0c409387c2936316136db2ed",
      "parents": [
        "cee913ad4e440b5da86443d615e764cbb22388ed"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:01:00 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:01:00 2026 -0400"
      },
      "message": "new file\n"
    },
    {
      "commit": "cee913ad4e440b5da86443d615e764cbb22388ed",
      "tree": "f0fc23161aa56c72fbd6946848610eb6165a0bf4",
      "parents": [
        "8693d6e42350aa37382f87ba8b4e6754579b49fa"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:00:49 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:00:49 2026 -0400"
      },
      "message": "modified for v2.5\n"
    },
    {
      "commit": "8693d6e42350aa37382f87ba8b4e6754579b49fa",
      "tree": "d72c9d06e9de67aa6ab6248355927bb053f671ca",
      "parents": [
        "6bec299da1f70cf22f7d916ab12c90c10aeaea0b"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:00:43 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 13:00:43 2026 -0400"
      },
      "message": "new files\n"
    },
    {
      "commit": "6bec299da1f70cf22f7d916ab12c90c10aeaea0b",
      "tree": "64c59b1e05091629323d34c6181998720795bfd3",
      "parents": [
        "ad5cf81f477457a9b82c6df033931b9cf9fd7df7"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:35 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:35 2026 -0400"
      },
      "message": "modified for v2.5\n"
    },
    {
      "commit": "ad5cf81f477457a9b82c6df033931b9cf9fd7df7",
      "tree": "8a07df5348408681e484ea5681beebb435b479e3",
      "parents": [
        "60c9e474ad2007b4aff85cf141f23c73c2cdace5"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:29 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:29 2026 -0400"
      },
      "message": "adding new sample\n"
    },
    {
      "commit": "60c9e474ad2007b4aff85cf141f23c73c2cdace5",
      "tree": "26e1859b35045ca69762aeead24fea69751424bc",
      "parents": [
        "4e32794532627bc3c56d823c5957209f8aa9a7d7"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:16 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:16 2026 -0400"
      },
      "message": "adding new files\n"
    },
    {
      "commit": "4e32794532627bc3c56d823c5957209f8aa9a7d7",
      "tree": "79a9f28b998240ab136b579227be81fd85cdfb17",
      "parents": [
        "1aab02ba2df16ad873229030ea191ea8c10e3fc9"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:08 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Wed Jul 01 12:59:08 2026 -0400"
      },
      "message": "moving ktx2_encode_test to ktx2_studio, adding new files\n"
    },
    {
      "commit": "1aab02ba2df16ad873229030ea191ea8c10e3fc9",
      "tree": "e0899f445df2a71747dfad2618b21375f06b07a1",
      "parents": [
        "f6ce7ba3cd46cb376182e4381b00c802a52f6cab"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jun 05 14:22:22 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Fri Jun 05 14:22:22 2026 -0400"
      },
      "message": "disabling assert (it rarely triggers unnecessarily during cross-checking)\n"
    },
    {
      "commit": "f6ce7ba3cd46cb376182e4381b00c802a52f6cab",
      "tree": "a4f369e1f9cdd1a09ca1aed54347313591dbbe3e",
      "parents": [
        "c50c05b86404e38b3ec6d2ab6fb617023062f98b"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jun 04 20:06:26 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jun 04 20:06:26 2026 -0400"
      },
      "message": "adding extra check to ensure read fully succeeds\n"
    },
    {
      "commit": "c50c05b86404e38b3ec6d2ab6fb617023062f98b",
      "tree": "821c19ef688fd1611ef4c520ae01850b31163a99",
      "parents": [
        "693910c928b3baa7e778753df0de1dc75eefa9b9"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jun 04 15:14:45 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Thu Jun 04 15:14:45 2026 -0400"
      },
      "message": "fixing potential overflow issue in PNG reader\n"
    },
    {
      "commit": "693910c928b3baa7e778753df0de1dc75eefa9b9",
      "tree": "1456a9cf2e2439032cbc4e971a79b1a7b8a00883",
      "parents": [
        "e4f439fc9545b6a9e1fd26fc7ffd0c682c4b96d4"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Jun 01 13:37:26 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Jun 01 13:37:26 2026 -0400"
      },
      "message": "disabling overly cautious assert (for now until v2.5)\n"
    },
    {
      "commit": "e4f439fc9545b6a9e1fd26fc7ffd0c682c4b96d4",
      "tree": "cb05b8bf4ea1e9216dab440126ef7fa7aee88496",
      "parents": [
        "4b680f858ba1ec159ab38a065c4c3fdd22ad4e28"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sun Apr 26 14:52:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 26 14:52:29 2026 -0400"
      },
      "message": "Update README.md"
    },
    {
      "commit": "4b680f858ba1ec159ab38a065c4c3fdd22ad4e28",
      "tree": "38431bc14f65f6a53f036443108a12ca2dc522ff",
      "parents": [
        "1e9ab1f575cd52d2bfc053dd4def2da5f091316f"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 21 14:19:25 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 21 14:19:25 2026 -0400"
      },
      "message": "fixing dependency on TinyDDS_MipMapReduce(), which is internal to TinyDDS\n"
    },
    {
      "commit": "1e9ab1f575cd52d2bfc053dd4def2da5f091316f",
      "tree": "320313705f1a1d9635de0a5e58d676189d4f2d74",
      "parents": [
        "16d7d1460d956adb17a59d5d992163398af1f481"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:21:02 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:21:02 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "16d7d1460d956adb17a59d5d992163398af1f481",
      "tree": "d3a22433a3ce5ede31bb045be164f547c24091b2",
      "parents": [
        "2280b753ceb66292c59e6287a5551884d2e24aee"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:15:49 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:15:49 2026 -0400"
      },
      "message": "- Adding max supported texture size (16K) check to KTX2 header parser\n"
    },
    {
      "commit": "2280b753ceb66292c59e6287a5551884d2e24aee",
      "tree": "4e1ee5b223e278acd2ff44a313985cb430da0596",
      "parents": [
        "882abb5320400ab650c1be33f9152e4955e83af3"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:00:48 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:00:48 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "882abb5320400ab650c1be33f9152e4955e83af3",
      "tree": "572b8e27291929c49da611a095382f1a78971c51",
      "parents": [
        "98f1ccb377a7b3e3afe0eb2caf1a200a18382aaf"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:00:32 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 20 03:00:32 2026 -0400"
      },
      "message": "- .basis transcoder class now validates the basis_slice_desc structs to ensure the original (unpadded) dimensions are valid, not too large (beyond 16K on either dimension), and are in sync with the slice\u0027s block dimensions. All methods that parse the slice desc structs now validate the contents first.\n- basisu_lowlevel_etc1s_transcoder::transcode_slice(): Added PVRTC temp buf malloc buffer size sanity checking\n\nThanks to Canxuepiao Jian for the report.\n"
    },
    {
      "commit": "98f1ccb377a7b3e3afe0eb2caf1a200a18382aaf",
      "tree": "0fe7bfdf5a3aaa4f4b57fee9e36f821016bd94fc",
      "parents": [
        "ae89aab33c650a937038d9d2e31239177373d2ae"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sun Apr 12 13:00:47 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sun Apr 12 13:00:47 2026 -0400"
      },
      "message": "fixing qoi_decode() declaration\n"
    },
    {
      "commit": "ae89aab33c650a937038d9d2e31239177373d2ae",
      "tree": "5251285b49269fa4c3c8ec19d3b12a001e726f3a",
      "parents": [
        "801b67dbf3e1490743588236a44928f605a0ed25"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 16:36:17 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 16:36:17 2026 -0400"
      },
      "message": "Adding new files (latest tinyexr library)\n"
    },
    {
      "commit": "801b67dbf3e1490743588236a44928f605a0ed25",
      "tree": "8d3aba9c7db197590288c6bbc7f3a2fdc4191396",
      "parents": [
        "542ed6555dffc31c2ed2b77733f9603a3346cb18"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 16:31:07 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 16:31:07 2026 -0400"
      },
      "message": "rebuilt artifacts\n"
    },
    {
      "commit": "542ed6555dffc31c2ed2b77733f9603a3346cb18",
      "tree": "4362e9822314bc16769b5689a4165e4548e1b639",
      "parents": [
        "0a35b574d22ed2974e64e2c2b60e0e57fdd9190f"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 16:30:57 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 16:30:57 2026 -0400"
      },
      "message": "tinyexr: upgrading to latest library version. We no longer modify tinyexr, i.e. the tinyexr.h header we\u0027re using is now completely standard. We direct tinyexr\u0027s zlib calls to our fork of miniz internally.\n"
    },
    {
      "commit": "0a35b574d22ed2974e64e2c2b60e0e57fdd9190f",
      "tree": "0f746415e83282646818ca0c57ba202554179508",
      "parents": [
        "d4e9574796d27138c0b5c01a87d928c5c9ba601c"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 15:40:28 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 15:40:28 2026 -0400"
      },
      "message": "removing file\n"
    },
    {
      "commit": "d4e9574796d27138c0b5c01a87d928c5c9ba601c",
      "tree": "abd637c3d9325f527626e8c1680076254d4a87d6",
      "parents": [
        "8c6e668f18083b9c216e7a832cf7f9e71e6ef429"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 15:39:11 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Tue Apr 07 15:39:11 2026 -0400"
      },
      "message": "new file\n"
    },
    {
      "commit": "8c6e668f18083b9c216e7a832cf7f9e71e6ef429",
      "tree": "1e850c81a3a5087b16d669be110d1f8336c44ade",
      "parents": [
        "6b6517e86d7806c0255cf3ec8e6ae798228fcc6a"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 14:06:27 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 14:06:27 2026 -0400"
      },
      "message": "deleting encoder/3rdparty/android_astc_decomp.h\n"
    },
    {
      "commit": "6b6517e86d7806c0255cf3ec8e6ae798228fcc6a",
      "tree": "7731aad67406757f56c7158c628adf9edfc04cea",
      "parents": [
        "7dac9fb464b21a286f13b9e018382c40c13d5f66"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 14:04:59 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 14:04:59 2026 -0400"
      },
      "message": "Adding BASISU_DISABLE_ANDROID_ASTC_DECOMP cmake option: if 1, the android ASTC decoder .cpp file is entirely eliminated and we emulate its functionality internally.\n"
    },
    {
      "commit": "7dac9fb464b21a286f13b9e018382c40c13d5f66",
      "tree": "e3c9c1006db50792c2877f3141160393e847a738",
      "parents": [
        "2f12dc72be9c0cd7ec4a4a8206f5fcc6dc205f0b"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 13:53:50 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 13:53:50 2026 -0400"
      },
      "message": "Adding BASISU_DISABLE_ANDROID_ASTC_DECOMP cmake option: if 1, the android ASTC decoder .cpp file is entirely eliminated and we emulate its functionality internally.\n"
    },
    {
      "commit": "2f12dc72be9c0cd7ec4a4a8206f5fcc6dc205f0b",
      "tree": "cdedbe6999cee2774cfed4219c07e73118a4811d",
      "parents": [
        "83b7e87328c067f1f98bfbb684d3ed2f48797bac"
      ],
      "author": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 13:53:00 2026 -0400"
      },
      "committer": {
        "name": "Richard Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Mon Apr 06 13:53:00 2026 -0400"
      },
      "message": "Adding BASISU_DISABLE_ANDROID_ASTC_DECOMP cmake option: if 1, the android ASTC decoder .cpp file is entirely eliminated and we emulate its functionality internally.\n"
    },
    {
      "commit": "83b7e87328c067f1f98bfbb684d3ed2f48797bac",
      "tree": "e4a0223fbae9eebb678d87caa8804a56f880e5db",
      "parents": [
        "b642cfa07bbe3ffa27e08b46fd29e532422f4755"
      ],
      "author": {
        "name": "Rich Geldreich",
        "email": "richgel99@protonmail.com",
        "time": "Sat Apr 04 10:56:08 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 04 10:56:08 2026 -0400"
      },
      "message": "Update README.md"
    }
  ],
  "next": "b642cfa07bbe3ffa27e08b46fd29e532422f4755"
}
