)]}'
{
  "log": [
    {
      "commit": "0935cb540787407ce4ea9c768bfa36e8f1470f8f",
      "tree": "53886b6e8b5c3ed1691ee548a788c8548914e2c5",
      "parents": [
        "11eebb35db6bbcfb94c8139c20e392b96e21f956"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 15:17:59 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 15:17:59 2026 +0000"
      },
      "message": "Better use of JUnit API (comment).\n"
    },
    {
      "commit": "11eebb35db6bbcfb94c8139c20e392b96e21f956",
      "tree": "5ed03cfc5be31e3bbde312f86b259e22c3be69cb",
      "parents": [
        "c66d035adac4ebfdf41c067e1cfaa13bb6f345ce"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 09:49:53 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 09:49:53 2026 -0400"
      },
      "message": "Bump actions/checkout from 7.0.0 to 7.0.1\n"
    },
    {
      "commit": "c66d035adac4ebfdf41c067e1cfaa13bb6f345ce",
      "tree": "917de48f0428c54410672309018fb904f88a6f68",
      "parents": [
        "ba6d2d687bfe677dc7adcaee133dcf5899919e5e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:40:31 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:40:31 2026 -0400"
      },
      "message": "[NET-745][Javadoc] Improve UnixFTPEntryParser when filename with leading\nspace when listing contains a year instead of time (IBM i example)\n(#405).\n\nSort members.\n"
    },
    {
      "commit": "ba6d2d687bfe677dc7adcaee133dcf5899919e5e",
      "tree": "984a55384478b12c3077c55f7747ec74a4c22b28",
      "parents": [
        "54ee8fe99384bcd4198b3da4b8698618fd52d4cf"
      ],
      "author": {
        "name": "Sarankumar Baskar",
        "email": "saranbaskar121@gmail.com",
        "time": "Wed Jul 22 20:06:38 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 10:36:38 2026 -0400"
      },
      "message": "[NET-745] Clarify UnixFTPEntryParser trimLeadingSpaces in Javadoc (#405)\n\n* [NET-745] Clarify UnixFTPEntryParser trimLeadingSpaces in Javadoc\n\n* Refine comments on leading spaces in UnixFTPEntryParser\n\nUpdated comments to clarify handling of leading spaces in file names.\n\n---------\n\nCo-authored-by: Sarankumar Baskar \u003csbaskar@redhat.com\u003e\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "54ee8fe99384bcd4198b3da4b8698618fd52d4cf",
      "tree": "06a94bb4f0115312e208eb58905f7fcde07cfbdb",
      "parents": [
        "0c160ea4133380e58a1725d0fe5f8905595c8c01"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 08:27:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 08:27:45 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 102 to 103.\n"
    },
    {
      "commit": "0c160ea4133380e58a1725d0fe5f8905595c8c01",
      "tree": "437fa6adae8535caf00cd9898cf3aac1bb9828c8",
      "parents": [
        "ff6c4e5c73aecdfc89df197db160f80fe5ee7a99"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 13:45:50 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 13:45:50 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.37.0 to 4.37.1\n"
    },
    {
      "commit": "ff6c4e5c73aecdfc89df197db160f80fe5ee7a99",
      "tree": "18480ca8895bac5a852739150a68ff0b8e4fd660",
      "parents": [
        "52c16bb0cc2d6d1ad05e7d8624865b6b9efaa64c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 11:46:06 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 11:46:06 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.5.0 to 5.6.0\n"
    },
    {
      "commit": "52c16bb0cc2d6d1ad05e7d8624865b6b9efaa64c",
      "tree": "2b93e05aad7aa6a81e0c127ff3e599ce0d40a828",
      "parents": [
        "cb70005bddcc6ba9dbe17ceaaef20b04aabd7636"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:53:48 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:53:48 2026 -0700"
      },
      "message": "Refactor duplication.\n"
    },
    {
      "commit": "cb70005bddcc6ba9dbe17ceaaef20b04aabd7636",
      "tree": "b12663abe0942acbe404af75f107d24a01ec92b1",
      "parents": [
        "a79729464f6e69b773171ff30e3d483cab7afd70"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:51:45 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:51:45 2026 -0700"
      },
      "message": "Run hostname verifier on FTPS data connection (#404)."
    },
    {
      "commit": "a79729464f6e69b773171ff30e3d483cab7afd70",
      "tree": "fde632f9b126b954f601e98315335dbc3d287210",
      "parents": [
        "faa4edd7e287a3db465a32efd9c2d5faa15757fe"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Sat Jul 18 23:20:22 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 13:50:22 2026 -0400"
      },
      "message": "Run hostname verifier on FTPS data connection (#404)\n\n* run hostname verifier on FTPS data connection\n\n* Update FTPSClient.java\n\n---------\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "faa4edd7e287a3db465a32efd9c2d5faa15757fe",
      "tree": "52ebe8da904e09045f85349f1476cfeaf81d16ba",
      "parents": [
        "3ee3cdf937bc18c4391dd00d84fc9a561194f10e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 13 13:50:04 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 13 13:50:04 2026 -0700"
      },
      "message": "Bump actions/setup-java from 5.4.0 to 5.5.0\n"
    },
    {
      "commit": "3ee3cdf937bc18c4391dd00d84fc9a561194f10e",
      "tree": "eddc6c18a4e08fc91d222caa2818a0664fe3acbe",
      "parents": [
        "b4654a445b6f340d41a5afb0e7199705e300437e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 11:22:38 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 11:22:38 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "b4654a445b6f340d41a5afb0e7199705e300437e",
      "tree": "9a204242cfee75b12081a5a04457d643e96178b8",
      "parents": [
        "4b4c68d91ed1797232c98a478ca00dcb56758094"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 09:09:01 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 09:09:01 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "4b4c68d91ed1797232c98a478ca00dcb56758094",
      "tree": "63ea066833cbfb007e228568340c3c4d98a2b924",
      "parents": [
        "e73324c16feaf6fd8c97a3b722b4a3a15458c906"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 08:51:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 08:51:17 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "e73324c16feaf6fd8c97a3b722b4a3a15458c906",
      "tree": "709af71eb686b57e03fa8ac7dcfbc0c9ce518fc8",
      "parents": [
        "09ca15f41908f23fd02f11fc81cb2c81ef7eeed5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 10 09:08:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 10 09:08:56 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.3 to 4.37.0\n"
    },
    {
      "commit": "09ca15f41908f23fd02f11fc81cb2c81ef7eeed5",
      "tree": "290d35922e6e759b6815b6f1a1e849b0dc901a97",
      "parents": [
        "a99c69043ad9aa7d39d66ead63e13ba7335e60cb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 08 16:15:10 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 08 16:15:10 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.2 to 4.36.3\n"
    },
    {
      "commit": "a99c69043ad9aa7d39d66ead63e13ba7335e60cb",
      "tree": "7862a77bc66bae273c43ffe004412f28399b5f43",
      "parents": [
        "3112606673e8cd72378e4890d2ceaa6afb3a350e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 07 07:06:02 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 07 07:06:02 2026 -0400"
      },
      "message": "Normalize spelling.\n"
    },
    {
      "commit": "3112606673e8cd72378e4890d2ceaa6afb3a350e",
      "tree": "953c5644af7a8c6b13428386c6fbf7a3c1923d7e",
      "parents": [
        "6e38749760c0366aac1637c7dc15e4ccf76329c9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 12:06:10 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 12:06:10 2026 -0400"
      },
      "message": "Check parser type before instantiating class in\nDefaultFTPFileEntryParserFactory.createFileEntryParser() (#403)."
    },
    {
      "commit": "6e38749760c0366aac1637c7dc15e4ccf76329c9",
      "tree": "cf9e04e6ca416d803deb0ed02abb58db613765f0",
      "parents": [
        "a3d19751891edb9f7cb8c11bc344eaf1683b2b32"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Sun Jul 05 21:35:17 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 12:05:17 2026 -0400"
      },
      "message": "Check parser type before instantiating class in DefaultFTPFileEntryParserFactory.createFileEntryParser() (#403)\n\n* check parser type before instantiating class in createFileEntryParser\n\nDuring listing auto-detection the parser key is taken from the server\u0027s SYST reply. A key shaped like a qualified class name was passed to Class.forName and constructed before the type was checked, so any classpath class could be instantiated for its side effects. Verify the class implements FTPFileEntryParser before calling the constructor.\n\n* load parser class without initialising before the type check\n\nClass.forName(key) initialises the class, so an unrelated class named\nin the key ran its static initialiser before isAssignableFrom rejected\nit. Load with the three-arg forName (initialize\u003dfalse) so only a real\nFTPFileEntryParser is initialised, when it is constructed. Test now\nasserts the static initialiser does not run.\n\nSigned-off-by: Javid Khan \u003cdxbjavid@gmail.com\u003e\n\n---------\n\nSigned-off-by: Javid Khan \u003cdxbjavid@gmail.com\u003e"
    },
    {
      "commit": "a3d19751891edb9f7cb8c11bc344eaf1683b2b32",
      "tree": "d8e5d7f5058d7c2fd8cab3667325aca3e37158e0",
      "parents": [
        "c4e9d892888c31d2f412caa13ac8c23661915ca0"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 10:00:15 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 10:00:15 2026 -0400"
      },
      "message": "Flip null test\n"
    },
    {
      "commit": "c4e9d892888c31d2f412caa13ac8c23661915ca0",
      "tree": "07992460c52bbf4ca5365287367a5570d3dad8e4",
      "parents": [
        "501ec114e7a8401d65077c28ffc594dc997ed563"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:40:37 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:40:37 2026 -0400"
      },
      "message": "Flip null test\n"
    },
    {
      "commit": "501ec114e7a8401d65077c28ffc594dc997ed563",
      "tree": "94e726767aaf62b05e0f927aa75d737cf4e440dc",
      "parents": [
        "eb50f66112db79ae004b9cb2d090fa3d587da35c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:11:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:11:45 2026 -0400"
      },
      "message": "Flip test\n"
    },
    {
      "commit": "eb50f66112db79ae004b9cb2d090fa3d587da35c",
      "tree": "90f9b69ada6a134d74eb98eb8d27fb7cc61338e5",
      "parents": [
        "95f818f593e8b3d0b446dd21d2c3689ea9f8b725"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:15 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:15 2026 +0000"
      },
      "message": "Reject CR/LF in FTP, POP3, NNTP and SMTP command senders (#400)."
    },
    {
      "commit": "95f818f593e8b3d0b446dd21d2c3689ea9f8b725",
      "tree": "e4a5147b9dd6aeb6f1377582304043885e29ac37",
      "parents": [
        "a07b6c41b5c2369506e7d86c4808dc51317e1481"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:11 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:11 2026 +0000"
      },
      "message": "Sort members\n"
    },
    {
      "commit": "a07b6c41b5c2369506e7d86c4808dc51317e1481",
      "tree": "a7f99818451670ecf4f7fa31fcd537e23d9a1555",
      "parents": [
        "2a3aa71b077ae9290d9c3b95f6ad23b0e0a357c2",
        "4dc2ffa3beb7bc4de5e49880436cb0d6d8ae7309"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Thu Jul 02 10:31:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 10:31:45 2026 -0400"
      },
      "message": "Merge pull request #400 from dxbjavid/reject-crlf-command-senders\n\nReject CR/LF in FTP, POP3, NNTP and SMTP command senders"
    },
    {
      "commit": "2a3aa71b077ae9290d9c3b95f6ad23b0e0a357c2",
      "tree": "29ca298a530eb9b2001b067a621edc016986ab73",
      "parents": [
        "4825c47db0f7e363f34f6a289153be1a9e58e54b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 20:50:48 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 20:50:48 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.3.0 to 5.4.0\n"
    },
    {
      "commit": "4825c47db0f7e363f34f6a289153be1a9e58e54b",
      "tree": "b32aac55293a80ff8c4f2287fb801d97ec8fbdec",
      "parents": [
        "5bd1836f92b802387562cc5382c591cef40615ff"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 14:03:34 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 14:03:34 2026 +0000"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "5bd1836f92b802387562cc5382c591cef40615ff",
      "tree": "57884c5d0adbeec7c13ad7e7c963ef64f054f3b0",
      "parents": [
        "7e7360426b939fe91c288aaf81837895455e32f5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 29 07:30:34 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 29 07:30:34 2026 -0400"
      },
      "message": "Bump actions/cache from 6.0.0 to 6.1.0\n"
    },
    {
      "commit": "7e7360426b939fe91c288aaf81837895455e32f5",
      "tree": "2263b7924f0d12456863fbfea87dcc736841d886",
      "parents": [
        "0e58f4199852d2ad140af28a532b98fa7d9ef6b3"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebbASF@users.noreply.github.com",
        "time": "Thu Jun 25 23:34:25 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 23:34:25 2026 +0100"
      },
      "message": "Add fix for CR/LF rejection in IMAP quoteMailboxName"
    },
    {
      "commit": "0e58f4199852d2ad140af28a532b98fa7d9ef6b3",
      "tree": "0fdd7d364be1bdec6f1667a2b8e93a7802169a58",
      "parents": [
        "84f3e69ad162928ff020b1c20b1845298710380a"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Fri Jun 26 04:00:43 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 23:30:43 2026 +0100"
      },
      "message": "reject CR/LF in IMAP quoteMailboxName (#399)"
    },
    {
      "commit": "84f3e69ad162928ff020b1c20b1845298710380a",
      "tree": "3c12ccb0d949b61366474dc19be7b20c0d8e9d8d",
      "parents": [
        "3bec11ae2ec51831617abfd5a23921606e2d733f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 25 18:24:37 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 25 18:24:37 2026 -0400"
      },
      "message": "Bump actions/cache from 5.0.5 to 6.0.0.\n"
    },
    {
      "commit": "3bec11ae2ec51831617abfd5a23921606e2d733f",
      "tree": "761b67f242ca5f5e36312862e844b4b380598870",
      "parents": [
        "b154b7dcf666481baff69f56127ba52e0deca00d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 07:32:46 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 07:32:46 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.2.0 to 5.3.0\n"
    },
    {
      "commit": "b154b7dcf666481baff69f56127ba52e0deca00d",
      "tree": "1070209aa840d15f056661a804b63c3af9661499",
      "parents": [
        "1f3c76556e54e64ac1eb111f3820088bb9b8c20e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 00:49:05 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 00:49:05 2026 +0000"
      },
      "message": "Double leading dot on first line in DotTerminatedMessageWriter (#398)."
    },
    {
      "commit": "1f3c76556e54e64ac1eb111f3820088bb9b8c20e",
      "tree": "a6c078a0c30206c1d70015720dd36cd4308a0ec8",
      "parents": [
        "d6cebcddffb2cab71f709079d11b039d6878d597",
        "c16f98961b4fc5e7dc438bcd16b162c760277772"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sun Jun 21 20:47:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 20:47:18 2026 -0400"
      },
      "message": "Merge pull request #398 from dxbjavid/double-leading-dot-message-writer\n\nDouble leading dot on first line in DotTerminatedMessageWriter"
    },
    {
      "commit": "d6cebcddffb2cab71f709079d11b039d6878d597",
      "tree": "f38f13521aabe4f358376dda0f9d88a472c3146a",
      "parents": [
        "628086a973b82b27e6a01d7fe28ec89220dbfec5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 19 07:28:54 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 19 07:28:54 2026 -0400"
      },
      "message": "Bump actions/checkout from 6.0.3 to 7.0.0.\n"
    },
    {
      "commit": "628086a973b82b27e6a01d7fe28ec89220dbfec5",
      "tree": "6138f4c6f7b5a24b643b53013b2744b015b58105",
      "parents": [
        "b273da0914bdf59882e6b9a445c2b0843cdac625"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 14:24:18 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 14:24:18 2026 -0400"
      },
      "message": "Update legacy GitHub links in CONTRIBUTING.md\n"
    },
    {
      "commit": "b273da0914bdf59882e6b9a445c2b0843cdac625",
      "tree": "a8a63549253790304b138b8a983e309d56cb29e5",
      "parents": [
        "1585352c4ade7020960a50ef04a799ae9a7bd2d2",
        "737cdd60e4128fc1a819bb3ad403ea0c4c80ba67"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Thu Jun 11 11:34:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 11:34:18 2026 -0400"
      },
      "message": "Merge pull request #401 from apupier/addConcurrencyCancelInProgressForPRGitHubWorkflows\n\nConfigure GitHub workflows to use concurrency cancel-in-progress for pull requests"
    },
    {
      "commit": "737cdd60e4128fc1a819bb3ad403ea0c4c80ba67",
      "tree": "a8a63549253790304b138b8a983e309d56cb29e5",
      "parents": [
        "1585352c4ade7020960a50ef04a799ae9a7bd2d2"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Thu Jun 11 16:36:30 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Thu Jun 11 16:36:30 2026 +0200"
      },
      "message": "Configure GitHub workflows to use concurrency cancel-in-progress for\npull requests\n\nsee recommended best practices at Apache\nhttps://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey\u003dINFRA\u0026title\u003dGitHub+Actions+Recommended+Practices\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "1585352c4ade7020960a50ef04a799ae9a7bd2d2",
      "tree": "c95264a9501ef865acc9ad46fa95e70b1588a545",
      "parents": [
        "99e05b1feb31d9a9c40868749f7d0be8e1a538dc"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 10:28:22 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 10:28:22 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 101 to 102.\n"
    },
    {
      "commit": "99e05b1feb31d9a9c40868749f7d0be8e1a538dc",
      "tree": "0ebafbc57a4a5efb8204620945b908f7e1adadc3",
      "parents": [
        "c97d003e01862773c82271adf528f2ef05936f5e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:13:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:13:21 2026 -0400"
      },
      "message": "Bump GH CI actions/dependency-review-action from 4.9.0 to 5.0.0\n"
    },
    {
      "commit": "c97d003e01862773c82271adf528f2ef05936f5e",
      "tree": "e35ff05d7ebd87cc2154133210b1774a229f38f8",
      "parents": [
        "feeeb76a1eb59aaf2ba85caa83f3524110403823"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:09:36 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:09:36 2026 -0400"
      },
      "message": "Bump GH CI actions/checkout from 6.0.2 to 6.0.3\n"
    },
    {
      "commit": "feeeb76a1eb59aaf2ba85caa83f3524110403823",
      "tree": "5e5424d8357e2dfc29f40aa985400ffac3cdfcaf",
      "parents": [
        "3c761467c9d1321c03c34b73db5dc9d1f9b1da9a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 16:31:41 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 16:31:41 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 100 to 101\n"
    },
    {
      "commit": "3c761467c9d1321c03c34b73db5dc9d1f9b1da9a",
      "tree": "821a431e705c8cc4c3bee66b4e27d514c8820717",
      "parents": [
        "5080919bf045167fabb85202ef8b1baee783acad"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 07:28:40 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 07:28:40 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.0 to 4.36.2\n"
    },
    {
      "commit": "4dc2ffa3beb7bc4de5e49880436cb0d6d8ae7309",
      "tree": "12cef531b49dadc4c3f1cca07c5b4a939debce5a",
      "parents": [
        "5080919bf045167fabb85202ef8b1baee783acad"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Thu Jun 04 14:05:48 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Thu Jun 04 14:05:48 2026 +0530"
      },
      "message": "reject CR/LF in FTP, POP3, NNTP and SMTP command senders\n"
    },
    {
      "commit": "c16f98961b4fc5e7dc438bcd16b162c760277772",
      "tree": "ee9f7b45892542afbe99185418595abadd728338",
      "parents": [
        "5080919bf045167fabb85202ef8b1baee783acad"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Tue Jun 02 02:32:37 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Tue Jun 02 02:32:37 2026 +0530"
      },
      "message": "double leading dot on first line in DotTerminatedMessageWriter\n"
    },
    {
      "commit": "5080919bf045167fabb85202ef8b1baee783acad",
      "tree": "0d5810f21f7af01a7ab88713e64e6eefaede786f",
      "parents": [
        "b8b5c3c61d1e4d44ec6dce76afeaf9b0ffa74f0d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:22:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:22:21 2026 -0400"
      },
      "message": "Use final.\n"
    },
    {
      "commit": "b8b5c3c61d1e4d44ec6dce76afeaf9b0ffa74f0d",
      "tree": "dfcf4a99b8a73a1fa12e4c9bc567afb0de3eaf34",
      "parents": [
        "a193b4dc08c8e03d719c19bb4282ea7bacf3f370"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:52 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:52 2026 -0400"
      },
      "message": "Sort members\n"
    },
    {
      "commit": "a193b4dc08c8e03d719c19bb4282ea7bacf3f370",
      "tree": "5f9efa34559fae4d64a35d85e497995cb384ab24",
      "parents": [
        "17a6955cb961a2e53df51741195c0bb4e638e4e4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:23 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:23 2026 -0400"
      },
      "message": "Reject CR/LF in SimpleSMTPHeader and SimpleNNTPHeader fields #397.\n"
    },
    {
      "commit": "17a6955cb961a2e53df51741195c0bb4e638e4e4",
      "tree": "65ff60e92c291b1cff7bef58b3fb3729fe44cac1",
      "parents": [
        "b0e48a96c7ac4fb783a7bcae9a3f3d0094d39587",
        "61092a43595c95d259b4e7c97da148bd63fefce5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Mon Jun 01 12:17:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 12:17:23 2026 -0400"
      },
      "message": "Merge pull request #397 from dxbjavid/reject-crlf-header-injection\n\nReject CR/LF in SimpleSMTPHeader and SimpleNNTPHeader fields"
    },
    {
      "commit": "61092a43595c95d259b4e7c97da148bd63fefce5",
      "tree": "65ff60e92c291b1cff7bef58b3fb3729fe44cac1",
      "parents": [
        "53939a66973733bf927ea93867f3754d2f980530"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 16:47:15 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 16:47:15 2026 +0530"
      },
      "message": "Add tests for CR/LF rejection in SimpleSMTPHeader and SimpleNNTPHeader\n"
    },
    {
      "commit": "53939a66973733bf927ea93867f3754d2f980530",
      "tree": "c4e9ef8211333a30828694f96b384f92f0325b72",
      "parents": [
        "b0e48a96c7ac4fb783a7bcae9a3f3d0094d39587"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 15:14:05 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 15:14:05 2026 +0530"
      },
      "message": "reject CR/LF in SimpleSMTPHeader and SimpleNNTPHeader fields\n"
    },
    {
      "commit": "b0e48a96c7ac4fb783a7bcae9a3f3d0094d39587",
      "tree": "2af18014ded44f425bc93b3e74c346702071318a",
      "parents": [
        "12c8c421efda043412fc8b679808e77467326b34"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 27 16:52:23 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 27 16:52:23 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.5 to 4.36.0\n"
    },
    {
      "commit": "12c8c421efda043412fc8b679808e77467326b34",
      "tree": "57dc48edba03886b914e6b8458aa77d389ee2de8",
      "parents": [
        "dc885100efd168e31d8f62d399cd94e653b6c9d4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 21:46:27 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 21:46:27 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 99 to 100\n"
    },
    {
      "commit": "dc885100efd168e31d8f62d399cd94e653b6c9d4",
      "tree": "1ffc89dfe06f68071099de6233fd565bb1e8d4b6",
      "parents": [
        "ab2b19fee5e76984843fce6481f0c7724f629920"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 20 06:44:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 20 06:44:21 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.4 to 4.35.5\n"
    },
    {
      "commit": "ab2b19fee5e76984843fce6481f0c7724f629920",
      "tree": "90317cde62b9d3c4dcfd0796bd3646c947040823",
      "parents": [
        "7da0b0d63b32f830a303a9bab4c0416c855815ca"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 12 18:49:51 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 12 18:49:51 2026 +0000"
      },
      "message": "Bump github/codeql-action from 4.35.3 to 4.35.4\n"
    },
    {
      "commit": "7da0b0d63b32f830a303a9bab4c0416c855815ca",
      "tree": "c37139bdb9053fff507c8c3f31ec06dcc4e185bf",
      "parents": [
        "3af1604b0d3b6c1c69de7352f9d2fdf4d51d99fb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 05 11:23:55 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 05 11:23:55 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.2 to 4.35.3\n"
    },
    {
      "commit": "3af1604b0d3b6c1c69de7352f9d2fdf4d51d99fb",
      "tree": "2c1afd0d3a15cf39ea5fe1e0f06d1a368ff2e696",
      "parents": [
        "94d8cea2e27494a2facedf0342f1144448618e76"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 26 07:50:48 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 26 07:50:48 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 98 to 99\n"
    },
    {
      "commit": "94d8cea2e27494a2facedf0342f1144448618e76",
      "tree": "07c3acc8b9d3f1b13f06a9ffd6927b8328128fca",
      "parents": [
        "8caf63cec7d46527e12cf84eaccf92bfc6dffa77"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:58:03 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:58:03 2026 -0400"
      },
      "message": "Bump commons-io:commons-io from 2.21.0 to 2.22.0.\n"
    },
    {
      "commit": "8caf63cec7d46527e12cf84eaccf92bfc6dffa77",
      "tree": "7a78210bc58b85e4711da8c9aa9d319e6cc0ceec",
      "parents": [
        "56dc8d908d0982391657dbd716dd872059cfb8fe"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 16 07:10:49 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 16 07:10:49 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.1 to 4.35.2\n"
    },
    {
      "commit": "56dc8d908d0982391657dbd716dd872059cfb8fe",
      "tree": "e7713a9c78fe8c6869e9dcc98120285181b61785",
      "parents": [
        "3095c7a3bcdfd532cce08f784881471ef5bf87bf"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Apr 15 08:18:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Apr 15 08:18:45 2026 -0400"
      },
      "message": "No need to end exception messages with an exclamation!\n"
    },
    {
      "commit": "3095c7a3bcdfd532cce08f784881471ef5bf87bf",
      "tree": "c2244b9f4dd00c59a4e11b0bb24a9dcc6cf4bd51",
      "parents": [
        "4c8f736dc10daa8030082edd13aaa299216e9247"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:55:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:55:17 2026 -0400"
      },
      "message": "Bump actions/upload-artifact from 7.0.0 to 7.0.1\n"
    },
    {
      "commit": "4c8f736dc10daa8030082edd13aaa299216e9247",
      "tree": "00cd7e2ea4cc489c3c7816122f6a6cf8c36962a1",
      "parents": [
        "f7de6b083df989b5ed25d475b193bd9d9b97dd8f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:49:16 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:49:16 2026 -0400"
      },
      "message": "Bump actions/cache from 5.0.4 to 5.0.5\n"
    },
    {
      "commit": "f7de6b083df989b5ed25d475b193bd9d9b97dd8f",
      "tree": "c3d8c5d3e6ff07a66ed8a14326c355ac57f4e53b",
      "parents": [
        "6f673a31b747a496ea99883af772b0fe571cd42a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 07 12:57:23 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 07 12:57:23 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 97 to 98\n"
    },
    {
      "commit": "6f673a31b747a496ea99883af772b0fe571cd42a",
      "tree": "739fe28cb2023216c01b57a6efbbaf09cc874397",
      "parents": [
        "966a15c82e7e65d4fa0d0de271230ff76b098ef2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 07 12:57:20 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 07 12:57:20 2026 -0400"
      },
      "message": "Fix broken Javadoc HTML tags\n"
    },
    {
      "commit": "966a15c82e7e65d4fa0d0de271230ff76b098ef2",
      "tree": "f7908ccc77c56ab38b81a1ddce75e0352cfa74c1",
      "parents": [
        "c6fe5cbe26f8ac3f55ffe93e2d4c2fe73becaad7"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 05 10:20:36 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 05 10:20:36 2026 -0400"
      },
      "message": "Use static imports only for JUnit\n"
    },
    {
      "commit": "c6fe5cbe26f8ac3f55ffe93e2d4c2fe73becaad7",
      "tree": "d40b91eda8f02b8b4ca5511c610744d0b42bdec2",
      "parents": [
        "ddb9e1f2cbf90d9868f0c7a04a9be8bcfd52a289"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Apr 01 08:16:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Apr 01 08:16:17 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "ddb9e1f2cbf90d9868f0c7a04a9be8bcfd52a289",
      "tree": "0f5d63aa50edf54209c668bd776a8baf7753ff1f",
      "parents": [
        "d98ae302552ad545569ad0bc9f32c06c2e723422"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Mar 31 21:44:44 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Mar 31 21:44:44 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.34.1 to 4.35.1\n"
    },
    {
      "commit": "d98ae302552ad545569ad0bc9f32c06c2e723422",
      "tree": "2ecd80660d4123b8c69f9e7b2a6a351710939460",
      "parents": [
        "c49daff194a904893dbc244773075480cd2f0c6b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Mar 31 20:41:31 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Mar 31 20:41:31 2026 -0400"
      },
      "message": "Bump actions/dependency-review-action from 4.8.2 to 4.9.0\n"
    },
    {
      "commit": "c49daff194a904893dbc244773075480cd2f0c6b",
      "tree": "2b7cd65d2d7cea44d3de52a6c69c6d0ee3d72881",
      "parents": [
        "fee30b0afd7e79149685e0685189b30512a463d3"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Mar 30 07:17:11 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Mar 30 07:17:11 2026 -0400"
      },
      "message": "Bump Bump actions/cache from 5.0.3 to 5.0.4\n"
    },
    {
      "commit": "fee30b0afd7e79149685e0685189b30512a463d3",
      "tree": "24ce69b9d9a525d2eb2cf8f57c871eaf273e3cd0",
      "parents": [
        "8530b79df30859d1daf6e63b20cfe3c2ec3732e2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 27 14:49:29 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 27 14:49:29 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.34.0 to 4.34.1\n"
    },
    {
      "commit": "8530b79df30859d1daf6e63b20cfe3c2ec3732e2",
      "tree": "797b9891996e66e729be5f930e0842335418107b",
      "parents": [
        "b5aac3e1a5cfc04b058b3cca76388c87c6bd3d3c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 20 17:32:38 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 20 17:32:38 2026 -0700"
      },
      "message": "Bump github/codeql-action from 4.32.6 to 4.34.0\n"
    },
    {
      "commit": "b5aac3e1a5cfc04b058b3cca76388c87c6bd3d3c",
      "tree": "9ffce79cbda9840163689f87f9786dfb359d8f20",
      "parents": [
        "5b65be122c8dd63b3689c8afc2d7464fef789eab"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Mar 19 23:46:51 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Mar 19 23:46:51 2026 +0000"
      },
      "message": "Add a reference to safe deserlialization\n"
    },
    {
      "commit": "5b65be122c8dd63b3689c8afc2d7464fef789eab",
      "tree": "d399c5a8dd6d8676c41c292d845a36c3417693cd",
      "parents": [
        "2ec75292e12ddce2d600a1520a2b2694d5166216"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Mar 18 23:10:25 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Mar 18 23:10:25 2026 +0000"
      },
      "message": "Updates for the next release\n"
    },
    {
      "commit": "2ec75292e12ddce2d600a1520a2b2694d5166216",
      "tree": "12a600ff27482ef9d4545547bbe32d394826d180",
      "parents": [
        "0e91da7aed848e5720ea418f5c5fee86d2c0c6ca"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Mar 18 20:31:59 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Mar 18 20:31:59 2026 +0000"
      },
      "message": "Updates for the next release\n"
    },
    {
      "commit": "0e91da7aed848e5720ea418f5c5fee86d2c0c6ca",
      "tree": "b2ecd29b01d8422797ba0cd6469f96616bb53bdf",
      "parents": [
        "35fa0dff3e8660359832e72631ff3cf557b543a8"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Mar 18 20:29:56 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Mar 18 20:29:56 2026 +0000"
      },
      "message": "Bump to next development version\n"
    },
    {
      "commit": "35fa0dff3e8660359832e72631ff3cf557b543a8",
      "tree": "8e9ddaa7cc68e6afa2cab16224f81f7f9280d294",
      "parents": [
        "1cc5b6e77d86bb54131742fee175e7c700bbf2ca"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Mar 15 16:22:48 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Mar 15 16:22:48 2026 +0000"
      },
      "message": "Prepare for the release candidate 3.13.0 RC1\n"
    },
    {
      "commit": "1cc5b6e77d86bb54131742fee175e7c700bbf2ca",
      "tree": "ee683faec04876e25f5d7399dfbc7138e34cc6cd",
      "parents": [
        "a4b246e085c1d3ce5936806d8f85d2e826daca8a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Mar 15 14:12:29 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Mar 15 14:12:29 2026 +0000"
      },
      "message": "Prepare for the next release candidate\n"
    },
    {
      "commit": "a4b246e085c1d3ce5936806d8f85d2e826daca8a",
      "tree": "2d663874512e792018dac4ccb22968a02cdf55c7",
      "parents": [
        "e5ca262cea38b2f889eb003818cf9f97a6395ad6"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 10:16:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 10:16:56 2026 -0400"
      },
      "message": "Reuse IOUtils.copyLarge()\n"
    },
    {
      "commit": "e5ca262cea38b2f889eb003818cf9f97a6395ad6",
      "tree": "2b7e7bc3d9c297ce0871eb1bcdb6675f5f7ccb08",
      "parents": [
        "3cb18ec82ef0b3640536137639763a682994a61e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 10:12:53 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 10:12:53 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "3cb18ec82ef0b3640536137639763a682994a61e",
      "tree": "207465e262ed07d11a1de17df41d6c1ae86e0b91",
      "parents": [
        "3373d77db2376665a034e753e3646251b3d23aa4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 10:12:42 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 10:12:42 2026 -0400"
      },
      "message": "Deprecate Util.copyReader(Reader, Writer) in favor of\nIOUtils.copyLarge()\n"
    },
    {
      "commit": "3373d77db2376665a034e753e3646251b3d23aa4",
      "tree": "06642ecdece4c2c2a1b4e3f1df00cd8bbd0c7085",
      "parents": [
        "3be2077ccf1da69614a7883ed352037e30f3366f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 09:03:40 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 09:03:40 2026 -0400"
      },
      "message": "Reimplement Util.copyReader() with IOUtils.copyLarge()\n"
    },
    {
      "commit": "3be2077ccf1da69614a7883ed352037e30f3366f",
      "tree": "d58e84979b47a8acfb510c6c13c5dc3fe7dc00ed",
      "parents": [
        "7b41144008427acceea596ac74f36e716ea2586e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 08:42:31 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 08:42:31 2026 -0400"
      },
      "message": "Reimplement Util.copyStream() with IOUtils.copyLarge()\n\nBump Util.DEFAULT_COPY_BUFFER_SIZE from 1 KiB to 8 KiB.\n"
    },
    {
      "commit": "7b41144008427acceea596ac74f36e716ea2586e",
      "tree": "585ac0603cb756d96fb2929169bd36f2d8f63ce6",
      "parents": [
        "1b584b493ffa6a1b42cbda3c7f683e073f1a3bdf"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:41:18 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:41:18 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "1b584b493ffa6a1b42cbda3c7f683e073f1a3bdf",
      "tree": "fc95154532039d7aba3684cf410f47f6f58e2ad5",
      "parents": [
        "3792023843b95dabe60fb745287cae94c8a44be5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:35:54 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:35:54 2026 -0400"
      },
      "message": "Fix typo in FTPConnectionClosedException message from\nFTP.getReply(boolean).\n"
    },
    {
      "commit": "3792023843b95dabe60fb745287cae94c8a44be5",
      "tree": "89c89789cb87254d3381d0380b41916064021e86",
      "parents": [
        "9c11d6527fdbb4ab971e4c215f69b6775130b4c1"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:30:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:30:43 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "9c11d6527fdbb4ab971e4c215f69b6775130b4c1",
      "tree": "62164f550a43b1889e88a919bd79875cb31f3176",
      "parents": [
        "b464e005aa8cdd2c5a190cb5345714e1c995083d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:30:39 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:30:39 2026 -0400"
      },
      "message": "ListenerList.addListener(T) now ignores null input.\n\nFix compiler warnings.\n"
    },
    {
      "commit": "b464e005aa8cdd2c5a190cb5345714e1c995083d",
      "tree": "28b7968bf882fdbe542edacd01456f3678b39159",
      "parents": [
        "65872e80e6a5ae862b62e78efd80afde65d3cd3f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:25:59 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:25:59 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "65872e80e6a5ae862b62e78efd80afde65d3cd3f",
      "tree": "23c4cb41125cf0d99919ed4affc99034b166c9f9",
      "parents": [
        "9117dc6d2f1f517e2d87c270018b3f455b70bc42"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:25:53 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:25:53 2026 -0400"
      },
      "message": "ListenerList.removeListener(T) now ignores null input to avoid a\nNullPointerException.\n"
    },
    {
      "commit": "9117dc6d2f1f517e2d87c270018b3f455b70bc42",
      "tree": "5618b884bf4947145a53c5892a3f8de1ed42e927",
      "parents": [
        "91b95d8285d938733541742e95619bec97252661"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:21:33 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:21:33 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "91b95d8285d938733541742e95619bec97252661",
      "tree": "78f4abe6c64af9ab7e070502fbdc0c7769072ca7",
      "parents": [
        "953b5a3cae00488b13d9dfe8d0c422736384f29f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:19:59 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:19:59 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "953b5a3cae00488b13d9dfe8d0c422736384f29f",
      "tree": "ee09105cd0eb7d4cc7701add4245a42858dd4749",
      "parents": [
        "749d03d44b7eac0f4a6ec6532f8b9a9ddadabc23"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:15:35 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 13 07:15:35 2026 -0400"
      },
      "message": "FTPClient._storeFile(String, String, InputStream) doesn\u0027t always close\nit\u0027s internal socket when an exception is thrown early in processing.\n"
    },
    {
      "commit": "749d03d44b7eac0f4a6ec6532f8b9a9ddadabc23",
      "tree": "fbbf066f9f40ff14ef4a7bec87b227c218d73b22",
      "parents": [
        "d7e2da1d2ac1acf67f5844c6bc20779925843bce"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Mar 12 08:22:22 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Mar 12 08:22:22 2026 -0400"
      },
      "message": "Sort members\n"
    },
    {
      "commit": "d7e2da1d2ac1acf67f5844c6bc20779925843bce",
      "tree": "773e3ee6a1d24b1235faadf546d9cdbab990adbd",
      "parents": [
        "fa25424d8dc89977247bd8aaa993715429db744f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Mar 09 08:44:06 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Mar 09 08:44:06 2026 -0400"
      },
      "message": "Bump actions/upload-artifact from 6.0.0 to 7.0.0\n"
    },
    {
      "commit": "fa25424d8dc89977247bd8aaa993715429db744f",
      "tree": "d8f4b44cc9f33d5cb44b0d422b5aefc0a3d5cfb6",
      "parents": [
        "13732d9a0b8b8c37db101ce0177974e46bc998e4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 06 07:36:24 2026 -0500"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Mar 06 07:36:24 2026 -0500"
      },
      "message": "Bump github/codeql-action from 4.32.5 to 4.32.6\n"
    },
    {
      "commit": "13732d9a0b8b8c37db101ce0177974e46bc998e4",
      "tree": "2a4f543531c9bb8a5c040f66f37086af118dcb9a",
      "parents": [
        "2f0fdb4d75e1546f0657b77482ee24ab244d3fcd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Mar 02 08:34:26 2026 -0500"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Mar 02 08:34:26 2026 -0500"
      },
      "message": "Bump github/codeql-action from 4.32.4 to 4.32.5\n"
    },
    {
      "commit": "2f0fdb4d75e1546f0657b77482ee24ab244d3fcd",
      "tree": "4508164244d59007413c67fe28c636c21449417b",
      "parents": [
        "d88d55f56c3698073988246ae997018c42f97018"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Feb 28 07:27:36 2026 -0500"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Feb 28 07:27:36 2026 -0500"
      },
      "message": "Bump org.apache.commons:commons-parent from 96 to 97.\n"
    },
    {
      "commit": "d88d55f56c3698073988246ae997018c42f97018",
      "tree": "93efa48de0a9c41c958d6f48df41c21adf5cbe2b",
      "parents": [
        "75e3329d418b47743cc1abf3a986da155b22ee01"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Feb 27 08:21:52 2026 -0500"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Feb 27 08:21:52 2026 -0500"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "75e3329d418b47743cc1abf3a986da155b22ee01",
      "tree": "1c963d499a64f7a33504bc3950c63e946ffbcc84",
      "parents": [
        "954b354b3e786a095648fe60feeea4ef42470a51"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Feb 27 08:20:59 2026 -0500"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Feb 27 08:20:59 2026 -0500"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "954b354b3e786a095648fe60feeea4ef42470a51",
      "tree": "deb23ad01ebfd7e24ff1a4b0274096864f2b8073",
      "parents": [
        "7ffbb8f563b412f8df80f8aed10b0ef6bca03472"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Feb 26 08:53:34 2026 -0500"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Feb 26 08:53:34 2026 -0500"
      },
      "message": "Add org.apache.commons.net.ftp.parser.OS400FTPEntryParserTest.testFuzz()\n"
    },
    {
      "commit": "7ffbb8f563b412f8df80f8aed10b0ef6bca03472",
      "tree": "d76392efbbcd62b271fb75efd5bf887d3ec60473",
      "parents": [
        "71ff0ad28103565f5f81dec59aadece4ec310f79"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Thu Feb 26 12:57:52 2026 +0000"
      },
      "committer": {
        "name": "Sebb",
        "email": "sebb@apache.org",
        "time": "Thu Feb 26 12:57:52 2026 +0000"
      },
      "message": "Ignore some PMD complaints in test code\n"
    }
  ],
  "next": "71ff0ad28103565f5f81dec59aadece4ec310f79"
}
