diff --git a/website/data/security/advisories.toml b/website/data/security/advisories.toml
index f7562432bd..8e676bbf20 100644
--- a/website/data/security/advisories.toml
+++ b/website/data/security/advisories.toml
@@ -1,2771 +1,2787 @@
# Sort advisories by year, month and day
# $FreeBSD$
+[[advisories]]
+name = "FreeBSD-SA-25:04.ktrace"
+date = "2025-01-29"
+
+[[advisories]]
+name = "FreeBSD-SA-25:03.etcupdate"
+date = "2025-01-29"
+
+[[advisories]]
+name = "FreeBSD-SA-25:02.fs"
+date = "2025-01-29"
+
+[[advisories]]
+name = "FreeBSD-SA-25:01.openssh"
+date = "2025-01-29"
+
[[advisories]]
name = "FreeBSD-SA-24:19.fetch"
date = "2024-10-29"
[[advisories]]
name = "FreeBSD-SA-24:18.ctl"
date = "2024-10-29"
[[advisories]]
name = "FreeBSD-SA-24:17.bhyve"
date = "2024-10-29"
[[advisories]]
name = "FreeBSD-SA-24:16.libnv"
date = "2024-09-19"
[[advisories]]
name = "FreeBSD-SA-24:15.bhyve"
date = "2024-09-19"
[[advisories]]
name = "FreeBSD-SA-24:14.umtx"
date = "2024-09-04"
[[advisories]]
name = "FreeBSD-SA-24:13.openssl"
date = "2024-09-04"
[[advisories]]
name = "FreeBSD-SA-24:12.bhyve"
date = "2024-09-04"
[[advisories]]
name = "FreeBSD-SA-24:11.ctl"
date = "2024-09-04"
[[advisories]]
name = "FreeBSD-SA-24:10.bhyve"
date = "2024-09-04"
[[advisories]]
name = "FreeBSD-SA-24:09.libnv"
date = "2024-09-04"
[[advisories]]
name = "FreeBSD-SA-24:08.openssh"
date = "2024-08-07"
[[advisories]]
name = "FreeBSD-SA-24:07.nfsclient"
date = "2024-08-07"
[[advisories]]
name = "FreeBSD-SA-24:06.ktrace"
date = "2024-08-07"
[[advisories]]
name = "FreeBSD-SA-24:05.pf"
date = "2024-08-07"
[[advisories]]
name = "FreeBSD-SA-24:04.openssh"
date = "2024-07-01"
[[advisories]]
name = "FreeBSD-SA-24:03.unbound"
date = "2024-03-28"
[[advisories]]
name = "FreeBSD-SA-24:02.tty"
date = "2024-02-14"
[[advisories]]
name = "FreeBSD-SA-24:01.bhyveload"
date = "2024-02-14"
[[advisories]]
name = "FreeBSD-SA-23:19.openssh"
date = "2023-12-19"
[[advisories]]
name = "FreeBSD-SA-23:18.nfsclient"
date = "2023-12-12"
[[advisories]]
name = "FreeBSD-SA-23:17.pf"
date = "2023-12-05"
[[advisories]]
name = "FreeBSD-SA-23:16.cap_net"
date = "2023-11-08"
[[advisories]]
name = "FreeBSD-SA-23:15.stdio"
date = "2023-11-08"
[[advisories]]
name = "FreeBSD-SA-23:14.smccc"
date = "2023-10-03"
[[advisories]]
name = "FreeBSD-SA-23:13.capsicum"
date = "2023-10-03"
[[advisories]]
name = "FreeBSD-SA-23:12.msdosfs"
date = "2023-10-03"
[[advisories]]
name = "FreeBSD-SA-23:11.wifi"
date = "2023-09-06"
[[advisories]]
name = "FreeBSD-SA-23:10.pf"
date = "2023-09-06"
[[advisories]]
name = "FreeBSD-SA-23:09.pam_krb5"
date = "2023-08-01"
[[advisories]]
name = "FreeBSD-SA-23:08.ssh"
date = "2023-08-01"
[[advisories]]
name = "FreeBSD-SA-23:07.bhyve"
date = "2023-08-01"
[[advisories]]
name = "FreeBSD-SA-23:06.ipv6"
date = "2023-08-01"
[[advisories]]
name = "FreeBSD-SA-23:05.openssh"
date = "2023-06-21"
[[advisories]]
name = "FreeBSD-SA-23:04.pam_krb5"
date = "2023-06-21"
[[advisories]]
name = "FreeBSD-SA-23:03.openssl"
date = "2023-02-16"
[[advisories]]
name = "FreeBSD-SA-23:02.openssh"
date = "2023-02-16"
[[advisories]]
name = "FreeBSD-SA-23:01.geli"
date = "2023-02-08"
[[advisories]]
name = "FreeBSD-SA-22:15.ping"
date = "2022-11-29"
[[advisories]]
name = "FreeBSD-SA-22:14.heimdal"
date = "2022-11-15"
[[advisories]]
name = "FreeBSD-SA-22:13.zlib"
date = "2022-08-30"
[[advisories]]
name = "FreeBSD-SA-22:12.lib9p"
date = "2022-08-09"
[[advisories]]
name = "FreeBSD-SA-22:11.vm"
date = "2022-08-09"
[[advisories]]
name = "FreeBSD-SA-22:10.aio"
date = "2022-08-09"
[[advisories]]
name = "FreeBSD-SA-22:09.elf"
date = "2022-08-09"
[[advisories]]
name = "FreeBSD-SA-22:08.zlib"
date = "2022-04-06"
[[advisories]]
name = "FreeBSD-SA-22:07.wifi_meshid"
date = "2022-04-06"
[[advisories]]
name = "FreeBSD-SA-22:06.ioctl"
date = "2022-04-06"
[[advisories]]
name = "FreeBSD-SA-22:05.bhyve"
date = "2022-04-06"
[[advisories]]
name = "FreeBSD-SA-22:04.netmap"
date = "2022-04-06"
[[advisories]]
name = "FreeBSD-SA-22:03.openssl"
date = "2022-03-15"
[[advisories]]
name = "FreeBSD-SA-22:02.wifi"
date = "2022-03-15"
[[advisories]]
name = "FreeBSD-SA-22:01.vt"
date = "2022-01-11"
[[advisories]]
name = "FreeBSD-SA-21:17.openssl"
date = "2021-08-24"
[[advisories]]
name = "FreeBSD-SA-21:16.openssl"
date = "2021-08-24"
[[advisories]]
name = "FreeBSD-SA-21:15.libfetch"
date = "2021-08-24"
[[advisories]]
name = "FreeBSD-SA-21:14.ggatec"
date = "2021-08-24"
[[advisories]]
name = "FreeBSD-SA-21:13.bhyve"
date = "2021-08-24"
[[advisories]]
name = "FreeBSD-SA-21:12.libradius"
date = "2021-05-26"
[[advisories]]
name = "FreeBSD-SA-21:11.smap"
date = "2021-05-26"
[[advisories]]
name = "FreeBSD-SA-21:10.jail_mount"
date = "2021-04-06"
[[advisories]]
name = "FreeBSD-SA-21:09.accept_filter"
date = "2021-04-06"
[[advisories]]
name = "FreeBSD-SA-21:08.vm"
date = "2021-04-06"
[[advisories]]
name = "FreeBSD-SA-21:07.openssl"
date = "2021-03-25"
[[advisories]]
name = "FreeBSD-SA-21:06.xen"
date = "2021-02-24"
[[advisories]]
name = "FreeBSD-SA-21:05.jail_chdir"
date = "2021-02-24"
[[advisories]]
name = "FreeBSD-SA-21:04.jail_remove"
date = "2021-02-24"
[[advisories]]
name = "FreeBSD-SA-21:03.pam_login_access"
date = "2021-02-24"
[[advisories]]
name = "FreeBSD-SA-21:02.xenoom"
date = "2021-01-29"
[[advisories]]
name = "FreeBSD-SA-21:01.fsdisclosure"
date = "2021-01-29"
[[advisories]]
name = "FreeBSD-SA-20:33.openssl"
date = "2020-12-08"
[[advisories]]
name = "FreeBSD-SA-20:32.rtsold"
date = "2020-12-01"
[[advisories]]
name = "FreeBSD-SA-20:31.icmp6"
date = "2020-12-01"
[[advisories]]
name = "FreeBSD-SA-20:30.ftpd"
date = "2020-09-15"
[[advisories]]
name = "FreeBSD-SA-20:29.bhyve_svm"
date = "2020-09-15"
[[advisories]]
name = "FreeBSD-SA-20:28.bhyve_vmcs"
date = "2020-09-15"
[[advisories]]
name = "FreeBSD-SA-20:27.ure"
date = "2020-09-15"
[[advisories]]
name = "FreeBSD-SA-20:26.dhclient"
date = "2020-09-02"
[[advisories]]
name = "FreeBSD-SA-20:25.sctp"
date = "2020-09-02"
[[advisories]]
name = "FreeBSD-SA-20:24.ipv6"
date = "2020-09-02"
[[advisories]]
name = "FreeBSD-SA-20:23.sendmsg"
date = "2020-08-05"
[[advisories]]
name = "FreeBSD-SA-20:22.sqlite"
date = "2020-08-05"
[[advisories]]
name = "FreeBSD-SA-20:21.usb_net"
date = "2020-08-05"
[[advisories]]
name = "FreeBSD-SA-20:20.ipv6"
date = "2020-07-08"
[[advisories]]
name = "FreeBSD-SA-20:19.unbound"
date = "2020-07-08"
[[advisories]]
name = "FreeBSD-SA-20:18.posix_spawnp"
date = "2020-07-08"
[[advisories]]
name = "FreeBSD-SA-20:17.usb"
date = "2020-06-09"
[[advisories]]
name = "FreeBSD-SA-20:16.cryptodev"
date = "2020-05-12"
[[advisories]]
name = "FreeBSD-SA-20:15.cryptodev"
date = "2020-05-12"
[[advisories]]
name = "FreeBSD-SA-20:14.sctp"
date = "2020-05-12"
[[advisories]]
name = "FreeBSD-SA-20:13.libalias"
date = "2020-05-12"
[[advisories]]
name = "FreeBSD-SA-20:12.libalias"
date = "2020-05-12"
[[advisories]]
name = "FreeBSD-SA-20:11.openssl"
date = "2020-04-21"
[[advisories]]
name = "FreeBSD-SA-20:10.ipfw"
date = "2020-04-21"
[[advisories]]
name = "FreeBSD-SA-20:09.ntp"
date = "2020-03-19"
[[advisories]]
name = "FreeBSD-SA-20:08.jail"
date = "2020-03-19"
[[advisories]]
name = "FreeBSD-SA-20:07.epair"
date = "2020-03-19"
[[advisories]]
name = "FreeBSD-SA-20:06.if_ixl_ioctl"
date = "2020-03-19"
[[advisories]]
name = "FreeBSD-SA-20:05.if_oce_ioctl"
date = "2020-03-19"
[[advisories]]
name = "FreeBSD-SA-20:04.tcp"
date = "2020-03-19"
[[advisories]]
name = "FreeBSD-SA-20:03.thrmisc"
date = "2020-01-28"
[[advisories]]
name = "FreeBSD-SA-20:02.ipsec"
date = "2020-01-28"
[[advisories]]
name = "FreeBSD-SA-20:01.libfetch"
date = "2020-01-28"
[[advisories]]
name = "FreeBSD-SA-19:26.mcu"
date = "2019-11-12"
[[advisories]]
name = "FreeBSD-SA-19:25.mcepsc"
date = "2019-11-12"
[[advisories]]
name = "FreeBSD-SA-19:24.mqueuefs"
date = "2019-08-20"
[[advisories]]
name = "FreeBSD-SA-19:23.midi"
date = "2019-08-20"
[[advisories]]
name = "FreeBSD-SA-19:22.mbuf"
date = "2019-08-20"
[[advisories]]
name = "FreeBSD-SA-19:21.bhyve"
date = "2019-08-06"
[[advisories]]
name = "FreeBSD-SA-19:20.bsnmp"
date = "2019-08-06"
[[advisories]]
name = "FreeBSD-SA-19:19.mldv2"
date = "2019-08-06"
[[advisories]]
name = "FreeBSD-SA-19:18.bzip2"
date = "2019-08-06"
[[advisories]]
name = "FreeBSD-SA-19:17.fd"
date = "2019-07-24"
[[advisories]]
name = "FreeBSD-SA-19:16.bhyve"
date = "2019-07-24"
[[advisories]]
name = "FreeBSD-SA-19:15.mqueuefs"
date = "2019-07-24"
[[advisories]]
name = "FreeBSD-SA-19:14.freebsd32"
date = "2019-07-24"
[[advisories]]
name = "FreeBSD-SA-19:13.pts"
date = "2019-07-24"
[[advisories]]
name = "FreeBSD-SA-19:12.telnet"
date = "2019-07-24"
[[advisories]]
name = "FreeBSD-SA-19:11.cd_ioctl"
date = "2019-07-02"
[[advisories]]
name = "FreeBSD-SA-19:10.ufs"
date = "2019-07-02"
[[advisories]]
name = "FreeBSD-SA-19:09.iconv"
date = "2019-07-02"
[[advisories]]
name = "FreeBSD-SA-19:08.rack"
date = "2019-06-19"
[[advisories]]
name = "FreeBSD-SA-19:07.mds"
date = "2019-05-14"
[[advisories]]
name = "FreeBSD-SA-19:06.pf"
date = "2019-05-14"
[[advisories]]
name = "FreeBSD-SA-19:05.pf"
date = "2019-05-14"
[[advisories]]
name = "FreeBSD-SA-19:04.ntp"
date = "2019-05-14"
[[advisories]]
name = "FreeBSD-SA-19:03.wpa"
date = "2019-05-14"
[[advisories]]
name = "FreeBSD-SA-19:02.fd"
date = "2019-02-05"
[[advisories]]
name = "FreeBSD-SA-19:01.syscall"
date = "2019-02-05"
[[advisories]]
name = "FreeBSD-SA-18:15.bootpd"
date = "2018-12-19"
[[advisories]]
name = "FreeBSD-SA-18:14.bhyve"
date = "2018-12-04"
[[advisories]]
name = "FreeBSD-SA-18:13.nfs"
date = "2018-11-27"
[[advisories]]
name = "FreeBSD-SA-18:12.elf"
date = "2018-09-12"
[[advisories]]
name = "FreeBSD-SA-18:11.hostapd"
date = "2018-08-14"
[[advisories]]
name = "FreeBSD-SA-18:10.ip"
date = "2018-08-14"
[[advisories]]
name = "FreeBSD-SA-18:09.l1tf"
date = "2018-08-14"
[[advisories]]
name = "FreeBSD-SA-18:08.tcp"
date = "2018-08-06"
[[advisories]]
name = "FreeBSD-SA-18:07.lazyfpu"
date = "2018-06-21"
[[advisories]]
name = "FreeBSD-SA-18:06.debugreg"
date = "2018-05-08"
[[advisories]]
name = "FreeBSD-SA-18:05.ipsec"
date = "2018-04-04"
[[advisories]]
name = "FreeBSD-SA-18:04.vt"
date = "2018-04-04"
[[advisories]]
name = "FreeBSD-SA-18:03.speculative_execution"
date = "2018-03-14"
[[advisories]]
name = "FreeBSD-SA-18:02.ntp"
date = "2018-03-07"
[[advisories]]
name = "FreeBSD-SA-18:01.ipsec"
date = "2018-03-07"
[[advisories]]
name = "FreeBSD-SA-17:12.openssl"
date = "2017-12-09"
[[advisories]]
name = "FreeBSD-SA-17:11.openssl"
date = "2017-11-29"
[[advisories]]
name = "FreeBSD-SA-17:10.kldstat"
date = "2017-11-15"
[[advisories]]
name = "FreeBSD-SA-17:09.shm"
date = "2017-11-15"
[[advisories]]
name = "FreeBSD-SA-17:08.ptrace"
date = "2017-11-15"
[[advisories]]
name = "FreeBSD-SA-17:07.wpa"
date = "2017-10-17"
[[advisories]]
name = "FreeBSD-SA-17:06.openssh"
date = "2017-08-10"
[[advisories]]
name = "FreeBSD-SA-17:05.heimdal"
date = "2017-07-12"
[[advisories]]
name = "FreeBSD-SA-17:04.ipfilter"
date = "2017-04-27"
[[advisories]]
name = "FreeBSD-SA-17:03.ntp"
date = "2017-04-12"
[[advisories]]
name = "FreeBSD-SA-17:02.openssl"
date = "2017-02-23"
[[advisories]]
name = "FreeBSD-SA-17:01.openssh"
date = "2017-01-11"
[[advisories]]
name = "FreeBSD-SA-16:39.ntp"
date = "2016-12-22"
[[advisories]]
name = "FreeBSD-SA-16:38.bhyve"
date = "2016-12-06"
[[advisories]]
name = "FreeBSD-SA-16:37.libc"
date = "2016-12-06"
[[advisories]]
name = "FreeBSD-SA-16:36.telnetd"
date = "2016-12-06"
[[advisories]]
name = "FreeBSD-SA-16:35.openssl"
date = "2016-11-02"
[[advisories]]
name = "FreeBSD-SA-16:34.bind"
date = "2016-11-02"
[[advisories]]
name = "FreeBSD-SA-16:33.openssh"
date = "2016-11-02"
[[advisories]]
name = "FreeBSD-SA-16:32.bhyve"
date = "2016-10-25"
[[advisories]]
name = "FreeBSD-SA-16:31.libarchive"
date = "2016-10-10"
[[advisories]]
name = "FreeBSD-SA-16:30.portsnap"
date = "2016-10-10"
[[advisories]]
name = "FreeBSD-SA-16:29.bspatch"
date = "2016-10-10"
[[advisories]]
name = "FreeBSD-SA-16:28.bind"
date = "2016-10-10"
[[advisories]]
name = "FreeBSD-SA-16:27.openssl"
date = "2016-10-10"
[[advisories]]
name = "FreeBSD-SA-16:26.openssl"
date = "2016-09-23"
[[advisories]]
name = "FreeBSD-SA-16:25.bspatch"
date = "2016-07-25"
[[advisories]]
name = "FreeBSD-SA-16:24.ntp"
date = "2016-06-04"
[[advisories]]
name = "FreeBSD-SA-16:23.libarchive"
date = "2016-05-31"
[[advisories]]
name = "FreeBSD-SA-16:22.libarchive"
date = "2016-05-31"
[[advisories]]
name = "FreeBSD-SA-16:21.43bsd"
date = "2016-05-31"
[[advisories]]
name = "FreeBSD-SA-16:20.linux"
date = "2016-05-31"
[[advisories]]
name = "FreeBSD-SA-16:19.sendmsg"
date = "2016-05-17"
[[advisories]]
name = "FreeBSD-SA-16:18.atkbd"
date = "2016-05-17"
[[advisories]]
name = "FreeBSD-SA-16:17.openssl"
date = "2016-05-04"
[[advisories]]
name = "FreeBSD-SA-16:16.ntp"
date = "2016-04-29"
[[advisories]]
name = "FreeBSD-SA-16:15.sysarch"
date = "2016-03-16"
[[advisories]]
name = "FreeBSD-SA-16:14.openssh"
date = "2016-03-16"
[[advisories]]
name = "FreeBSD-SA-16:13.bind"
date = "2016-03-10"
[[advisories]]
name = "FreeBSD-SA-16:12.openssl"
date = "2016-03-10"
[[advisories]]
name = "FreeBSD-SA-16:11.openssl"
date = "2016-01-30"
[[advisories]]
name = "FreeBSD-SA-16:10.linux"
date = "2016-01-27"
[[advisories]]
name = "FreeBSD-SA-16:09.ntp"
date = "2016-01-27"
[[advisories]]
name = "FreeBSD-SA-16:08.bind"
date = "2016-01-27"
[[advisories]]
name = "FreeBSD-SA-16:07.openssh"
date = "2016-01-14"
[[advisories]]
name = "FreeBSD-SA-16:06.bsnmpd"
date = "2016-01-14"
[[advisories]]
name = "FreeBSD-SA-16:05.tcp"
date = "2016-01-14"
[[advisories]]
name = "FreeBSD-SA-16:04.linux"
date = "2016-01-14"
[[advisories]]
name = "FreeBSD-SA-16:03.linux"
date = "2016-01-14"
[[advisories]]
name = "FreeBSD-SA-16:02.ntp"
date = "2016-01-14"
[[advisories]]
name = "FreeBSD-SA-16:01.sctp"
date = "2016-01-14"
[[advisories]]
name = "FreeBSD-SA-15:27.bind"
date = "2015-12-16"
[[advisories]]
name = "FreeBSD-SA-15:26.openssl"
date = "2015-12-06"
[[advisories]]
name = "FreeBSD-SA-15:25.ntp"
date = "2015-10-26"
[[advisories]]
name = "FreeBSD-SA-15:24.rpcbind"
date = "2015-09-29"
[[advisories]]
name = "FreeBSD-SA-15:23.bind"
date = "2015-09-02"
[[advisories]]
name = "FreeBSD-SA-15:22.openssh"
date = "2015-08-25"
[[advisories]]
name = "FreeBSD-SA-15:21.amd64"
date = "2015-08-25"
[[advisories]]
name = "FreeBSD-SA-15:20.expat"
date = "2015-08-18"
[[advisories]]
name = "FreeBSD-SA-15:19.routed"
date = "2015-08-05"
[[advisories]]
name = "FreeBSD-SA-15:18.bsdpatch"
date = "2015-08-05"
[[advisories]]
name = "FreeBSD-SA-15:17.bind"
date = "2015-07-28"
[[advisories]]
name = "FreeBSD-SA-15:16.openssh"
date = "2015-07-28"
[[advisories]]
name = "FreeBSD-SA-15:15.tcp"
date = "2015-07-28"
[[advisories]]
name = "FreeBSD-SA-15:14.bsdpatch"
date = "2015-07-28"
[[advisories]]
name = "FreeBSD-SA-15:13.tcp"
date = "2015-07-21"
[[advisories]]
name = "FreeBSD-SA-15:12.openssl"
date = "2015-07-09"
[[advisories]]
name = "FreeBSD-SA-15:11.bind"
date = "2015-07-07"
[[advisories]]
name = "FreeBSD-SA-15:10.openssl"
date = "2015-06-12"
[[advisories]]
name = "FreeBSD-SA-15:09.ipv6"
date = "2015-04-07"
[[advisories]]
name = "FreeBSD-SA-15:08.bsdinstall"
date = "2015-04-07"
[[advisories]]
name = "FreeBSD-SA-15:07.ntp"
date = "2015-04-07"
[[advisories]]
name = "FreeBSD-SA-15:06.openssl"
date = "2015-03-19"
[[advisories]]
name = "FreeBSD-SA-15:05.bind"
date = "2015-02-25"
[[advisories]]
name = "FreeBSD-SA-15:04.igmp"
date = "2015-02-25"
[[advisories]]
name = "FreeBSD-SA-15:03.sctp"
date = "2015-01-27"
[[advisories]]
name = "FreeBSD-SA-15:02.kmem"
date = "2015-01-27"
[[advisories]]
name = "FreeBSD-SA-15:01.openssl"
date = "2015-01-14"
[[advisories]]
name = "FreeBSD-SA-14:31.ntp"
date = "2014-12-23"
[[advisories]]
name = "FreeBSD-SA-14:30.unbound"
date = "2014-12-17"
[[advisories]]
name = "FreeBSD-SA-14:29.bind"
date = "2014-12-10"
[[advisories]]
name = "FreeBSD-SA-14:28.file"
date = "2014-12-10"
[[advisories]]
name = "FreeBSD-SA-14:27.stdio"
date = "2014-12-10"
[[advisories]]
name = "FreeBSD-SA-14:26.ftp"
date = "2014-11-04"
[[advisories]]
name = "FreeBSD-SA-14:25.setlogin"
date = "2014-11-04"
[[advisories]]
name = "FreeBSD-SA-14:24.sshd"
date = "2014-11-04"
[[advisories]]
name = "FreeBSD-SA-14:23.openssl"
date = "2014-10-21"
[[advisories]]
name = "FreeBSD-SA-14:22.namei"
date = "2014-10-21"
[[advisories]]
name = "FreeBSD-SA-14:21.routed"
date = "2014-10-21"
[[advisories]]
name = "FreeBSD-SA-14:20.rtsold"
date = "2014-10-21"
[[advisories]]
name = "FreeBSD-SA-14:19.tcp"
date = "2014-09-16"
[[advisories]]
name = "FreeBSD-SA-14:18.openssl"
date = "2014-09-09"
[[advisories]]
name = "FreeBSD-SA-14:17.kmem"
date = "2014-07-08"
[[advisories]]
name = "FreeBSD-SA-14:16.file"
date = "2014-06-24"
[[advisories]]
name = "FreeBSD-SA-14:15.iconv"
date = "2014-06-24"
[[advisories]]
name = "FreeBSD-SA-14:14.openssl"
date = "2014-06-05"
[[advisories]]
name = "FreeBSD-SA-14:13.pam"
date = "2014-06-03"
[[advisories]]
name = "FreeBSD-SA-14:12.ktrace"
date = "2014-06-03"
[[advisories]]
name = "FreeBSD-SA-14:11.sendmail"
date = "2014-06-03"
[[advisories]]
name = "FreeBSD-SA-14:10.openssl"
date = "2014-05-13"
[[advisories]]
name = "FreeBSD-SA-14:09.openssl"
date = "2014-04-30"
[[advisories]]
name = "FreeBSD-SA-14:08.tcp"
date = "2014-04-30"
[[advisories]]
name = "FreeBSD-SA-14:07.devfs"
date = "2014-04-30"
[[advisories]]
name = "FreeBSD-SA-14:06.openssl"
date = "2014-04-08"
[[advisories]]
name = "FreeBSD-SA-14:05.nfsserver"
date = "2014-04-08"
[[advisories]]
name = "FreeBSD-SA-14:04.bind"
date = "2014-01-14"
[[advisories]]
name = "FreeBSD-SA-14:03.openssl"
date = "2014-01-14"
[[advisories]]
name = "FreeBSD-SA-14:02.ntpd"
date = "2014-01-14"
[[advisories]]
name = "FreeBSD-SA-14:01.bsnmpd"
date = "2014-01-14"
[[advisories]]
name = "FreeBSD-SA-13:14.openssh"
date = "2013-11-19"
[[advisories]]
name = "FreeBSD-SA-13:13.nullfs"
date = "2013-09-10"
[[advisories]]
name = "FreeBSD-SA-13:12.ifioctl"
date = "2013-09-10"
[[advisories]]
name = "FreeBSD-SA-13:11.sendfile"
date = "2013-09-10"
[[advisories]]
name = "FreeBSD-SA-13:10.sctp"
date = "2013-08-22"
[[advisories]]
name = "FreeBSD-SA-13:09.ip_multicast"
date = "2013-08-22"
[[advisories]]
name = "FreeBSD-SA-13:08.nfsserver"
date = "2013-07-26"
[[advisories]]
name = "FreeBSD-SA-13:07.bind"
date = "2013-07-26"
[[advisories]]
name = "FreeBSD-SA-13:06.mmap"
date = "2013-06-18"
[[advisories]]
name = "FreeBSD-SA-13:05.nfsserver"
date = "2013-04-29"
[[advisories]]
name = "FreeBSD-SA-13:04.bind"
date = "2013-04-02"
[[advisories]]
name = "FreeBSD-SA-13:03.openssl"
date = "2013-04-02"
[[advisories]]
name = "FreeBSD-SA-13:02.libc"
date = "2013-02-19"
[[advisories]]
name = "FreeBSD-SA-13:01.bind"
date = "2013-02-19"
[[advisories]]
name = "FreeBSD-SA-12:08.linux"
date = "2012-11-22"
[[advisories]]
name = "FreeBSD-SA-12:07.hostapd"
date = "2012-11-22"
[[advisories]]
name = "FreeBSD-SA-12:06.bind"
date = "2012-11-22"
[[advisories]]
name = "FreeBSD-SA-12:05.bind"
date = "2012-08-06"
[[advisories]]
name = "FreeBSD-SA-12:04.sysret"
date = "2012-06-12"
[[advisories]]
name = "FreeBSD-SA-12:03.bind"
date = "2012-06-12"
[[advisories]]
name = "FreeBSD-SA-12:02.crypt"
date = "2012-05-30"
[[advisories]]
name = "FreeBSD-SA-12:01.openssl"
date = "2012-05-30"
[[advisories]]
name = "FreeBSD-SA-11:10.pam"
date = "2011-12-23"
[[advisories]]
name = "FreeBSD-SA-11:09.pam_ssh"
date = "2011-12-23"
[[advisories]]
name = "FreeBSD-SA-11:08.telnetd"
date = "2011-12-23"
[[advisories]]
name = "FreeBSD-SA-11:07.chroot"
date = "2011-12-23"
[[advisories]]
name = "FreeBSD-SA-11:06.bind"
date = "2011-12-23"
[[advisories]]
name = "FreeBSD-SA-11:05.unix"
date = "2011-09-28"
[[advisories]]
name = "FreeBSD-SA-11:04.compress"
date = "2011-09-28"
[[advisories]]
name = "FreeBSD-SA-11:03.bind"
date = "2011-09-28"
[[advisories]]
name = "FreeBSD-SA-11:02.bind"
date = "2011-05-28"
[[advisories]]
name = "FreeBSD-SA-11:01.mountd"
date = "2011-04-20"
[[advisories]]
name = "FreeBSD-SA-10:10.openssl"
date = "2010-11-29"
[[advisories]]
name = "FreeBSD-SA-10:09.pseudofs"
date = "2010-11-10"
[[advisories]]
name = "FreeBSD-SA-10:08.bzip2"
date = "2010-09-20"
[[advisories]]
name = "FreeBSD-SA-10:07.mbuf"
date = "2010-07-13"
[[advisories]]
name = "FreeBSD-SA-10:06.nfsclient"
date = "2010-05-27"
[[advisories]]
name = "FreeBSD-SA-10:05.opie"
date = "2010-05-27"
[[advisories]]
name = "FreeBSD-SA-10:04.jail"
date = "2010-05-27"
[[advisories]]
name = "FreeBSD-SA-10:03.zfs"
date = "2010-01-06"
[[advisories]]
name = "FreeBSD-SA-10:02.ntpd"
date = "2010-01-06"
[[advisories]]
name = "FreeBSD-SA-10:01.bind"
date = "2010-01-06"
[[advisories]]
name = "FreeBSD-SA-09:17.freebsd-update"
date = "2009-12-03"
[[advisories]]
name = "FreeBSD-SA-09:16.rtld"
date = "2009-12-03"
[[advisories]]
name = "FreeBSD-SA-09:15.ssl"
date = "2009-12-03"
[[advisories]]
name = "FreeBSD-SA-09:14.devfs"
date = "2009-10-02"
[[advisories]]
name = "FreeBSD-SA-09:13.pipe"
date = "2009-10-02"
[[advisories]]
name = "FreeBSD-SA-09:12.bind"
date = "2009-07-29"
[[advisories]]
name = "FreeBSD-SA-09:11.ntpd"
date = "2009-06-10"
[[advisories]]
name = "FreeBSD-SA-09:10.ipv6"
date = "2009-06-10"
[[advisories]]
name = "FreeBSD-SA-09:09.pipe"
date = "2009-06-10"
[[advisories]]
name = "FreeBSD-SA-09:08.openssl"
date = "2009-04-22"
[[advisories]]
name = "FreeBSD-SA-09:07.libc"
date = "2009-04-22"
[[advisories]]
name = "FreeBSD-SA-09:06.ktimer"
date = "2009-03-23"
[[advisories]]
name = "FreeBSD-SA-09:05.telnetd"
date = "2009-02-16"
[[advisories]]
name = "FreeBSD-SA-09:04.bind"
date = "2009-01-13"
[[advisories]]
name = "FreeBSD-SA-09:03.ntpd"
date = "2009-01-13"
[[advisories]]
name = "FreeBSD-SA-09:02.openssl"
date = "2009-01-07"
[[advisories]]
name = "FreeBSD-SA-09:01.lukemftpd"
date = "2009-01-07"
[[advisories]]
name = "FreeBSD-SA-08:13.protosw"
date = "2008-12-23"
[[advisories]]
name = "FreeBSD-SA-08:12.ftpd"
date = "2008-12-23"
[[advisories]]
name = "FreeBSD-SA-08:11.arc4random"
date = "2008-11-24"
[[advisories]]
name = "FreeBSD-SA-08:10.nd6"
date = "2008-10-02"
[[advisories]]
name = "FreeBSD-SA-08:09.icmp6"
date = "2008-09-03"
[[advisories]]
name = "FreeBSD-SA-08:08.nmount"
date = "2008-09-03"
[[advisories]]
name = "FreeBSD-SA-08:07.amd64"
date = "2008-09-03"
[[advisories]]
name = "FreeBSD-SA-08:06.bind"
date = "2008-07-13"
[[advisories]]
name = "FreeBSD-SA-08:05.openssh"
date = "2008-04-17"
[[advisories]]
name = "FreeBSD-SA-08:04.ipsec"
date = "2008-02-14"
[[advisories]]
name = "FreeBSD-SA-08:03.sendfile"
date = "2008-02-14"
[[advisories]]
name = "FreeBSD-SA-08:02.libc"
date = "2008-01-14"
[[advisories]]
name = "FreeBSD-SA-08:01.pty"
date = "2008-01-14"
[[advisories]]
name = "FreeBSD-SA-07:10.gtar"
date = "2007-11-29"
[[advisories]]
name = "FreeBSD-SA-07:09.random"
date = "2007-11-29"
[[advisories]]
name = "FreeBSD-SA-07:08.openssl"
date = "2007-10-03"
[[advisories]]
name = "FreeBSD-SA-07:07.bind"
date = "2007-08-01"
[[advisories]]
name = "FreeBSD-SA-07:06.tcpdump"
date = "2007-08-01"
[[advisories]]
name = "FreeBSD-SA-07:05.libarchive"
date = "2007-07-12"
[[advisories]]
name = "FreeBSD-SA-07:04.file"
date = "2007-05-23"
[[advisories]]
name = "FreeBSD-SA-07:03.ipv6"
date = "2007-04-26"
[[advisories]]
name = "FreeBSD-SA-07:02.bind"
date = "2007-02-09"
[[advisories]]
name = "FreeBSD-SA-07:01.jail"
date = "2007-01-11"
[[advisories]]
name = "FreeBSD-SA-06:26.gtar"
date = "2006-12-06"
[[advisories]]
name = "FreeBSD-SA-06:25.kmem"
date = "2006-12-06"
[[advisories]]
name = "FreeBSD-SA-06:24.libarchive"
date = "2006-11-08"
[[advisories]]
name = "FreeBSD-SA-06:22.openssh"
date = "2006-09-30"
[[advisories]]
name = "FreeBSD-SA-06:23.openssl"
date = "2006-09-28"
[[advisories]]
name = "FreeBSD-SA-06:21.gzip"
date = "2006-09-19"
[[advisories]]
name = "FreeBSD-SA-06:20.bind"
date = "2006-09-06"
[[advisories]]
name = "FreeBSD-SA-06:19.openssl"
date = "2006-09-06"
[[advisories]]
name = "FreeBSD-SA-06:18.ppp"
date = "2006-08-23"
[[advisories]]
name = "FreeBSD-SA-06:17.sendmail"
date = "2006-06-14"
[[advisories]]
name = "FreeBSD-SA-06:16.smbfs"
date = "2006-05-31"
[[advisories]]
name = "FreeBSD-SA-06:15.ypserv"
date = "2006-05-31"
[[advisories]]
name = "FreeBSD-SA-06:14.fpu"
date = "2006-04-19"
[[advisories]]
name = "FreeBSD-SA-06:13.sendmail"
date = "2006-03-22"
[[advisories]]
name = "FreeBSD-SA-06:12.opie"
date = "2006-03-22"
[[advisories]]
name = "FreeBSD-SA-06:11.ipsec"
date = "2006-03-22"
[[advisories]]
name = "FreeBSD-SA-06:10.nfs"
date = "2006-03-01"
[[advisories]]
name = "FreeBSD-SA-06:09.openssh"
date = "2006-03-01"
[[advisories]]
name = "FreeBSD-SA-06:08.sack"
date = "2006-02-01"
[[advisories]]
name = "FreeBSD-SA-06:07.pf"
date = "2006-01-25"
[[advisories]]
name = "FreeBSD-SA-06:06.kmem"
date = "2006-01-25"
[[advisories]]
name = "FreeBSD-SA-06:05.80211"
date = "2006-01-18"
[[advisories]]
name = "FreeBSD-SA-06:04.ipfw"
date = "2006-01-11"
[[advisories]]
name = "FreeBSD-SA-06:03.cpio"
date = "2006-01-11"
[[advisories]]
name = "FreeBSD-SA-06:02.ee"
date = "2006-01-11"
[[advisories]]
name = "FreeBSD-SA-06:01.texindex"
date = "2006-01-11"
[[advisories]]
name = "FreeBSD-SA-05:21.openssl"
date = "2005-10-11"
[[advisories]]
name = "FreeBSD-SA-05:20.cvsbug"
date = "2005-09-07"
[[advisories]]
name = "FreeBSD-SA-05:19.ipsec"
date = "2005-07-27"
[[advisories]]
name = "FreeBSD-SA-05:18.zlib"
date = "2005-07-27"
[[advisories]]
name = "FreeBSD-SA-05:17.devfs"
date = "2005-07-20"
[[advisories]]
name = "FreeBSD-SA-05:16.zlib"
date = "2005-07-06"
[[advisories]]
name = "FreeBSD-SA-05:15.tcp"
date = "2005-06-29"
[[advisories]]
name = "FreeBSD-SA-05:14.bzip2"
date = "2005-06-29"
[[advisories]]
name = "FreeBSD-SA-05:13.ipfw"
date = "2005-06-29"
[[advisories]]
name = "FreeBSD-SA-05:12.bind9"
date = "2005-06-09"
[[advisories]]
name = "FreeBSD-SA-05:11.gzip"
date = "2005-06-09"
[[advisories]]
name = "FreeBSD-SA-05:10.tcpdump"
date = "2005-06-09"
[[advisories]]
name = "FreeBSD-SA-05:09.htt"
date = "2005-05-13"
[[advisories]]
name = "FreeBSD-SA-05:08.kmem"
date = "2005-05-06"
[[advisories]]
name = "FreeBSD-SA-05:07.ldt"
date = "2005-05-06"
[[advisories]]
name = "FreeBSD-SA-05:06.iir"
date = "2005-05-06"
[[advisories]]
name = "FreeBSD-SA-05:05.cvs"
date = "2005-04-22"
[[advisories]]
name = "FreeBSD-SA-05:04.ifconf"
date = "2005-04-15"
[[advisories]]
name = "FreeBSD-SA-05:03.amd64"
date = "2005-04-06"
[[advisories]]
name = "FreeBSD-SA-05:02.sendfile"
date = "2005-04-04"
[[advisories]]
name = "FreeBSD-SA-05:01.telnet"
date = "2005-03-28"
[[advisories]]
name = "FreeBSD-SA-04:17.procfs"
date = "2004-12-01"
[[advisories]]
name = "FreeBSD-SA-04:16.fetch"
date = "2004-11-18"
[[advisories]]
name = "FreeBSD-SA-04:15.syscons"
date = "2004-10-04"
[[advisories]]
name = "FreeBSD-SA-04:14.cvs"
date = "2004-09-19"
[[advisories]]
name = "FreeBSD-SA-04:13.linux"
date = "2004-06-30"
[[advisories]]
name = "FreeBSD-SA-04:12.jailroute"
date = "2004-06-07"
[[advisories]]
name = "FreeBSD-SA-04:11.msync"
date = "2004-05-19"
[[advisories]]
name = "FreeBSD-SA-04:10.cvs"
date = "2004-05-19"
[[advisories]]
name = "FreeBSD-SA-04:09.kadmind"
date = "2004-05-05"
[[advisories]]
name = "FreeBSD-SA-04:08.heimdal"
date = "2004-05-05"
[[advisories]]
name = "FreeBSD-SA-04:07.cvs"
date = "2004-04-15"
[[advisories]]
name = "FreeBSD-SA-04:06.ipv6"
date = "2004-03-29"
[[advisories]]
name = "FreeBSD-SA-04:05.openssl"
date = "2004-03-17"
[[advisories]]
name = "FreeBSD-SA-04:04.tcp"
date = "2004-03-02"
[[advisories]]
name = "FreeBSD-SA-04:03.jail"
date = "2004-02-25"
[[advisories]]
name = "FreeBSD-SA-04:02.shmat"
date = "2004-02-05"
[[advisories]]
name = "FreeBSD-SA-04:01.mksnap_ffs"
date = "2004-01-30"
[[advisories]]
name = "FreeBSD-SA-03:19.bind"
date = "2003-11-28"
[[advisories]]
name = "FreeBSD-SA-03:15.openssh"
date = "2003-10-05"
[[advisories]]
name = "FreeBSD-SA-03:18.openssl"
date = "2003-10-03"
[[advisories]]
name = "FreeBSD-SA-03:17.procfs"
date = "2003-10-03"
[[advisories]]
name = "FreeBSD-SA-03:16.filedesc"
date = "2003-10-02"
[[advisories]]
name = "FreeBSD-SA-03:14.arp"
date = "2003-09-23"
[[advisories]]
name = "FreeBSD-SA-03:13.sendmail"
date = "2003-09-17"
[[advisories]]
name = "FreeBSD-SA-03:12.openssh"
date = "2003-09-16"
[[advisories]]
name = "FreeBSD-SA-03:11.sendmail"
date = "2003-08-26"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1170"
[[advisories]]
name = "FreeBSD-SA-03:10.ibcs2"
date = "2003-08-10"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1164"
[[advisories]]
name = "FreeBSD-SA-03:09.signal"
date = "2003-08-10"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1163"
[[advisories]]
name = "FreeBSD-SA-03:08.realpath"
date = "2003-08-03"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1158"
[[advisories]]
name = "FreeBSD-SN-03:02"
date = "2003-04-08"
[[advisories]]
name = "FreeBSD-SN-03:01"
date = "2003-04-07"
[[advisories]]
name = "FreeBSD-SA-03:07.sendmail"
date = "2003-03-30"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1122"
[[advisories]]
name = "FreeBSD-SA-03:06.openssl"
date = "2003-03-21"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1118"
[[advisories]]
name = "FreeBSD-SA-03:05.xdr"
date = "2003-03-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1117"
[[advisories]]
name = "FreeBSD-SA-03:04.sendmail"
date = "2003-03-03"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1112"
[[advisories]]
name = "FreeBSD-SA-03:03.syncookies"
date = "2003-02-24"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1106"
[[advisories]]
name = "FreeBSD-SA-03:02.openssl"
date = "2003-02-24"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1105"
[[advisories]]
name = "FreeBSD-SA-03:01.cvs"
date = "2003-02-04"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1100"
[[advisories]]
name = "FreeBSD-SA-02:44.filedesc"
date = "2003-01-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1090"
[[advisories]]
name = "FreeBSD-SA-02:43.bind"
date = "2002-11-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1084"
[[advisories]]
name = "FreeBSD-SA-02:41.smrsh"
date = "2002-11-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1082"
[[advisories]]
name = "FreeBSD-SA-02:42.resolv"
date = "2002-11-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1083"
[[advisories]]
name = "FreeBSD-SA-02:40.kadmind"
date = "2002-11-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1081"
[[advisories]]
name = "FreeBSD-SN-02:06"
date = "2002-10-10"
[[advisories]]
name = "FreeBSD-SA-02:39.libkvm"
date = "2002-09-16"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1051"
[[advisories]]
name = "FreeBSD-SN-02:05"
date = "2002-08-28"
[[advisories]]
name = "FreeBSD-SA-02:38.signed-error"
date = "2002-08-19"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1041"
[[advisories]]
name = "FreeBSD-SA-02:37.kqueue"
date = "2002-08-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1033"
[[advisories]]
name = "FreeBSD-SA-02:36.nfs"
date = "2002-08-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1032"
[[advisories]]
name = "FreeBSD-SA-02:35.ffs"
date = "2002-08-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1031"
[[advisories]]
name = "FreeBSD-SA-02:33.openssl"
date = "2002-08-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1023"
[[advisories]]
name = "FreeBSD-SA-02:34.rpc"
date = "2002-08-01"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1024"
[[advisories]]
name = "FreeBSD-SA-02:32.pppd"
date = "2002-07-31"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1022"
[[advisories]]
name = "FreeBSD-SA-02:31.openssh"
date = "2002-07-15"
[[advisories]]
name = "FreeBSD-SA-02:30.ktrace"
date = "2002-07-12"
[[advisories]]
name = "FreeBSD-SA-02:29.tcpdump"
date = "2002-07-12"
[[advisories]]
name = "FreeBSD-SA-02:28.resolv"
date = "2002-06-26"
[[advisories]]
name = "FreeBSD-SN-02:04"
date = "2002-06-19"
[[advisories]]
name = "FreeBSD-SA-02:27.rc"
date = "2002-05-29"
[[advisories]]
name = "FreeBSD-SA-02:26.accept"
date = "2002-05-29"
[[advisories]]
name = "FreeBSD-SN-02:03"
date = "2002-05-28"
[[advisories]]
name = "FreeBSD-SA-02:25.bzip2"
date = "2002-05-20"
[[advisories]]
name = "FreeBSD-SA-02:24.k5su"
date = "2002-05-20"
[[advisories]]
name = "FreeBSD-SN-02:02"
date = "2002-05-13"
[[advisories]]
name = "FreeBSD-SA-02:23.stdio"
date = "2002-04-22"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1021"
[[advisories]]
name = "FreeBSD-SA-02:22.mmap"
date = "2002-04-18"
[[advisories]]
name = "FreeBSD-SA-02:21.tcpip"
date = "2002-04-17"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/980"
[[advisories]]
name = "FreeBSD-SA-02:20.syncache"
date = "2002-04-16"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/979"
[[advisories]]
name = "FreeBSD-SN-02:01"
date = "2002-03-30"
[[advisories]]
name = "FreeBSD-SA-02:19.squid"
date = "2002-03-26"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/960"
[[advisories]]
name = "FreeBSD-SA-02:18.zlib"
date = "2002-03-18"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/978"
[[advisories]]
name = "FreeBSD-SA-02:17.mod_frontpage"
date = "2002-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/954"
[[advisories]]
name = "FreeBSD-SA-02:16.netscape"
date = "2002-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/953"
[[advisories]]
name = "FreeBSD-SA-02:15.cyrus-sasl"
date = "2002-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/952"
[[advisories]]
name = "FreeBSD-SA-02:14.pam-pgsql"
date = "2002-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/951"
[[advisories]]
name = "FreeBSD-SA-02:13.openssh"
date = "2002-03-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/945"
[[advisories]]
name = "FreeBSD-SA-02:12.squid"
date = "2002-02-21"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/938"
[[advisories]]
name = "FreeBSD-SA-02:11.snmp"
date = "2002-02-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/936"
[[advisories]]
name = "FreeBSD-SA-02:10.rsync"
date = "2002-02-06"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/928"
[[advisories]]
name = "FreeBSD-SA-02:09.fstatfs"
date = "2002-02-06"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/927"
[[advisories]]
name = "FreeBSD-SA-02:08.exec"
date = "2002-01-24"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/923"
[[advisories]]
name = "FreeBSD-SA-02:07.k5su"
date = "2002-01-18"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/912"
[[advisories]]
name = "FreeBSD-SA-02:06.sudo"
date = "2002-01-16"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/909"
[[advisories]]
name = "FreeBSD-SA-02:05.pine"
date = "2002-01-04"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/894"
[[advisories]]
name = "FreeBSD-SA-02:04.mutt"
date = "2002-01-04"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/893"
[[advisories]]
name = "FreeBSD-SA-02:03.mod_auth_pgsql"
date = "2002-01-04"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/892"
[[advisories]]
name = "FreeBSD-SA-02:02.pw"
date = "2002-01-04"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/891"
[[advisories]]
name = "FreeBSD-SA-02:01.pkg_add"
date = "2002-01-04"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/898"
[[advisories]]
name = "FreeBSD-SA-01:64.wu-ftpd"
date = "2001-12-04"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/870"
[[advisories]]
name = "FreeBSD-SA-01:63.openssh"
date = "2001-12-02"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/871"
[[advisories]]
name = "FreeBSD-SA-01:62.uucp"
date = "2001-10-08"
[[advisories]]
name = "FreeBSD-SA-01:61.squid"
date = "2001-10-08"
[[advisories]]
name = "FreeBSD-SA-01:60.procmail"
date = "2001-09-24"
[[advisories]]
name = "FreeBSD-SA-01:59.rmuser"
date = "2001-09-04"
[[advisories]]
name = "FreeBSD-SA-01:58.lpd"
date = "2001-08-30"
[[advisories]]
name = "FreeBSD-SA-01:57.sendmail"
date = "2001-08-27"
[[advisories]]
name = "FreeBSD-SA-01:56.tcp_wrappers"
date = "2001-08-23"
[[advisories]]
name = "FreeBSD-SA-01:55.procfs"
date = "2001-08-21"
[[advisories]]
name = "FreeBSD-SA-01:54.ports-telnetd"
date = "2001-08-20"
[[advisories]]
name = "FreeBSD-SA-01:53.ipfw"
date = "2001-08-17"
[[advisories]]
name = "FreeBSD-SA-01:52.fragment"
date = "2001-08-06"
[[advisories]]
name = "FreeBSD-SA-01:51.openssl"
date = "2001-07-30"
[[advisories]]
name = "FreeBSD-SA-01:50.windowmaker"
date = "2001-07-27"
[[advisories]]
name = "FreeBSD-SA-01:49.telnetd"
date = "2001-07-23"
[[advisories]]
name = "FreeBSD-SA-01:48.tcpdump"
date = "2001-07-17"
[[advisories]]
name = "FreeBSD-SA-01:47.xinetd"
date = "2001-07-10"
[[advisories]]
name = "FreeBSD-SA-01:46.w3m"
date = "2001-07-10"
[[advisories]]
name = "FreeBSD-SA-01:45.samba"
date = "2001-07-10"
[[advisories]]
name = "FreeBSD-SA-01:44.gnupg"
date = "2001-07-10"
[[advisories]]
name = "FreeBSD-SA-01:43.fetchmail"
date = "2001-07-10"
[[advisories]]
name = "FreeBSD-SA-01:42.signal"
date = "2001-07-10"
[[advisories]]
name = "FreeBSD-SA-01:41.hanterm"
date = "2001-07-09"
[[advisories]]
name = "FreeBSD-SA-01:40.fts"
date = "2001-06-04"
[[advisories]]
name = "FreeBSD-SA-01:39.tcp-isn"
date = "2001-05-02"
[[advisories]]
name = "FreeBSD-SA-01:38.sudo"
date = "2001-04-23"
[[advisories]]
name = "FreeBSD-SA-01:37.slrn"
date = "2001-04-23"
[[advisories]]
name = "FreeBSD-SA-01:36.samba"
date = "2001-04-23"
[[advisories]]
name = "FreeBSD-SA-01:35.licq"
date = "2001-04-23"
[[advisories]]
name = "FreeBSD-SA-01:34.hylafax"
date = "2001-04-23"
[[advisories]]
name = "FreeBSD-SA-01:33.ftpd-glob"
date = "2001-04-17"
[[advisories]]
name = "FreeBSD-SA-01:32.ipfilter"
date = "2001-04-16"
[[advisories]]
name = "FreeBSD-SA-01:31.ntpd"
date = "2001-04-06"
[[advisories]]
name = "FreeBSD-SA-01:30.ufs-ext2fs"
date = "2001-03-22"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/738"
[[advisories]]
name = "FreeBSD-SA-01:29.rwhod"
date = "2001-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/732"
[[advisories]]
name = "FreeBSD-SA-01:28.timed"
date = "2001-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/731"
[[advisories]]
name = "FreeBSD-SA-01:27.cfengine"
date = "2001-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/730"
[[advisories]]
name = "FreeBSD-SA-01:26.interbase"
date = "2001-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/729"
[[advisories]]
name = "FreeBSD-SA-01:23.icecast"
date = "2001-03-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/728"
[[advisories]]
name = "FreeBSD-SA-01:25.kerberosIV"
date = "2001-02-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/716"
[[advisories]]
name = "FreeBSD-SA-01:24.ssh"
date = "2001-02-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/715"
[[advisories]]
name = "FreeBSD-SA-01:22.dc20ctrl"
date = "2001-02-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/714"
[[advisories]]
name = "FreeBSD-SA-01:21.ja-elvis"
date = "2001-02-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/713"
[[advisories]]
name = "FreeBSD-SA-01:20.mars_nwe"
date = "2001-02-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/712"
[[advisories]]
name = "FreeBSD-SA-01:19.ja-klock"
date = "2001-02-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/707"
[[advisories]]
name = "FreeBSD-SA-01:18.bind"
date = "2001-01-31"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/706"
[[advisories]]
name = "FreeBSD-SA-01:17.exmh"
date = "2001-01-29"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/705"
[[advisories]]
name = "FreeBSD-SA-01:16.mysql"
date = "2001-01-29"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/704"
[[advisories]]
name = "FreeBSD-SA-01:15.tinyproxy"
date = "2001-01-29"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/703"
[[advisories]]
name = "FreeBSD-SA-01:14.micq"
date = "2001-01-29"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/702"
[[advisories]]
name = "FreeBSD-SA-01:13.sort"
date = "2001-01-29"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/701"
[[advisories]]
name = "FreeBSD-SA-01:12.periodic"
date = "2001-01-29"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/700"
[[advisories]]
name = "FreeBSD-SA-01:11.inetd"
date = "2001-01-29"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/699"
[[advisories]]
name = "FreeBSD-SA-01:10.bind"
date = "2001-01-23"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/698"
[[advisories]]
name = "FreeBSD-SA-01:09.crontab"
date = "2001-01-23"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/697"
[[advisories]]
name = "FreeBSD-SA-01:08.ipfw"
date = "2001-01-23"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/696"
[[advisories]]
name = "FreeBSD-SA-01:07.xfree86"
date = "2001-01-23"
[[advisories]]
name = "FreeBSD-SA-01:06.zope"
date = "2001-01-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/669"
[[advisories]]
name = "FreeBSD-SA-01:05.stunnel"
date = "2001-01-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/668"
[[advisories]]
name = "FreeBSD-SA-01:04.joe"
date = "2001-01-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/667"
[[advisories]]
name = "FreeBSD-SA-01:03.bash1"
date = "2001-01-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/666"
[[advisories]]
name = "FreeBSD-SA-01:02.syslog-ng"
date = "2001-01-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/665"
[[advisories]]
name = "FreeBSD-SA-01:01.openssh"
date = "2001-01-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/664"
[[advisories]]
name = "FreeBSD-SA-00:81.ethereal"
date = "2000-12-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/651"
[[advisories]]
name = "FreeBSD-SA-00:80.halflifeserver"
date = "2000-12-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/650"
[[advisories]]
name = "FreeBSD-SA-00:79.oops"
date = "2000-12-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/649"
[[advisories]]
name = "FreeBSD-SA-00:78.bitchx"
date = "2000-12-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/648"
[[advisories]]
name = "FreeBSD-SA-00:77.procfs"
date = "2000-12-18"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/647"
[[advisories]]
name = "FreeBSD-SA-00:76.tcsh-csh"
date = "2000-11-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/628"
[[advisories]]
name = "FreeBSD-SA-00:75.php"
date = "2000-11-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/627"
[[advisories]]
name = "FreeBSD-SA-00:74.gaim"
date = "2000-11-20"
[[advisories]]
name = "FreeBSD-SA-00:73.thttpd"
date = "2000-11-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/626"
[[advisories]]
name = "FreeBSD-SA-00:72.curl"
date = "2000-11-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/625"
[[advisories]]
name = "FreeBSD-SA-00:71.mgetty"
date = "2000-11-20"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/624"
[[advisories]]
name = "FreeBSD-SA-00:70.ppp-nat"
date = "2000-11-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/623"
[[advisories]]
name = "FreeBSD-SA-00:69.telnetd"
date = "2000-11-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/622"
[[advisories]]
name = "FreeBSD-SA-00:68.ncurses"
date = "2000-11-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/621"
[[advisories]]
name = "FreeBSD-SA-00:67.gnupg"
date = "2000-11-10"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/620"
[[advisories]]
name = "FreeBSD-SA-00:66.netscape"
date = "2000-11-06"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/619"
[[advisories]]
name = "FreeBSD-SA-00:65.xfce"
date = "2000-11-06"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/618"
[[advisories]]
name = "FreeBSD-SA-00:64.global"
date = "2000-11-06"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/617"
[[advisories]]
name = "FreeBSD-SA-00:63.getnameinfo"
date = "2000-11-01"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/589"
[[advisories]]
name = "FreeBSD-SA-00:62.top"
date = "2000-11-01"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/616"
[[advisories]]
name = "FreeBSD-SA-00:61.tcpdump"
date = "2000-10-31"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/615"
[[advisories]]
name = "FreeBSD-SA-00:60.boa"
date = "2000-10-30"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/586"
[[advisories]]
name = "FreeBSD-SA-00:59.pine"
date = "2000-10-30"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/585"
[[advisories]]
name = "FreeBSD-SA-00:58.chpass"
date = "2000-10-30"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/584"
[[advisories]]
name = "FreeBSD-SA-00:57.muh"
date = "2000-10-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/570"
[[advisories]]
name = "FreeBSD-SA-00:56.lprng"
date = "2000-10-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/569"
[[advisories]]
name = "FreeBSD-SA-00:55.xpdf"
date = "2000-10-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/568"
[[advisories]]
name = "FreeBSD-SA-00:54.fingerd"
date = "2000-10-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/567"
[[advisories]]
name = "FreeBSD-SA-00:52.tcp-iss"
date = "2000-10-06"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/561"
[[advisories]]
name = "FreeBSD-SA-00:53.catopen"
date = "2000-09-27"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/562"
[[advisories]]
name = "FreeBSD-SA-00:51.mailman"
date = "2000-09-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/550"
[[advisories]]
name = "FreeBSD-SA-00:50.listmanager"
date = "2000-09-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/549"
[[advisories]]
name = "FreeBSD-SA-00:49.eject"
date = "2000-09-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/548"
[[advisories]]
name = "FreeBSD-SA-00:48.xchat"
date = "2000-09-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/547"
[[advisories]]
name = "FreeBSD-SA-00:47.pine"
date = "2000-09-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/546"
[[advisories]]
name = "FreeBSD-SA-00:46.screen"
date = "2000-09-13"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/545"
[[advisories]]
name = "FreeBSD-SA-00:45.esound"
date = "2000-08-31"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/526"
[[advisories]]
name = "FreeBSD-SA-00:44.xlock"
date = "2000-08-28"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/523"
[[advisories]]
name = "FreeBSD-SA-00:43.brouted"
date = "2000-08-28"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/520"
[[advisories]]
name = "FreeBSD-SA-00:42.linux"
date = "2000-08-28"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/530"
[[advisories]]
name = "FreeBSD-SA-00:41.elf"
date = "2000-08-28"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/527"
[[advisories]]
name = "FreeBSD-SA-00:40.mopd"
date = "2000-08-28"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/521"
[[advisories]]
name = "FreeBSD-SA-00:39.netscape"
date = "2000-08-28"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/528"
[[advisories]]
name = "FreeBSD-SA-00:38.zope"
date = "2000-08-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/525"
[[advisories]]
name = "FreeBSD-SA-00:37.cvsweb"
date = "2000-08-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/524"
[[advisories]]
name = "FreeBSD-SA-00:36.ntop"
date = "2000-08-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/531"
[[advisories]]
name = "FreeBSD-SA-00:35.proftpd"
date = "2000-08-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/522"
[[advisories]]
name = "FreeBSD-SA-00:34.dhclient"
date = "2000-08-14"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/529"
[[advisories]]
name = "FreeBSD-SA-00:33.kerberosIV"
date = "2000-07-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/488"
[[advisories]]
name = "FreeBSD-SA-00:32.bitchx"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/487"
[[advisories]]
name = "FreeBSD-SA-00:31.canna"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/486"
[[advisories]]
name = "FreeBSD-SA-00:30.openssh"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/485"
[[advisories]]
name = "FreeBSD-SA-00:29.wu-ftpd"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/489"
[[advisories]]
name = "FreeBSD-SA-00:28.majordomo"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/484"
[[advisories]]
name = "FreeBSD-SA-00:27.XFree86-4"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/483"
[[advisories]]
name = "FreeBSD-SA-00:26.popper"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/482"
[[advisories]]
name = "FreeBSD-SA-00:24.libedit"
date = "2000-07-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/481"
[[advisories]]
name = "FreeBSD-SA-00:23.ip-options"
date = "2000-06-19"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/480"
[[advisories]]
name = "FreeBSD-SA-00:25.alpha-random"
date = "2000-06-12"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/473"
[[advisories]]
name = "FreeBSD-SA-00:22.apsfilter"
date = "2000-06-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/461"
[[advisories]]
name = "FreeBSD-SA-00:21.ssh"
date = "2000-06-07"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/459"
[[advisories]]
name = "FreeBSD-SA-00:20.krb5"
date = "2000-05-26"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/452"
[[advisories]]
name = "FreeBSD-SA-00:19.semconfig"
date = "2000-05-23"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/451"
[[advisories]]
name = "FreeBSD-SA-00:18.gnapster.knapster"
date = "2000-05-09"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/429"
[[advisories]]
name = "FreeBSD-SA-00:17.libmytinfo"
date = "2000-05-09"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/442"
[[advisories]]
name = "FreeBSD-SA-00:16.golddig"
date = "2000-05-09"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/439"
[[advisories]]
name = "FreeBSD-SA-00:15.imap-uw"
date = "2000-04-24"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/438"
[[advisories]]
name = "FreeBSD-SA-00:14.imap-uw"
date = "2000-04-24"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/441"
[[advisories]]
name = "FreeBSD-SA-00:13.generic-nqs"
date = "2000-04-19"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/437"
[[advisories]]
name = "FreeBSD-SA-00:12.healthd"
date = "2000-04-10"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/436"
[[advisories]]
name = "FreeBSD-SA-00:11.ircii"
date = "2000-04-10"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/440"
[[advisories]]
name = "FreeBSD-SA-00:10.orville-write"
date = "2000-03-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/408"
[[advisories]]
name = "FreeBSD-SA-00:09.mtr"
date = "2000-03-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/408"
[[advisories]]
name = "FreeBSD-SA-00:08.lynx"
date = "2000-03-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/407"
[[advisories]]
name = "FreeBSD-SA-00:07.mh"
date = "2000-03-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/411"
[[advisories]]
name = "FreeBSD-SA-00:06.htdig"
date = "2000-03-01"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/403"
[[advisories]]
name = "FreeBSD-SA-00:05.mysql"
date = "2000-02-28"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/402"
[[advisories]]
name = "FreeBSD-SA-00:04.delegate"
date = "2000-02-19"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/392"
[[advisories]]
name = "FreeBSD-SA-00:03.asmon"
date = "2000-02-19"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/391"
[[advisories]]
name = "FreeBSD-SA-00:02.procfs"
date = "2000-01-24"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/380"
[[advisories]]
name = "FreeBSD-SA-00:01.make"
date = "2000-01-19"
[[advisories]]
name = "FreeBSD-SA-99:06.amd"
date = "1999-09-16"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/318"
[[advisories]]
name = "FreeBSD-SA-99:05.fts"
date = "1999-09-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/313"
[[advisories]]
name = "FreeBSD-SA-99:04.core"
date = "1999-09-15"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/312"
[[advisories]]
name = "FreeBSD-SA-99:03.ftpd"
date = "1999-09-05"
link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/311"
[[advisories]]
name = "FreeBSD-SA-99:02.profil"
date = "1999-09-04"
[[advisories]]
name = "FreeBSD-SA-99:01.chflags"
date = "1999-09-04"
[[advisories]]
name = "FreeBSD-SA-98:08.fragment"
date = "1998-11-04"
[[advisories]]
name = "FreeBSD-SA-98:07.rst"
date = "1998-10-13"
[[advisories]]
name = "FreeBSD-SA-98:06.icmp"
date = "1998-06-10"
[[advisories]]
name = "FreeBSD-SA-98:05.nfs"
date = "1998-06-04"
[[advisories]]
name = "FreeBSD-SA-98:04.mmap"
date = "1998-06-02"
[[advisories]]
name = "FreeBSD-SA-98:03.ttcp"
date = "1998-05-14"
[[advisories]]
name = "FreeBSD-SA-98:02.mmap"
date = "1998-03-12"
[[advisories]]
name = "FreeBSD-SA-97:06.f00f"
date = "1997-12-09"
[[advisories]]
name = "FreeBSD-SA-98:01.land"
date = "1997-12-01"
[[advisories]]
name = "FreeBSD-SA-97:05.open"
date = "1997-10-29"
[[advisories]]
name = "FreeBSD-SA-97:04.procfs"
date = "1997-08-19"
[[advisories]]
name = "FreeBSD-SA-97:03.sysinstall"
date = "1997-04-07"
[[advisories]]
name = "FreeBSD-SA-97:02.lpd"
date = "1997-03-26"
[[advisories]]
name = "FreeBSD-SA-97:01.setlocale"
date = "1997-02-05"
[[advisories]]
name = "FreeBSD-SA-96:21.talkd"
date = "1997-01-18"
[[advisories]]
name = "FreeBSD-SA-96:20.stack-overflow"
date = "1996-12-16"
[[advisories]]
name = "FreeBSD-SA-96:19.modstat"
date = "1996-12-10"
[[advisories]]
name = "FreeBSD-SA-96:18.lpr"
date = "1996-11-25"
[[advisories]]
name = "FreeBSD-SA-96:17.rzsz"
date = "1996-07-16"
[[advisories]]
name = "FreeBSD-SA-96:16.rdist"
date = "1996-07-12"
[[advisories]]
name = "FreeBSD-SA-96:15.ppp"
date = "1996-07-04"
[[advisories]]
name = "FreeBSD-SA-96:12.perl"
date = "1996-06-28"
[[advisories]]
name = "FreeBSD-SA-96:14.ipfw"
date = "1996-06-24"
[[advisories]]
name = "FreeBSD-SA-96:13.comsat"
date = "1996-06-05"
[[advisories]]
name = "FreeBSD-SA-96:11.man"
date = "1996-05-21"
[[advisories]]
name = "FreeBSD-SA-96:10.mount_union"
date = "1996-05-17"
[[advisories]]
name = "FreeBSD-SA-96:09.vfsload"
date = "1996-05-17"
[[advisories]]
name = "FreeBSD-SA-96:02.apache"
date = "1996-04-22"
[[advisories]]
name = "FreeBSD-SA-96:08.syslog"
date = "1996-04-21"
[[advisories]]
name = "FreeBSD-SA-96:01.sliplogin"
date = "1996-04-21"
[[advisories]]
name = "FreeBSD-SA-96:03.sendmail-suggestion"
date = "1996-04-20"
diff --git a/website/data/security/errata.toml b/website/data/security/errata.toml
index fc4760d668..d26f0bf3f2 100644
--- a/website/data/security/errata.toml
+++ b/website/data/security/errata.toml
@@ -1,987 +1,999 @@
# Sort errata notices by year, month and day
# $FreeBSD$
+[[notices]]
+name = "FreeBSD-EN-25:03.tzdata"
+date = "2025-01-29"
+
+[[notices]]
+name = "FreeBSD-EN-25:02.audit"
+date = "2025-01-29"
+
+[[notices]]
+name = "FreeBSD-EN-25:01.rpc"
+date = "2025-01-29"
+
[[notices]]
name = "FreeBSD-EN-24:17.pam_xdg"
date = "2024-10-29"
[[notices]]
name = "FreeBSD-EN-24:16.pf"
date = "2024-09-19"
[[notices]]
name = "FreeBSD-EN-24:15.calendar"
date = "2024-09-04"
[[notices]]
name = "FreeBSD-EN-24:14.ifconfig"
date = "2024-08-07"
[[notices]]
name = "FreeBSD-EN-24:13.libc++"
date = "2024-06-19"
[[notices]]
name = "FreeBSD-EN-24:12.killpg"
date = "2024-06-19"
[[notices]]
name = "FreeBSD-EN-24:11.ldns"
date = "2024-06-19"
[[notices]]
name = "FreeBSD-EN-24:10.zfs"
date = "2024-06-19"
[[notices]]
name = "FreeBSD-EN-24:09.zfs"
date = "2024-04-24"
[[notices]]
name = "FreeBSD-EN-24:08.kerberos"
date = "2024-03-28"
[[notices]]
name = "FreeBSD-EN-24:07.clang"
date = "2024-03-28"
[[notices]]
name = "FreeBSD-EN-24:06.wireguard"
date = "2024-03-28"
[[notices]]
name = "FreeBSD-EN-24:05.tty"
date = "2024-03-28"
[[notices]]
name = "FreeBSD-EN-24:04.ip"
date = "2024-02-14"
[[notices]]
name = "FreeBSD-EN-24:03.kqueue"
date = "2024-02-14"
[[notices]]
name = "FreeBSD-EN-24:02.libutil"
date = "2024-02-14"
[[notices]]
name = "FreeBSD-EN-24:01.tzdata"
date = "2024-02-14"
[[notices]]
name = "FreeBSD-EN-23:22.vfs"
date = "2023-12-05"
[[notices]]
name = "FreeBSD-EN-23:21.tty"
date = "2023-12-05"
[[notices]]
name = "FreeBSD-EN-23:20.vm"
date = "2023-12-05"
[[notices]]
name = "FreeBSD-EN-23:19.pkgbase"
date = "2023-12-05"
[[notices]]
name = "FreeBSD-EN-23:18.openzfs"
date = "2023-12-05"
[[notices]]
name = "FreeBSD-EN-23:17.ossl"
date = "2023-12-05"
[[notices]]
name = "FreeBSD-EN-23:16.openzfs"
date = "2023-12-01"
[[notices]]
name = "FreeBSD-EN-23:15.sanitizer"
date = "2023-12-01"
[[notices]]
name = "FreeBSD-EN-23:14.regcomp"
date = "2023-11-08"
[[notices]]
name = "FreeBSD-EN-23:13.freebsd-update"
date = "2023-11-08"
[[notices]]
name = "FreeBSD-EN-23:12.freebsd-update"
date = "2023-10-03"
[[notices]]
name = "FreeBSD-EN-23:11.caroot"
date = "2023-09-06"
[[notices]]
name = "FreeBSD-EN-23:10.pci"
date = "2023-09-06"
[[notices]]
name = "FreeBSD-EN-23:09.freebsd-update"
date = "2023-09-06"
[[notices]]
name = "FreeBSD-EN-23:08.vnet"
date = "2023-08-01"
[[notices]]
name = "FreeBSD-EN-23:07.mpr"
date = "2023-06-21"
[[notices]]
name = "FreeBSD-EN-23:06.loader"
date = "2023-06-21"
[[notices]]
name = "FreeBSD-EN-23:05.tzdata"
date = "2023-06-21"
[[notices]]
name = "FreeBSD-EN-23:04.ixgbe"
date = "2023-02-08"
[[notices]]
name = "FreeBSD-EN-23:03.ena"
date = "2023-02-08"
[[notices]]
name = "FreeBSD-EN-23:02.sdhci"
date = "2023-02-08"
[[notices]]
name = "FreeBSD-EN-23:01.tzdata"
date = "2023-02-08"
[[notices]]
name = "FreeBSD-EN-22:28.heimdal"
date = "2022-11-29"
[[notices]]
name = "FreeBSD-EN-22:27.loader"
date = "2022-11-01"
[[notices]]
name = "FreeBSD-EN-22:26.cam"
date = "2022-11-01"
[[notices]]
name = "FreeBSD-EN-22:25.tcp"
date = "2022-11-01"
[[notices]]
name = "FreeBSD-EN-22:24.zfs"
date = "2022-11-01"
[[notices]]
name = "FreeBSD-EN-22:23.vm"
date = "2022-11-01"
[[notices]]
name = "FreeBSD-EN-22:22.tzdata"
date = "2022-11-01"
[[notices]]
name = "FreeBSD-EN-22:21.zfs"
date = "2022-11-01"
[[notices]]
name = "FreeBSD-EN-22:20.tzdata"
date = "2022-08-30"
[[notices]]
name = "FreeBSD-EN-22:19.pam_exec"
date = "2022-08-09"
[[notices]]
name = "FreeBSD-EN-22:18.wifi"
date = "2022-08-09"
[[notices]]
name = "FreeBSD-EN-22:17.cam"
date = "2022-08-09"
[[notices]]
name = "FreeBSD-EN-22:16.kqueue"
date = "2022-08-09"
[[notices]]
name = "FreeBSD-EN-22:15.pf"
date = "2022-04-06"
[[notices]]
name = "FreeBSD-EN-22:14.tzdata"
date = "2022-03-22"
[[notices]]
name = "FreeBSD-EN-22:13.zfs"
date = "2022-03-21"
[[notices]]
name = "FreeBSD-EN-22:12.zfs"
date = "2022-03-15"
[[notices]]
name = "FreeBSD-EN-22:11.zfs"
date = "2022-03-15"
[[notices]]
name = "FreeBSD-EN-22:10.zfs"
date = "2022-03-15"
[[notices]]
name = "FreeBSD-EN-22:09.freebsd-update"
date = "2022-03-15"
[[notices]]
name = "FreeBSD-EN-22:08.i386"
date = "2022-02-01"
[[notices]]
name = "FreeBSD-EN-22:07.la57"
date = "2022-02-01"
[[notices]]
name = "FreeBSD-EN-22:06.libalias"
date = "2022-01-11"
[[notices]]
name = "FreeBSD-EN-22:05.tail"
date = "2022-01-11"
[[notices]]
name = "FreeBSD-EN-22:04.pcid"
date = "2022-01-11"
[[notices]]
name = "FreeBSD-EN-22:03.hyperv"
date = "2022-01-11"
[[notices]]
name = "FreeBSD-EN-22:02.xsave"
date = "2022-01-11"
[[notices]]
name = "FreeBSD-EN-22:01.fsck_ffs"
date = "2022-01-11"
[[notices]]
name = "FreeBSD-EN-21:29.tzdata"
date = "2021-11-03"
[[notices]]
name = "FreeBSD-EN-21:28.vmci"
date = "2021-11-03"
[[notices]]
name = "FreeBSD-EN-21:27.caroot"
date = "2021-11-03"
[[notices]]
name = "FreeBSD-EN-21:26.libevent"
date = "2021-11-03"
[[notices]]
name = "FreeBSD-EN-21:25.bhyve"
date = "2021-08-24"
[[notices]]
name = "FreeBSD-EN-21:24.libcrypto"
date = "2021-08-24"
[[notices]]
name = "FreeBSD-EN-21:23.virtio_blk"
date = "2021-08-24"
[[notices]]
name = "FreeBSD-EN-21:22.linux_futex"
date = "2021-06-29"
[[notices]]
name = "FreeBSD-EN-21:21.ipfw"
date = "2021-06-29"
[[notices]]
name = "FreeBSD-EN-21:20.vlan"
date = "2021-06-29"
[[notices]]
name = "FreeBSD-EN-21:19.libcasper"
date = "2021-06-29"
[[notices]]
name = "FreeBSD-EN-21:18.libc++"
date = "2021-06-29"
[[notices]]
name = "FreeBSD-EN-21:17.libradius"
date = "2021-06-01"
[[notices]]
name = "FreeBSD-EN-21:16.bc"
date = "2021-05-26"
[[notices]]
name = "FreeBSD-EN-21:15.virtio"
date = "2021-05-26"
[[notices]]
name = "FreeBSD-EN-21:14.pms"
date = "2021-05-26"
[[notices]]
name = "FreeBSD-EN-21:13.mpt"
date = "2021-05-26"
[[notices]]
name = "FreeBSD-EN-21:12.divert"
date = "2021-05-26"
[[notices]]
name = "FreeBSD-EN-21:11.aesni"
date = "2021-05-26"
[[notices]]
name = "FreeBSD-EN-21:10.lldb"
date = "2021-04-06"
[[notices]]
name = "FreeBSD-EN-21:09.pf"
date = "2021-04-06"
[[notices]]
name = "FreeBSD-EN-21:08.freebsd-update"
date = "2021-02-24"
[[notices]]
name = "FreeBSD-EN-21:07.caroot"
date = "2021-02-24"
[[notices]]
name = "FreeBSD-EN-21:06.microcode"
date = "2021-02-24"
[[notices]]
name = "FreeBSD-EN-21:05.libatomic"
date = "2021-01-29"
[[notices]]
name = "FreeBSD-EN-21:04.zfs"
date = "2021-01-29"
[[notices]]
name = "FreeBSD-EN-21:03.vnet"
date = "2021-01-29"
[[notices]]
name = "FreeBSD-EN-21:02.extattr"
date = "2021-01-29"
[[notices]]
name = "FreeBSD-EN-21:01.tzdata"
date = "2021-01-29"
[[notices]]
name = "FreeBSD-EN-20:22.callout"
date = "2020-12-01"
[[notices]]
name = "FreeBSD-EN-20:21.ipfw"
date = "2020-12-01"
[[notices]]
name = "FreeBSD-EN-20:20.tzdata"
date = "2020-12-01"
[[notices]]
name = "FreeBSD-EN-20:19.audit"
date = "2020-12-01"
[[notices]]
name = "FreeBSD-EN-20:18.getfsstat"
date = "2020-09-02"
[[notices]]
name = "FreeBSD-EN-20:17.linuxthread"
date = "2020-09-02"
[[notices]]
name = "FreeBSD-EN-20:16.vmx"
date = "2020-08-05"
[[notices]]
name = "FreeBSD-EN-20:15.mps"
date = "2020-07-08"
[[notices]]
name = "FreeBSD-EN-20:14.linuxkpi"
date = "2020-07-08"
[[notices]]
name = "FreeBSD-EN-20:13.bhyve"
date = "2020-07-08"
[[notices]]
name = "FreeBSD-EN-20:12.iflib"
date = "2020-06-09"
[[notices]]
name = "FreeBSD-EN-20:11.ena"
date = "2020-06-09"
[[notices]]
name = "FreeBSD-EN-20:10.build"
date = "2020-05-12"
[[notices]]
name = "FreeBSD-EN-20:09.igb"
date = "2020-05-12"
[[notices]]
name = "FreeBSD-EN-20:08.tzdata"
date = "2020-05-12"
[[notices]]
name = "FreeBSD-EN-20:07.quotad"
date = "2020-04-21"
[[notices]]
name = "FreeBSD-EN-20:06.ipv6"
date = "2020-03-19"
[[notices]]
name = "FreeBSD-EN-20:05.mlx5en"
date = "2020-03-19"
[[notices]]
name = "FreeBSD-EN-20:04.pfctl"
date = "2020-03-19"
[[notices]]
name = "FreeBSD-EN-20:03.sshd"
date = "2020-03-19"
[[notices]]
name = "FreeBSD-EN-20:02.nmount"
date = "2020-01-28"
[[notices]]
name = "FreeBSD-EN-20:01.ssp"
date = "2020-01-28"
[[notices]]
name = "FreeBSD-EN-19:19.loader"
date = "2019-11-12"
[[notices]]
name = "FreeBSD-EN-19:18.tzdata"
date = "2019-10-23"
[[notices]]
name = "FreeBSD-EN-19:17.ipfw"
date = "2019-08-20"
[[notices]]
name = "FreeBSD-EN-19:16.bhyve"
date = "2019-08-20"
[[notices]]
name = "FreeBSD-EN-19:15.libunwind"
date = "2019-08-06"
[[notices]]
name = "FreeBSD-EN-19:14.epoch"
date = "2019-08-06"
[[notices]]
name = "FreeBSD-EN-19:13.mds"
date = "2019-07-24"
[[notices]]
name = "FreeBSD-EN-19:12.tzdata"
date = "2019-07-02"
[[notices]]
name = "FreeBSD-EN-19:11.net"
date = "2019-06-19"
[[notices]]
name = "FreeBSD-EN-19:10.scp"
date = "2019-05-14"
[[notices]]
name = "FreeBSD-EN-19:09.xinstall"
date = "2019-05-14"
[[notices]]
name = "FreeBSD-EN-19:08.tzdata"
date = "2019-05-14"
[[notices]]
name = "FreeBSD-EN-19:07.lle"
date = "2019-02-05"
[[notices]]
name = "FreeBSD-EN-19:06.dtrace"
date = "2019-02-05"
[[notices]]
name = "FreeBSD-EN-19:05.kqueue"
date = "2019-01-09"
[[notices]]
name = "FreeBSD-EN-19:04.tzdata"
date = "2019-01-09"
[[notices]]
name = "FreeBSD-EN-19:03.sqlite"
date = "2019-01-09"
[[notices]]
name = "FreeBSD-EN-19:02.tcp"
date = "2019-01-09"
[[notices]]
name = "FreeBSD-EN-19:01.cc_cubic"
date = "2019-01-09"
[[notices]]
name = "FreeBSD-EN-18:18.zfs"
date = "2018-12-19"
[[notices]]
name = "FreeBSD-EN-18:17.vm"
date = "2018-12-19"
[[notices]]
name = "FreeBSD-EN-18:16.ptrace"
date = "2018-12-19"
[[notices]]
name = "FreeBSD-EN-18:15.loader"
date = "2018-11-27"
[[notices]]
name = "FreeBSD-EN-18:14.tzdata"
date = "2018-11-27"
[[notices]]
name = "FreeBSD-EN-18:13.icmp"
date = "2018-11-27"
[[notices]]
name = "FreeBSD-EN-18:12.mem"
date = "2018-09-27"
[[notices]]
name = "FreeBSD-EN-18:11.listen"
date = "2018-09-27"
[[notices]]
name = "FreeBSD-EN-18:10.syscall"
date = "2018-09-27"
[[notices]]
name = "FreeBSD-EN-18:09.ip"
date = "2018-09-27"
[[notices]]
name = "FreeBSD-EN-18:08.lazyfpu"
date = "2018-09-12"
[[notices]]
name = "FreeBSD-EN-18:07.pmap"
date = "2018-06-21"
[[notices]]
name = "FreeBSD-EN-18:06.tzdata"
date = "2018-05-08"
[[notices]]
name = "FreeBSD-EN-18:05.mem"
date = "2018-05-08"
[[notices]]
name = "FreeBSD-EN-18:04.mem"
date = "2018-04-04"
[[notices]]
name = "FreeBSD-EN-18:03.tzdata"
date = "2018-04-04"
[[notices]]
name = "FreeBSD-EN-18:02.file"
date = "2018-03-07"
[[notices]]
name = "FreeBSD-EN-18:01.tzdata"
date = "2018-03-07"
[[notices]]
name = "FreeBSD-EN-17:09.tzdata"
date = "2017-11-02"
[[notices]]
name = "FreeBSD-EN-17:08.pf"
date = "2017-08-10"
[[notices]]
name = "FreeBSD-EN-17:07.vnet"
date = "2017-08-10"
[[notices]]
name = "FreeBSD-EN-17:06.hyperv"
date = "2017-07-12"
[[notices]]
name = "FreeBSD-EN-17:05.xen"
date = "2017-04-12"
[[notices]]
name = "FreeBSD-EN-17:04.mandoc"
date = "2017-02-23"
[[notices]]
name = "FreeBSD-EN-17:03.hyperv"
date = "2017-02-23"
[[notices]]
name = "FreeBSD-EN-17:02.yp"
date = "2017-02-23"
[[notices]]
name = "FreeBSD-EN-17:01.pcie"
date = "2017-02-23"
[[notices]]
name = "FreeBSD-EN-16:21.localedef"
date = "2016-12-06"
[[notices]]
name = "FreeBSD-EN-16:20.tzdata"
date = "2016-12-06"
[[notices]]
name = "FreeBSD-EN-16:19.tzcode"
date = "2016-12-06"
[[notices]]
name = "FreeBSD-EN-16:18.loader"
date = "2016-10-25"
[[notices]]
name = "FreeBSD-EN-16:17.vm"
date = "2016-10-25"
[[notices]]
name = "FreeBSD-EN-16:16.hv_storvsc"
date = "2016-08-12"
[[notices]]
name = "FreeBSD-EN-16:15.vmbus"
date = "2016-08-12"
[[notices]]
name = "FreeBSD-EN-16:14.hv_storvsc"
date = "2016-08-12"
[[notices]]
name = "FreeBSD-EN-16:13.vmbus"
date = "2016-08-12"
[[notices]]
name = "FreeBSD-EN-16:12.hv_storvsc"
date = "2016-08-12"
[[notices]]
name = "FreeBSD-EN-16:11.vmbus"
date = "2016-08-12"
[[notices]]
name = "FreeBSD-EN-16:10.dhclient"
date = "2016-08-12"
[[notices]]
name = "FreeBSD-EN-16:09.freebsd-update"
date = "2016-07-25"
[[notices]]
name = "FreeBSD-EN-16:08.zfs"
date = "2016-05-04"
[[notices]]
name = "FreeBSD-EN-16:07.ipi"
date = "2016-05-04"
[[notices]]
name = "FreeBSD-EN-16:06.libc"
date = "2016-05-04"
[[notices]]
name = "FreeBSD-EN-16:05.hv_netvsc"
date = "2016-03-16"
[[notices]]
name = "FreeBSD-EN-16:04.hyperv"
date = "2016-03-16"
[[notices]]
name = "FreeBSD-EN-16:03.yplib"
date = "2016-01-14"
[[notices]]
name = "FreeBSD-EN-16:02.pf"
date = "2016-01-14"
[[notices]]
name = "FreeBSD-EN-16:01.filemon"
date = "2016-01-14"
[[notices]]
name = "FreeBSD-EN-15:20.vm"
date = "2015-11-04"
[[notices]]
name = "FreeBSD-EN-15:19.kqueue"
date = "2015-11-04"
[[notices]]
name = "FreeBSD-EN-15:18.pkg"
date = "2015-09-16"
[[notices]]
name = "FreeBSD-EN-15:17.libc"
date = "2015-09-16"
[[notices]]
name = "FreeBSD-EN-15:16.pw"
date = "2015-09-16"
[[notices]]
name = "FreeBSD-EN-15:15.pkg"
date = "2015-08-25"
[[notices]]
name = "FreeBSD-EN-15:14.ixgbe"
date = "2015-08-25"
[[notices]]
name = "FreeBSD-EN-15:13.vidcontrol"
date = "2015-08-18"
[[notices]]
name = "FreeBSD-EN-15:12.netstat"
date = "2015-08-18"
[[notices]]
name = "FreeBSD-EN-15:11.toolchain"
date = "2015-08-18"
[[notices]]
name = "FreeBSD-EN-15:10.iconv"
date = "2015-06-30"
[[notices]]
name = "FreeBSD-EN-15:09.xlocale"
date = "2015-06-30"
[[notices]]
name = "FreeBSD-EN-15:08.sendmail"
date = "2015-06-18"
[[notices]]
name = "FreeBSD-EN-15:07.zfs"
date = "2015-06-09"
[[notices]]
name = "FreeBSD-EN-15:06.file"
date = "2015-06-09"
[[notices]]
name = "FreeBSD-EN-15:05.ufs"
date = "2015-05-13"
[[notices]]
name = "FreeBSD-EN-15:04.freebsd-update"
date = "2015-05-13"
[[notices]]
name = "FreeBSD-EN-15:03.freebsd-update"
date = "2015-02-25"
[[notices]]
name = "FreeBSD-EN-15:02.openssl"
date = "2015-02-25"
[[notices]]
name = "FreeBSD-EN-15:01.vt"
date = "2015-02-25"
[[notices]]
name = "FreeBSD-EN-14:13.freebsd-update"
date = "2014-12-23"
[[notices]]
name = "FreeBSD-EN-14:12.zfs"
date = "2014-11-04"
[[notices]]
name = "FreeBSD-EN-14:11.crypt"
date = "2014-10-22"
[[notices]]
name = "FreeBSD-EN-14:10.tzdata"
date = "2014-10-22"
[[notices]]
name = "FreeBSD-EN-14:09.jail"
date = "2014-07-08"
[[notices]]
name = "FreeBSD-EN-14:08.heimdal"
date = "2014-06-24"
[[notices]]
name = "FreeBSD-EN-14:07.pmap"
date = "2014-06-24"
[[notices]]
name = "FreeBSD-EN-14:06.exec"
date = "2014-06-03"
[[notices]]
name = "FreeBSD-EN-14:05.ciss"
date = "2014-05-13"
[[notices]]
name = "FreeBSD-EN-14:04.kldxref"
date = "2014-05-13"
[[notices]]
name = "FreeBSD-EN-14:03.pkg"
date = "2014-05-13"
[[notices]]
name = "FreeBSD-EN-14:02.mmap"
date = "2014-01-14"
[[notices]]
name = "FreeBSD-EN-14:01.random"
date = "2014-01-14"
[[notices]]
name = "FreeBSD-EN-13:05.freebsd-update"
date = "2013-11-28"
[[notices]]
name = "FreeBSD-EN-13:04.freebsd-update"
date = "2013-10-26"
[[notices]]
name = "FreeBSD-EN-13:03.mfi"
date = "2013-08-22"
[[notices]]
name = "FreeBSD-EN-13:01.fxp"
date = "2013-06-28"
[[notices]]
name = "FreeBSD-EN-13:02.vtnet"
date = "2013-06-28"
[[notices]]
name = "FreeBSD-EN-12:02.ipv6refcount"
date = "2012-06-12"
[[notices]]
name = "FreeBSD-EN-12:01.freebsd-update"
date = "2012-01-04"
[[notices]]
name = "FreeBSD-EN-10:02.sched_ule"
date = "2010-02-27"
[[notices]]
name = "FreeBSD-EN-10:01.freebsd"
date = "2010-01-06"
[[notices]]
name = "FreeBSD-EN-09:05.null"
date = "2009-10-02"
[[notices]]
name = "FreeBSD-EN-09:04.fork"
date = "2009-06-24"
[[notices]]
name = "FreeBSD-EN-09:03.fxp"
date = "2009-06-24"
[[notices]]
name = "FreeBSD-EN-09:02.bce"
date = "2009-06-24"
[[notices]]
name = "FreeBSD-EN-09:01.kenv"
date = "2009-03-23"
[[notices]]
name = "FreeBSD-EN-08:02.tcp"
date = "2008-06-19"
[[notices]]
name = "FreeBSD-EN-08:01.libpthread"
date = "2008-04-17"
[[notices]]
name = "FreeBSD-EN-07:05.freebsd-update"
date = "2007-03-15"
[[notices]]
name = "FreeBSD-EN-07:04.zoneinfo"
date = "2007-02-28"
[[notices]]
name = "FreeBSD-EN-07:03.rc.d_jail"
date = "2007-02-28"
[[notices]]
name = "FreeBSD-EN-07:02.net"
date = "2007-02-28"
[[notices]]
name = "FreeBSD-EN-07:01.nfs"
date = "2007-02-14"
[[notices]]
name = "FreeBSD-EN-06:02.net"
date = "2006-08-28"
[[notices]]
name = "FreeBSD-EN-06:01.jail"
date = "2006-07-07"
[[notices]]
name = "FreeBSD-EN-05:04.nfs"
date = "2005-12-19"
[[notices]]
name = "FreeBSD-EN-05:03.ipi"
date = "2005-01-16"
[[notices]]
name = "FreeBSD-EN-05:02.sk"
date = "2005-01-06"
[[notices]]
name = "FreeBSD-EN-05:01.nfs"
date = "2005-01-05"
[[notices]]
name = "FreeBSD-EN-04:01.twe"
date = "2004-06-28"
diff --git a/website/static/security/advisories/FreeBSD-EN-25:01.rpc.asc b/website/static/security/advisories/FreeBSD-EN-25:01.rpc.asc
new file mode 100644
index 0000000000..08373eeea2
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-EN-25:01.rpc.asc
@@ -0,0 +1,137 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-25:01.rpc Errata Notice
+ The FreeBSD Project
+
+Topic: NULL pointer dereference in the NFSv4 client
+
+Category: core
+Module: kernel
+Announced: 2024-12-23
+Affects: FreeBSD 14.1
+Corrected: 2024-05-28 02:22:04 UTC (stable/14, 14.1-STABLE)
+ 2025-01-29 18:55:17 UTC (releng/14.1, 14.1-RELEASE-p7)
+
+For general information regarding FreeBSD Errata Notices and Security
+Advisories, including descriptions of the fields above, security
+branches, and the following sections, please visit
+.
+
+I. Background
+
+The Network File System (NFS) allows a host to export some or all of its file
+systems so that other hosts can access them over the network and mount them
+as if they were on local disks. NFS is built on top of the Sun Remote
+Procedure Call (RPC) framework. FreeBSD includes server and client
+implementations of NFS.
+
+NFS version 4 provides both client support and server support for delegation.
+Delegation is a technique by which the server delegates the management of a
+file to a client.
+
+II. Problem Description
+
+When a NFSv4.1/4.2 client callback related to delegations is handled, a
+missing NULL pointer check can cause a kernel panic.
+
+III. Impact
+
+FreeBSD systems mounting a NFSv4 server with delegations enabled may cause a
+kernel panic.
+
+IV. Workaround
+
+None, although NFSv4 clients mounting a server that has delegations disabled
+are not affected.
+
+If running a FreeBSD NFSv4 server, disabling delegations by setting the
+sysctl vfs.nfsd.issue_delegations to 0 (which is the default) will prevent
+any affected clients from crashing.
+
+V. Solution
+
+Upgrade your system to a supported FreeBSD stable or release / security
+branch (releng) dated after the correction date and reboot.
+
+Perform one of the following:
+
+1) To update your system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
+or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)
+utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/EN-25:01/rpc.patch
+# fetch https://security.FreeBSD.org/patches/EN-25:01/rpc.patch.asc
+# gpg --verify rpc.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+This issue is corrected as of the corresponding Git commit hash in the
+following stable and release branches:
+
+Branch/path Hash Revision
+- -------------------------------------------------------------------------
+stable/14/ 4c136aad80e6 stable/14-n269984
+releng/14.1/ 4fdb8d1ab316 releng/14.1-n267728
+- -------------------------------------------------------------------------
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+
+
+To determine the commit count in a working tree (for comparison against
+nNNNNNN in the table above), run:
+
+# git rev-list --count --first-parent HEAD
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKEACgkQbljekB8A
+Gu+TKA/6AiM4K+rkbQVEIq7DP/Kodnl/HH03t3oMX+O6McIYnPPc0AtBflxjcGTK
+JatRl4tFAkn/umXOLHw9ljqtIBz3Czj7i9mNvQ/z0j6oBZXnQLGXJdVcQLj5sZ2b
+GbMFe8Pf6yhL+HZqRDK+AP0x8gx9fCRvK9N8rTnwNGk6JnJXGMhF0V7cYEsCvN29
+xZX2VxxGo6APuFuct86FpDOZMnzqvGqukI2vTxwgG3kMDY4Y5DkVEwmjWOk4rAK9
++vGOrM+e+eUcktiIa+tFNmwhTexlXQ6LByiQKn6Py2jpcTJr2GP6AY/S4obHNGkB
+prixFBP9H6CP6M27RlWGiKG+dr60tzKukWcvj+Y3Ogu9tQOY0p+RGfTY/v416aAP
+VcFpxZhQc/67M45rRfPi8Ff+oXlcVXzmI1mkn4EcBcBC7DPLMD/Fvf0fixFKMLRw
+tImHAIn0cKWyjfu/uXSspFo9GtuHEyfodeLhA52Fh7ulfWgjNoQDvFJE3KAD+GGo
+x+GElJsO2Q+68b7b6sJPt0ZEijaDilI1d/cnwYYbXwwvnvbCPss7I9IWzB1T4xBI
+dZM/ED7jPFt3cbH2btVAaHDyMsx3FW0RzjDbTMGZFbNFsF3Adbet2ds8Jym954K0
+3MPv/T4OHui8tOL4WO3WMB/X50qDwBIFZC8+kU/MOe5OAq9yVyc=
+=7P47
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/advisories/FreeBSD-EN-25:02.audit.asc b/website/static/security/advisories/FreeBSD-EN-25:02.audit.asc
new file mode 100644
index 0000000000..ab45d0458f
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-EN-25:02.audit.asc
@@ -0,0 +1,137 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-25:02.audit Errata Notice
+ The FreeBSD Project
+
+Topic: System call auditing disabled by DTrace
+
+Category: core
+Module: audit
+Announced: 2025-01-29
+Credits: Joe Duin
+Affects: All supported versions of FreeBSD.
+Corrected: 2025-01-17 13:40:36 UTC (stable/14, 14.2-STABLE)
+ 2025-01-29 18:54:51 UTC (releng/14.2, 14.2-RELEASE-p1)
+ 2025-01-29 18:55:18 UTC (releng/14.1, 14.1-RELEASE-p7)
+ 2025-01-17 13:40:56 UTC (stable/13, 13.4-STABLE)
+ 2025-01-29 18:55:24 UTC (releng/13.4, 13.4-RELEASE-p3)
+
+For general information regarding FreeBSD Errata Notices and Security
+Advisories, including descriptions of the fields above, security
+branches, and the following sections, please visit
+.
+
+I. Background
+
+The audit(4) facility allows a system administrator to audit
+security-relevant events. System calls are one such security-related
+event, and the audit(4) facility will record whether the system call was
+successful along with other important details.
+
+II. Problem Description
+
+When userspace invokes a system call, the kernel routes the call through
+a common function which optionally logs an audit record for the call.
+This function also calls into DTrace to implement system call tracing.
+When both system call auditing and DTrace system call tracing are
+enabled at the same time, a logic error causes auditing to be silently
+disabled.
+
+III. Impact
+
+A privileged user can inhibit system call audit logging by running a
+DTrace script which uses the "syscall" provider. Once the DTrace script
+exits, system call auditing will resume without any intervention.
+
+IV. Workaround
+
+No workaround is available.
+
+V. Solution
+
+Upgrade your system to a supported FreeBSD stable or release / security
+branch (releng) dated after the correction date and reboot.
+
+Perform one of the following:
+
+1) To update your system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
+or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)
+utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/EN-25:02/audit.patch
+# fetch https://security.FreeBSD.org/patches/EN-25:02/audit.patch.asc
+# gpg --verify audit.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+This issue is corrected as of the corresponding Git commit hash in the
+following stable and release branches:
+
+Branch/path Hash Revision
+- -------------------------------------------------------------------------
+stable/14/ 4b9ba274d736 stable/14-n270139
+releng/14.2/ 71bf983f92ba releng/14.2-n269508
+releng/14.1/ 1574c53178e9 releng/14.1-n267729
+stable/13/ 1bf531bcd791 stable/13-n259015
+releng/13.4/ f7b9cd733c39 releng/13.4-n258269
+- -------------------------------------------------------------------------
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+
+
+To determine the commit count in a working tree (for comparison against
+nNNNNNN in the table above), run:
+
+# git rev-list --count --first-parent HEAD
+
+VII. References
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKMACgkQbljekB8A
+Gu/wIxAA38DHdcS7lmwRT/rYyuUICRW7v51RU/FMzbxJ/F0Aovh+mhKUjI3IU6Ym
+HEfJpu0o0bRN+tf2cCz4JEO881NhipNsmZlZ62W1Rz3bIG0MmcCQ+9bYMlLcCKrB
+V1GR/kve5ENZRi9R4eQ+zzrIMXnrL18QOY1BMxnuqT/QmA18LPx0XPGhecKj4L0+
+brD7xvg8cGd6QYKz56PVKqgPSJtN6gl9qgiIb2jtTNoz9lyXf/88N4nvFTGB86Mj
+wVQy9J/fdiHU6154xQq8HaIEk2q0kQsOM7fuEwms1yCgOKiOyYOL2Ohn1KDRD1Vh
+ECWLldc2l67ioLY2o3I15O4gSPa+/NcEgtGxrgCcUbp6cWHAMYbDw8/Oth7eIdjB
+tuv0Hu27ADJH9RawmrgziD9BzQzSK1qzzBLvic20pvU3tqlSTDWyrTfLYkkFoqjg
+8tL3PULNtHgcoP1VwfhQjVZAB5XzCDvuxTOOG6po6Hp02zdLmuQzQ7M+p/Fz1Cf1
+rftSNXfXS5vXnX18j51/I6KZaqRg039RVotVy7Pjy/+FWD5y8UGqp5QqPBlOvjve
+62R+FKVVr/Ki17kuQMayCc2hoWS4nKirQK1Kb2AoKIur5HoIM7urUnIIanzLvmIT
+tSJxvh1msNsOf2Q+1Yo6IP27Q9yjDTPZA+jFTzSL9lGiJAXoiVQ=
+=DEwx
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/advisories/FreeBSD-EN-25:03.tzdata.asc b/website/static/security/advisories/FreeBSD-EN-25:03.tzdata.asc
new file mode 100644
index 0000000000..58e884e6ef
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-EN-25:03.tzdata.asc
@@ -0,0 +1,167 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-25:03.tzdata Errata Notice
+ The FreeBSD Project
+
+Topic: Timezone database information update
+
+Category: contrib
+Module: zoneinfo
+Announced: 2025-01-29
+Affects: All supported versions of FreeBSD
+Corrected: 2025-01-20 00:25:35 UTC (stable/14, 14.2-STABLE)
+ 2025-01-29 18:54:53 UTC (releng/14.2, 14.2-RELEASE-p1)
+ 2025-01-29 18:55:24 UTC (releng/14.1, 14.1-RELEASE-p7)
+ 2025-01-20 00:26:44 UTC (stable/13, 13.4-STABLE)
+ 2025-01-29 18:55:26 UTC (releng/13.4, 13.4-RELEASE-p3)
+
+For general information regarding FreeBSD Errata Notices and Security
+Advisories, including descriptions of the fields above, security
+branches, and the following sections, please visit
+.
+
+I. Background
+
+The IANA Time Zone Database (often called tz or zoneinfo) contains code and
+data that represent the history of local time for many representative
+locations around the globe. It is updated periodically to reflect changes
+made by political bodies to time zone boundaries, UTC offsets, and
+daylight-saving rules.
+
+FreeBSD releases install the IANA Time Zone Database in /usr/share/zoneinfo.
+The tzsetup(8) utility allows the user to specify the default local time
+zone. Based on the selected time zone, tzsetup(8) copies one of the files
+from /usr/share/zoneinfo to /etc/localtime. A time zone may also be selected
+for an individual process by setting its TZ environment variable to a desired
+time zone name.
+
+II. Problem Description
+
+Several changes to future and past timestamps have been recorded in the IANA
+Time Zone Database after previous FreeBSD releases were released. This
+affects many users in different parts of the world. Because of these
+changes, the data in the zoneinfo files need to be updated. If the local
+timezone on the running system is affected, tzsetup(8) needs to be run to
+update /etc/localtime.
+
+III. Impact
+
+An incorrect time will be displayed on a system configured to use one of the
+affected time zones if the /usr/share/zoneinfo and /etc/localtime files are
+not updated, and all applications on the system that rely on the system time,
+such as cron(8) and syslog(8), will be affected.
+
+IV. Workaround
+
+The system administrator can install an updated version of the IANA Time Zone
+Database from the misc/zoneinfo port and run tzsetup(8).
+
+Applications that store and display times in Coordinated Universal Time (UTC)
+are not affected.
+
+V. Solution
+
+Upgrade your system to a supported FreeBSD stable or release / security
+branch (releng) dated after the correction date.
+
+Please note that some third party software, for instance PHP, Ruby, Java,
+Perl and Python, may be using different zoneinfo data sources, in such cases
+this software must be updated separately. Software packages that are
+installed via binary packages can be upgraded by executing 'pkg upgrade'.
+
+Following the instructions in this Errata Notice will only update the IANA
+Time Zone Database installed in /usr/share/zoneinfo.
+
+Perform one of the following:
+
+1) To update your system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
+or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)
+utility:
+
+# freebsd-update fetch
+# freebsd-update install
+
+Restart all the affected applications and daemons, or reboot the system.
+
+2) To update your system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+[FreeBSD 14.2]
+# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2025a.patch
+# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2025a.patch.asc
+# gpg --verify tzdata-2025a.patch.asc
+
+[FreeBSD 14.1, FreeBSD 13.4]
+# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2024b-2025a.patch
+# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2024b-2025a.patch.asc
+# gpg --verify tzdata-2024b-2025a.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile the operating system using buildworld and installworld as
+described in .
+
+Restart all the affected applications and daemons, or reboot the system.
+
+VI. Correction details
+
+This issue is corrected as of the corresponding Git commit hash in the
+following stable and release branches:
+
+Branch/path Hash Revision
+- -------------------------------------------------------------------------
+stable/14/ a158d26e89f2 stable/14-n270163
+releng/14.2/ b9149a3af722 releng/14.2-n269509
+releng/14.1/ 40928c124157 releng/14.1-n267734
+stable/13/ 2d6dcb4f97f8 stable/13-n259027
+releng/13.4/ eb9d8bafa485 releng/13.4-n258271
+- -------------------------------------------------------------------------
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+
+
+To determine the commit count in a working tree (for comparison against
+nNNNNNN in the table above), run:
+
+# git rev-list --count --first-parent HEAD
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKUACgkQbljekB8A
+Gu9cFhAAuGVUEwz0fggS27AahJHjh1a7SCwCh0lqRqedqsyRwJ4hoMoU2D7u5MCa
+w6uhBGHP5WeaKhKjMuZy339qE1mDrlm07uaoAdoum1BcmbdPIbUBrnXVYyPXuaCo
+ao92VBXRjDYaPlWtiK2z8DUyzYorHyH8TPtI64T05AnbkgblZl7jzwK/QLljqo0X
+33VhZF5ZGpHhdEr5lmx1Rx7dKfItgX7WGjnWFwQ7Y3J9pieCXggNjiHwjoXxz3Vz
+mZoRntnQ1JNTxEyPb69vokNCpOg03ateUTqGz/6JSR3quHqt78hXns4sVwYF9aSh
+A486DFzSHhW7Wl5moGSTl28GYFiU4mB7775Ui3wBEC2hI+UrH5etnmXjsr0kVOxE
+gmjLPwFcNqUZE+u3TmLTn7oRxftziwQ2qCWsfORyKfOP3fU0CrR41eOPWmNeCaVn
+rP5dmkYP857CcPjzDdt0UwI0ZSpirc304HxU9H4J69BBe2CLS4IC74SEr5hloZnY
+QNF66nyZ0dfU2Rf2ojwJ9FdHS9DyB5cnG7yMp6rn74ORrz7Gug2UO4UHVJwQ58Ji
+GWgZhENaGDbA8PO3X9ptoNAtmuYG4XFn4AxzqQ6cUfnveItVzRZr10qGE7WMhNjH
+/yVAV6swGSZWFdl05Km+75WHX/+7cQrGOgsWJt1yHkzRsYVS8K0=
+=x7nl
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/advisories/FreeBSD-SA-25.03.etcupdate.asc b/website/static/security/advisories/FreeBSD-SA-25.03.etcupdate.asc
new file mode 100644
index 0000000000..5809240dac
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-SA-25.03.etcupdate.asc
@@ -0,0 +1,141 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-25:03.etcupdate Security Advisory
+ The FreeBSD Project
+
+Topic: Unprivileged access to system files
+
+Category: core
+Module: etcupdate
+Announced: 2025-01-29
+Credits: Christos Chatzaras
+Affects: All supported versions of FreeBSD.
+Corrected: 2025-01-28 16:07:18 UTC (stable/14, 14.2-STABLE)
+ 2025-01-29 18:54:57 UTC (releng/14.2, 14.2-RELEASE-p1)
+ 2025-01-29 18:55:26 UTC (releng/14.1, 14.1-RELEASE-p7)
+ 2025-01-28 16:07:34 UTC (stable/13, 13.4-STABLE)
+ 2025-01-29 18:55:30 UTC (releng/13.4, 13.4-RELEASE-p3)
+CVE Name: CVE-2025-0374
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+The etcupdate(8) utility is a tool for managing updates to files that are not
+updated as part of ‘make installworld’ such as files in /etc. It manages
+updates by doing a three-way merge of changes made to these files against the
+local versions. It is also designed to minimize the amount of user
+intervention with the goal of simplifying upgrades for clusters of machines.
+
+II. Problem Description
+
+When etcupdate encounters conflicts while merging files, it saves a version
+containing conflict markers in /var/db/etcupdate/conflicts. This version does
+not preserve the mode of the input file, and is world-readable. This applies
+to files that would normally have restricted visibility, such as
+/etc/master.passwd.
+
+III. Impact
+
+An unprivileged local user may be able to read encrypted root and user
+passwords from the temporary master.passwd file created in
+/var/db/etcupdate/conflicts. This is possible only when conflicts within the
+password file arise during an update, and the unprotected file is deleted when
+conflicts are resolved.
+
+IV. Workaround
+
+No workaround is available. Systems whose files are updated using a mechanism
+other than etcupdate, such as freebsd-update(8), are unaffected.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
+or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)
+utility:
+
+# freebsd-update fetch
+# freebsd-update install
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/SA-25:03/etcupdate.patch
+# fetch https://security.FreeBSD.org/patches/SA-25:03/etcupdate.patch.asc
+# gpg --verify etcupdate.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile the operating system using buildworld and installworld as
+described in .
+
+VI. Correction details
+
+This issue is corrected as of the corresponding Git commit hash in the
+following stable and release branches:
+
+Branch/path Hash Revision
+- -------------------------------------------------------------------------
+stable/14/ 93836ff92be8 stable/14-n270244
+releng/14.2/ c55000e7c233 releng/14.2-n269513
+releng/14.1/ b8945a926a2f releng/14.1-n267736
+stable/13/ 17e935f1f327 stable/13-n259074
+releng/13.4/ c1c180910d46 releng/13.4-n258274
+- -------------------------------------------------------------------------
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+
+
+To determine the commit count in a working tree (for comparison against
+nNNNNNN in the table above), run:
+
+# git rev-list --count --first-parent HEAD
+
+VII. References
+
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKwACgkQbljekB8A
+Gu+/Zg//S1n7l9ABmKTrFKWstkDgyNplTyb8VRQ6HQtdAQSa1M5C8MUXt57wjCV0
+uOilT3GwT29IzBW2EDe3m8uOGdd3n0Ti6pCn0a11HV/VXqTt7zbbLNSPs7soTWVs
+oIsig0wmw/oZ2+ZkOvZG19ae99NdLzrV6YSK8NpdnOqwnTiZtN0cxCEdzhAQVznL
+omYwXjw7todZ1mskECDuaFrw+1R6K2Aw0lpauveNcsGewjV85IML6G3sPKYMJJCq
+E51LZ/1AfkQ+DDae+BVrGpvocf8YtR1p9Af8nSq16/WKKn4bwsVqFDf+fDpLpHW6
+W7P+Ng4KDKMPX7D/ObzTECKJLuhP3f0yZkkOrypIXFC5M34lbmyqJvR4tB7uJeNU
+uqlD9RNbKY652isbIRZKz5L8gnZpFK0IUTHhcGOpTw8dfF19CsfE2jHoI/7fs8rC
+RqMRCHo2dlPMP1xHTWfsgS3BYNJgC99CF1VCgpj2PuwQ3tP+CnQ5Ed2tvdTRrPjA
+/IL3DzH/5hUIhHUPPPnw7m4PHUduXJyG1gvv998oIVw4Q7AXTcTGYU4fLZrEvBY7
+r4Zgpy8WkdRYMJHfdlrmSJNf3r2isrVXosw5PLbwBRw1k+V2KlxBRo6YjglbakU/
+LEmgLL7D4BrMHUBjqe1m1wff3Urz41tRTQr/IaBjeXxI6jlwDDM=
+=60Xo
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/advisories/FreeBSD-SA-25:01.openssh.asc b/website/static/security/advisories/FreeBSD-SA-25:01.openssh.asc
new file mode 100644
index 0000000000..34fdcd3af4
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-SA-25:01.openssh.asc
@@ -0,0 +1,136 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-25:01.openssh Security Advisory
+ The FreeBSD Project
+
+Topic: OpenSSH Keystroke Obfuscation Bypass
+
+Category: contrib
+Module: openssh
+Announced: 2025-01-29
+Credits: Philippos Giavridis
+Credits: Jacky Wei En Kung, Daniel Hugenroth and
+ Alastair Beresford (University of Cambridge)
+Affects: FreeBSD 14.1
+Corrected: 2024-07-15 18:45:16 UTC (stable/14, 14.2-STABLE)
+ 2025-01-29 18:55:25 UTC (releng/14.1, 14.1-RELEASE-p7)
+ 2024-08-01 15:03:50 UTC (stable/13, 13.4-STABLE)
+CVE Name: CVE-2024-39894
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+OpenSSH is an implementation of the SSH protocol suite, providing an
+encrypted and authenticated transport for a variety of services, including
+remote shell access.
+
+OpenSSH version 9.5 introduced a mechanism to mitigate keystroke timing
+attacks by "sending interactive traffic at fixed intervals when there is
+only a small amount of data being sent."
+
+II. Problem Description
+
+A logic error in the ssh(1) ObscureKeystrokeTiming feature (on by default)
+rendered this feature ineffective.
+
+III. Impact
+
+A passive observer could detect which network packets contain real keystrokes,
+and infer the specific characters being transmitted from packet timing.
+
+IV. Workaround
+
+No workaround is available. This bug does not affect connections when
+ObscureKeystrokeTiming was disabled or sessions where no TTY was requested.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
+or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)
+utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+[FreeBSD 14.1]
+# fetch https://security.FreeBSD.org/patches/SA-25:01/openssh.patch
+# fetch https://security.FreeBSD.org/patches/SA-25:01/openssh.patch.asc
+# gpg --verify openssh.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile the operating system using buildworld and installworld as
+described in .
+
+VI. Correction details
+
+This issue is corrected as of the corresponding Git commit hash in the
+following stable and release branches:
+
+Branch/path Hash Revision
+- -------------------------------------------------------------------------
+stable/14/ bf9a275b24f6 stable/14-n268158
+releng/14.1/ 88d5d8108711 releng/14.1-n267735
+stable/13/ 79853e40abd8 stable/13-n258171
+- -------------------------------------------------------------------------
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+
+
+To determine the commit count in a working tree (for comparison against
+nNNNNNN in the table above), run:
+
+# git rev-list --count --first-parent HEAD
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKgACgkQbljekB8A
+Gu8WORAAl3zgLVz40e7nhduuV4eZlnvWAc6sruSap5f80ikGLRDfuzgKugWdOvTA
+i+bSZuZkGPx444uyC0JcN016+oUpd/1Xzr4/KQ7BL0ZYmgxQn/O8jfPbEiSloXpG
+Vgn8ZXYh1EKilhIw6n79yZN6WSY/gAfMZzeY/R7v1n7WaBnUYaUB8fl94CoTxf1j
+qQfmngBi6GU52OqirqBI4OYozJ2dkhRK/epvFUxMPGFVKa7wj4GChrQFW+PCyvHE
+TPg4H37kbSC37LbCn2Y/vjs8WcAr/xI68AGkalANgqVvtIpA0+tO7hn5gqgevbc8
+xO1xDvy38mlgX1CIdRD/Ur857z3P23mVfPhHkXX+85mbH/8QRbMJuB88zrhS9pcY
+V+dq23r0ALRCo8t8Sab5xukZhuK2rxFfXvfF2YT920Vd7LgCsA9MjTCdU/IfNpH0
+Ax5Lq1bm4cv9DT47XBRn+0QDZU0TSq0uJ8YLrusfS67ikzdbSBqL3tOAXtz6DeCL
+UDqSg3Ohw4HFn+DNMOdmESWO/t5LesEY/nB/vGSQYNYQMqlednwAPVhp6D8jvcgE
+Wi26qTLo4SgcvfDUk4EfDeLp90pgCXkBn5Zo9eTdOlyY/aMzvFcI7EKbsSAkX1Cg
+zus5DrcA9BTu2Wp9xWTUHLBC65ecHy6/xXSubjL4GCbYcPcjxQI=
+=oskq
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/advisories/FreeBSD-SA-25:02.fs.asc b/website/static/security/advisories/FreeBSD-SA-25:02.fs.asc
new file mode 100644
index 0000000000..daf046b3b2
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-SA-25:02.fs.asc
@@ -0,0 +1,151 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-25:02.fs Security Advisory
+ The FreeBSD Project
+
+Topic: Buffer overflow in some filesystems via NFS
+
+Category: core
+Module: fs
+Announced: 2025-01-29
+Credits: Kevin Miller
+Affects: All supported versions of FreeBSD.
+Corrected: 2025-01-17 13:53:10 UTC (stable/14, 14.2-STABLE)
+ 2025-01-29 18:54:56 UTC (releng/14.2, 14.2-RELEASE-p1)
+ 2025-01-29 18:55:22 UTC (releng/14.1, 14.1-RELEASE-p7)
+ 2025-01-17 14:00:40 UTC (stable/13, 13.4-STABLE)
+ 2025-01-29 18:55:29 UTC (releng/13.4, 13.4-RELEASE-p3)
+CVE Name: CVE-2025-0373
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+FreeBSD provides a number of filesystem implementations for different
+purposes. cd9660 is used to mount ISO 9660 images; tarfs is used to mount
+POSIX tar archives; ext2fs is used to mount ext2, ext3, and ext4 filesystems.
+
+II. Problem Description
+
+In order to export a file system via NFS, the file system must define a file
+system identifier (FID) for all exported files. Each FreeBSD file system
+implements operations to translate between FIDs and vnodes, the kernel's
+in-memory representation of files. These operations are VOP_VPTOFH(9) and
+VFS_FHTOVP(9).
+
+On 64-bit systems, the implementation of VOP_VPTOFH() in the cd9660, tarfs and
+ext2fs filesystems overflows the destination FID buffer by 4 bytes, a stack
+buffer overflow.
+
+III. Impact
+
+A NFS server that exports a cd9660, tarfs, or ext2fs file system can be made
+to panic by mounting and accessing the export with an NFS client. Further
+exploitation (e.g., bypassing file permission checking or remote kernel code
+execution) is potentially possible, though this has not been demonstrated. In
+particular, release kernels are compiled with stack protection enabled, and
+some instances of the overflow are caught by this mechanism, causing a panic.
+
+IV. Workaround
+
+No workaround is available, however, only systems which export a cd9660,
+tarfs, or ext2fs filesystem via NFS are affected.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
+or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)
+utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+[FreeBSD 14.x]
+# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-14.patch
+# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-14.patch.asc
+# gpg --verify fs-14.patch.asc
+
+[FreeBSD 13.x]
+# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-13.patch
+# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-13.patch.asc
+# gpg --verify fs-13.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+This issue is corrected as of the corresponding Git commit hash in the
+following stable and release branches:
+
+Branch/path Hash Revision
+- -------------------------------------------------------------------------
+stable/14/ 7a3a0402aeb6 stable/14-n270143
+releng/14.2/ faa47d299a0e releng/14.2-n269512
+releng/14.1/ c90866090517 releng/14.1-n267732
+stable/13/ ee931cf4a49c stable/13-n259016
+releng/13.4/ 0365b776f1b1 releng/13.4-n258273
+- -------------------------------------------------------------------------
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+
+
+To determine the commit count in a working tree (for comparison against
+nNNNNNN in the table above), run:
+
+# git rev-list --count --first-parent HEAD
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKoACgkQbljekB8A
+Gu8JFw/7Bq7C56cUeMwxb6I7BU3U2/DNjKLAR3bymrYqqJberyyyfUtgCcaTyz2q
+uCOAlK8xSbOVwX4WYb4pygR/uxRCPBaooTLpIZBPTCT5TxyTeLqQWfedeVMgYHgd
+zkuS4cG97IACiS9Zey6xFO5Rati0QoSuhEf36rvJXO/E7HQHARe954G7FDWvTi3W
+Snn5MvWYFwCvcL7gtthaoXtxS/FFRv+ht+cv6u/k6BNQXU7QFhF5qfFxM5rFczhO
++TTFMoizAxLyirZNPy2n2jg9u+vrh2LKmfwiuMxX3zUeNI8/7yNZJ7ea+VGoRAxh
+OEXXPLbNPVtJdi6qvZ+3D0HUw/3aRjg/i0/Qe+5KXFC7OLBxksM5vyOC+eAjoyQW
+Y489eI7B5tV1td52wotZ1bIyt3GHmKtFxOt2kajPaR0vjuaYtdUb85PtT2QGjnRJ
+XbzmwrCM1YsBKANUHdh7sP5Bx1UI6dlQS2dgRQdbz43378lM1XND3RidioAdbYe6
+SyDyFnZPypHaQfZVdlepnYxActqvhKeeq0aWkgqymaeL78sqmF4AARFVSqep8MXL
+boUkn3tMp1rojKH87Hk8saqRepZfX3DuwONsz++mgKEmqgnb8zKYI0Q4Gq6nYgcr
+d8UxaWQz1mkiPfaqDvUOmAYWoWIiA+KsfIZIKj7+vrMEH32QzaA=
+=vbcl
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/advisories/FreeBSD-SA-25:04.ktrace.asc b/website/static/security/advisories/FreeBSD-SA-25:04.ktrace.asc
new file mode 100644
index 0000000000..37a3d79df7
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-SA-25:04.ktrace.asc
@@ -0,0 +1,135 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-25:04.ktrace Security Advisory
+ The FreeBSD Project
+
+Topic: Uninitialized kernel memory disclosure via ktrace(2)
+
+Category: core
+Module: ktrace
+Announced: 2025-01-29
+Credits: Yichen Chai and Zhuo Ying Jiang Li
+Affects: FreeBSD 14.2
+Corrected: 2025-01-20 22:09:53 UTC (stable/14, 14.2-STABLE)
+ 2025-01-29 18:54:50 UTC (releng/14.2, 14.2-RELEASE-p1)
+CVE Name: CVE-2025-0662
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+The ktrace utility enables kernel trace logging for the specified
+processes, commonly used for diagnostic or debugging purposes. The
+kernel operations that are traced include system calls, namei
+translations, signal processing, and I/O as well as data associated with
+these operations.
+
+II. Problem Description
+
+In some cases, the ktrace facility will log the contents of kernel
+structures to userspace. In one such case, ktrace dumps a
+variable-sized sockaddr to userspace. There, the full sockaddr is
+copied, even when it is shorter than the full size. This can result in
+up to 14 uninitialized bytes of kernel memory being copied out to
+userspace.
+
+III. Impact
+
+It is possible for an unprivileged userspace program to leak 14 bytes of
+a kernel heap allocation to userspace.
+
+IV. Workaround
+
+No workaround is available.
+
+V. Solution
+
+
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
+or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)
+utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/SA-25:04/ktrace.patch
+# fetch https://security.FreeBSD.org/patches/SA-25:04/ktrace.patch.asc
+# gpg --verify ktrace.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+This issue is corrected as of the corresponding Git commit hash in the
+following stable and release branches:
+
+Branch/path Hash Revision
+- -------------------------------------------------------------------------
+stable/14/ 99d5ee8738a3 stable/14-n270190
+releng/14.2/ 10f8a9df522f releng/14.2-n269507
+- -------------------------------------------------------------------------
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+
+
+To determine the commit count in a working tree (for comparison against
+nNNNNNN in the table above), run:
+
+# git rev-list --count --first-parent HEAD
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajK4ACgkQbljekB8A
+Gu84pQ//WXxC3kW+JP6R73oQ3s5hhokCE7FjwlRj6QhkblmgBdRrwwFzkR0nLfSK
+TUirfyYikaCtw3K/FpAYfm4VSJR3MlFhjUXhU+4KWBnJHf0t6NYEJP6MixsDFMvn
+IZWZsrLs8Ryl03kKiH3EWfA9KVqx0OI0Cj9LOLo5nBzZjR0auUxYRdNrYuEq4i9n
+OxMRbB3i5C3oy+I8ZW6fAAyYRb008oLDZmMBluIybCH01B35NQP/iAjpO6HQT5rt
+fvHlo/kEOGSqBrwcnJXzLiJE4uKtiS4CDBltEN1WpP3N1MBqbLj6GO5uEWQGA73F
+MhOzeCd3kM+41KQjdtxvIJ9yc0i/m0VLOnBTaKCqAS4bGTOl5FIIZEaY3J3+7dOP
+wkcdFTOxl9K+RZ5CERAUxoGqgS9r+HOvWBIQcQoD9j4UCBocwyZn8fvp6niK0CWl
+TR4T7UE8nAiK/QqBQ7DTqKlAkrMC3+FS5XVfw6GXJ7NFMP/HFh/AIE7oEYN+h/rQ
+JXPmuU9Ml0ZHuy4PLcX16YSX+T+fdNWMxL1eomHE/FUwZoNP2RC0Wi9nGxEKtLun
+JLGFkfQzuwfIItGYICvvOKw6Ry9Q1WYJFTdrNLCn7upUW0BnXVDVzRz7X68FJgtO
+uXQGChtW/PfG/KoMY544eX5lL27Kxi5oBNS/VzDtCPG0bHAAgMw=
+=ErDS
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/EN-25:01/rpc.patch b/website/static/security/patches/EN-25:01/rpc.patch
new file mode 100644
index 0000000000..2012a35475
--- /dev/null
+++ b/website/static/security/patches/EN-25:01/rpc.patch
@@ -0,0 +1,10 @@
+--- sys/rpc/svc.c.orig
++++ sys/rpc/svc.c
+@@ -1000,6 +1000,7 @@
+ * enable TLS offload first.
+ */
+ if (xprt->xp_doneddp == 0 && r->rq_proc != NULLPROC &&
++ xprt->xp_socket != NULL &&
+ atomic_cmpset_int(&xprt->xp_doneddp, 0, 1)) {
+ if (xprt->xp_socket->so_proto->pr_protocol ==
+ IPPROTO_TCP) {
diff --git a/website/static/security/patches/EN-25:01/rpc.patch.asc b/website/static/security/patches/EN-25:01/rpc.patch.asc
new file mode 100644
index 0000000000..11289b7703
--- /dev/null
+++ b/website/static/security/patches/EN-25:01/rpc.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKIACgkQbljekB8A
+Gu8h3xAA4IYXD/fdZW1z47Sb0u6K2f8RUKGNHYlJE6zrFJIv2hqObZhIpzTwY4rf
+iS2HqgrBJmk641UCceVw13FCsolybViKKk+fCnt0ioNHGoDHeDTM7/yOBcooz7dC
+gC28HbK2CuH5jNJUYMz+UH5y+dVobNXFyw+5lI+H67+/4n5o31v8CCv92Ir/a8WD
+7ylxTs/r24HAZLnn0qYFrv3WyYGxx0seu2EWzhANVT6yKT0RnfeMBz7rUSLp85GA
+7Wgw2PSwlpjQ4iKESTIZI2/eujjZEVm59NUjwCXVq7Zloso8Zg9Fy6KACxKkKkej
+upFLiB1o20yA1sWc7MiwUCcXCylH7LzPYaU5Tv+Ad9GtJ1aVmuTqNvUqtaWQfLEO
+maLxQODfu7hKU4Chf7C1YatyjtuU2+f6K85um1kNXGxRS6DI4b9y2DxUW7G7n3z1
+Lmmqwehfwht9E9j/mOjS8oeQJiKMYxzV/IKjfpjfnz8ZI0EdOr/VQp2J+UReFt8C
+M2TFogLk5ytmjCHbhk3z0qK7EMk51fbE7uymjf2o9KZs/t99Gi09co40LZYXC7aK
+ri7aoR3w9msS9BC1I8xURDXZDeueZ1JCf1XPYNhvWo7qQYMLrjFlGeZPf4+z+I/L
+IruTM1QUmy9hUPoXJPQwwYaul6wf9AAP986qfpoJHMmCi+xoDp8=
+=Zx+r
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/EN-25:02/audit.patch b/website/static/security/patches/EN-25:02/audit.patch
new file mode 100644
index 0000000000..43a8d6484d
--- /dev/null
+++ b/website/static/security/patches/EN-25:02/audit.patch
@@ -0,0 +1,47 @@
+--- sys/kern/subr_syscall.c.orig
++++ sys/kern/subr_syscall.c
+@@ -141,9 +141,8 @@
+
+ sy_thr_static = (se->sy_thrcnt & SY_THR_STATIC) != 0;
+
+- if (__predict_false(SYSTRACE_ENABLED() ||
+- AUDIT_SYSCALL_ENTER(sa->code, td) ||
+- !sy_thr_static)) {
++ if (__predict_false(AUDIT_SYSCALL_ENABLED() ||
++ SYSTRACE_ENABLED() || !sy_thr_static)) {
+ if (!sy_thr_static) {
+ error = syscall_thread_enter(td, &se);
+ sy_thr_static = (se->sy_thrcnt & SY_THR_STATIC) != 0;
+@@ -158,6 +157,9 @@
+ if (__predict_false(se->sy_entry != 0))
+ (*systrace_probe_func)(sa, SYSTRACE_ENTRY, 0);
+ #endif
++
++ AUDIT_SYSCALL_ENTER(sa->code, td);
++
+ error = (se->sy_call)(td, sa->args);
+ /* Save the latest error return value. */
+ if (__predict_false((td->td_pflags & TDP_NERRNO) != 0))
+--- sys/security/audit/audit.h.orig
++++ sys/security/audit/audit.h
+@@ -389,9 +389,11 @@
+ audit_arg_vnode2((vp)); \
+ } while (0)
+
++#define AUDIT_SYSCALL_ENABLED() audit_syscalls_enabled
++
+ #define AUDIT_SYSCALL_ENTER(code, td) ({ \
+ bool _audit_entered = false; \
+- if (__predict_false(audit_syscalls_enabled)) { \
++ if (audit_syscalls_enabled) { \
+ audit_syscall_enter(code, td); \
+ _audit_entered = true; \
+ } \
+@@ -468,6 +470,7 @@
+
+ #define AUDITING_TD(td) 0
+
++#define AUDIT_SYSCALL_ENABLED() 0
+ #define AUDIT_SYSCALL_ENTER(code, td) 0
+ #define AUDIT_SYSCALL_EXIT(error, td)
+
diff --git a/website/static/security/patches/EN-25:02/audit.patch.asc b/website/static/security/patches/EN-25:02/audit.patch.asc
new file mode 100644
index 0000000000..8530c925e3
--- /dev/null
+++ b/website/static/security/patches/EN-25:02/audit.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKQACgkQbljekB8A
+Gu/Hnw//cLD49S4YDLzrbP+jX69eMmbq5A572LY6+DPD1/rWwdI4ickT7Y33yoXG
+NRHoExnhVgyfqcjkScZQWoqxeYcVyFbtvGejbziTC5dwrh2DtZr+N3iFQW/xON4Q
+HFZGSo50jaZhJ0Q/x376lZemy/4EYI+t0XUle9pKvMRPBpTcy0yyS12tZrM7aue1
+iQc8gd1nANUPOMZ+r7tSuDVVxl+41jHzRIE+zFePE4T5xdw6/vyuF5pGQovc3Tu9
+SYQurIElH0ou8o8YP1r3P3kciG44Ugsxzp3/b8pmgSZZS9TJ+lIeCnriwbAAHJ1z
+v2N/GzZhqL9s/NViJmLObyuQlMxxJEZJSA96zj/71GmriRTexVsWnkWHFoRFySLn
+lkf5Z8Ah4doJ+1WbRFnIb7nJsWsYtFd8pXcRRyWqcr2AQXtHTUpC/0pNeYtn4qEP
+UConT11a8b8dM+uYJP12IMTwfB8v0ElM+Vt51Nz5SNzIsM7kULAdxLx6IsPfT/M7
+NCekD8E+xZgQ2VdkrgpTjxxF/OD74xAnHYHP3/8uYM5qG/l28ea9FDoPdCcqDS5P
+he6PTWbtlyUB0oOrXIijcLBzHMits7rX91Bz8HwEr2E/QsXMMlWLRANA6R9/EbAS
+so5v2KtR8mbWl0RsMjZfvPBisHDxkNu+SF0YDTeHTL0Yx5fCdYU=
+=9rOG
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch
new file mode 100644
index 0000000000..b36fb946dd
--- /dev/null
+++ b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch
@@ -0,0 +1,5905 @@
+--- contrib/tzdata/CONTRIBUTING.orig
++++ contrib/tzdata/CONTRIBUTING
+@@ -23,10 +23,10 @@
+ "Theory and pragmatics of the tz code and data"
+ .
+ It is also good to browse the mailing list archives
+- for examples of patches that tend
+-to work well. Additions to data should contain commentary citing
+-reliable sources as justification. Citations should use "https:" URLs
+-if available.
++
++for examples of patches that tend to work well.
++Changes should contain commentary citing reliable sources.
++Citations should use "https:" URLs if available.
+
+ For changes that fix sensitive security-related bugs, please see the
+ distribution's 'SECURITY' file.
+@@ -63,12 +63,16 @@
+ * Edit source files. Include commentary that justifies the
+ changes by citing reliable sources.
+
+- * Debug the changes, e.g.:
++ * Debug the changes locally, e.g.:
+
+- make check
+- make install
++ make TOPDIR=$PWD/tz clean check install
+ ./zdump -v America/Los_Angeles
+
++ Although builds assume only basic POSIX, they use extra features
++ if available. 'make check' accesses validator.w3.org unless you
++ lack 'curl' or use 'make CURL=:'. If you have the latest GCC,
++ "make CFLAGS='$(GCC_DEBUG_FLAGS)'" does extra checking.
++
+ * For each separable change, commit it in the new branch, e.g.:
+
+ git add northamerica
+--- contrib/tzdata/Makefile.orig
++++ contrib/tzdata/Makefile
+@@ -3,17 +3,17 @@
+ # 2009-05-17 by Arthur David Olson.
+ # Request POSIX conformance; this must be the first non-comment line.
+ .POSIX:
+-# On older platforms you may need to scrounge for a POSIX-conforming 'make'.
+-# For example, on Solaris 10 (2005), use /usr/sfw/bin/gmake or
+-# /usr/xpg4/bin/make, not /usr/ccs/bin/make.
++# On older platforms you may need to scrounge for POSIX conformance.
++# For example, on Solaris 10 (2005) with Sun Studio 12 aka Sun C 5.9 (2007),
++# use 'PATH=/usr/xpg4/bin:$PATH make CC=c99'.
+
+ # To affect how this Makefile works, you can run a shell script like this:
+ #
+ # #!/bin/sh
+-# make CC='gcc -std=gnu11' "$@"
++# make CC='gcc -std=gnu23' "$@"
+ #
+-# This example script is appropriate for a pre-2017 GNU/Linux system
+-# where a non-default setting is needed to support this package's use of C99.
++# This example script is appropriate for a circa 2024 GNU/Linux system
++# where a non-default setting enables this package's optional use of C23.
+ #
+ # Alternatively, you can simply edit this Makefile to tailor the following
+ # macro definitions.
+@@ -53,7 +53,7 @@
+
+ LOCALTIME= Factory
+
+-# The POSIXRULES macro controls interpretation of POSIX-2017.1-like TZ
++# The POSIXRULES macro controls interpretation of POSIX-like TZ
+ # settings like TZ='EET-2EEST' that lack DST transition rules.
+ # If POSIXRULES is '-', no template is installed; this is the default.
+ # Any other value for POSIXRULES is obsolete and should not be relied on, as:
+@@ -132,11 +132,12 @@
+
+ # Types to try, as an alternative to time_t.
+ TIME_T_ALTERNATIVES = $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES_TAIL)
+-TIME_T_ALTERNATIVES_HEAD = int_least64_t
+-TIME_T_ALTERNATIVES_TAIL = int_least32_t uint_least32_t uint_least64_t
++TIME_T_ALTERNATIVES_HEAD = int_least64_t.ck
++TIME_T_ALTERNATIVES_TAIL = int_least32_t.ck uint_least32_t.ck \
++ uint_least64_t.ck
+
+ # What kind of TZif data files to generate. (TZif is the binary time
+-# zone data format that zic generates; see Internet RFC 8536.)
++# zone data format that zic generates; see Internet RFC 9636.)
+ # If you want only POSIX time, with time values interpreted as
+ # seconds since the epoch (not counting leap seconds), use
+ # REDO= posix_only
+@@ -219,6 +220,7 @@
+ # than what POSIX specifies, assuming local time is UT.
+ # For example, N is 252460800 on AmigaOS.
+ # -DHAVE_DECL_ASCTIME_R=0 if does not declare asctime_r
++# on POSIX platforms predating POSIX.1-2024
+ # -DHAVE_DECL_ENVIRON if declares 'environ'
+ # -DHAVE_DECL_TIMEGM=0 if does not declare timegm
+ # -DHAVE_DIRECT_H if mkdir needs (MS-Windows)
+@@ -229,7 +231,7 @@
+ # where LDLIBS also needs to contain -lintl on some hosts;
+ # -DHAVE_GETTEXT=0 to avoid using gettext
+ # -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares
+-# ctime_r and asctime_r incompatibly with the POSIX standard
++# ctime_r and asctime_r incompatibly with POSIX.1-2017 and earlier
+ # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
+ # -DHAVE_INTTYPES_H=0 if does not work*+
+ # -DHAVE_LINK=0 if your system lacks a link function
+@@ -253,6 +255,7 @@
+ # -DHAVE_UNISTD_H=0 if does not work*
+ # -DHAVE_UTMPX_H=0 if does not work*
+ # -Dlocale_t=XXX if your system uses XXX instead of locale_t
++# -DMKTIME_MIGHT_OVERFLOW if mktime might fail due to time_t overflow
+ # -DPORT_TO_C89 if tzcode should also run on mostly-C89 platforms+
+ # Typically it is better to use a later standard. For example,
+ # with GCC 4.9.4 (2016), prefer '-std=gnu11' to '-DPORT_TO_C89'.
+@@ -260,9 +263,12 @@
+ # feature (integers at least 64 bits wide) and maybe more.
+ # -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
+ # with external linkage, e.g., applications cannot define 'localtime'.
+-# -Dssize_t=long on hosts like MS-Windows that lack ssize_t
+-# -DSUPPORT_C89 if the tzcode library should support C89 callers+
+-# However, this might trigger latent bugs in C99-or-later callers.
++# -Dssize_t=int on hosts like MS-Windows that lack ssize_t
++# -DSUPPORT_C89=0 if the tzcode library should not support C89 callers
++# Although -DSUPPORT_C89=0 might work around latent bugs in callers,
++# it does not conform to POSIX.
++# -DSUPPORT_POSIX2008 if the library should support older POSIX callers+
++# However, this might cause problems in POSIX.1-2024-or-later callers.
+ # -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
+ # security implications and is not recommended for general use
+ # -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
+@@ -274,13 +280,13 @@
+ # -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
+ # the default is system-supplied, typically "/usr/lib/locale"
+ # -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
+-# DST transitions for POSIX.1-2017-style TZ strings lacking them,
++# DST transitions for proleptic format TZ strings lacking them,
+ # in the usual case where POSIXRULES is '-'. If not specified,
+ # TZDEFRULESTRING defaults to US rules for future DST transitions.
+ # This mishandles some past timestamps, as US DST rules have changed.
+ # It also mishandles settings like TZ='EET-2EEST' for eastern Europe,
+ # as Europe and US DST rules differ.
+-# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255)
++# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 254)
+ # -DUNINIT_TRAP if reading uninitialized storage can cause problems
+ # other than simply getting garbage data
+ # -DUSE_LTZ=0 to build zdump with the system time zone library
+@@ -302,23 +308,26 @@
+ #
+ # * Options marked "*" can be omitted if your compiler is C23 compatible.
+ # * Options marked "+" are obsolescent and are planned to be removed
+-# once the code assumes C99 or later, say in the year 2029.
++# once the code assumes C99 or later (say in the year 2029)
++# and POSIX.1-2024 or later (say in the year 2034).
+ #
+ # Select instrumentation via "make GCC_INSTRUMENT='whatever'".
+ GCC_INSTRUMENT = \
+ -fsanitize=undefined -fsanitize-address-use-after-scope \
+ -fsanitize-undefined-trap-on-error -fstack-protector
+ # Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow.
+-GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
++GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 \
+ $(GCC_INSTRUMENT) \
+ -Wall -Wextra \
+ -Walloc-size-larger-than=100000 -Warray-bounds=2 \
+- -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \
++ -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wcast-qual \
++ -Wdate-time \
+ -Wdeclaration-after-statement -Wdouble-promotion \
+- -Wduplicated-branches -Wduplicated-cond \
++ -Wduplicated-branches -Wduplicated-cond -Wflex-array-member-not-at-end \
+ -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
+ -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op \
+- -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
++ -Wmissing-declarations -Wmissing-prototypes \
++ -Wmissing-variable-declarations -Wnested-externs \
+ -Wnull-dereference \
+ -Wold-style-definition -Woverlength-strings -Wpointer-arith \
+ -Wshadow -Wshift-overflow=2 -Wstrict-overflow \
+@@ -327,10 +336,9 @@
+ -Wsuggest-attribute=const -Wsuggest-attribute=format \
+ -Wsuggest-attribute=malloc \
+ -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \
+- -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \
++ -Wtrampolines -Wundef -Wunused-macros -Wuse-after-free=3 \
+ -Wvariadic-macros -Wvla -Wwrite-strings \
+- -Wno-address -Wno-format-nonliteral -Wno-sign-compare \
+- -Wno-type-limits
++ -Wno-format-nonliteral -Wno-sign-compare -Wno-type-limits
+ #
+ # If your system has a "GMT offset" field in its "struct tm"s
+ # (or if you decide to add such a field in your system's "time.h" file),
+@@ -341,9 +349,8 @@
+ # Similarly, if your system has a "zone abbreviation" field, define
+ # -DTM_ZONE=tm_zone
+ # and define NO_TM_ZONE to suppress any guessing.
+-# Although these two fields are not required by POSIX.1-2017,
+-# POSIX 202x/D4 requires them and they are widely available
+-# on GNU/Linux and BSD systems.
++# Although POSIX.1-2024 requires these fields and they are widely available
++# on GNU/Linux and BSD systems, some older systems lack them.
+ #
+ # The next batch of options control support for external variables
+ # exported by tzcode. In practice these variables are less useful
+@@ -353,7 +360,9 @@
+ # # -DHAVE_TZNAME=0 # do not support "tzname"
+ # # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library
+ # # -DHAVE_TZNAME=2 # support and define "tzname"
+-# # to the "CFLAGS=" line. "tzname" is required by POSIX.1-1988 and later.
++# # to the "CFLAGS=" line. Although "tzname" is required by POSIX.1-1988
++# # and later, its contents are unspecified if you use a geographical TZ
++# # and the variable is planned to be removed in a future POSIX edition.
+ # # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
+ # # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
+ # # crashes when combined with some platforms' standard libraries,
+@@ -364,7 +373,9 @@
+ # # -DUSG_COMPAT=1 # support, and variables are defined by system library
+ # # -DUSG_COMPAT=2 # support and define variables
+ # # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by Unix
+-# # Systems Group code and are required by POSIX.1-2008 and later (with XSI).
++# # Systems Group code and are required by POSIX.1-2008 and later (with XSI),
++# # although their contents are unspecified if you use a geographical TZ
++# # and the variables are planned to be removed in a future edition of POSIX.
+ # # If not defined, the code attempts to guess USG_COMPAT from other macros.
+ # #
+ # # To support the external variable "altzone", add
+@@ -428,18 +439,13 @@
+
+ # The name of a POSIX-like library archiver, its flags, C compiler,
+ # linker flags, and 'make' utility. Ordinarily the defaults suffice.
+-# The commented-out values are the defaults specified by POSIX.1-202x/D4.
++# The commented-out values are the defaults specified by POSIX.1-2024.
+ #AR = ar
+ #ARFLAGS = -rv
+ #CC = c17
+ #LDFLAGS =
+ #MAKE = make
+
+-# For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in
+-# submake command lines. The default is no leap seconds.
+-
+-LEAPSECONDS=
+-
+ # Where to fetch leap-seconds.list from.
+ leaplist_URI = \
+ https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list
+@@ -461,7 +467,7 @@
+
+ # How to use zic to install TZif files.
+
+-ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)' $(LEAPSECONDS)
++ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)'
+
+ # The name of a POSIX-compliant 'awk' on your system.
+ # mawk 1.3.3 and Solaris 10 /usr/bin/awk do not work.
+@@ -480,6 +486,7 @@
+
+ # Name of curl , used for HTML validation
+ # and to fetch leap-seconds.list from upstream.
++# Set CURL=: to disable use of the Internet.
+ CURL= curl
+
+ # Name of GNU Privacy Guard , used to sign distributions.
+@@ -533,21 +540,28 @@
+
+ # Flags to give 'tar' when making a distribution.
+ # Try to use flags appropriate for GNU tar.
+-GNUTARFLAGS= --format=pax --pax-option='delete=atime,delete=ctime' \
++GNUTARFLAGS= --format=pax --pax-option=delete=atime,delete=ctime \
+ --numeric-owner --owner=0 --group=0 \
+ --mode=go+u,go-w --sort=name
+-TARFLAGS= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
+- then echo $(GNUTARFLAGS); \
+- else :; \
+- fi`
++SETUP_TAR= \
++ export LC_ALL=C && \
++ if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; then \
++ TAR='tar $(GNUTARFLAGS)'; \
++ else \
++ TAR=tar; \
++ fi
+
+ # Flags to give 'gzip' when making a distribution.
+ GZIPFLAGS= -9n
+
+ # When comparing .tzs files, use GNU diff's -F'^TZ=' option if supported.
+ # This makes it easier to see which Zone has been affected.
+-DIFF_TZS= diff -u$$(! diff -u -F'^TZ=' - - <>/dev/null >&0 2>&1 \
+- || echo ' -F^TZ=')
++SETUP_DIFF_TZS = \
++ if diff -u -F'^TZ=' - - <>/dev/null >&0 2>&1; then \
++ DIFF_TZS='diff -u -F^TZ='; \
++ else \
++ DIFF_TZS='diff -u'; \
++ fi
+
+ # ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib.
+ RANLIB= :
+@@ -561,8 +575,8 @@
+
+
+ TZCOBJS= zic.o
+-TZDOBJS= zdump.o localtime.o asctime.o strftime.o
+-DATEOBJS= date.o localtime.o strftime.o asctime.o
++TZDOBJS= zdump.o localtime.o strftime.o
++DATEOBJS= date.o localtime.o strftime.o
+ LIBSRCS= localtime.c asctime.c difftime.c strftime.c
+ LIBOBJS= localtime.o asctime.o difftime.o strftime.o
+ HEADERS= tzfile.h private.h
+@@ -579,8 +593,7 @@
+ COMMON= calendars CONTRIBUTING LICENSE Makefile \
+ NEWS README SECURITY theory.html version
+ WEB_PAGES= tz-art.html tz-how-to.html tz-link.html
+-CHECK_WEB_PAGES=check_theory.html check_tz-art.html \
+- check_tz-how-to.html check_tz-link.html
++CHECK_WEB_PAGES=theory.ck tz-art.ck tz-how-to.ck tz-link.ck
+ DOCS= $(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
+ PRIMARY_YDATA= africa antarctica asia australasia \
+ europe northamerica southamerica
+@@ -603,8 +616,8 @@
+ TZS_CUTOFF_FLAG= -c $(TZS_YEAR)
+ TZS= to$(TZS_YEAR).tzs
+ TZS_NEW= to$(TZS_YEAR)new.tzs
+-TZS_DEPS= $(YDATA) asctime.c localtime.c \
+- private.h tzfile.h zdump.c zic.c
++TZS_DEPS= $(YDATA) localtime.c private.h \
++ strftime.c tzfile.h zdump.c zic.c
+ TZDATA_DIST = $(COMMON) $(DATA) $(MISC)
+ # EIGHT_YARDS is just a yard short of the whole ENCHILADA.
+ EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi
+@@ -641,8 +654,7 @@
+ '$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \
+ '$(DESTDIR)$(MANDIR)/man8'
+ $(ZIC_INSTALL) -l $(LOCALTIME) \
+- `case '$(POSIXRULES)' in ?*) echo '-p';; esac \
+- ` $(POSIXRULES) \
++ -p $(POSIXRULES) \
+ -t '$(DESTDIR)$(TZDEFAULT)'
+ cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.'
+ cp tzselect '$(DESTDIR)$(BINDIR)/.'
+@@ -665,10 +677,10 @@
+ # and append "-dirty" if the contents do not already end in "-dirty".
+ version: $(VERSION_DEPS)
+ { (type git) >/dev/null 2>&1 && \
+- V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
+- --abbrev=7 --dirty` || \
+- if test '$(VERSION)' = unknown && V=`cat $@`; then \
+- case $$V in *-dirty);; *) V=$$V-dirty;; esac; \
++ V=$$(git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
++ --abbrev=7 --dirty) || \
++ if test '$(VERSION)' = unknown && read -r V <$@; then \
++ V=$${V%-dirty}-dirty; \
+ else \
+ V='$(VERSION)'; \
+ fi; } && \
+@@ -678,7 +690,7 @@
+ # These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST.
+ vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
+ $(AWK) \
+- -v DATAFORM=`expr $@ : '\(.*\).zi'` \
++ -v DATAFORM=$(@:.zi=) \
+ -v PACKRATDATA='$(PACKRATDATA)' \
+ -v PACKRATLIST='$(PACKRATLIST)' \
+ -f ziguard.awk \
+@@ -687,7 +699,7 @@
+ # This file has a version comment that attempts to capture any tailoring
+ # via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO.
+ tzdata.zi: $(DATAFORM).zi version zishrink.awk
+- version=`sed 1q version` && \
++ read -r version $@
++ ./zdump -i $(TZS_CUTOFF_FLAG) "$$PWD/$(@:.zd=)" >$@
+
+ TZS_NEW_DEPS = tzdata.zi zdump zic
+ $(TZS_NEW): $(TZS_NEW_DEPS)
+@@ -812,20 +817,19 @@
+ $(zic) -d tzs$(TZS_YEAR).dir tzdata.zi
+ $(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \
+ tzdata.zi | LC_ALL=C sort >$@.out
+- wd=`pwd` && \
+- x=`$(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \
++ x=$$($(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \
+ tzdata.zi \
+- | LC_ALL=C sort -t . -k 2,2` && \
++ | LC_ALL=C sort -t . -k 2,2) && \
+ set x $$x && \
+ shift && \
+ ZDS=$$* && \
+- $(MAKE) wd="$$wd" TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \
++ $(MAKE) TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \
+ ZDS="$$ZDS" $$ZDS && \
+ sed 's,^TZ=".*\.dir/,TZ=",' $$ZDS >>$@.out
+ rm -fr tzs$(TZS_YEAR).dir
+ mv $@.out $@
+
+-# If $(TZS) exists but 'make check_tzs' fails, a maintainer should inspect the
++# If $(TZS) exists but 'make tzs.ck' fails, a maintainer should inspect the
+ # failed output and fix the inconsistency, perhaps by running 'make force_tzs'.
+ $(TZS):
+ touch $@
+@@ -842,7 +846,7 @@
+ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS)
+
+ tzselect: tzselect.ksh version
+- VERSION=`cat version` && sed \
++ read -r VERSION /dev/null 2>&1 \
+- || { LC_ALL='$(UTF8_LOCALE)'; export LC_ALL; false; }; }
++ || { export LC_ALL='$(UTF8_LOCALE)'; false; }; }
+
+-check_character_set: $(ENCHILADA)
++character-set.ck: $(ENCHILADA)
+ $(UTF8_LOCALE_MISSING) || { \
+ sharp='#' && \
+ ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+@@ -882,48 +886,55 @@
+ }
+ touch $@
+
+-check_white_space: $(ENCHILADA)
++white-space.ck: $(ENCHILADA)
+ $(UTF8_LOCALE_MISSING) || { \
+- patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \
++ enchilada='$(ENCHILADA)' && \
++ patfmt=' \t|[\f\r\v]' && pat=$$(printf "$$patfmt\\n") && \
+ ! grep -En "$$pat|[$s]\$$" \
+- $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list); \
++ $${enchilada%leap-seconds.list*} \
++ $${enchilada#*leap-seconds.list}; \
+ }
+ touch $@
+
+ PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+
+ FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15}
+
+-check_name_lengths: $(TDATA_TO_CHECK) backzone
+- ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \
++name-lengths.ck: $(TDATA_TO_CHECK) backzone
++ :;! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \
+ $(TDATA_TO_CHECK) backzone
+ touch $@
+
++mainguard.ck: main.zi
++ test '$(PACKRATLIST)' || \
++ cat $(TDATA) $(PACKRATDATA) | diff -u - main.zi
++ touch $@
++
+ PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+
+ STDOFF = [-+]?[0-9:.]+
+ RULELESS_SAVE = (-|$(STDOFF)[sd]?)
+ RULELESS_SLASHED_ABBRS = \
+ $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/
+
+-check_slashed_abbrs: $(TDATA_TO_CHECK)
+- ! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK)
++slashed-abbrs.ck: $(TDATA_TO_CHECK)
++ :;! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK)
+ touch $@
+
+ CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
+
+-check_sorted: backward backzone
++sorted.ck: backward backzone
+ $(AWK) '/^Link/ {printf "%.5d %s\n", g, $$3} !/./ {g++}' \
+ backward | LC_ALL=C sort -cu
+- $(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu
++ $(AWK) '/^Zone.*\// {print $$2}' backzone | LC_ALL=C sort -cu
+ touch $@
+
+-check_back: checklinks.awk $(TDATA_TO_CHECK)
++back.ck: checklinks.awk $(TDATA_TO_CHECK)
+ $(AWK) \
+ -v DATAFORM=$(DATAFORM) \
+ -v backcheck=backward \
+ -f checklinks.awk $(TDATA_TO_CHECK)
+ touch $@
+
+-check_links: checklinks.awk tzdata.zi
++links.ck: checklinks.awk tzdata.zi
+ $(AWK) \
+ -v DATAFORM=$(DATAFORM) \
+ -f checklinks.awk tzdata.zi
+@@ -932,26 +943,36 @@
+ # Check timestamps from now through 28 years from now, to make sure
+ # that zonenow.tab contains all sequences of planned timestamps,
+ # without any duplicate sequences. In theory this might require
+-# 2800 years but that would take a long time to check.
+-CHECK_NOW_TIMESTAMP = `./date +%s`
++# 2800+ years but that would take a long time to check.
++CHECK_NOW_TIMESTAMP = $$(./date +%s)
+ CHECK_NOW_FUTURE_YEARS = 28
+-CHECK_NOW_FUTURE_SECS = $(CHECK_NOW_FUTURE_YEARS) '*' 366 '*' 24 '*' 60 '*' 60
+-check_now: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab
+- rm -fr $@.dir
+- mkdir $@.dir
+- ./zic -d $@.dir tzdata.zi
++CHECK_NOW_FUTURE_SECS = $(CHECK_NOW_FUTURE_YEARS) * 366 * 24 * 60 * 60
++now.ck: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab
++ rm -fr $@d
++ mkdir $@d
++ ./zic -d $@d tzdata.zi
+ now=$(CHECK_NOW_TIMESTAMP) && \
+- future=`expr $(CHECK_NOW_FUTURE_SECS) + $$now` && \
++ future=$$(($(CHECK_NOW_FUTURE_SECS) + $$now)) && \
+ ./zdump -i -t $$now,$$future \
+- $$(find $$PWD/$@.dir/????*/ -type f) \
+- >$@.dir/zdump.tab
++ $$(find "$$PWD/$@d"/????*/ -type f) \
++ >$@d/zdump-now.tab && \
++ ./zdump -i -t 0,$$future \
++ $$(find "$$PWD/$@d" -name Etc -prune \
++ -o -type f ! -name '*.tab' -print) \
++ >$@d/zdump-1970.tab
+ $(AWK) \
+- -v zdump_table=$@.dir/zdump.tab \
++ -v zdump_table=$@d/zdump-now.tab \
+ -f checknow.awk zonenow.tab
+- rm -fr $@.dir
++ $(AWK) \
++ 'BEGIN {print "-\t-\tUTC"} /^Zone/ {print "-\t-\t" $$2}' \
++ $(PRIMARY_YDATA) backward factory | \
++ $(AWK) \
++ -v zdump_table=$@d/zdump-1970.tab \
++ -f checknow.awk
++ rm -fr $@d
+ touch $@
+
+-check_tables: checktab.awk $(YDATA) backward zone.tab zone1970.tab
++tables.ck: checktab.awk $(YDATA) backward zone.tab zone1970.tab
+ for tab in $(ZONETABLES); do \
+ test "$$tab" = zone.tab && links='$(BACKWARD)' || links=''; \
+ $(AWK) -f checktab.awk -v zone_table=$$tab $(YDATA) $$links \
+@@ -959,26 +980,24 @@
+ done
+ touch $@
+
+-check_tzs: $(TZS) $(TZS_NEW)
++tzs.ck: $(TZS) $(TZS_NEW)
+ if test -s $(TZS); then \
+- $(DIFF_TZS) $(TZS) $(TZS_NEW); \
++ $(SETUP_DIFF_TZS) && $$DIFF_TZS $(TZS) $(TZS_NEW); \
+ else \
+ cp $(TZS_NEW) $(TZS); \
+ fi
+ touch $@
+
+ check_web: $(CHECK_WEB_PAGES)
+-check_theory.html: theory.html
+-check_tz-art.html: tz-art.html
+-check_tz-how-to.html: tz-how-to.html
+-check_tz-link.html: tz-link.html
+-check_theory.html check_tz-art.html check_tz-how-to.html check_tz-link.html:
+- $(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \
+- -F file=@$$(expr $@ : 'check_\(.*\)') -o $@.out && \
++.SUFFIXES: .ck .html
++.html.ck:
++ { ! ($(CURL) --version) >/dev/null 2>&1 || \
++ $(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \
++ -F file=@$<; } >$@.out && \
+ test ! -s $@.out || { cat $@.out; exit 1; }
+ mv $@.out $@
+
+-check_ziguard: rearguard.zi vanguard.zi ziguard.awk
++ziguard.ck: rearguard.zi vanguard.zi ziguard.awk
+ $(AWK) -v DATAFORM=rearguard -f ziguard.awk vanguard.zi | \
+ diff -u rearguard.zi -
+ $(AWK) -v DATAFORM=vanguard -f ziguard.awk rearguard.zi | \
+@@ -987,36 +1006,35 @@
+
+ # Check that zishrink.awk does not alter the data, and that ziguard.awk
+ # preserves main-format data.
+-check_zishrink: check_zishrink_posix check_zishrink_right
+-check_zishrink_posix check_zishrink_right: \
++check_zishrink: zishrink-posix.ck zishrink-right.ck
++zishrink-posix.ck zishrink-right.ck: \
+ zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \
+ $(TDATA) $(DATAFORM).zi tzdata.zi
+- rm -fr $@.dir $@-t.dir $@-shrunk.dir
+- mkdir $@.dir $@-t.dir $@-shrunk.dir
++ rm -fr $@d t-$@d shrunk-$@d
++ mkdir $@d t-$@d shrunk-$@d
+ case $@ in \
+- *_right) leap='-L leapseconds';; \
++ *right*) leap='-L leapseconds';; \
+ *) leap=;; \
+ esac && \
+- $(ZIC) $$leap -d $@.dir $(DATAFORM).zi && \
+- $(ZIC) $$leap -d $@-shrunk.dir tzdata.zi && \
++ $(ZIC) $$leap -d $@d $(DATAFORM).zi && \
++ $(ZIC) $$leap -d shrunk-$@d tzdata.zi && \
+ case $(DATAFORM),$(PACKRATLIST) in \
+ main,) \
+- $(ZIC) $$leap -d $@-t.dir $(TDATA) && \
++ $(ZIC) $$leap -d t-$@d $(TDATA) && \
+ $(AWK) '/^Rule/' $(TDATA) | \
+- $(ZIC) $$leap -d $@-t.dir - $(PACKRATDATA) && \
+- diff -r $@.dir $@-t.dir;; \
++ $(ZIC) $$leap -d t-$@d - $(PACKRATDATA) && \
++ diff -r $@d t-$@d;; \
+ esac
+- diff -r $@.dir $@-shrunk.dir
+- rm -fr $@.dir $@-t.dir $@-shrunk.dir
++ diff -r $@d shrunk-$@d
++ rm -fr $@d t-$@d shrunk-$@d
+ touch $@
+
+ clean_misc:
+- rm -fr check_*.dir typecheck_*.dir
+- rm -f *.o *.out $(TIME_T_ALTERNATIVES) \
+- check_* core typecheck_* \
++ rm -fr *.ckd *.dir
++ rm -f *.ck *.core *.o *.out core core.* \
+ date tzdir.h tzselect version.h zdump zic libtz.a
+ clean: clean_misc
+- rm -fr *.dir tzdb-*/
++ rm -fr tzdb-*/
+ rm -f *.zi $(TZS_NEW)
+
+ maintainer-clean: clean
+@@ -1027,7 +1045,7 @@
+ names:
+ @echo $(ENCHILADA)
+
+-public: check check_public $(CHECK_TIME_T_ALTERNATIVES) \
++public: check public.ck $(CHECK_TIME_T_ALTERNATIVES) \
+ tarballs signatures
+
+ date.1.txt: date.1
+@@ -1041,7 +1059,7 @@
+ zic.8.txt: zic.8
+
+ $(MANTXTS): workman.sh
+- LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out
++ LC_ALL=C sh workman.sh $(@:.txt=) >$@.out
+ mv $@.out $@
+
+ # Set file timestamps deterministically if possible,
+@@ -1054,13 +1072,13 @@
+ n=$$0 dest=$$1; shift; \
+ <"$$dest" && \
+ if test $$n != 0 && \
+- lsout=`ls -nt --time-style="+%s" "$$@" 2>/dev/null`; then \
++ lsout=$$(ls -nt --time-style="+%s" "$$@" 2>/dev/null); then \
+ set x $$lsout && \
+- timestamp=`expr $$7 + $$n` && \
++ timestamp=$$(($$7 + $$n)) && \
+ echo "+ touch -md @$$timestamp $$dest" && \
+ touch -md @$$timestamp "$$dest"; \
+ else \
+- newest=`ls -t "$$@" | sed 1q` && \
++ newest=$$(ls -t "$$@" | sed 1q) && \
+ echo "+ touch -mr $$newest $$dest" && \
+ touch -mr "$$newest" "$$dest"; \
+ fi'
+@@ -1083,15 +1101,15 @@
+ set-timestamps.out: $(EIGHT_YARDS)
+ rm -f $@
+ if (type git) >/dev/null 2>&1 && \
+- files=`git ls-files $(EIGHT_YARDS)` && \
++ files=$$(git ls-files $(EIGHT_YARDS)) && \
+ touch -md @1 test.out; then \
+ rm -f test.out && \
+ for file in $$files; do \
+- if git diff --quiet $$file; then \
+- time=`TZ=UTC0 git log -1 \
++ if git diff --quiet HEAD $$file; then \
++ time=$$(TZ=UTC0 git log -1 \
+ --format='tformat:%cd' \
+ --date='format:%Y-%m-%dT%H:%M:%SZ' \
+- $$file` && \
++ $$file) && \
+ echo "+ touch -md $$time $$file" && \
+ touch -md $$time $$file; \
+ else \
+@@ -1100,8 +1118,8 @@
+ done; \
+ fi
+ $(SET_TIMESTAMP_DEP) leapseconds $(LEAP_DEPS)
+- for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \
+- $(SET_TIMESTAMP_DEP) $$file.txt $$file workman.sh || \
++ for file in $(MANTXTS); do \
++ $(SET_TIMESTAMP_DEP) $$file $${file%.txt} workman.sh || \
+ exit; \
+ done
+ $(SET_TIMESTAMP_DEP) version $(VERSION_DEPS)
+@@ -1114,30 +1132,29 @@
+ # The zics below ensure that each data file can stand on its own.
+ # We also do an all-files run to catch links to links.
+
+-check_public: $(VERSION_DEPS)
+- rm -fr public.dir
+- mkdir public.dir
+- ln $(VERSION_DEPS) public.dir
+- cd public.dir \
++public.ck: $(VERSION_DEPS)
++ rm -fr $@d
++ mkdir $@d
++ ln $(VERSION_DEPS) $@d
++ cd $@d \
+ && $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' TZDIR='$(TZDIR)' ALL
+- for i in $(TDATA_TO_CHECK) public.dir/tzdata.zi \
+- public.dir/vanguard.zi public.dir/main.zi \
+- public.dir/rearguard.zi; \
++ for i in $(TDATA_TO_CHECK) \
++ tzdata.zi vanguard.zi main.zi rearguard.zi; \
+ do \
+- public.dir/zic -v -d public.dir/zoneinfo $$i 2>&1 || exit; \
++ $@d/zic -v -d $@d/zoneinfo $@d/$$i || exit; \
+ done
+- public.dir/zic -v -d public.dir/zoneinfo-all $(TDATA_TO_CHECK)
++ $@d/zic -v -d $@d/zoneinfo-all $(TDATA_TO_CHECK)
+ :
+ : Also check 'backzone' syntax.
+- rm public.dir/main.zi
+- cd public.dir && $(MAKE) PACKRATDATA=backzone main.zi
+- public.dir/zic -d public.dir/zoneinfo main.zi
+- rm public.dir/main.zi
+- cd public.dir && \
++ rm $@d/main.zi
++ cd $@d && $(MAKE) PACKRATDATA=backzone main.zi
++ $@d/zic -d $@d/zoneinfo main.zi
++ rm $@d/main.zi
++ cd $@d && \
+ $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi
+- public.dir/zic -d public.dir/zoneinfo main.zi
++ $@d/zic -d $@d/zoneinfo main.zi
+ :
+- rm -fr public.dir
++ rm -fr $@d
+ touch $@
+
+ # Check that the code works under various alternative
+@@ -1145,46 +1162,47 @@
+ check_time_t_alternatives: $(TIME_T_ALTERNATIVES)
+ $(TIME_T_ALTERNATIVES_TAIL): $(TIME_T_ALTERNATIVES_HEAD)
+ $(TIME_T_ALTERNATIVES): $(VERSION_DEPS)
+- rm -fr $@.dir
+- mkdir $@.dir
+- ln $(VERSION_DEPS) $@.dir
++ rm -fr $@d
++ mkdir $@d
++ ln $(VERSION_DEPS) $@d
+ case $@ in \
+- int*32_t) range=-2147483648,2147483648;; \
++ *32_t*) range=-2147483648,2147483648;; \
+ u*) range=0,4294967296;; \
+ *) range=-4294967296,4294967296;; \
+ esac && \
+- wd=`pwd` && \
+- zones=`$(AWK) '/^[^#]/ { print $$3 }' /dev/null; then \
+ quiet_option='-q'; \
+ else \
+ quiet_option=''; \
+ fi && \
+- diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD).dir/etc \
+- $@.dir/etc && \
++ diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD)d/etc \
++ $@d/etc && \
+ diff $$quiet_option -r \
+- $(TIME_T_ALTERNATIVES_HEAD).dir/usr/share \
+- $@.dir/usr/share; \
++ $(TIME_T_ALTERNATIVES_HEAD)d/usr/share \
++ $@d/usr/share; \
+ }
+ touch $@
+
+@@ -1199,7 +1217,7 @@
+ tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \
+ signatures rearguard_signatures traditional_signatures: \
+ version set-timestamps.out rearguard.zi vanguard.zi
+- VERSION=`cat version` && \
++ read -r VERSION $@.out
+ mv $@.out $@
+
+ tzdata$(VERSION).tar.gz: set-timestamps.out
+- LC_ALL=C && export LC_ALL && \
+- tar $(TARFLAGS) -cf - $(TZDATA_DIST) | \
++ $(SETUP_TAR) && \
++ $$TAR -cf - $(TZDATA_DIST) | \
+ gzip $(GZIPFLAGS) >$@.out
+ mv $@.out $@
+
+@@ -1251,9 +1269,9 @@
+ : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
+ $(CREATE_EMPTY) $@.dir/pacificnew
+ touch -mr version $@.dir/version
+- LC_ALL=C && export LC_ALL && \
++ $(SETUP_TAR) && \
+ (cd $@.dir && \
+- tar $(TARFLAGS) -cf - \
++ $$TAR -cf - \
+ $(TZDATA_DIST) pacificnew | \
+ gzip $(GZIPFLAGS)) >$@.out
+ mv $@.out $@
+@@ -1269,9 +1287,14 @@
+ rm -fr $@.dir
+ mkdir $@.dir
+ : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
++ if test $(DATAFORM) = vanguard; then \
++ pacificnew=; \
++ else \
++ pacificnew=pacificnew; \
++ fi && \
+ cd $@.dir && \
+ $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \
+- `test $(DATAFORM) = vanguard || echo pacificnew`
++ $$pacificnew
+ (grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \
+ >$@.dir/etcetera
+ touch -mr tzdata.zi $@.dir/etcetera
+@@ -1291,9 +1314,9 @@
+ test -f $@.dir/$$file || links="$$links $$file"; \
+ done && \
+ ln $$links $@.dir
+- LC_ALL=C && export LC_ALL && \
++ $(SETUP_TAR) && \
+ (cd $@.dir && \
+- tar $(TARFLAGS) -cf - * | gzip $(GZIPFLAGS)) >$@.out
++ $$TAR -cf - * | gzip $(GZIPFLAGS)) >$@.out
+ mv $@.out $@
+
+ tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out
+@@ -1301,8 +1324,8 @@
+ mkdir tzdb-$(VERSION)
+ ln $(ENCHILADA) tzdb-$(VERSION)
+ $(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/*
+- LC_ALL=C && export LC_ALL && \
+- tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out
++ $(SETUP_TAR) && \
++ $$TAR -cf - tzdb-$(VERSION) | lzip -9 >$@.out
+ mv $@.out $@
+
+ tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
+@@ -1313,41 +1336,40 @@
+ $(GPG) --armor --detach-sign $?
+
+ TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T
+-typecheck: typecheck_long_long typecheck_unsigned
+-typecheck_long_long typecheck_unsigned: $(VERSION_DEPS)
+- rm -fr $@.dir
+- mkdir $@.dir
+- ln $(VERSION_DEPS) $@.dir
+- cd $@.dir && \
++typecheck: long-long.ck unsigned.ck
++long-long.ck unsigned.ck: $(VERSION_DEPS)
++ rm -fr $@d
++ mkdir $@d
++ ln $(VERSION_DEPS) $@d
++ cd $@d && \
+ case $@ in \
+- *_long_long) i="long long";; \
+- *_unsigned ) i="unsigned" ;; \
++ long-long.*) i="long long";; \
++ unsigned.* ) i="unsigned" ;; \
+ esac && \
+- typecheck_cflags='' && \
+ $(MAKE) \
+ CFLAGS="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \
+- TOPDIR="`pwd`" \
++ TOPDIR="$$PWD" \
+ install
+- $@.dir/zdump -i -c 1970,1971 Europe/Rome
++ $@d/zdump -i -c 1970,1971 Europe/Rome
+ touch $@
+
+ zonenames: tzdata.zi
+ @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
+
+-asctime.o: private.h tzfile.h
++asctime.o: private.h
+ date.o: private.h
+ difftime.o: private.h
+-localtime.o: private.h tzfile.h tzdir.h
+-strftime.o: private.h tzfile.h
+-zdump.o: version.h
+-zic.o: private.h tzfile.h tzdir.h version.h
++localtime.o: private.h tzdir.h tzfile.h
++strftime.o: localtime.c private.h tzdir.h tzfile.h
++zdump.o: private.h version.h
++zic.o: private.h tzdir.h tzfile.h version.h
+
+ .PHONY: ALL INSTALL all
+ .PHONY: check check_mild check_time_t_alternatives
+ .PHONY: check_web check_zishrink
+ .PHONY: clean clean_misc commit-leap-seconds.list dummy.zd
+ .PHONY: fetch-leap-seconds.list force_tzs
+-.PHONY: install install_data maintainer-clean names
++.PHONY: install maintainer-clean names
+ .PHONY: posix_only posix_right public
+ .PHONY: rearguard_signatures rearguard_signatures_version
+ .PHONY: rearguard_tarballs rearguard_tarballs_version
+--- contrib/tzdata/NEWS.orig
++++ contrib/tzdata/NEWS
+@@ -1,5 +1,203 @@
+ News for the tz database
+
++Release 2025a - 2025-01-15 10:47:24 -0800
++
++ Briefly:
++ Paraguay adopts permanent -03 starting spring 2024.
++ Improve pre-1991 data for the Philippines.
++ Etc/Unknown is now reserved.
++
++ Changes to future timestamps
++
++ Paraguay will stop changing its clocks after the spring-forward
++ transition on 2024-10-06, so it is now permanently at -03.
++ (Thanks to Heitor David Pinto and Even Scharning.)
++ This affects timestamps starting 2025-03-22, as well as the
++ obsolescent tm_isdst flags starting 2024-10-15.
++
++ Changes to past timestamps
++
++ Correct timestamps for the Philippines before 1900, and from 1937
++ through 1990. (Thanks to P Chan for the heads-up and citations.)
++ This includes adjusting local mean time before 1899; fixing
++ transitions in September 1899, January 1937, and June 1954; adding
++ transitions in December 1941, November 1945, March and September
++ 1977, and May and July 1990; and removing incorrect transitions in
++ March and September 1978.
++
++ Changes to data
++
++ Add zone1970.tab lines for the Concordia and Eyre Bird Observatory
++ research stations. (Thanks to Derick Rethans and Jule Dabars.)
++
++ Changes to code
++
++ strftime %s now generates the correct numeric string even when the
++ represented number does not fit into time_t. This is better than
++ generating the numeric equivalent of (time_t) -1, as strftime did
++ in TZDB releases 96a (when %s was introduced) through 2020a and in
++ releases 2022b through 2024b. It is also better than failing and
++ returning 0, as strftime did in releases 2020b through 2022a.
++
++ strftime now outputs an invalid conversion specifier as-is,
++ instead of eliding the leading '%', which confused debugging.
++
++ An invalid TZ now generates the time zone abbreviation "-00", not
++ "UTC", to help the user see that an error has occurred. (Thanks
++ to Arthur David Olson for suggesting a "wrong result".)
++
++ mktime and timeoff no longer incorrectly fail merely because a
++ struct tm component near INT_MIN or INT_MAX overflows when a
++ lower-order component carries into it.
++
++ TZNAME_MAXIMUM, the maximum number of bytes in a proleptic TZ
++ string's time zone abbreviation, now defaults to 254 not 255.
++ This helps reduce the size of internal state from 25480 to 21384
++ on common platforms. This change should not be a problem, as
++ nobody uses such long "abbreviations" and the longstanding tzcode
++ maximum was 16 until release 2023a. For those who prefer no
++ arbitrary limits, you can now specify TZNAME_MAXIMUM values up to
++ PTRDIFF_MAX, a limit forced by C anyway; formerly tzcode silently
++ misbehaved unless TZNAME_MAXIMUM was less than INT_MAX.
++
++ tzset and related functions no longer leak a file descriptor if
++ another thread forks or execs at about the same time and if the
++ platform has O_CLOFORK and O_CLOEXEC respectively. Also, the
++ functions no longer let a TZif file become a controlling terminal.
++
++ 'zdump -' now reads TZif data from /dev/stdin.
++ (From a question by Arthur David Olson.)
++
++ Changes to documentation
++
++ The name Etc/Unknown is now reserved: it will not be used by TZDB.
++ This is for compatibility with CLDR, which uses the string
++ "Etc/Unknown" for an unknown or invalid timezone. (Thanks to
++ Justin Grant, Mark Davis, and Guy Harris.)
++
++ Cite Internet RFC 9636, which obsoletes RFC 8536 for TZif format.
++
++
++Release 2024b - 2024-09-04 12:27:47 -0700
++
++ Briefly:
++ Improve historical data for Mexico, Mongolia, and Portugal.
++ System V names are now obsolescent.
++ The main data form now uses %z.
++ The code now conforms to RFC 8536 for early timestamps.
++ Support POSIX.1-2024, which removes asctime_r and ctime_r.
++ Assume POSIX.2-1992 or later for shell scripts.
++ SUPPORT_C89 now defaults to 1.
++
++ Changes to past timestamps
++
++ Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than
++ being a separate Zone with differing behavior before April 2008.
++ This seems better given our wildly conflicting information about
++ Mongolia's time zone history. (Thanks to Heitor David Pinto.)
++
++ Historical transitions for Mexico have been updated based on
++ official Mexican decrees. The affected timestamps occur during
++ the years 1921-1927, 1931, 1945, 1949-1970, and 1981-1997.
++ The affected zones are America/Bahia_Banderas, America/Cancun,
++ America/Chihuahua, America/Ciudad_Juarez, America/Hermosillo,
++ America/Mazatlan, America/Merida, America/Mexico_City,
++ America/Monterrey, America/Ojinaga, and America/Tijuana.
++ (Thanks to Heitor David Pinto.)
++
++ Historical transitions for Portugal, represented by Europe/Lisbon,
++ Atlantic/Azores, and Atlantic/Madeira, have been updated based on a
++ close reading of old Portuguese legislation, replacing previous data
++ mainly originating from Whitman and Shanks & Pottenger. These
++ changes affect a few transitions in 1917-1921, 1924, and 1940
++ throughout these regions by a few hours or days, and various
++ timestamps between 1977 and 1993 depending on the region. In
++ particular, the Azores and Madeira did not observe DST from 1977 to
++ 1981. Additionally, the adoption of standard zonal time in former
++ Portuguese colonies have been adjusted: Africa/Maputo in 1909, and
++ Asia/Dili by 22 minutes at the start of 1912.
++ (Thanks to Tim Parenti.)
++
++ Changes to past tm_isdst flags
++
++ The period from 1966-04-03 through 1966-10-02 in Portugal is now
++ modeled as DST, to more closely reflect how contemporaneous changes
++ in law entered into force.
++
++ Changes to data
++
++ Names present only for compatibility with UNIX System V
++ (last released in the 1990s) have been moved to 'backward'.
++ These names, which for post-1970 timestamps mostly just duplicate
++ data of geographical names, were confusing downstream uses.
++ Names moved to 'backward' are now links to geographical names.
++ This affects behavior for TZ='EET' for some pre-1981 timestamps,
++ for TZ='CET' for some pre-1947 timestamps, and for TZ='WET' for
++ some pre-1996 timestamps. Also, TZ='MET' now behaves like
++ TZ='CET' and so uses the abbreviation "CET" rather than "MET".
++ Those needing the previous TZDB behavior, which does not match any
++ real-world clocks, can find the old entries in 'backzone'.
++ (Problem reported by Justin Grant.)
++
++ The main source files' time zone abbreviations now use %z,
++ supported by zic since release 2015f and used in vanguard form
++ since release 2022b. For example, America/Sao_Paulo now contains
++ the zone continuation line "-3:00 Brazil %z", which is less error
++ prone than the old "-3:00 Brazil -03/-02". This does not change
++ the represented data: the generated TZif files are unchanged.
++ Rearguard form still avoids %z, to support obsolescent parsers.
++
++ Asia/Almaty has been removed from zonenow.tab as it now agrees
++ with Asia/Tashkent for future timestamps, due to Kazakhstan's
++ 2024-02-29 time zone change. Similarly, America/Scoresbysund
++ has been removed, as it now agrees with America/Nuuk due to
++ its 2024-03-31 time zone change.
++
++ Changes to code
++
++ localtime.c now always uses a TZif file's time type 0 to handle
++ timestamps before the file's first transition. Formerly,
++ localtime.c sometimes inferred a different time type, in order to
++ handle problematic data generated by zic 2018e or earlier. As it
++ is now safe to assume more recent versions of zic, there is no
++ longer a pressing need to fail to conform RFC 8536 section 3.2,
++ which requires using time type 0 in this situation. This change
++ does not affect behavior when reading TZif files generated by zic
++ 2018f and later.
++
++ POSIX.1-2024 removes asctime_r and ctime_r and does not let
++ libraries define them, so remove them except when needed to
++ conform to earlier POSIX. These functions are dangerous as they
++ can overrun user buffers. If you still need them, add
++ -DSUPPORT_POSIX2008 to CFLAGS.
++
++ The SUPPORT_C89 option now defaults to 1 instead of 0, fixing a
++ POSIX-conformance bug introduced in 2023a.
++
++ tzselect now supports POSIX.1-2024 proleptic TZ strings. Also, it
++ assumes POSIX.2-1992 or later, as practical porting targets now
++ all support that, and it uses some features from POSIX.1-2024 if
++ available.
++
++ Changes to build procedure
++
++ 'make check' no longer requires curl and Internet access.
++
++ The build procedure now assumes POSIX.2-1992 or later, to simplify
++ maintenance. To build on Solaris 10, the only extant system still
++ defaulting to pre-POSIX, prepend /usr/xpg4/bin to PATH.
++
++ Changes to documentation
++
++ The documentation now reflects POSIX.1-2024.
++
++ Changes to commentary
++
++ Commentary about historical transitions in Portugal and her former
++ colonies has been expanded with links to relevant legislation.
++ (Thanks to Tim Parenti.)
++
++
+ Release 2024a - 2024-02-01 09:28:56 -0800
+
+ Briefly:
+@@ -84,10 +282,10 @@
+ changing its time zone from -01/+00 to -02/-01 at the same moment
+ as the spring-forward transition. Its clocks will therefore not
+ spring forward as previously scheduled. The time zone change
+- reverts to its common practice before 1981.
++ reverts to its common practice before 1981. (Thanks to Jule Dabars.)
+
+ Fix predictions for DST transitions in Palestine in 2072-2075,
+- correcting a typo introduced in 2023a.
++ correcting a typo introduced in 2023a. (Thanks to Jule Dabars.)
+
+ Changes to past and future timestamps
+
+@@ -161,7 +359,7 @@
+ * It uses the special .POSIX target.
+ * It quotes special characters more carefully.
+ * It no longer mishandles builds in an ISO 8859 locale.
+- Due to the CC changes, TZDIR is now #defined in a file tzfile.h
++ Due to the CC changes, TZDIR is now #defined in a file tzdir.h
+ built by 'make', not in a $(CC) -D option. Also, TZDEFAULT is
+ now treated like TZDIR as they have similar roles.
+
+@@ -283,7 +481,7 @@
+ To improve tzselect diagnostics, zone1970.tab's comments column is
+ now limited to countries that have multiple timezones.
+
+- Note that leap seconds are planned to be discontinued by 2035.
++ Note that there are plans to discontinue leap seconds by 2035.
+
+
+ Release 2022g - 2022-11-29 08:58:31 -0800
+--- contrib/tzdata/africa.orig
++++ contrib/tzdata/africa
+@@ -103,17 +103,16 @@
+
+ # Cape Verde / Cabo Verde
+ #
+-# From Paul Eggert (2018-02-16):
+-# Shanks gives 1907 for the transition to +02.
+-# For now, ignore that and follow the 1911-05-26 Portuguese decree
+-# (see Europe/Lisbon).
++# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16):
++# For timestamps before independence, see commentary for Europe/Lisbon.
++# Shanks gives 1907 instead for the transition to -02.
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia
+- -2:00 - -02 1942 Sep
+- -2:00 1:00 -01 1945 Oct 15
+- -2:00 - -02 1975 Nov 25 2:00
+- -1:00 - -01
++ -2:00 - %z 1942 Sep
++ -2:00 1:00 %z 1945 Oct 15
++ -2:00 - %z 1975 Nov 25 2:00
++ -1:00 - %z
+
+ # Chad
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -345,14 +344,12 @@
+
+ # Guinea-Bissau
+ #
+-# From Paul Eggert (2018-02-16):
+-# Shanks gives 1911-05-26 for the transition to WAT,
+-# evidently confusing the date of the Portuguese decree
+-# (see Europe/Lisbon) with the date that it took effect.
++# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16):
++# For timestamps before independence, see commentary for Europe/Lisbon.
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u
+- -1:00 - -01 1975
++ -1:00 - %z 1975
+ 0:00 - GMT
+
+ # Comoros
+@@ -417,10 +414,10 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Africa/Nairobi 2:27:16 - LMT 1908 May
+- 2:30 - +0230 1928 Jun 30 24:00
++ 2:30 - %z 1928 Jun 30 24:00
+ 3:00 - EAT 1930 Jan 4 24:00
+- 2:30 - +0230 1936 Dec 31 24:00
+- 2:45 - +0245 1942 Jul 31 24:00
++ 2:30 - %z 1936 Dec 31 24:00
++ 2:45 - %z 1942 Jul 31 24:00
+ 3:00 - EAT
+
+ # Liberia
+@@ -591,7 +588,7 @@
+ Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
+- 4:00 Mauritius +04/+05
++ 4:00 Mauritius %z
+ # Agalega Is, Rodriguez
+ # no information; probably like Indian/Mauritius
+
+@@ -1071,10 +1068,10 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26
+- 0:00 Morocco +00/+01 1984 Mar 16
+- 1:00 - +01 1986
+- 0:00 Morocco +00/+01 2018 Oct 28 3:00
+- 1:00 Morocco +01/+00
++ 0:00 Morocco %z 1984 Mar 16
++ 1:00 - %z 1986
++ 0:00 Morocco %z 2018 Oct 28 3:00
++ 1:00 Morocco %z
+
+ # Western Sahara
+ #
+@@ -1088,9 +1085,9 @@
+ # since most of it was then controlled by Morocco.
+
+ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún
+- -1:00 - -01 1976 Apr 14
+- 0:00 Morocco +00/+01 2018 Oct 28 3:00
+- 1:00 Morocco +01/+00
++ -1:00 - %z 1976 Apr 14
++ 0:00 Morocco %z 2018 Oct 28 3:00
++ 1:00 Morocco %z
+
+ # Botswana
+ # Burundi
+@@ -1101,13 +1098,27 @@
+ # Zambia
+ # Zimbabwe
+ #
+-# Shanks gives 1903-03-01 for the transition to CAT.
+-# Perhaps the 1911-05-26 Portuguese decree
+-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
+-# merely made it official?
++# From Tim Parenti (2024-07-01):
++# For timestamps before Mozambique's independence, see commentary for
++# Europe/Lisbon.
++#
++# From Paul Eggert (2024-05-24):
++# The London Gazette, 1903-04-03, page 2245, says that
++# as of 1903-03-03 a time ball at the port of Lourenço Marques
++# (as Maputo was then called) was dropped daily at 13:00:00 LMT,
++# corresponding to 22:49:41.7 GMT, so local time was +02:10:18.3.
++# Conversely, the newspaper South Africa, 1909-02-09, page 321,
++# says the port had just installed an apparatus that communicated
++# "from the controlling clock in the new Observatory at Reuben Point ...
++# exact mean South African time, i.e., 30 deg., or 2 hours East of Greenwich".
++# Although Shanks gives 1903-03-01 for the transition to CAT,
++# evidently the port transitioned to CAT after 1903-03-03 but before
++# the Portuguese legal transition of 1912-01-01 (see Europe/Lisbon commentary).
++# For lack of better info, list 1909 as the transition date.
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Africa/Maputo 2:10:20 - LMT 1903 Mar
++ #STDOFF 2:10:18.3
++Zone Africa/Maputo 2:10:18 - LMT 1909
+ 2:00 - CAT
+
+ # Namibia
+@@ -1172,7 +1183,7 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
+- 1:30 - +0130 1903 Mar
++ 1:30 - %z 1903 Mar
+ 2:00 - SAST 1942 Sep 20 2:00
+ 2:00 1:00 SAST 1943 Mar 21 2:00
+ 2:00 - SAST 1990 Mar 21 # independence
+@@ -1260,7 +1271,7 @@
+ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1
+ 0:00 - GMT 1908 Jul 1
+ 0:13:35 - LMT 1914 Jan 1
+- 0:30 - +0030 1919 Sep 1
++ 0:30 - %z 1919 Sep 1
+ 1:00 - WAT
+
+ # São Tomé and Príncipe
+--- contrib/tzdata/antarctica.orig
++++ contrib/tzdata/antarctica
+@@ -87,34 +87,34 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Antarctica/Casey 0 - -00 1969
+- 8:00 - +08 2009 Oct 18 2:00
+- 11:00 - +11 2010 Mar 5 2:00
+- 8:00 - +08 2011 Oct 28 2:00
+- 11:00 - +11 2012 Feb 21 17:00u
+- 8:00 - +08 2016 Oct 22
+- 11:00 - +11 2018 Mar 11 4:00
+- 8:00 - +08 2018 Oct 7 4:00
+- 11:00 - +11 2019 Mar 17 3:00
+- 8:00 - +08 2019 Oct 4 3:00
+- 11:00 - +11 2020 Mar 8 3:00
+- 8:00 - +08 2020 Oct 4 0:01
+- 11:00 - +11 2021 Mar 14 0:00
+- 8:00 - +08 2021 Oct 3 0:01
+- 11:00 - +11 2022 Mar 13 0:00
+- 8:00 - +08 2022 Oct 2 0:01
+- 11:00 - +11 2023 Mar 9 3:00
+- 8:00 - +08
++ 8:00 - %z 2009 Oct 18 2:00
++ 11:00 - %z 2010 Mar 5 2:00
++ 8:00 - %z 2011 Oct 28 2:00
++ 11:00 - %z 2012 Feb 21 17:00u
++ 8:00 - %z 2016 Oct 22
++ 11:00 - %z 2018 Mar 11 4:00
++ 8:00 - %z 2018 Oct 7 4:00
++ 11:00 - %z 2019 Mar 17 3:00
++ 8:00 - %z 2019 Oct 4 3:00
++ 11:00 - %z 2020 Mar 8 3:00
++ 8:00 - %z 2020 Oct 4 0:01
++ 11:00 - %z 2021 Mar 14 0:00
++ 8:00 - %z 2021 Oct 3 0:01
++ 11:00 - %z 2022 Mar 13 0:00
++ 8:00 - %z 2022 Oct 2 0:01
++ 11:00 - %z 2023 Mar 9 3:00
++ 8:00 - %z
+ Zone Antarctica/Davis 0 - -00 1957 Jan 13
+- 7:00 - +07 1964 Nov
++ 7:00 - %z 1964 Nov
+ 0 - -00 1969 Feb
+- 7:00 - +07 2009 Oct 18 2:00
+- 5:00 - +05 2010 Mar 10 20:00u
+- 7:00 - +07 2011 Oct 28 2:00
+- 5:00 - +05 2012 Feb 21 20:00u
+- 7:00 - +07
++ 7:00 - %z 2009 Oct 18 2:00
++ 5:00 - %z 2010 Mar 10 20:00u
++ 7:00 - %z 2011 Oct 28 2:00
++ 5:00 - %z 2012 Feb 21 20:00u
++ 7:00 - %z
+ Zone Antarctica/Mawson 0 - -00 1954 Feb 13
+- 6:00 - +06 2009 Oct 18 2:00
+- 5:00 - +05
++ 6:00 - %z 2009 Oct 18 2:00
++ 5:00 - %z
+ # References:
+ # Casey Weather (1998-02-26)
+ # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html
+@@ -174,6 +174,8 @@
+
+ # France & Italy - year-round base
+ # Concordia, -750600+1232000, since 2005
++# https://en.wikipedia.org/wiki/Concordia_Station
++# Can use Asia/Singapore, which it has agreed with since inception.
+
+ # Germany - year-round base
+ # Neumayer III, -704080-0081602, since 2009
+@@ -290,10 +292,10 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Antarctica/Vostok 0 - -00 1957 Dec 16
+- 7:00 - +07 1994 Feb
++ 7:00 - %z 1994 Feb
+ 0 - -00 1994 Nov
+- 7:00 - +07 2023 Dec 18 2:00
+- 5:00 - +05
++ 7:00 - %z 2023 Dec 18 2:00
++ 5:00 - %z
+
+ # S Africa - year-round bases
+ # Marion Island, -4653+03752
+@@ -326,7 +328,7 @@
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Antarctica/Rothera 0 - -00 1976 Dec 1
+- -3:00 - -03
++ -3:00 - %z
+
+ # Uruguay - year round base
+ # Artigas, King George Island, -621104-0585107
+--- contrib/tzdata/asia.orig
++++ contrib/tzdata/asia
+@@ -83,8 +83,8 @@
+ # Afghanistan
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Kabul 4:36:48 - LMT 1890
+- 4:00 - +04 1945
+- 4:30 - +0430
++ 4:00 - %z 1945
++ 4:30 - %z
+
+ # Armenia
+ # From Paul Eggert (2006-03-22):
+@@ -116,12 +116,12 @@
+ Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
+- 3:00 - +03 1957 Mar
+- 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
+- 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s
+- 4:00 - +04 1997
+- 4:00 RussiaAsia +04/+05 2011
+- 4:00 Armenia +04/+05
++ 3:00 - %z 1957 Mar
++ 4:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 3:00 RussiaAsia %z 1995 Sep 24 2:00s
++ 4:00 - %z 1997
++ 4:00 RussiaAsia %z 2011
++ 4:00 Armenia %z
+
+ # Azerbaijan
+
+@@ -142,12 +142,12 @@
+ Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Baku 3:19:24 - LMT 1924 May 2
+- 3:00 - +03 1957 Mar
+- 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
+- 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s
+- 4:00 - +04 1996
+- 4:00 EUAsia +04/+05 1997
+- 4:00 Azer +04/+05
++ 3:00 - %z 1957 Mar
++ 4:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 3:00 RussiaAsia %z 1992 Sep lastSun 2:00s
++ 4:00 - %z 1996
++ 4:00 EUAsia %z 1997
++ 4:00 Azer %z
+
+ # Bangladesh
+ # From Alexander Krivenyshev (2009-05-13):
+@@ -228,17 +228,17 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Dhaka 6:01:40 - LMT 1890
+ 5:53:20 - HMT 1941 Oct # Howrah Mean Time?
+- 6:30 - +0630 1942 May 15
+- 5:30 - +0530 1942 Sep
+- 6:30 - +0630 1951 Sep 30
+- 6:00 - +06 2009
+- 6:00 Dhaka +06/+07
++ 6:30 - %z 1942 May 15
++ 5:30 - %z 1942 Sep
++ 6:30 - %z 1951 Sep 30
++ 6:00 - %z 2009
++ 6:00 Dhaka %z
+
+ # Bhutan
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Thimphu 5:58:36 - LMT 1947 Aug 15 # or Thimbu
+- 5:30 - +0530 1987 Oct
+- 6:00 - +06
++ 5:30 - %z 1987 Oct
++ 6:00 - %z
+
+ # British Indian Ocean Territory
+ # Whitman and the 1995 CIA time zone map say 5:00, but the
+@@ -248,8 +248,8 @@
+ # then contained the Chagos Archipelago).
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Indian/Chagos 4:49:40 - LMT 1907
+- 5:00 - +05 1996
+- 6:00 - +06
++ 5:00 - %z 1996
++ 6:00 - %z
+
+ # Cocos (Keeling) Islands
+ # Myanmar (Burma)
+@@ -265,9 +265,9 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon
+ 6:24:47 - RMT 1920 # Rangoon local time
+- 6:30 - +0630 1942 May
+- 9:00 - +09 1945 May 3
+- 6:30 - +0630
++ 6:30 - %z 1942 May
++ 9:00 - %z 1945 May 3
++ 6:30 - %z
+
+ # China
+
+@@ -656,7 +656,7 @@
+ # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi
+ # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.)
+ Zone Asia/Urumqi 5:50:20 - LMT 1928
+- 6:00 - +06
++ 6:00 - %z
+
+ # Hong Kong
+
+@@ -1114,7 +1114,7 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Macau 7:34:10 - LMT 1904 Oct 30
+ 8:00 - CST 1941 Dec 21 23:00
+- 9:00 Macau +09/+10 1945 Sep 30 24:00
++ 9:00 Macau %z 1945 Sep 30 24:00
+ 8:00 Macau C%sT
+
+
+@@ -1157,7 +1157,7 @@
+ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14
+ 2:00 Cyprus EE%sT 1998 Sep
+ 2:00 EUAsia EE%sT 2016 Sep 8
+- 3:00 - +03 2017 Oct 29 1:00u
++ 3:00 - %z 2017 Oct 29 1:00u
+ 2:00 EUAsia EE%sT
+
+ # Georgia
+@@ -1198,18 +1198,25 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Tbilisi 2:59:11 - LMT 1880
+ 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time
+- 3:00 - +03 1957 Mar
+- 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
+- 3:00 RussiaAsia +03/+04 1992
+- 3:00 E-EurAsia +03/+04 1994 Sep lastSun
+- 4:00 E-EurAsia +04/+05 1996 Oct lastSun
+- 4:00 1:00 +05 1997 Mar lastSun
+- 4:00 E-EurAsia +04/+05 2004 Jun 27
+- 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00
+- 4:00 - +04
++ 3:00 - %z 1957 Mar
++ 4:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 3:00 RussiaAsia %z 1992
++ 3:00 E-EurAsia %z 1994 Sep lastSun
++ 4:00 E-EurAsia %z 1996 Oct lastSun
++ 4:00 1:00 %z 1997 Mar lastSun
++ 4:00 E-EurAsia %z 2004 Jun 27
++ 3:00 RussiaAsia %z 2005 Mar lastSun 2:00
++ 4:00 - %z
+
+ # East Timor
+
++# From Tim Parenti (2024-07-01):
++# The 1912-01-01 transition occurred at 00:00 new time, per the 1911-05-24
++# Portuguese decree (see Europe/Lisbon). A provision in article 5(c) of the
++# decree prescribed that Timor "will keep counting time in harmony with
++# neighboring foreign colonies, [for] as long as they do not adopt the time
++# that belongs to them in [the Washington Convention] system."
++
+ # See Indonesia for the 1945 transition.
+
+ # From João Carrascalão, brother of the former governor of East Timor, in
+@@ -1233,11 +1240,11 @@
+ # midnight on Saturday, September 16.
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Asia/Dili 8:22:20 - LMT 1912 Jan 1
+- 8:00 - +08 1942 Feb 21 23:00
+- 9:00 - +09 1976 May 3
+- 8:00 - +08 2000 Sep 17 0:00
+- 9:00 - +09
++Zone Asia/Dili 8:22:20 - LMT 1911 Dec 31 16:00u
++ 8:00 - %z 1942 Feb 21 23:00
++ 9:00 - %z 1976 May 3
++ 8:00 - %z 2000 Sep 17 0:00
++ 9:00 - %z
+
+ # India
+
+@@ -1303,9 +1310,9 @@
+ 5:53:20 - HMT 1870 # Howrah Mean Time?
+ 5:21:10 - MMT 1906 Jan 1 # Madras local time
+ 5:30 - IST 1941 Oct
+- 5:30 1:00 +0630 1942 May 15
++ 5:30 1:00 %z 1942 May 15
+ 5:30 - IST 1942 Sep
+- 5:30 1:00 +0630 1945 Oct 15
++ 5:30 1:00 %z 1945 Oct 15
+ 5:30 - IST
+ # Since 1970 the following are like Asia/Kolkata:
+ # Andaman Is
+@@ -1357,33 +1364,33 @@
+ # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13,
+ # but this must be a typo.
+ 7:07:12 - BMT 1923 Dec 31 16:40u # Batavia
+- 7:20 - +0720 1932 Nov
+- 7:30 - +0730 1942 Mar 23
+- 9:00 - +09 1945 Sep 23
+- 7:30 - +0730 1948 May
+- 8:00 - +08 1950 May
+- 7:30 - +0730 1964
++ 7:20 - %z 1932 Nov
++ 7:30 - %z 1942 Mar 23
++ 9:00 - %z 1945 Sep 23
++ 7:30 - %z 1948 May
++ 8:00 - %z 1950 May
++ 7:30 - %z 1964
+ 7:00 - WIB
+ # west and central Borneo
+ Zone Asia/Pontianak 7:17:20 - LMT 1908 May
+ 7:17:20 - PMT 1932 Nov # Pontianak MT
+- 7:30 - +0730 1942 Jan 29
+- 9:00 - +09 1945 Sep 23
+- 7:30 - +0730 1948 May
+- 8:00 - +08 1950 May
+- 7:30 - +0730 1964
++ 7:30 - %z 1942 Jan 29
++ 9:00 - %z 1945 Sep 23
++ 7:30 - %z 1948 May
++ 8:00 - %z 1950 May
++ 7:30 - %z 1964
+ 8:00 - WITA 1988 Jan 1
+ 7:00 - WIB
+ # Sulawesi, Lesser Sundas, east and south Borneo
+ Zone Asia/Makassar 7:57:36 - LMT 1920
+ 7:57:36 - MMT 1932 Nov # Macassar MT
+- 8:00 - +08 1942 Feb 9
+- 9:00 - +09 1945 Sep 23
++ 8:00 - %z 1942 Feb 9
++ 9:00 - %z 1945 Sep 23
+ 8:00 - WITA
+ # Maluku Islands, West Papua, Papua
+ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov
+- 9:00 - +09 1944 Sep 1
+- 9:30 - +0930 1964
++ 9:00 - %z 1944 Sep 1
++ 9:30 - %z 1964
+ 9:00 - WIT
+
+ # Iran
+@@ -1619,9 +1626,9 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Tehran 3:25:44 - LMT 1916
+ 3:25:44 - TMT 1935 Jun 13 # Tehran Mean Time
+- 3:30 Iran +0330/+0430 1977 Oct 20 24:00
+- 4:00 Iran +04/+05 1979
+- 3:30 Iran +0330/+0430
++ 3:30 Iran %z 1977 Oct 20 24:00
++ 4:00 Iran %z 1979
++ 3:30 Iran %z
+
+
+ # Iraq
+@@ -1664,8 +1671,8 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Baghdad 2:57:40 - LMT 1890
+ 2:57:36 - BMT 1918 # Baghdad Mean Time?
+- 3:00 - +03 1982 May
+- 3:00 Iraq +03/+04
++ 3:00 - %z 1982 May
++ 3:00 Iraq %z
+
+
+ ###############################################################################
+@@ -2262,7 +2269,7 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Amman 2:23:44 - LMT 1931
+ 2:00 Jordan EE%sT 2022 Oct 28 0:00s
+- 3:00 - +03
++ 3:00 - %z
+
+
+ # Kazakhstan
+@@ -2473,88 +2480,88 @@
+ # Almaty (formerly Alma-Ata), representing most locations in Kazakhstan
+ # This includes Abai/Abay (ISO 3166-2 code KZ-10), Aqmola/Akmola (KZ-11),
+ # Almaty (KZ-19), Almaty city (KZ-75), Astana city (KZ-71),
+-# East Kazkhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33),
++# East Kazakhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33),
+ # Karaganda (KZ-35), North Kazakhstan (KZ-59), Pavlodar (KZ-55),
+-# Shyumkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62).
++# Shymkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62).
+ Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata
+- 5:00 - +05 1930 Jun 21
+- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
+- 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s
+- 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s
+- 6:00 - +06 2024 Mar 1 0:00
+- 5:00 - +05
++ 5:00 - %z 1930 Jun 21
++ 6:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 5:00 RussiaAsia %z 1992 Jan 19 2:00s
++ 6:00 RussiaAsia %z 2004 Oct 31 2:00s
++ 6:00 - %z 2024 Mar 1 0:00
++ 5:00 - %z
+ # Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-43)
+ Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2
+- 4:00 - +04 1930 Jun 21
+- 5:00 - +05 1981 Apr 1
+- 5:00 1:00 +06 1981 Oct 1
+- 6:00 - +06 1982 Apr 1
+- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
+- 4:00 RussiaAsia +04/+05 1991 Sep 29 2:00s
+- 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s
+- 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s
+- 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
+- 6:00 - +06 2018 Dec 21 0:00
+- 5:00 - +05
++ 4:00 - %z 1930 Jun 21
++ 5:00 - %z 1981 Apr 1
++ 5:00 1:00 %z 1981 Oct 1
++ 6:00 - %z 1982 Apr 1
++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 4:00 RussiaAsia %z 1991 Sep 29 2:00s
++ 5:00 RussiaAsia %z 1992 Jan 19 2:00s
++ 6:00 RussiaAsia %z 1992 Mar 29 2:00s
++ 5:00 RussiaAsia %z 2004 Oct 31 2:00s
++ 6:00 - %z 2018 Dec 21 0:00
++ 5:00 - %z
+ # Qostanay (aka Kostanay, Kustanay) (KZ-39)
+ # The 1991/2 rules are unclear partly because of the 1997 Turgai
+ # reorganization.
+ Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2
+- 4:00 - +04 1930 Jun 21
+- 5:00 - +05 1981 Apr 1
+- 5:00 1:00 +06 1981 Oct 1
+- 6:00 - +06 1982 Apr 1
+- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
+- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
+- 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
+- 6:00 - +06 2024 Mar 1 0:00
+- 5:00 - +05
++ 4:00 - %z 1930 Jun 21
++ 5:00 - %z 1981 Apr 1
++ 5:00 1:00 %z 1981 Oct 1
++ 6:00 - %z 1982 Apr 1
++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s
++ 5:00 RussiaAsia %z 2004 Oct 31 2:00s
++ 6:00 - %z 2024 Mar 1 0:00
++ 5:00 - %z
+ # Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-15)
+ Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2
+- 4:00 - +04 1930 Jun 21
+- 5:00 - +05 1981 Apr 1
+- 5:00 1:00 +06 1981 Oct 1
+- 6:00 - +06 1982 Apr 1
+- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
+- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
+- 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
+- 5:00 - +05
++ 4:00 - %z 1930 Jun 21
++ 5:00 - %z 1981 Apr 1
++ 5:00 1:00 %z 1981 Oct 1
++ 6:00 - %z 1982 Apr 1
++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s
++ 5:00 RussiaAsia %z 2004 Oct 31 2:00s
++ 5:00 - %z
+ # Mangghystaū (KZ-47)
+ # Aqtau was not founded until 1963, but it represents an inhabited region,
+ # so include timestamps before 1963.
+ Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2
+- 4:00 - +04 1930 Jun 21
+- 5:00 - +05 1981 Oct 1
+- 6:00 - +06 1982 Apr 1
+- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
+- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
+- 5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s
+- 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
+- 5:00 - +05
++ 4:00 - %z 1930 Jun 21
++ 5:00 - %z 1981 Oct 1
++ 6:00 - %z 1982 Apr 1
++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s
++ 5:00 RussiaAsia %z 1994 Sep 25 2:00s
++ 4:00 RussiaAsia %z 2004 Oct 31 2:00s
++ 5:00 - %z
+ # Atyraū (KZ-23) is like Mangghystaū except it switched from
+ # +04/+05 to +05/+06 in spring 1999, not fall 1994.
+ Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2
+- 3:00 - +03 1930 Jun 21
+- 5:00 - +05 1981 Oct 1
+- 6:00 - +06 1982 Apr 1
+- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
+- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
+- 5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s
+- 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
+- 5:00 - +05
++ 3:00 - %z 1930 Jun 21
++ 5:00 - %z 1981 Oct 1
++ 6:00 - %z 1982 Apr 1
++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s
++ 5:00 RussiaAsia %z 1999 Mar 28 2:00s
++ 4:00 RussiaAsia %z 2004 Oct 31 2:00s
++ 5:00 - %z
+ # West Kazakhstan (KZ-27)
+ # From Paul Eggert (2016-03-18):
+ # The 1989 transition is from USSR act No. 227 (1989-03-14).
+ Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk
+- 3:00 - +03 1930 Jun 21
+- 5:00 - +05 1981 Apr 1
+- 5:00 1:00 +06 1981 Oct 1
+- 6:00 - +06 1982 Apr 1
+- 5:00 RussiaAsia +05/+06 1989 Mar 26 2:00s
+- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
+- 5:00 RussiaAsia +05/+06 1992 Mar 29 2:00s
+- 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
+- 5:00 - +05
++ 3:00 - %z 1930 Jun 21
++ 5:00 - %z 1981 Apr 1
++ 5:00 1:00 %z 1981 Oct 1
++ 6:00 - %z 1982 Apr 1
++ 5:00 RussiaAsia %z 1989 Mar 26 2:00s
++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s
++ 5:00 RussiaAsia %z 1992 Mar 29 2:00s
++ 4:00 RussiaAsia %z 2004 Oct 31 2:00s
++ 5:00 - %z
+
+ # Kyrgyzstan (Kirgizstan)
+ # Transitions through 1991 are from Shanks & Pottenger.
+@@ -2575,11 +2582,11 @@
+ Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2
+- 5:00 - +05 1930 Jun 21
+- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
+- 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00
+- 5:00 Kyrgyz +05/+06 2005 Aug 12
+- 6:00 - +06
++ 5:00 - %z 1930 Jun 21
++ 6:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 5:00 RussiaAsia %z 1991 Aug 31 2:00
++ 5:00 Kyrgyz %z 2005 Aug 12
++ 6:00 - %z
+
+ ###############################################################################
+
+@@ -2786,16 +2793,16 @@
+ # and 1982 transition dates are from Mok Ly Yng.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Kuching 7:21:20 - LMT 1926 Mar
+- 7:30 - +0730 1933
+- 8:00 NBorneo +08/+0820 1942 Feb 16
+- 9:00 - +09 1945 Sep 12
+- 8:00 - +08
++ 7:30 - %z 1933
++ 8:00 NBorneo %z 1942 Feb 16
++ 9:00 - %z 1945 Sep 12
++ 8:00 - %z
+
+ # Maldives
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé
+ 4:54:00 - MMT 1960 # Malé Mean Time
+- 5:00 - +05
++ 5:00 - %z
+
+ # Mongolia
+
+@@ -2897,9 +2904,37 @@
+
+ # From Arthur David Olson (2008-05-19):
+ # Assume that Choibalsan is indeed offset by 8:00.
+-# XXX--in the absence of better information, assume that transition
+-# was at the start of 2008-03-31 (the day of Steffen Thorsen's report);
+-# this is almost surely wrong.
++
++# From Heitor David Pinto (2024-06-23):
++# Sources about time zones in Mongolia seem to list one of two conflicting
++# configurations. The first configuration, mentioned in a comment to the TZ
++# database in 1999, citing a Mongolian government website, lists the provinces
++# of Bayan-Ölgii, Khovd and Uvs in UTC+7, and the rest of the country in
++# UTC+8. The second configuration, mentioned in a comment to the database in
++# 2001, lists Bayan-Ölgii, Khovd, Uvs, Govi-Altai and Zavkhan in UTC+7, Dornod
++# and Sükhbaatar in UTC+9, and the rest of the country in UTC+8.
++#
++# The first configuration is still mentioned by several Mongolian travel
++# agencies:
++# https://www.adventurerider.mn/en/page/about_mongolia
++# http://www.naturetours.mn/nt/mongolia.php
++# https://www.newjuulchin.mn/web/content/7506?unique=fa24a0f6e96e022a3578ee5195ac879638c734ce
++#
++# It also matches these flight schedules in 2013:
++# http://web.archive.org/web/20130722023600/https://www.hunnuair.com/en/timetabled
++# The flight times imply that the airports of Uliastai (Zavkhan), Choibalsan
++# (Dornod) and Altai (Govi-Altai) are in the same time zone as Ulaanbaatar,
++# and Khovd is one hour behind....
++#
++# The second configuration was mentioned by an official of the Mongolian
++# standards agency in an interview in 2014: https://ikon.mn/n/9v6
++# And it's still listed by the Mongolian aviation agency:
++# https://ais.mn/files/aip/eAIP/2023-12-25/html/eSUP/ZM-eSUP-23-04-en-MN.html
++#
++# ... I believe that the first configuration is what is actually observed in
++# Mongolia and has been so all along, at least since 1999. The second
++# configuration closely matches the ideal time zone boundaries at 97.5° E and
++# 112.5° E but it doesn't seem to be used in practice.
+
+ # From Ganbold Tsagaankhuu (2015-03-10):
+ # It seems like yesterday Mongolian Government meeting has concluded to use
+@@ -2938,25 +2973,18 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ # Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta
+ Zone Asia/Hovd 6:06:36 - LMT 1905 Aug
+- 6:00 - +06 1978
+- 7:00 Mongol +07/+08
++ 6:00 - %z 1978
++ 7:00 Mongol %z
+ # Ulaanbaatar, a.k.a. Ulan Bataar, Ulan Bator, Urga
+ Zone Asia/Ulaanbaatar 7:07:32 - LMT 1905 Aug
+- 7:00 - +07 1978
+- 8:00 Mongol +08/+09
+-# Choibalsan, a.k.a. Bajan Tümen, Bajan Tumen, Chojbalsan,
+-# Choybalsan, Sanbejse, Tchoibalsan
+-Zone Asia/Choibalsan 7:38:00 - LMT 1905 Aug
+- 7:00 - +07 1978
+- 8:00 - +08 1983 Apr
+- 9:00 Mongol +09/+10 2008 Mar 31
+- 8:00 Mongol +08/+09
++ 7:00 - %z 1978
++ 8:00 Mongol %z
+
+ # Nepal
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Kathmandu 5:41:16 - LMT 1920
+- 5:30 - +0530 1986
+- 5:45 - +0545
++ 5:30 - %z 1986
++ 5:45 - %z
+
+ # Pakistan
+
+@@ -3102,10 +3130,10 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Karachi 4:28:12 - LMT 1907
+- 5:30 - +0530 1942 Sep
+- 5:30 1:00 +0630 1945 Oct 15
+- 5:30 - +0530 1951 Sep 30
+- 5:00 - +05 1971 Mar 26
++ 5:30 - %z 1942 Sep
++ 5:30 1:00 %z 1945 Oct 15
++ 5:30 - %z 1951 Sep 30
++ 5:00 - %z 1971 Mar 26
+ 5:00 Pakistan PK%sT # Pakistan Time
+
+ # Palestine
+@@ -3637,30 +3665,79 @@
+ # be immediately followed by 1845-01-01; see R.H. van Gent's
+ # History of the International Date Line
+ # https://webspace.science.uu.nl/~gent0113/idl/idl_philippines.htm
+-# The rest of the data entries are from Shanks & Pottenger.
+-
+-# From Jesper Nørgaard Welen (2006-04-26):
+-# ... claims that Philippines had DST last time in 1990:
+-# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/
+-# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires,
+-# but no details]
+-
+-# From Paul Eggert (2014-08-14):
+-# The following source says DST may be instituted November-January and again
+-# March-June, but this is not definite. It also says DST was last proclaimed
+-# during the Ramos administration (1992-1998); but again, no details.
+-# Carcamo D. PNoy urged to declare use of daylight saving time.
+-# Philippine Star 2014-08-05
+-# http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time
+-
+-# From Paul Goyette (2018-06-15):
++
++# From P Chan (2021-05-10):
++# Here's a fairly comprehensive article in Japanese:
++# https://wiki.suikawiki.org/n/Philippine%20Time
++# (2021-05-16):
++# According to the references listed in the article,
++# the periods that the Philippines (Manila) observed DST or used +9 are:
++#
++# 1936-10-31 24:00 to 1937-01-15 24:00
++# (Proclamation No. 104, Proclamation No. 126)
++# 1941-12-15 24:00 to 1945-11-30 24:00
++# (Proclamation No. 789, Proclamation No. 20)
++# 1954-04-11 24:00 to 1954-06-04 24:00
++# (Proclamation No. 13, Proclamation No. 33)
++# 1977-03-27 24:00 to 1977-09-21 24:00
++# (Proclamation No. 1629, Proclamation No. 1641)
++# 1990-05-21 00:00 to 1990-07-28 24:00
++# (National Emergency Memorandum Order No. 17, Executive Order No. 415)
++#
++# Proclamation No. 104 ... October 30, 1936
++# https://www.officialgazette.gov.ph/1936/10/30/proclamation-no-104-s-1936/
++# Proclamation No. 126 ... January 15, 1937
++# https://www.officialgazette.gov.ph/1937/01/15/proclamation-no-126-s-1937/
++# Proclamation No. 789 ... December 13, 1941
++# https://www.officialgazette.gov.ph/1941/12/13/proclamation-no-789-s-1941/
++# Proclamation No. 20 ... November 11, 1945
++# https://www.officialgazette.gov.ph/1945/11/11/proclamation-no-20-s-1945/
++# Proclamation No. 13 ... April 6, 1954
++# https://www.officialgazette.gov.ph/1954/04/06/proclamation-no-13-s-1954/
++# Proclamation No. 33 ... June 3, 1954
++# https://www.officialgazette.gov.ph/1954/06/03/proclamation-no-33-s-1954/
++# Proclamation No. 1629 ... March 25, 1977
++# https://www.officialgazette.gov.ph/1977/03/25/proclamation-no-1629-s-1977/
++# Proclamation No. 1641 ...May 26, 1977
++# https://www.officialgazette.gov.ph/1977/05/26/proclamation-no-1641-s-1977/
++# National Emergency Memorandum Order No. 17 ... May 2, 1990
++# https://www.officialgazette.gov.ph/1990/05/02/national-emergency-memorandum-order-no-17-s-1990/
++# Executive Order No. 415 ... July 20, 1990
++# https://www.officialgazette.gov.ph/1990/07/20/executive-order-no-415-s-1990/
++#
++# During WWII, Proclamation No. 789 fixed two periods of DST. The first period
++# was set to continue only until January 31, 1942. But Manila was occupied by
++# the Japanese earlier in the month....
++#
++# For the date of the adoption of standard time, Shank[s] gives 1899-05-11.
++# The article is not able to state the basis of that. I guess it was based on
++# a US War Department Circular issued on that date.
++# https://books.google.com/books?id=JZ1PAAAAYAAJ&pg=RA3-PA8
++#
++# However, according to other sources, standard time was adopted on
++# 1899-09-06. Also, the LMT was GMT+8:03:52
++# https://books.google.com/books?id=MOYIAQAAIAAJ&pg=PA521
++# https://books.google.com/books?id=lSnqqatpYikC&pg=PA21
++#
++# From Paul Eggert (2024-09-05):
++# The penultimate URL in P Chan's email refers to page 521 of
++# Selga M, The Time Service in the Philippines.
++# Proc Pan-Pacific Science Congress. Vol. 1 (1923), 519-532.
++# It says, "The change from the meridian 120° 58' 04" to the 120th implied a
++# change of 3 min. 52s.26 in time; consequently on 6th September, 1899,
++# Manila Observatory gave the noon signal 3 min. 52s.26 later than before".
++#
++# Wikipedia says the US declared Manila liberated on March 4, 1945;
++# this doesn't affect clocks, just our time zone abbreviation and DST flag.
++
++# From Paul Goyette (2018-06-15) with URLs updated by Guy Harris (2024-02-15):
+ # In the Philippines, there is a national law, Republic Act No. 10535
+ # which declares the official time here as "Philippine Standard Time".
+ # The act [1] even specifies use of PST as the abbreviation, although
+ # the FAQ provided by PAGASA [2] uses the "acronym PhST to distinguish
+ # it from the Pacific Standard Time (PST)."
+-# [1] http://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/
+-# [2] https://www1.pagasa.dost.gov.ph/index.php/astronomy/philippine-standard-time#republic-act-10535
++# [1] https://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/
++# [2] https://prsd.pagasa.dost.gov.ph/index.php/28-astronomy/302-philippine-standard-time
+ #
+ # From Paul Eggert (2018-06-19):
+ # I surveyed recent news reports, and my impression is that "PST" is
+@@ -3669,32 +3746,34 @@
+ # influence of the sources. There is no current abbreviation for DST,
+ # so use "PDT", the usual American style.
+
+-# From P Chan (2021-05-10):
+-# Here's a fairly comprehensive article in Japanese:
+-# https://wiki.suikawiki.org/n/Philippine%20Time
+-# From Paul Eggert (2021-05-10):
+-# The info in the Japanese table has not been absorbed (yet) below.
+-
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+-Rule Phil 1936 only - Nov 1 0:00 1:00 D
+-Rule Phil 1937 only - Feb 1 0:00 0 S
+-Rule Phil 1954 only - Apr 12 0:00 1:00 D
+-Rule Phil 1954 only - Jul 1 0:00 0 S
+-Rule Phil 1978 only - Mar 22 0:00 1:00 D
+-Rule Phil 1978 only - Sep 21 0:00 0 S
++Rule Phil 1936 only - Oct 31 24:00 1:00 D
++Rule Phil 1937 only - Jan 15 24:00 0 S
++Rule Phil 1941 only - Dec 15 24:00 1:00 D
++# The following three rules were canceled by Japan:
++#Rule Phil 1942 only - Jan 31 24:00 0 S
++#Rule Phil 1942 only - Mar 1 0:00 1:00 D
++#Rule Phil 1942 only - Jun 30 24:00 0 S
++Rule Phil 1945 only - Nov 30 24:00 0 S
++Rule Phil 1954 only - Apr 11 24:00 1:00 D
++Rule Phil 1954 only - Jun 4 24:00 0 S
++Rule Phil 1977 only - Mar 27 24:00 1:00 D
++Rule Phil 1977 only - Sep 21 24:00 0 S
++Rule Phil 1990 only - May 21 0:00 1:00 D
++Rule Phil 1990 only - Jul 28 24:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31
+- 8:04:00 - LMT 1899 May 11
+- 8:00 Phil P%sT 1942 May
+- 9:00 - JST 1944 Nov
++Zone Asia/Manila -15:56:08 - LMT 1844 Dec 31
++ 8:03:52 - LMT 1899 Sep 6 4:00u
++ 8:00 Phil P%sT 1942 Feb 11 24:00
++ 9:00 - JST 1945 Mar 4
+ 8:00 Phil P%sT
+
+ # Bahrain
+ # Qatar
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha
+- 4:00 - +04 1972 Jun
+- 3:00 - +03
++ 4:00 - %z 1972 Jun
++ 3:00 - %z
+
+ # Kuwait
+ # Saudi Arabia
+@@ -3744,7 +3823,7 @@
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14
+- 3:00 - +03
++ 3:00 - %z
+
+ # Singapore
+ # taken from Mok Ly Yng (2003-10-30)
+@@ -3752,13 +3831,13 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1
+ 6:55:25 - SMT 1905 Jun 1 # Singapore M.T.
+- 7:00 - +07 1933 Jan 1
+- 7:00 0:20 +0720 1936 Jan 1
+- 7:20 - +0720 1941 Sep 1
+- 7:30 - +0730 1942 Feb 16
+- 9:00 - +09 1945 Sep 12
+- 7:30 - +0730 1981 Dec 31 16:00u
+- 8:00 - +08
++ 7:00 - %z 1933 Jan 1
++ 7:00 0:20 %z 1936 Jan 1
++ 7:20 - %z 1941 Sep 1
++ 7:30 - %z 1942 Feb 16
++ 9:00 - %z 1945 Sep 12
++ 7:30 - %z 1981 Dec 31 16:00u
++ 8:00 - %z
+
+ # Spratly Is
+ # no information
+@@ -3816,13 +3895,13 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Colombo 5:19:24 - LMT 1880
+ 5:19:32 - MMT 1906 # Moratuwa Mean Time
+- 5:30 - +0530 1942 Jan 5
+- 5:30 0:30 +06 1942 Sep
+- 5:30 1:00 +0630 1945 Oct 16 2:00
+- 5:30 - +0530 1996 May 25 0:00
+- 6:30 - +0630 1996 Oct 26 0:30
+- 6:00 - +06 2006 Apr 15 0:30
+- 5:30 - +0530
++ 5:30 - %z 1942 Jan 5
++ 5:30 0:30 %z 1942 Sep
++ 5:30 1:00 %z 1945 Oct 16 2:00
++ 5:30 - %z 1996 May 25 0:00
++ 6:30 - %z 1996 Oct 26 0:30
++ 6:00 - %z 2006 Apr 15 0:30
++ 5:30 - %z
+
+ # Syria
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+@@ -3993,16 +4072,16 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq
+ 2:00 Syria EE%sT 2022 Oct 28 0:00
+- 3:00 - +03
++ 3:00 - %z
+
+ # Tajikistan
+ # From Shanks & Pottenger.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
+- 5:00 - +05 1930 Jun 21
+- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
+- 5:00 1:00 +06 1991 Sep 9 2:00s
+- 5:00 - +05
++ 5:00 - %z 1930 Jun 21
++ 6:00 RussiaAsia %z 1991 Mar 31 2:00s
++ 5:00 1:00 %z 1991 Sep 9 2:00s
++ 5:00 - %z
+
+ # Cambodia
+ # Christmas I
+@@ -4012,16 +4091,16 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Bangkok 6:42:04 - LMT 1880
+ 6:42:04 - BMT 1920 Apr # Bangkok Mean Time
+- 7:00 - +07
++ 7:00 - %z
+
+ # Turkmenistan
+ # From Shanks & Pottenger.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad
+- 4:00 - +04 1930 Jun 21
+- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00
+- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00
+- 5:00 - +05
++ 4:00 - %z 1930 Jun 21
++ 5:00 RussiaAsia %z 1991 Mar 31 2:00
++ 4:00 RussiaAsia %z 1992 Jan 19 2:00
++ 5:00 - %z
+
+ # Oman
+ # Réunion
+@@ -4031,25 +4110,25 @@
+ # The Crozet Is also observe Réunion time; see the 'antarctica' file.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Dubai 3:41:12 - LMT 1920
+- 4:00 - +04
++ 4:00 - %z
+
+ # Uzbekistan
+ # Byalokoz 1919 says Uzbekistan was 4:27:53.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2
+- 4:00 - +04 1930 Jun 21
+- 5:00 - +05 1981 Apr 1
+- 5:00 1:00 +06 1981 Oct 1
+- 6:00 - +06 1982 Apr 1
+- 5:00 RussiaAsia +05/+06 1992
+- 5:00 - +05
++ 4:00 - %z 1930 Jun 21
++ 5:00 - %z 1981 Apr 1
++ 5:00 1:00 %z 1981 Oct 1
++ 6:00 - %z 1982 Apr 1
++ 5:00 RussiaAsia %z 1992
++ 5:00 - %z
+ # Milne says Tashkent was 4:37:10.8.
+ #STDOFF 4:37:10.8
+ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
+- 5:00 - +05 1930 Jun 21
+- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00
+- 5:00 RussiaAsia +05/+06 1992
+- 5:00 - +05
++ 5:00 - %z 1930 Jun 21
++ 6:00 RussiaAsia %z 1991 Mar 31 2:00
++ 5:00 RussiaAsia %z 1992
++ 5:00 - %z
+
+ # Vietnam (southern)
+
+@@ -4107,7 +4186,7 @@
+ # Võ Nguyên Giáp, Việt Nam Dân Quốc Công Báo, No. 1 (1945-09-29), page 13
+ # http://baochi.nlv.gov.vn/baochi/cgi-bin/baochi?a=d&d=JwvzO19450929.2.5&dliv=none
+ # It says that on 1945-09-01 at 24:00, Vietnam moved back two hours, to +07.
+-# It also mentions a 1945-03-29 decree (by a Japanese Goveror-General)
++# It also mentions a 1945-03-29 decree (by a Japanese Governor-General)
+ # to set the time zone to +09, but does not say whether that decree
+ # merely legalized an earlier change to +09.
+ #
+@@ -4128,14 +4207,14 @@
+ #STDOFF 7:06:30.13
+ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1
+ 7:06:30 - PLMT 1911 May 1 # Phù Liễn MT
+- 7:00 - +07 1942 Dec 31 23:00
+- 8:00 - +08 1945 Mar 14 23:00
+- 9:00 - +09 1945 Sep 1 24:00
+- 7:00 - +07 1947 Apr 1
+- 8:00 - +08 1955 Jul 1 01:00
+- 7:00 - +07 1959 Dec 31 23:00
+- 8:00 - +08 1975 Jun 13
+- 7:00 - +07
++ 7:00 - %z 1942 Dec 31 23:00
++ 8:00 - %z 1945 Mar 14 23:00
++ 9:00 - %z 1945 Sep 1 24:00
++ 7:00 - %z 1947 Apr 1
++ 8:00 - %z 1955 Jul 1 01:00
++ 7:00 - %z 1959 Dec 31 23:00
++ 8:00 - %z 1975 Jun 13
++ 7:00 - %z
+
+ # From Paul Eggert (2019-02-19):
+ #
+--- contrib/tzdata/australasia.orig
++++ contrib/tzdata/australasia
+@@ -43,8 +43,8 @@
+ 8:00 Aus AW%sT 1943 Jul
+ 8:00 AW AW%sT
+ Zone Australia/Eucla 8:35:28 - LMT 1895 Dec
+- 8:45 Aus +0845/+0945 1943 Jul
+- 8:45 AW +0845/+0945
++ 8:45 Aus %z 1943 Jul
++ 8:45 AW %z
+
+ # Queensland
+ #
+@@ -209,8 +209,8 @@
+ Rule LH 2008 max - Oct Sun>=1 2:00 0:30 -
+ Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb
+ 10:00 - AEST 1981 Mar
+- 10:30 LH +1030/+1130 1985 Jul
+- 10:30 LH +1030/+11
++ 10:30 LH %z 1985 Jul
++ 10:30 LH %z
+
+ # Australian miscellany
+ #
+@@ -416,16 +416,16 @@
+ Rule Fiji 2020 only - Dec 20 2:00 1:00 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
+- 12:00 Fiji +12/+13
++ 12:00 Fiji %z
+
+ # French Polynesia
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct 1 # Rikitea
+- -9:00 - -09
++ -9:00 - %z
+ Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct 1
+- -9:30 - -0930
++ -9:30 - %z
+ Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct 1 # Papeete
+- -10:00 - -10
++ -10:00 - %z
+ # Clipperton (near North America) is administered from French Polynesia;
+ # it is uninhabited.
+
+@@ -468,7 +468,7 @@
+ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31
+ 9:39:00 - LMT 1901 # Agana
+ 10:00 - GST 1941 Dec 10 # Guam
+- 9:00 - +09 1944 Jul 31
++ 9:00 - %z 1944 Jul 31
+ 10:00 Guam G%sT 2000 Dec 23
+ 10:00 - ChST # Chamorro Standard Time
+
+@@ -480,30 +480,30 @@
+ # Wallis & Futuna
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki
+- 12:00 - +12
++ 12:00 - %z
+
+ # Kiribati (except Gilbert Is)
+ # See Pacific/Tarawa for the Gilbert Is.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Kanton 0 - -00 1937 Aug 31
+- -12:00 - -12 1979 Oct
+- -11:00 - -11 1994 Dec 31
+- 13:00 - +13
++ -12:00 - %z 1979 Oct
++ -11:00 - %z 1994 Dec 31
++ 13:00 - %z
+ Zone Pacific/Kiritimati -10:29:20 - LMT 1901
+- -10:40 - -1040 1979 Oct
+- -10:00 - -10 1994 Dec 31
+- 14:00 - +14
++ -10:40 - %z 1979 Oct
++ -10:00 - %z 1994 Dec 31
++ 14:00 - %z
+
+ # Marshall Is
+ # See Pacific/Tarawa for most locations.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Kwajalein 11:09:20 - LMT 1901
+- 11:00 - +11 1937
+- 10:00 - +10 1941 Apr 1
+- 9:00 - +09 1944 Feb 6
+- 11:00 - +11 1969 Oct
+- -12:00 - -12 1993 Aug 20 24:00
+- 12:00 - +12
++ 11:00 - %z 1937
++ 10:00 - %z 1941 Apr 1
++ 9:00 - %z 1944 Feb 6
++ 11:00 - %z 1969 Oct
++ -12:00 - %z 1993 Aug 20 24:00
++ 12:00 - %z
+
+ # Micronesia
+ # For Chuuk and Yap see Pacific/Port_Moresby.
+@@ -511,22 +511,22 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Kosrae -13:08:04 - LMT 1844 Dec 31
+ 10:51:56 - LMT 1901
+- 11:00 - +11 1914 Oct
+- 9:00 - +09 1919 Feb 1
+- 11:00 - +11 1937
+- 10:00 - +10 1941 Apr 1
+- 9:00 - +09 1945 Aug
+- 11:00 - +11 1969 Oct
+- 12:00 - +12 1999
+- 11:00 - +11
++ 11:00 - %z 1914 Oct
++ 9:00 - %z 1919 Feb 1
++ 11:00 - %z 1937
++ 10:00 - %z 1941 Apr 1
++ 9:00 - %z 1945 Aug
++ 11:00 - %z 1969 Oct
++ 12:00 - %z 1999
++ 11:00 - %z
+
+ # Nauru
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe
+- 11:30 - +1130 1942 Aug 29
+- 9:00 - +09 1945 Sep 8
+- 11:30 - +1130 1979 Feb 10 2:00
+- 12:00 - +12
++ 11:30 - %z 1942 Aug 29
++ 9:00 - %z 1945 Sep 8
++ 11:30 - %z 1979 Feb 10 2:00
++ 12:00 - %z
+
+ # New Caledonia
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+@@ -537,7 +537,7 @@
+ Rule NC 1997 only - Mar 2 2:00s 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa
+- 11:00 NC +11/+12
++ 11:00 NC %z
+
+
+ ###############################################################################
+@@ -581,8 +581,8 @@
+ 12:00 NZ NZ%sT
+
+ Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2
+- 12:15 - +1215 1946 Jan 1
+- 12:45 Chatham +1245/+1345
++ 12:15 - %z 1946 Jan 1
++ 12:45 Chatham %z
+
+ # Auckland Is
+ # uninhabited; Māori and Moriori, colonial settlers, pastoralists, sealers,
+@@ -635,8 +635,8 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Rarotonga 13:20:56 - LMT 1899 Dec 26 # Avarua
+ -10:39:04 - LMT 1952 Oct 16
+- -10:30 - -1030 1978 Nov 12
+- -10:00 Cook -10/-0930
++ -10:30 - %z 1978 Nov 12
++ -10:00 Cook %z
+
+ ###############################################################################
+
+@@ -653,30 +653,30 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Niue -11:19:40 - LMT 1952 Oct 16 # Alofi
+- -11:20 - -1120 1964 Jul
+- -11:00 - -11
++ -11:20 - %z 1964 Jul
++ -11:00 - %z
+
+ # Norfolk
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston
+- 11:12 - +1112 1951
+- 11:30 - +1130 1974 Oct 27 02:00s
+- 11:30 1:00 +1230 1975 Mar 2 02:00s
+- 11:30 - +1130 2015 Oct 4 02:00s
+- 11:00 - +11 2019 Jul
+- 11:00 AN +11/+12
++ 11:12 - %z 1951
++ 11:30 - %z 1974 Oct 27 02:00s
++ 11:30 1:00 %z 1975 Mar 2 02:00s
++ 11:30 - %z 2015 Oct 4 02:00s
++ 11:00 - %z 2019 Jul
++ 11:00 AN %z
+
+ # Palau (Belau)
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror
+ 8:57:56 - LMT 1901
+- 9:00 - +09
++ 9:00 - %z
+
+ # Papua New Guinea
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
+ 9:48:32 - PMMT 1895 # Port Moresby Mean Time
+- 10:00 - +10
++ 10:00 - %z
+ #
+ # From Paul Eggert (2014-10-13):
+ # Base the Bougainville entry on the Arawa-Kieta region, which appears to have
+@@ -697,16 +697,16 @@
+ #
+ Zone Pacific/Bougainville 10:22:16 - LMT 1880
+ 9:48:32 - PMMT 1895
+- 10:00 - +10 1942 Jul
+- 9:00 - +09 1945 Aug 21
+- 10:00 - +10 2014 Dec 28 2:00
+- 11:00 - +11
++ 10:00 - %z 1942 Jul
++ 9:00 - %z 1945 Aug 21
++ 10:00 - %z 2014 Dec 28 2:00
++ 11:00 - %z
+
+ # Pitcairn
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown
+- -8:30 - -0830 1998 Apr 27 0:00
+- -8:00 - -08
++ -8:30 - %z 1998 Apr 27 0:00
++ -8:00 - %z
+
+ # American Samoa
+ # Midway
+@@ -795,15 +795,15 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5
+ -11:26:56 - LMT 1911
+- -11:30 - -1130 1950
+- -11:00 WS -11/-10 2011 Dec 29 24:00
+- 13:00 WS +13/+14
++ -11:30 - %z 1950
++ -11:00 WS %z 2011 Dec 29 24:00
++ 13:00 WS %z
+
+ # Solomon Is
+ # excludes Bougainville, for which see Papua New Guinea
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct 1 # Honiara
+- 11:00 - +11
++ 11:00 - %z
+
+ # Tokelau
+ #
+@@ -826,8 +826,8 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Fakaofo -11:24:56 - LMT 1901
+- -11:00 - -11 2011 Dec 30
+- 13:00 - +13
++ -11:00 - %z 2011 Dec 30
++ 13:00 - %z
+
+ # Tonga
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+@@ -839,9 +839,9 @@
+ Rule Tonga 2017 only - Jan Sun>=15 3:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10
+- 12:20 - +1220 1961
+- 13:00 - +13 1999
+- 13:00 Tonga +13/+14
++ 12:20 - %z 1961
++ 13:00 - %z 1999
++ 13:00 Tonga %z
+
+
+ # US minor outlying islands
+@@ -930,7 +930,7 @@
+ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
+- 11:00 Vanuatu +11/+12
++ 11:00 Vanuatu %z
+
+ ###############################################################################
+
+@@ -1239,10 +1239,10 @@
+ # The 1992 ending date used in the rules is a best guess;
+ # it matches what was used in the past.
+
+-# The Australian Bureau of Meteorology FAQ
+-# http://www.bom.gov.au/faq/faqgen.htm
+-# (1999-09-27) writes that Giles Meteorological Station uses
+-# South Australian time even though it's located in Western Australia.
++# From Christopher Hunt (2006-11-21), after an advance warning
++# from Jesper Nørgaard Welen (2006-11-01):
++# WA are trialing DST for three years.
++# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf
+
+ # From Paul Eggert (2018-04-01):
+ # The Guardian Express of Perth, Australia reported today that the
+@@ -1254,54 +1254,10 @@
+ # https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/
+ # [The article ends with "Today's date is April 1."]
+
+-# Queensland
+-
+-# From Paul Eggert (2018-02-26):
+-# I lack access to the following source for Queensland DST:
+-# Pearce C. History of daylight saving time in Queensland.
+-# Queensland Hist J. 2017 Aug;23(6):389-403
+-# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS
+-
+-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
+-# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
+-# # [ Dec 1990 ]
+-# ...
+-# Zone Australia/Queensland 10:00 AQ %sST
+-# ...
+-# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D
+-# Rule AQ 1972 only - Feb lastSun 3:00 0 E
+-# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D
+-# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E
+-
+-# From Bradley White (1989-12-24):
+-# "Australia/Queensland" now observes daylight time (i.e. from
+-# October 1989).
+-
+-# From Bradley White (1991-03-04):
+-# A recent excerpt from an Australian newspaper...
+-# ...Queensland...[has] agreed to end daylight saving
+-# at 3am tomorrow (March 3)...
+-
+-# From John Mackin (1991-03-06):
+-# I can certainly confirm for my part that Daylight Saving in NSW did in fact
+-# end on Sunday, 3 March. I don't know at what hour, though. (It surprised
+-# me.)
+-
+-# From Bradley White (1992-03-08):
+-# ...there was recently a referendum in Queensland which resulted
+-# in the experimental daylight saving system being abandoned. So, ...
+-# ...
+-# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D
+-# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S
+-# ...
+-
+-# From Arthur David Olson (1992-03-08):
+-# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
+-
+-# From Christopher Hunt (2006-11-21), after an advance warning
+-# from Jesper Nørgaard Welen (2006-11-01):
+-# WA are trialing DST for three years.
+-# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf
++# The Australian Bureau of Meteorology FAQ
++# http://www.bom.gov.au/faq/faqgen.htm
++# (1999-09-27) writes that Giles Meteorological Station uses
++# South Australian time even though it's located in Western Australia.
+
+ # From Rives McDow (2002-04-09):
+ # The most interesting region I have found consists of three towns on the
+@@ -1359,6 +1315,59 @@
+ # For lack of better info, assume the tradition dates back to the
+ # introduction of standard time in 1895.
+
++# From Stuart Bishop (2024-11-12):
++# An article discussing the in-use but technically unofficial timezones
++# in the Western Australian portion of the Nullarbor Plain.
++# https://www.abc.net.au/news/2024-11-22/outback-wa-properties-strange-time-zones/104542494
++# From Paul Eggert (2024-11-12):
++# As the article says, the Eyre Bird Observatory and nearby sheep stations
++# can use Tokyo time. Other possibilities include Asia/Chita, Asia/Seoul,
++# and Asia/Jayapura.
++
++# Queensland
++
++# From Paul Eggert (2018-02-26):
++# I lack access to the following source for Queensland DST:
++# Pearce C. History of daylight saving time in Queensland.
++# Queensland Hist J. 2017 Aug;23(6):389-403
++# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS
++
++# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
++# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
++# # [ Dec 1990 ]
++# ...
++# Zone Australia/Queensland 10:00 AQ %sST
++# ...
++# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D
++# Rule AQ 1972 only - Feb lastSun 3:00 0 E
++# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D
++# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E
++
++# From Bradley White (1989-12-24):
++# "Australia/Queensland" now observes daylight time (i.e. from
++# October 1989).
++
++# From Bradley White (1991-03-04):
++# A recent excerpt from an Australian newspaper...
++# ...Queensland...[has] agreed to end daylight saving
++# at 3am tomorrow (March 3)...
++
++# From John Mackin (1991-03-06):
++# I can certainly confirm for my part that Daylight Saving in NSW did in fact
++# end on Sunday, 3 March. I don't know at what hour, though. (It surprised
++# me.)
++
++# From Bradley White (1992-03-08):
++# ...there was recently a referendum in Queensland which resulted
++# in the experimental daylight saving system being abandoned. So, ...
++# ...
++# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D
++# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S
++# ...
++
++# From Arthur David Olson (1992-03-08):
++# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
++
+
+ # southeast Australia
+ #
+--- contrib/tzdata/backward.orig
++++ contrib/tzdata/backward
+@@ -1,9 +1,10 @@
+-# tzdb links for backward compatibility
++# Links and zones for backward compatibility
+
+ # This file is in the public domain, so clarified as of
+ # 2009-05-17 by Arthur David Olson.
+
+ # This file provides links from old or merged timezone names to current ones.
++# It also provides a few zone entries for old naming conventions.
+ # Many names changed in 1993 and in 1995, and many merged names moved here
+ # in the period from 2013 through 2022. Several of these names are
+ # also present in the file 'backzone', which has data important only
+@@ -44,6 +45,8 @@
+ Link America/Noronha Brazil/DeNoronha
+ Link America/Sao_Paulo Brazil/East
+ Link America/Manaus Brazil/West
++Link Europe/Brussels CET
++Link America/Chicago CST6CDT
+ Link America/Halifax Canada/Atlantic
+ Link America/Winnipeg Canada/Central
+ # This line is commented out, as the name exceeded the 14-character limit
+@@ -58,6 +61,9 @@
+ Link America/Santiago Chile/Continental
+ Link Pacific/Easter Chile/EasterIsland
+ Link America/Havana Cuba
++Link Europe/Athens EET
++Link America/Panama EST
++Link America/New_York EST5EDT
+ Link Africa/Cairo Egypt
+ Link Europe/Dublin Eire
+ # Vanguard section, for most .zi parsers.
+@@ -96,6 +102,9 @@
+ Link Asia/Tokyo Japan
+ Link Pacific/Kwajalein Kwajalein
+ Link Africa/Tripoli Libya
++Link Europe/Brussels MET
++Link America/Phoenix MST
++Link America/Denver MST7MDT
+ Link America/Tijuana Mexico/BajaNorte
+ Link America/Mazatlan Mexico/BajaSur
+ Link America/Mexico_City Mexico/General
+@@ -275,6 +284,7 @@
+ Link America/Toronto America/Thunder_Bay
+ Link America/Edmonton America/Yellowknife
+ Link Pacific/Auckland Antarctica/South_Pole
++Link Asia/Ulaanbaatar Asia/Choibalsan
+ Link Asia/Shanghai Asia/Chongqing
+ Link Asia/Shanghai Asia/Harbin
+ Link Asia/Urumqi Asia/Kashgar
+@@ -289,6 +299,7 @@
+ Link Pacific/Kanton Pacific/Enderbury
+ Link Pacific/Honolulu Pacific/Johnston
+ Link Pacific/Port_Moresby Pacific/Yap
++Link Europe/Lisbon WET
+
+
+ # Alternate names for the same location
+@@ -314,5 +325,7 @@
+ # Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72.
+ # However, for various reasons many users expect to find it under Europe.
+ Link Asia/Nicosia Europe/Nicosia
++Link Pacific/Honolulu HST
++Link America/Los_Angeles PST8PDT
+ Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei
+ Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk
+--- contrib/tzdata/backzone.orig
++++ contrib/tzdata/backzone
+@@ -346,10 +346,8 @@
+
+ # Angola
+ #
+-# From Paul Eggert (2018-02-16):
+-# Shanks gives 1911-05-26 for the transition to WAT,
+-# evidently confusing the date of the Portuguese decree
+-# (see Europe/Lisbon) with the date that it took effect.
++# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16):
++# For timestamps before independence, see commentary for Europe/Lisbon.
+ #
+ Zone Africa/Luanda 0:52:56 - LMT 1892
+ 0:52:04 - LMT 1911 Dec 31 23:00u # Luanda MT?
+@@ -1086,10 +1084,10 @@
+ 4:00 - +04
+
+ # India
+-# From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne:
+-# According to a Portuguese decree (1911-05-26)
+-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
+-# Portuguese India switched to UT +05 on 1912-01-01.
++# From Tim Parenti (2024-07-01), per Paul Eggert (2014-08-11), after a
++# heads-up from Stephen Colebourne:
++# According to a Portuguese decree (1911-05-24), Portuguese India switched to
++# UT +05 on 1912-01-01 (see Europe/Lisbon).
+ #Zone Asia/Panaji [not enough info to complete]
+
+ # Cambodia
+@@ -1829,6 +1827,27 @@
+ Zone Pacific/Wallis 12:15:20 - LMT 1901
+ 12:00 - +12
+
++
++# From Paul Eggert (2024-05-22):
++# The following zones pretend that standard time extends backward
++# indefinitely into the past, and so are ahistorical.
++# In current TZDB these entries are links to geographical locations
++# that agree with the ahistorical zones since 1970.
++# These are in numeric rather than alphabetic order.
++
++# Zone NAME STDOFF RULES FORMAT [UNTIL]
++Zone HST -10:00 - HST
++Zone PST8PDT -8:00 US P%sT
++Zone MST -7:00 - MST
++Zone MST7MDT -7:00 US M%sT
++Zone CST6CDT -6:00 US C%sT
++Zone EST -5:00 - EST
++Zone EST5EDT -5:00 US E%sT
++Zone WET 0:00 EU WE%sT
++Zone CET 1:00 C-Eur CE%sT
++Zone MET 1:00 C-Eur ME%sT
++Zone EET 2:00 EU EE%sT
++
+ # Local Variables:
+ # coding: utf-8
+ # End:
+--- contrib/tzdata/checknow.awk.orig
++++ contrib/tzdata/checknow.awk
+@@ -14,7 +14,7 @@
+ if ($0 ~ /^TZ/) {
+ record_zone(zone, data)
+ zone = $0
+- sub(/.*\.dir\//, "", zone)
++ sub(/.*\.ckd\//, "", zone)
+ sub(/\/\//, "/", zone)
+ sub(/"/, "", zone)
+ data = ""
+@@ -44,8 +44,8 @@
+ END {
+ for (zone in zone_data) {
+ data = zone_data[zone]
+- if (!zonenow[data]) {
+- printf "zonenow.tab should have one of:%s\n", zones[data]
++ if (data && !zonenow[data]) {
++ printf "Zone table should have one of:%s\n", zones[data]
+ zonenow[data] = zone # This suppresses duplicate diagnostics.
+ status = 1
+ }
+--- contrib/tzdata/checktab.awk.orig
++++ contrib/tzdata/checktab.awk
+@@ -9,6 +9,19 @@
+ if (!zone_table) zone_table = "zone1970.tab"
+ if (!want_warnings) want_warnings = -1
+
++ monthabbr["Jan"] = 1
++ monthabbr["Feb"] = 1
++ monthabbr["Mar"] = 1
++ monthabbr["Apr"] = 1
++ monthabbr["May"] = 1
++ monthabbr["Jun"] = 1
++ monthabbr["Jul"] = 1
++ monthabbr["Aug"] = 1
++ monthabbr["Sep"] = 1
++ monthabbr["Oct"] = 1
++ monthabbr["Nov"] = 1
++ monthabbr["Dec"] = 1
++
+ while (getline >"/dev/stderr"
++ status = 1
++ }
+ } else {
++ stdoff = $1
+ ruleUsed[$2] = 1
+ if ($3 ~ /%/) rulePercentUsed[$2] = 1
+ }
++
++ if (stdoff && stdoff !~ /^\-?1?[0-9](:[0-5][0-9](:[0-5][0-9])?)?$/) {
++ printf "%s:%d: unlikely STDOFF: %s\n", FILENAME, FNR, stdoff \
++ >>"/dev/stderr"
++ status = 1
++ }
++
+ if (tz && tz ~ /\// && tz !~ /^Etc\//) {
+ if (!tztab[tz] && FILENAME != "backward" \
+ && zone_table != "zonenow.tab") {
+--- contrib/tzdata/etcetera.orig
++++ contrib/tzdata/etcetera
+@@ -5,7 +5,7 @@
+
+ # These entries are for uses not otherwise covered by the tz database.
+ # Their main practical use is for platforms like Android that lack
+-# support for POSIX.1-2017-style TZ strings. On such platforms these entries
++# support for POSIX proleptic TZ strings. On such platforms these entries
+ # can be useful if the timezone database is wrong or if a ship or
+ # aircraft at sea is not in a timezone.
+
+@@ -51,29 +51,33 @@
+ # so we moved the names into the Etc subdirectory.
+ # Also, the time zone abbreviations are now compatible with %z.
+
+-Zone Etc/GMT-14 14 - +14
+-Zone Etc/GMT-13 13 - +13
+-Zone Etc/GMT-12 12 - +12
+-Zone Etc/GMT-11 11 - +11
+-Zone Etc/GMT-10 10 - +10
+-Zone Etc/GMT-9 9 - +09
+-Zone Etc/GMT-8 8 - +08
+-Zone Etc/GMT-7 7 - +07
+-Zone Etc/GMT-6 6 - +06
+-Zone Etc/GMT-5 5 - +05
+-Zone Etc/GMT-4 4 - +04
+-Zone Etc/GMT-3 3 - +03
+-Zone Etc/GMT-2 2 - +02
+-Zone Etc/GMT-1 1 - +01
+-Zone Etc/GMT+1 -1 - -01
+-Zone Etc/GMT+2 -2 - -02
+-Zone Etc/GMT+3 -3 - -03
+-Zone Etc/GMT+4 -4 - -04
+-Zone Etc/GMT+5 -5 - -05
+-Zone Etc/GMT+6 -6 - -06
+-Zone Etc/GMT+7 -7 - -07
+-Zone Etc/GMT+8 -8 - -08
+-Zone Etc/GMT+9 -9 - -09
+-Zone Etc/GMT+10 -10 - -10
+-Zone Etc/GMT+11 -11 - -11
+-Zone Etc/GMT+12 -12 - -12
++# There is no "Etc/Unknown" entry, as CLDR says that "Etc/Unknown"
++# corresponds to an unknown or invalid time zone, and things would get
++# confusing if Etc/Unknown were made valid here.
++
++Zone Etc/GMT-14 14 - %z
++Zone Etc/GMT-13 13 - %z
++Zone Etc/GMT-12 12 - %z
++Zone Etc/GMT-11 11 - %z
++Zone Etc/GMT-10 10 - %z
++Zone Etc/GMT-9 9 - %z
++Zone Etc/GMT-8 8 - %z
++Zone Etc/GMT-7 7 - %z
++Zone Etc/GMT-6 6 - %z
++Zone Etc/GMT-5 5 - %z
++Zone Etc/GMT-4 4 - %z
++Zone Etc/GMT-3 3 - %z
++Zone Etc/GMT-2 2 - %z
++Zone Etc/GMT-1 1 - %z
++Zone Etc/GMT+1 -1 - %z
++Zone Etc/GMT+2 -2 - %z
++Zone Etc/GMT+3 -3 - %z
++Zone Etc/GMT+4 -4 - %z
++Zone Etc/GMT+5 -5 - %z
++Zone Etc/GMT+6 -6 - %z
++Zone Etc/GMT+7 -7 - %z
++Zone Etc/GMT+8 -8 - %z
++Zone Etc/GMT+9 -9 - %z
++Zone Etc/GMT+10 -10 - %z
++Zone Etc/GMT+11 -11 - %z
++Zone Etc/GMT+12 -12 - %z
+--- contrib/tzdata/europe.orig
++++ contrib/tzdata/europe
+@@ -730,14 +730,6 @@
+ # Take "abolishing daylight saving time" to mean that time is now considered
+ # to be standard.
+
+-# These are for backward compatibility with older versions.
+-
+-# Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone WET 0:00 EU WE%sT
+-Zone CET 1:00 C-Eur CE%sT
+-Zone MET 1:00 C-Eur ME%sT
+-Zone EET 2:00 EU EE%sT
+-
+ # Previous editions of this database used abbreviations like MET DST
+ # for Central European Summer Time, but this didn't agree with common usage.
+
+@@ -871,7 +863,7 @@
+ 3:00 Russia MSK/MSD 1990
+ 3:00 - MSK 1991 Mar 31 2:00s
+ 2:00 Russia EE%sT 2011 Mar 27 2:00s
+- 3:00 - +03
++ 3:00 - %z
+
+ # Belgium
+ # Luxembourg
+@@ -1155,7 +1147,7 @@
+ # However, Greenland will change to Daylight Saving Time again in 2024
+ # and onwards.
+
+-# From a contributor who wishes to remain anonymous for now (2023-10-29):
++# From Jule Dabars (2023-10-29):
+ # https://www.dr.dk/nyheder/seneste/i-nat-skal-uret-stilles-en-time-tilbage-men-foerste-gang-sker-det-ikke-i-groenland
+ # with a link to that page:
+ # https://naalakkersuisut.gl/Nyheder/2023/10/2710_sommertid
+@@ -1176,22 +1168,22 @@
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28
+- -3:00 - -03 1980 Apr 6 2:00
+- -3:00 EU -03/-02 1996
++ -3:00 - %z 1980 Apr 6 2:00
++ -3:00 EU %z 1996
+ 0:00 - GMT
+ #
+ # Use the old name Scoresbysund, as the current name Ittoqqortoormiit
+ # exceeds tzdb's 14-letter limit and has no common English abbreviation.
+ Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit
+- -2:00 - -02 1980 Apr 6 2:00
+- -2:00 C-Eur -02/-01 1981 Mar 29
+- -1:00 EU -01/+00 2024 Mar 31
+- -2:00 EU -02/-01
++ -2:00 - %z 1980 Apr 6 2:00
++ -2:00 C-Eur %z 1981 Mar 29
++ -1:00 EU %z 2024 Mar 31
++ -2:00 EU %z
+ Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # Godthåb
+- -3:00 - -03 1980 Apr 6 2:00
+- -3:00 EU -03/-02 2023 Mar 26 1:00u
+- -2:00 - -02 2023 Oct 29 1:00u
+- -2:00 EU -02/-01
++ -3:00 - %z 1980 Apr 6 2:00
++ -3:00 EU %z 2023 Mar 26 1:00u
++ -2:00 - %z 2023 Oct 29 1:00u
++ -2:00 EU %z
+ Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik
+ -4:00 Thule A%sT
+
+@@ -2063,10 +2055,39 @@
+
+ # Portugal
+
+-# From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne:
+-# According to a Portuguese decree (1911-05-26)
+-# https://dre.pt/application/dir/pdf1sdip/1911/05/12500/23132313.pdf
+-# Lisbon was at -0:36:44.68, but switched to GMT on 1912-01-01 at 00:00.
++# From Tim Parenti (2024-07-01), per Alois Treindl (2021-02-07) and Michael
++# Deckers (2021-02-10):
++# http://oal.ul.pt/documentos/2018/01/hl1911a2018.pdf/
++# The Astronomical Observatory of Lisbon has published a list detailing the
++# historical transitions in legal time within continental Portugal. It
++# directly references many decrees and ordinances which are, in turn,
++# referenced below. They can be viewed in the public archives of the Diário da
++# República (until 1976-04-09 known as the Diário do Govêrno) at
++# https://dre.pt/ (in Portuguese).
++#
++# Most of the Rules below have been updated simply to match the Observatory's
++# listing for continental (mainland) Portugal. Although there are over 50
++# referenced decrees and ordinances, only the handful with comments below have
++# been verified against the text, typically to provide additional confidence
++# wherever dates provided by Whitman and Shanks & Pottenger had disagreed.
++# See further below for the Azores and Madeira.
++
++# From Tim Parenti (2024-07-01), per Paul Eggert (2014-08-11), after a
++# heads-up from Stephen Colebourne:
++# According to a 1911-05-24 Portuguese decree, Lisbon was at -0:36:44.68, but
++# switched to GMT on 1912-01-01 at 00:00.
++# https://dre.pt/dr/detalhe/decreto/593090
++# https://dre.pt/application/conteudo/593090
++# The decree made legal time throughout Portugal and her possessions
++# "subordinate to the Greenwich meridian, according to the principle adopted at
++# the Washington Convention in 1884" and eliminated the "difference of five
++# minutes between the internal and external clocks of railway stations".
++#
++# The decree was gazetted in the 1911-05-30 issue of Diário do Govêrno, and is
++# considered to be dated 1911-05-24 by that issue's summary; however, the text
++# of the decree itself is dated 1911-05-26. The Diário da República website
++# notes the discrepancy, but later laws and the Observatory all seem to refer
++# to this decree by the 1911-05-24 date.
+ #
+ # From Michael Deckers (2018-02-15):
+ # article 5 [of the 1911 decree; Deckers's translation] ...:
+@@ -2074,37 +2095,62 @@
+ # according to the 2nd article, the civil day January 1, 1912 begins,
+ # all clocks therefore having to be advanced or set back correspondingly ...
+
+-# From Rui Pedro Salgueiro (1992-11-12):
+-# Portugal has recently (September, 27) changed timezone
+-# (from WET to MET or CET) to harmonize with EEC.
+-#
+-# Martin Bruckmann (1996-02-29) reports via Peter Ilieve
+-# that Portugal is reverting to 0:00 by not moving its clocks this spring.
+-# The new Prime Minister was fed up with getting up in the dark in the winter.
+-#
+-# From Paul Eggert (1996-11-12):
+-# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions
+-# at 02:00u, not 01:00u. Assume that these are typos.
+-# IATA SSIM (1991/1992) reports that the Azores were at -1:00.
+-# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00.
+-# Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
+-# harmonized with EU rules), and that they stayed +0:00 that winter.
+-#
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+-# DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
+-# done every year, depending on what Spain did, because of railroad schedules.
+-# Go with Shanks & Pottenger.
++# From Tim Parenti (2024-07-01), per Paul Eggert (1999-01-30):
++# DSH writes in their history that Decreto 1469 of 1915-03-30 established
++# summer time and that, "despite" this, the change to the clocks was not done
++# every year, depending on what Spain did, because of railroad schedules.
++# In fact, that decree had nothing to do with DST; rather, it regulated the
++# sending of time signals. But we do see linkage to Spain in the 1920s below.
++# https://dre.pt/dr/detalhe/decreto/1469-1915-285721
++# https://dre.pt/application/conteudo/285721
++#
++# According to the Observatory, standard time was first advanced by Decreto
++# 2433 of 1916-06-09 and restored by Decreto 2712 of 1916-10-28. While Whitman
++# gives 1916-10-31 for the latter transition, Shanks & Pottenger agrees more
++# closely with the decree, which stated that its provision "will start sixty
++# minutes after the end of 31 October, according to the current time," i.e.,
++# 01:00 on 1 November.
++# https://dre.pt/dr/detalhe/decreto/2433-1916-267192
++# https://dre.pt/application/conteudo/267192
++# https://dre.pt/dr/detalhe/decreto/2712-1916-590937
++# https://dre.pt/application/conteudo/590937
+ Rule Port 1916 only - Jun 17 23:00 1:00 S
+-# Whitman gives 1916 Oct 31; go with Shanks & Pottenger.
+ Rule Port 1916 only - Nov 1 1:00 0 -
+-Rule Port 1917 only - Feb 28 23:00s 1:00 S
+-Rule Port 1917 1921 - Oct 14 23:00s 0 -
+-Rule Port 1918 only - Mar 1 23:00s 1:00 S
+-Rule Port 1919 only - Feb 28 23:00s 1:00 S
+-Rule Port 1920 only - Feb 29 23:00s 1:00 S
+-Rule Port 1921 only - Feb 28 23:00s 1:00 S
++# From Tim Parenti (2024-07-01):
++# Article 7 of Decreto 2922 of 1916-12-30 stated that "the legal time will be
++# advanced by sixty minutes from 1 March to 31 October." Per Article 15, this
++# came into force from 1917-01-01. Just before the first fall back, Decreto
++# 3446 of 1917-10-11 changed the annual end date to 14 October.
++# https://dre.pt/dr/detalhe/decreto/2922-1916-261894
++# https://dre.pt/application/conteudo/261894
++# https://dre.pt/dr/detalhe/decreto/3446-1917-495161
++# https://dre.pt/application/conteudo/495161
++# This annual change was revoked by Decreto 8038 of 1922-02-18.
++# https://dre.pt/dr/detalhe/decreto/8038-1922-569751
++# https://dre.pt/application/conteudo/569751
++Rule Port 1917 1921 - Mar 1 0:00 1:00 S
++Rule Port 1917 1921 - Oct 14 24:00 0 -
++# From Tim Parenti (2024-07-01):
++# Decreto 9592 of 1924-04-14 noted that "France maintains the advance of legal
++# time in the summer and Spain has now adopted it for the first time" and
++# considered "that the absence of similar measures would cause serious
++# difficulties for international rail connections with consequent repercussions
++# on domestic service hours..." along with "inconvenient analogues...for postal
++# and telegraph services." Summer time would be in effect from 17 April to 4
++# October, with the spring change explicitly specified by bringing clocks
++# forward from 16 April 23:00.
++# https://dre.pt/dr/detalhe/decreto/9592-1924-652133
++# https://dre.pt/application/conteudo/652133
++#
++# Decreto 10700, issued 1925-04-16, noted that Spain had not continued summer
++# time, declared that "the current legal hour prior to 17 April remains
++# unchanged from that day forward", and revoked legislation to the contrary,
++# just a day before summer time would have otherwise resumed.
++# https://dre.pt/dr/detalhe/decreto/10700-1925-437826
++# https://dre.pt/application/conteudo/437826
+ Rule Port 1924 only - Apr 16 23:00s 1:00 S
+-Rule Port 1924 only - Oct 14 23:00s 0 -
++Rule Port 1924 only - Oct 4 23:00s 0 -
+ Rule Port 1926 only - Apr 17 23:00s 1:00 S
+ Rule Port 1926 1929 - Oct Sat>=1 23:00s 0 -
+ Rule Port 1927 only - Apr 9 23:00s 1:00 S
+@@ -2116,6 +2162,8 @@
+ Rule Port 1932 only - Apr 2 23:00s 1:00 S
+ Rule Port 1934 only - Apr 7 23:00s 1:00 S
+ # Whitman gives 1934 Oct 5; go with Shanks & Pottenger.
++# Note: The 1935 law specified 10-06 00:00, not 10-05 24:00, but the following
++# is equivalent and more succinct.
+ Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 -
+ # Shanks & Pottenger give 1935 Apr 30; go with Whitman.
+ Rule Port 1935 only - Mar 30 23:00s 1:00 S
+@@ -2126,10 +2174,19 @@
+ Rule Port 1939 only - Apr 15 23:00s 1:00 S
+ # Whitman gives 1939 Oct 7; go with Shanks & Pottenger.
+ Rule Port 1939 only - Nov 18 23:00s 0 -
++# From Tim Parenti (2024-07-01):
++# Portaria 9465 of 1940-02-17 advanced clocks from Saturday 1940-02-24 23:00.
++# The clocks were restored by Portaria 9658, issued Monday 1940-10-07,
++# effective from 24:00 that very night, which agrees with Shanks & Pottenger;
++# Whitman gives Saturday 1940-10-05 instead.
++# https://dre.pt/dr/detalhe/portaria/9465-1940-189096
++# https://dre.pt/application/conteudo/189096
++# https://dre.pt/dr/detalhe/portaria/9658-1940-196729
++# https://dre.pt/application/conteudo/196729
+ Rule Port 1940 only - Feb 24 23:00s 1:00 S
+-# Shanks & Pottenger give 1940 Oct 7; go with Whitman.
+-Rule Port 1940 1941 - Oct 5 23:00s 0 -
++Rule Port 1940 only - Oct 7 23:00s 0 -
+ Rule Port 1941 only - Apr 5 23:00s 1:00 S
++Rule Port 1941 only - Oct 5 23:00s 0 -
+ Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S
+ Rule Port 1942 only - Apr 25 22:00s 2:00 M # Midsummer
+ Rule Port 1942 only - Aug 15 22:00s 1:00 S
+@@ -2139,66 +2196,195 @@
+ Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 M
+ Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S
+ Rule Port 1946 only - Oct Sat>=1 23:00s 0 -
+-# Whitman says DST was not observed in 1950; go with Shanks & Pottenger.
+-# Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger.
+-Rule Port 1947 1965 - Apr Sun>=1 2:00s 1:00 S
++# From Tim Parenti (2024-07-01), per Alois Treindl (2021-02-07):
++# The Astronomical Observatory of Lisbon cites Portaria 11767 of 1947-03-28 for
++# 1947 and Portaria 12286 of 1948-02-19 for 1948.
++# https://dre.pt/dr/detalhe/portaria/11767-1947-414787
++# https://dre.pt/application/conteudo/414787
++# https://dre.pt/dr/detalhe/portaria/12286-1948-152953
++# https://dre.pt/application/conteudo/152953
++#
++# Although the latter ordinance explicitly had the 1948-10-03 transition
++# scheduled for 02:00 rather than 03:00 as had been used in 1947, Decreto-Lei
++# 37048 of 1948-09-07 recognized "that it is advisable to definitely set...the
++# 'summer time' regime", and fixed the fall transition at 03:00 moving forward.
++# https://dre.pt/dr/detalhe/decreto-lei/37048-1948-373810
++# https://dre.pt/application/conteudo/373810
++# While the Observatory only cites this act for 1949-1965 and not for 1948, it
++# does not appear to have had any provision delaying its effect, so assume that
++# it overrode the prior ordinance for 1948-10-03.
++#
++# Whitman says DST was not observed in 1950 and gives Oct lastSun for 1952 on.
++# The Observatory, however, agrees with Shanks & Pottenger that 1950 was not an
++# exception and that Oct Sun>=1 was maintained through 1965.
++Rule Port 1947 1966 - Apr Sun>=1 2:00s 1:00 S
+ Rule Port 1947 1965 - Oct Sun>=1 2:00s 0 -
+-Rule Port 1977 only - Mar 27 0:00s 1:00 S
+-Rule Port 1977 only - Sep 25 0:00s 0 -
+-Rule Port 1978 1979 - Apr Sun>=1 0:00s 1:00 S
+-Rule Port 1978 only - Oct 1 0:00s 0 -
+-Rule Port 1979 1982 - Sep lastSun 1:00s 0 -
+-Rule Port 1980 only - Mar lastSun 0:00s 1:00 S
+-Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S
+-Rule Port 1983 only - Mar lastSun 2:00s 1:00 S
++# From Tim Parenti (2024-07-01):
++# Decreto-Lei 47233 of 1966-10-01 considered that the "duality" in time was
++# "the cause of serious disturbances" and noted that "the countries with which
++# we have the most frequent contacts...have already adopted" a solution
++# coinciding with the extant "summer time". It established that the former
++# "summer time" would apply year-round on the mainland and adjacent islands
++# with immediate effect, as the fall back would have otherwise occurred later
++# that evening.
++# https://dre.pt/dr/detalhe/decreto-lei/47233-1966-293729
++# Model this by changing zones without changing clocks at the
++# previously-appointed fall back time.
++#
++# Decreto-Lei 309/76 of 1976-04-27 acknowledged that those international
++# contacts had returned to adopting seasonal times, and considered that the
++# year-round advancement "entails considerable sacrifices for the vast majority
++# of the working population during the winter months", including morning
++# visibility concerns for schoolchildren. It specified, beginning 1976-09-26
++# 01:00, an annual return to UT+00 on the mainland from 00:00 UT on Sep lastSun
++# to 00:00 UT on Mar lastSun (unless the latter date fell on Easter, in which
++# case it was to be brought forward to the preceding Sunday). It also assigned
++# the Permanent Time Commission to study and propose revisions for the Azores
++# and Madeira, neither of which resumed DST until 1982 (as described further
++# below).
++# https://dre.pt/dr/detalhe/decreto-lei/309-1976-502063
++Rule Port 1976 only - Sep lastSun 1:00 0 -
++Rule Port 1977 only - Mar lastSun 0:00s 1:00 S
++Rule Port 1977 only - Sep lastSun 0:00s 0 -
++# From Tim Parenti (2024-07-01):
++# Beginning in 1978, rather than triggering the Easter rule of the 1976 decree
++# (Easter fell on 1978-03-26), Article 5 was used instead, which allowed DST
++# dates to be changed by order of the Minister of Education and Scientific
++# Research, upon consultation with the Permanent Time Commission, "whenever
++# considered convenient." As such, a series of one-off ordinances were
++# promulgated for the mainland in 1978 through 1980, after which the 1976
++# decree naturally came back into force from 1981.
++Rule Port 1978 1980 - Apr Sun>=1 1:00s 1:00 S
++Rule Port 1978 only - Oct 1 1:00s 0 -
++Rule Port 1979 1980 - Sep lastSun 1:00s 0 -
++Rule Port 1981 1986 - Mar lastSun 0:00s 1:00 S
++Rule Port 1981 1985 - Sep lastSun 0:00s 0 -
++# From Tim Parenti (2024-07-01):
++# Decreto-Lei 44-B/86 of 1986-03-07 switched mainland Portugal's transition
++# times from 0:00s to 1:00u to harmonize with the EEC from 1986-03-30.
++# https://dre.pt/dr/detalhe/decreto-lei/44-b-1986-628280
++# (Transitions of 1:00s as previously reported and used by the W-Eur rules,
++# though equivalent, appear to have been fiction here.) Madeira continued to
++# use 0:00s for spring 1986 before joining with the mainland using 1:00u in the
++# fall; meanwhile, in the Azores the two were equivalent, so the law specifying
++# 0:00s wasn't touched until 1992. (See below for more on the islands.)
++#
++# From Rui Pedro Salgueiro (1992-11-12):
++# Portugal has recently (September, 27) changed timezone
++# (from WET to MET or CET) to harmonize with EEC.
++#
++# Martin Bruckmann (1996-02-29) reports via Peter Ilieve
++# that Portugal is reverting to 0:00 by not moving its clocks this spring.
++# The new Prime Minister was fed up with getting up in the dark in the winter.
++#
++# From Paul Eggert (1996-11-12):
++# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions
++# at 02:00u, not 01:00u. Assume that these are typos.
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ #STDOFF -0:36:44.68
+ Zone Europe/Lisbon -0:36:45 - LMT 1884
+ -0:36:45 - LMT 1912 Jan 1 0:00u # Lisbon MT
+- 0:00 Port WE%sT 1966 Apr 3 2:00
++ 0:00 Port WE%sT 1966 Oct 2 2:00s
+ 1:00 - CET 1976 Sep 26 1:00
+- 0:00 Port WE%sT 1983 Sep 25 1:00s
+- 0:00 W-Eur WE%sT 1992 Sep 27 1:00s
++ 0:00 Port WE%sT 1986
++ 0:00 EU WE%sT 1992 Sep 27 1:00u
+ 1:00 EU CE%sT 1996 Mar 31 1:00u
+ 0:00 EU WE%sT
++
++# From Tim Parenti (2024-07-01):
++# For the Azores and Madeira, legislation was followed from the laws currently
++# in force as listed at:
++# https://oal.ul.pt/hora-legal/legislacao/
++# working backward through references of revocation and abrogation to
++# Decreto-Lei 47233 of 1966-10-01, the last time DST was abolished across the
++# mainland and its adjacent islands. Because of that reference, it is
++# therefore assumed that DST rules in the islands prior to 1966 were like that
++# of the mainland, though most legislation of the time didn't explicitly
++# specify DST practices for the islands.
+ Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada
+ -1:54:32 - HMT 1912 Jan 1 2:00u # Horta MT
+ # Vanguard section, for zic and other parsers that support %z.
+-# -2:00 Port %z 1966 Apr 3 2:00
+-# -1:00 Port %z 1983 Sep 25 1:00s
+-# -1:00 W-Eur %z 1992 Sep 27 1:00s
++ -2:00 Port %z 1966 Oct 2 2:00s
++# From Tim Parenti (2024-07-01):
++# While Decreto-Lei 309/76 of 1976-04-27 reintroduced DST on the mainland by
++# falling back on 1976-09-26, it assigned the Permanent Time Commission to
++# study and propose revisions for the Azores and Madeira. Decreto Regional
++# 9/77/A of 1977-05-17 affirmed that "the legal time remained unchanged in the
++# Azores" at UT-1, and would remain there year-round.
++# https://dre.pt/dr/detalhe/decreto-regional/9-1977-252066
++#
++# Decreto Regional 2/82/A, published 1982-03-02, adopted DST in the same
++# fashion as the mainland used at the time.
++# https://dre.pt/dr/detalhe/decreto-regional/2-1982-599965
++# Though transitions in the Azores officially remained at 0:00s through 1992,
++# this was equivalent to the EU-style 1:00u adopted by the mainland in 1986, so
++# model it as such.
++ -1:00 - %z 1982 Mar 28 0:00s
++ -1:00 Port %z 1986
+ # Rearguard section, for parsers lacking %z; see ziguard.awk.
+- -2:00 Port -02/-01 1942 Apr 25 22:00s
+- -2:00 Port +00 1942 Aug 15 22:00s
+- -2:00 Port -02/-01 1943 Apr 17 22:00s
+- -2:00 Port +00 1943 Aug 28 22:00s
+- -2:00 Port -02/-01 1944 Apr 22 22:00s
+- -2:00 Port +00 1944 Aug 26 22:00s
+- -2:00 Port -02/-01 1945 Apr 21 22:00s
+- -2:00 Port +00 1945 Aug 25 22:00s
+- -2:00 Port -02/-01 1966 Apr 3 2:00
+- -1:00 Port -01/+00 1983 Sep 25 1:00s
+- -1:00 W-Eur -01/+00 1992 Sep 27 1:00s
++# -2:00 Port -02/-01 1942 Apr 25 22:00s
++# -2:00 Port +00 1942 Aug 15 22:00s
++# -2:00 Port -02/-01 1943 Apr 17 22:00s
++# -2:00 Port +00 1943 Aug 28 22:00s
++# -2:00 Port -02/-01 1944 Apr 22 22:00s
++# -2:00 Port +00 1944 Aug 26 22:00s
++# -2:00 Port -02/-01 1945 Apr 21 22:00s
++# -2:00 Port +00 1945 Aug 25 22:00s
++# -2:00 Port -02/-01 1966 Oct 2 2:00s
++# -1:00 - -01 1982 Mar 28 0:00s
++# -1:00 Port -01/+00 1986
+ # End of rearguard section.
+- 0:00 EU WE%sT 1993 Mar 28 1:00u
+- -1:00 EU -01/+00
++#
++# From Paul Eggert (1996-11-12):
++# IATA SSIM (1991/1992) reports that the Azores were at -1:00.
++# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00.
++#
++# From Tim Parenti (2024-07-01):
++# After mainland Portugal had shifted forward an hour from 1992-09-27, Decreto
++# Legislativo Regional 29/92/A of 1992-12-23 sought to "reduce the time
++# difference" by shifting the Azores forward as well from 1992-12-27. Just six
++# months later, this was revoked by Decreto Legislativo Regional 9/93/A, citing
++# "major changes in work habits and way of life." Though the revocation didn't
++# give a transition time, it was signed Wednesday 1993-06-16; assume it took
++# effect later that evening, and that an EU-style spring forward (to +01) was
++# still observed in the interim on 1993-03-28.
++# https://dre.pt/dr/detalhe/decreto-legislativo-regional/29-1992-621553
++# https://dre.pt/dr/detalhe/decreto-legislativo-regional/9-1993-389633
++ -1:00 EU %z 1992 Dec 27 1:00s
++ 0:00 EU WE%sT 1993 Jun 17 1:00u
++ -1:00 EU %z
++
+ Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal
+ -1:07:36 - FMT 1912 Jan 1 1:00u # Funchal MT
+ # Vanguard section, for zic and other parsers that support %z.
+-# -1:00 Port %z 1966 Apr 3 2:00
++ -1:00 Port %z 1966 Oct 2 2:00s
+ # Rearguard section, for parsers lacking %z; see ziguard.awk.
+- -1:00 Port -01/+00 1942 Apr 25 22:00s
+- -1:00 Port +01 1942 Aug 15 22:00s
+- -1:00 Port -01/+00 1943 Apr 17 22:00s
+- -1:00 Port +01 1943 Aug 28 22:00s
+- -1:00 Port -01/+00 1944 Apr 22 22:00s
+- -1:00 Port +01 1944 Aug 26 22:00s
+- -1:00 Port -01/+00 1945 Apr 21 22:00s
+- -1:00 Port +01 1945 Aug 25 22:00s
+- -1:00 Port -01/+00 1966 Apr 3 2:00
++# -1:00 Port -01/+00 1942 Apr 25 22:00s
++# -1:00 Port +01 1942 Aug 15 22:00s
++# -1:00 Port -01/+00 1943 Apr 17 22:00s
++# -1:00 Port +01 1943 Aug 28 22:00s
++# -1:00 Port -01/+00 1944 Apr 22 22:00s
++# -1:00 Port +01 1944 Aug 26 22:00s
++# -1:00 Port -01/+00 1945 Apr 21 22:00s
++# -1:00 Port +01 1945 Aug 25 22:00s
++# -1:00 Port -01/+00 1966 Oct 2 2:00s
+ # End of rearguard section.
+- 0:00 Port WE%sT 1983 Sep 25 1:00s
++#
++# From Tim Parenti (2024-07-01):
++# Decreto Regional 5/82/M, published 1982-04-03, established DST transitions at
++# 0:00u, which for Madeira is equivalent to the mainland's rules (0:00s) at the
++# time. It came into effect the day following its publication, Sunday
++# 1982-04-04, thus resuming Madeira's DST practice about a week later than the
++# mainland and the Azores.
++# https://dre.pt/dr/detalhe/decreto-regional/5-1982-608273
++#
++# Decreto Legislativo Regional 18/86/M, published 1986-10-01, adopted EU-style
++# rules (1:00u) and entered into immediate force after being signed on
++# 1986-07-31.
++# https://dre.pt/dr/detalhe/decreto-legislativo-regional/18-1986-221705
++ 0:00 - WET 1982 Apr 4
++ 0:00 Port WE%sT 1986 Jul 31
+ 0:00 EU WE%sT
+
+ # Romania
+@@ -2410,7 +2596,7 @@
+ 2:00 Poland EE%sT 1946 Apr 7
+ 3:00 Russia MSK/MSD 1989 Mar 26 2:00s
+ 2:00 Russia EE%sT 2011 Mar 27 2:00s
+- 3:00 - +03 2014 Oct 26 2:00s
++ 3:00 - %z 2014 Oct 26 2:00s
+ 2:00 - EET
+
+
+@@ -2660,14 +2846,14 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201602150056
+
+ Zone Europe/Astrakhan 3:12:12 - LMT 1924 May
+- 3:00 - +03 1930 Jun 21
+- 4:00 Russia +04/+05 1989 Mar 26 2:00s
+- 3:00 Russia +03/+04 1991 Mar 31 2:00s
+- 4:00 - +04 1992 Mar 29 2:00s
+- 3:00 Russia +03/+04 2011 Mar 27 2:00s
+- 4:00 - +04 2014 Oct 26 2:00s
+- 3:00 - +03 2016 Mar 27 2:00s
+- 4:00 - +04
++ 3:00 - %z 1930 Jun 21
++ 4:00 Russia %z 1989 Mar 26 2:00s
++ 3:00 Russia %z 1991 Mar 31 2:00s
++ 4:00 - %z 1992 Mar 29 2:00s
++ 3:00 Russia %z 2011 Mar 27 2:00s
++ 4:00 - %z 2014 Oct 26 2:00s
++ 3:00 - %z 2016 Mar 27 2:00s
++ 4:00 - %z
+
+ # From Paul Eggert (2016-11-11):
+ # Europe/Volgograd covers:
+@@ -2697,15 +2883,15 @@
+ # http://publication.pravo.gov.ru/Document/View/0001202012220002
+
+ Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3
+- 3:00 - +03 1930 Jun 21
+- 4:00 - +04 1961 Nov 11
+- 4:00 Russia +04/+05 1988 Mar 27 2:00s
++ 3:00 - %z 1930 Jun 21
++ 4:00 - %z 1961 Nov 11
++ 4:00 Russia %z 1988 Mar 27 2:00s
+ 3:00 Russia MSK/MSD 1991 Mar 31 2:00s
+- 4:00 - +04 1992 Mar 29 2:00s
++ 4:00 - %z 1992 Mar 29 2:00s
+ 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
+ 4:00 - MSK 2014 Oct 26 2:00s
+ 3:00 - MSK 2018 Oct 28 2:00s
+- 4:00 - +04 2020 Dec 27 2:00s
++ 4:00 - %z 2020 Dec 27 2:00s
+ 3:00 - MSK
+
+ # From Paul Eggert (2016-11-11):
+@@ -2720,14 +2906,14 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201611220031
+
+ Zone Europe/Saratov 3:04:18 - LMT 1919 Jul 1 0:00u
+- 3:00 - +03 1930 Jun 21
+- 4:00 Russia +04/+05 1988 Mar 27 2:00s
+- 3:00 Russia +03/+04 1991 Mar 31 2:00s
+- 4:00 - +04 1992 Mar 29 2:00s
+- 3:00 Russia +03/+04 2011 Mar 27 2:00s
+- 4:00 - +04 2014 Oct 26 2:00s
+- 3:00 - +03 2016 Dec 4 2:00s
+- 4:00 - +04
++ 3:00 - %z 1930 Jun 21
++ 4:00 Russia %z 1988 Mar 27 2:00s
++ 3:00 Russia %z 1991 Mar 31 2:00s
++ 4:00 - %z 1992 Mar 29 2:00s
++ 3:00 Russia %z 2011 Mar 27 2:00s
++ 4:00 - %z 2014 Oct 26 2:00s
++ 3:00 - %z 2016 Dec 4 2:00s
++ 4:00 - %z
+
+ # From Paul Eggert (2016-03-18):
+ # Europe/Kirov covers:
+@@ -2735,10 +2921,10 @@
+ # The 1989 transition is from USSR act No. 227 (1989-03-14).
+ #
+ Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u
+- 3:00 - +03 1930 Jun 21
+- 4:00 Russia +04/+05 1989 Mar 26 2:00s
++ 3:00 - %z 1930 Jun 21
++ 4:00 Russia %z 1989 Mar 26 2:00s
+ 3:00 Russia MSK/MSD 1991 Mar 31 2:00s
+- 4:00 - +04 1992 Mar 29 2:00s
++ 4:00 - %z 1992 Mar 29 2:00s
+ 3:00 Russia MSK/MSD 2011 Mar 27 2:00s
+ 4:00 - MSK 2014 Oct 26 2:00s
+ 3:00 - MSK
+@@ -2753,15 +2939,15 @@
+ # The 1989 transition is from USSR act No. 227 (1989-03-14).
+
+ Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 0:00u
+- 3:00 - +03 1930 Jun 21
+- 4:00 - +04 1935 Jan 27
+- 4:00 Russia +04/+05 1989 Mar 26 2:00s
+- 3:00 Russia +03/+04 1991 Mar 31 2:00s
+- 2:00 Russia +02/+03 1991 Sep 29 2:00s
+- 3:00 - +03 1991 Oct 20 3:00
+- 4:00 Russia +04/+05 2010 Mar 28 2:00s
+- 3:00 Russia +03/+04 2011 Mar 27 2:00s
+- 4:00 - +04
++ 3:00 - %z 1930 Jun 21
++ 4:00 - %z 1935 Jan 27
++ 4:00 Russia %z 1989 Mar 26 2:00s
++ 3:00 Russia %z 1991 Mar 31 2:00s
++ 2:00 Russia %z 1991 Sep 29 2:00s
++ 3:00 - %z 1991 Oct 20 3:00
++ 4:00 Russia %z 2010 Mar 28 2:00s
++ 3:00 Russia %z 2011 Mar 27 2:00s
++ 4:00 - %z
+
+ # From Paul Eggert (2016-03-18):
+ # Europe/Ulyanovsk covers:
+@@ -2777,14 +2963,14 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201603090051
+
+ Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0:00u
+- 3:00 - +03 1930 Jun 21
+- 4:00 Russia +04/+05 1989 Mar 26 2:00s
+- 3:00 Russia +03/+04 1991 Mar 31 2:00s
+- 2:00 Russia +02/+03 1992 Jan 19 2:00s
+- 3:00 Russia +03/+04 2011 Mar 27 2:00s
+- 4:00 - +04 2014 Oct 26 2:00s
+- 3:00 - +03 2016 Mar 27 2:00s
+- 4:00 - +04
++ 3:00 - %z 1930 Jun 21
++ 4:00 Russia %z 1989 Mar 26 2:00s
++ 3:00 Russia %z 1991 Mar 31 2:00s
++ 2:00 Russia %z 1992 Jan 19 2:00s
++ 3:00 Russia %z 2011 Mar 27 2:00s
++ 4:00 - %z 2014 Oct 26 2:00s
++ 3:00 - %z 2016 Mar 27 2:00s
++ 4:00 - %z
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
+ # Asia/Yekaterinburg covers...
+@@ -2809,12 +2995,12 @@
+ #STDOFF 4:02:32.9
+ Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3
+ 3:45:05 - PMT 1919 Jul 15 4:00
+- 4:00 - +04 1930 Jun 21
+- 5:00 Russia +05/+06 1991 Mar 31 2:00s
+- 4:00 Russia +04/+05 1992 Jan 19 2:00s
+- 5:00 Russia +05/+06 2011 Mar 27 2:00s
+- 6:00 - +06 2014 Oct 26 2:00s
+- 5:00 - +05
++ 4:00 - %z 1930 Jun 21
++ 5:00 Russia %z 1991 Mar 31 2:00s
++ 4:00 Russia %z 1992 Jan 19 2:00s
++ 5:00 Russia %z 2011 Mar 27 2:00s
++ 6:00 - %z 2014 Oct 26 2:00s
++ 5:00 - %z
+
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
+@@ -2824,12 +3010,12 @@
+ # Byalokoz 1919 says Omsk was 4:53:30.
+
+ Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14
+- 5:00 - +05 1930 Jun 21
+- 6:00 Russia +06/+07 1991 Mar 31 2:00s
+- 5:00 Russia +05/+06 1992 Jan 19 2:00s
+- 6:00 Russia +06/+07 2011 Mar 27 2:00s
+- 7:00 - +07 2014 Oct 26 2:00s
+- 6:00 - +06
++ 5:00 - %z 1930 Jun 21
++ 6:00 Russia %z 1991 Mar 31 2:00s
++ 5:00 Russia %z 1992 Jan 19 2:00s
++ 6:00 Russia %z 2011 Mar 27 2:00s
++ 7:00 - %z 2014 Oct 26 2:00s
++ 6:00 - %z
+
+ # From Paul Eggert (2016-02-22):
+ # Asia/Barnaul covers:
+@@ -2862,14 +3048,14 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201603090038
+
+ Zone Asia/Barnaul 5:35:00 - LMT 1919 Dec 10
+- 6:00 - +06 1930 Jun 21
+- 7:00 Russia +07/+08 1991 Mar 31 2:00s
+- 6:00 Russia +06/+07 1992 Jan 19 2:00s
+- 7:00 Russia +07/+08 1995 May 28
+- 6:00 Russia +06/+07 2011 Mar 27 2:00s
+- 7:00 - +07 2014 Oct 26 2:00s
+- 6:00 - +06 2016 Mar 27 2:00s
+- 7:00 - +07
++ 6:00 - %z 1930 Jun 21
++ 7:00 Russia %z 1991 Mar 31 2:00s
++ 6:00 Russia %z 1992 Jan 19 2:00s
++ 7:00 Russia %z 1995 May 28
++ 6:00 Russia %z 2011 Mar 27 2:00s
++ 7:00 - %z 2014 Oct 26 2:00s
++ 6:00 - %z 2016 Mar 27 2:00s
++ 7:00 - %z
+
+ # From Paul Eggert (2016-03-18):
+ # Asia/Novosibirsk covers:
+@@ -2883,14 +3069,14 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201607040064
+
+ Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00
+- 6:00 - +06 1930 Jun 21
+- 7:00 Russia +07/+08 1991 Mar 31 2:00s
+- 6:00 Russia +06/+07 1992 Jan 19 2:00s
+- 7:00 Russia +07/+08 1993 May 23 # say Shanks & P.
+- 6:00 Russia +06/+07 2011 Mar 27 2:00s
+- 7:00 - +07 2014 Oct 26 2:00s
+- 6:00 - +06 2016 Jul 24 2:00s
+- 7:00 - +07
++ 6:00 - %z 1930 Jun 21
++ 7:00 Russia %z 1991 Mar 31 2:00s
++ 6:00 Russia %z 1992 Jan 19 2:00s
++ 7:00 Russia %z 1993 May 23 # say Shanks & P.
++ 6:00 Russia %z 2011 Mar 27 2:00s
++ 7:00 - %z 2014 Oct 26 2:00s
++ 6:00 - %z 2016 Jul 24 2:00s
++ 7:00 - %z
+
+ # From Paul Eggert (2016-03-18):
+ # Asia/Tomsk covers:
+@@ -2935,14 +3121,14 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201604260048
+
+ Zone Asia/Tomsk 5:39:51 - LMT 1919 Dec 22
+- 6:00 - +06 1930 Jun 21
+- 7:00 Russia +07/+08 1991 Mar 31 2:00s
+- 6:00 Russia +06/+07 1992 Jan 19 2:00s
+- 7:00 Russia +07/+08 2002 May 1 3:00
+- 6:00 Russia +06/+07 2011 Mar 27 2:00s
+- 7:00 - +07 2014 Oct 26 2:00s
+- 6:00 - +06 2016 May 29 2:00s
+- 7:00 - +07
++ 6:00 - %z 1930 Jun 21
++ 7:00 Russia %z 1991 Mar 31 2:00s
++ 6:00 Russia %z 1992 Jan 19 2:00s
++ 7:00 Russia %z 2002 May 1 3:00
++ 6:00 Russia %z 2011 Mar 27 2:00s
++ 7:00 - %z 2014 Oct 26 2:00s
++ 6:00 - %z 2016 May 29 2:00s
++ 7:00 - %z
+
+
+ # From Tim Parenti (2014-07-03):
+@@ -2973,12 +3159,12 @@
+ # realigning itself with KRAT.
+
+ Zone Asia/Novokuznetsk 5:48:48 - LMT 1924 May 1
+- 6:00 - +06 1930 Jun 21
+- 7:00 Russia +07/+08 1991 Mar 31 2:00s
+- 6:00 Russia +06/+07 1992 Jan 19 2:00s
+- 7:00 Russia +07/+08 2010 Mar 28 2:00s
+- 6:00 Russia +06/+07 2011 Mar 27 2:00s
+- 7:00 - +07
++ 6:00 - %z 1930 Jun 21
++ 7:00 Russia %z 1991 Mar 31 2:00s
++ 6:00 Russia %z 1992 Jan 19 2:00s
++ 7:00 Russia %z 2010 Mar 28 2:00s
++ 6:00 Russia %z 2011 Mar 27 2:00s
++ 7:00 - %z
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
+ # Asia/Krasnoyarsk covers...
+@@ -2992,12 +3178,12 @@
+ # Byalokoz 1919 says Krasnoyarsk was 6:11:26.
+
+ Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6
+- 6:00 - +06 1930 Jun 21
+- 7:00 Russia +07/+08 1991 Mar 31 2:00s
+- 6:00 Russia +06/+07 1992 Jan 19 2:00s
+- 7:00 Russia +07/+08 2011 Mar 27 2:00s
+- 8:00 - +08 2014 Oct 26 2:00s
+- 7:00 - +07
++ 6:00 - %z 1930 Jun 21
++ 7:00 Russia %z 1991 Mar 31 2:00s
++ 6:00 Russia %z 1992 Jan 19 2:00s
++ 7:00 Russia %z 2011 Mar 27 2:00s
++ 8:00 - %z 2014 Oct 26 2:00s
++ 7:00 - %z
+
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
+@@ -3014,12 +3200,12 @@
+
+ Zone Asia/Irkutsk 6:57:05 - LMT 1880
+ 6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time
+- 7:00 - +07 1930 Jun 21
+- 8:00 Russia +08/+09 1991 Mar 31 2:00s
+- 7:00 Russia +07/+08 1992 Jan 19 2:00s
+- 8:00 Russia +08/+09 2011 Mar 27 2:00s
+- 9:00 - +09 2014 Oct 26 2:00s
+- 8:00 - +08
++ 7:00 - %z 1930 Jun 21
++ 8:00 Russia %z 1991 Mar 31 2:00s
++ 7:00 Russia %z 1992 Jan 19 2:00s
++ 8:00 Russia %z 2011 Mar 27 2:00s
++ 9:00 - %z 2014 Oct 26 2:00s
++ 8:00 - %z
+
+
+ # From Tim Parenti (2014-07-06):
+@@ -3036,13 +3222,13 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201512300107
+
+ Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15
+- 8:00 - +08 1930 Jun 21
+- 9:00 Russia +09/+10 1991 Mar 31 2:00s
+- 8:00 Russia +08/+09 1992 Jan 19 2:00s
+- 9:00 Russia +09/+10 2011 Mar 27 2:00s
+- 10:00 - +10 2014 Oct 26 2:00s
+- 8:00 - +08 2016 Mar 27 2:00
+- 9:00 - +09
++ 8:00 - %z 1930 Jun 21
++ 9:00 Russia %z 1991 Mar 31 2:00s
++ 8:00 Russia %z 1992 Jan 19 2:00s
++ 9:00 Russia %z 2011 Mar 27 2:00s
++ 10:00 - %z 2014 Oct 26 2:00s
++ 8:00 - %z 2016 Mar 27 2:00
++ 9:00 - %z
+
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
+@@ -3082,12 +3268,12 @@
+ # Byalokoz 1919 says Yakutsk was 8:38:58.
+
+ Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15
+- 8:00 - +08 1930 Jun 21
+- 9:00 Russia +09/+10 1991 Mar 31 2:00s
+- 8:00 Russia +08/+09 1992 Jan 19 2:00s
+- 9:00 Russia +09/+10 2011 Mar 27 2:00s
+- 10:00 - +10 2014 Oct 26 2:00s
+- 9:00 - +09
++ 8:00 - %z 1930 Jun 21
++ 9:00 Russia %z 1991 Mar 31 2:00s
++ 8:00 Russia %z 1992 Jan 19 2:00s
++ 9:00 Russia %z 2011 Mar 27 2:00s
++ 10:00 - %z 2014 Oct 26 2:00s
++ 9:00 - %z
+
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
+@@ -3105,12 +3291,12 @@
+ # Go with Byalokoz.
+
+ Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15
+- 9:00 - +09 1930 Jun 21
+- 10:00 Russia +10/+11 1991 Mar 31 2:00s
+- 9:00 Russia +09/+10 1992 Jan 19 2:00s
+- 10:00 Russia +10/+11 2011 Mar 27 2:00s
+- 11:00 - +11 2014 Oct 26 2:00s
+- 10:00 - +10
++ 9:00 - %z 1930 Jun 21
++ 10:00 Russia %z 1991 Mar 31 2:00s
++ 9:00 Russia %z 1992 Jan 19 2:00s
++ 10:00 Russia %z 2011 Mar 27 2:00s
++ 11:00 - %z 2014 Oct 26 2:00s
++ 10:00 - %z
+
+
+ # From Tim Parenti (2014-07-03):
+@@ -3128,14 +3314,14 @@
+ # This transition is no doubt wrong, but we have no better info.
+
+ Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15
+- 8:00 - +08 1930 Jun 21
+- 9:00 Russia +09/+10 1991 Mar 31 2:00s
+- 8:00 Russia +08/+09 1992 Jan 19 2:00s
+- 9:00 Russia +09/+10 2004
+- 10:00 Russia +10/+11 2011 Mar 27 2:00s
+- 11:00 - +11 2011 Sep 13 0:00s # Decree 725?
+- 10:00 - +10 2014 Oct 26 2:00s
+- 9:00 - +09
++ 8:00 - %z 1930 Jun 21
++ 9:00 Russia %z 1991 Mar 31 2:00s
++ 8:00 Russia %z 1992 Jan 19 2:00s
++ 9:00 Russia %z 2004
++ 10:00 Russia %z 2011 Mar 27 2:00s
++ 11:00 - %z 2011 Sep 13 0:00s # Decree 725?
++ 10:00 - %z 2014 Oct 26 2:00s
++ 9:00 - %z
+
+
+ # From Tim Parenti (2014-07-03):
+@@ -3151,14 +3337,14 @@
+
+ # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long.
+ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
+- 9:00 - +09 1945 Aug 25
+- 11:00 Russia +11/+12 1991 Mar 31 2:00s # Sakhalin T
+- 10:00 Russia +10/+11 1992 Jan 19 2:00s
+- 11:00 Russia +11/+12 1997 Mar lastSun 2:00s
+- 10:00 Russia +10/+11 2011 Mar 27 2:00s
+- 11:00 - +11 2014 Oct 26 2:00s
+- 10:00 - +10 2016 Mar 27 2:00s
+- 11:00 - +11
++ 9:00 - %z 1945 Aug 25
++ 11:00 Russia %z 1991 Mar 31 2:00s # Sakhalin T
++ 10:00 Russia %z 1992 Jan 19 2:00s
++ 11:00 Russia %z 1997 Mar lastSun 2:00s
++ 10:00 Russia %z 2011 Mar 27 2:00s
++ 11:00 - %z 2014 Oct 26 2:00s
++ 10:00 - %z 2016 Mar 27 2:00s
++ 11:00 - %z
+
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
+@@ -3181,13 +3367,13 @@
+ # http://publication.pravo.gov.ru/Document/View/0001201604050038
+
+ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
+- 10:00 - +10 1930 Jun 21 # Magadan Time
+- 11:00 Russia +11/+12 1991 Mar 31 2:00s
+- 10:00 Russia +10/+11 1992 Jan 19 2:00s
+- 11:00 Russia +11/+12 2011 Mar 27 2:00s
+- 12:00 - +12 2014 Oct 26 2:00s
+- 10:00 - +10 2016 Apr 24 2:00s
+- 11:00 - +11
++ 10:00 - %z 1930 Jun 21 # Magadan Time
++ 11:00 Russia %z 1991 Mar 31 2:00s
++ 10:00 Russia %z 1992 Jan 19 2:00s
++ 11:00 Russia %z 2011 Mar 27 2:00s
++ 12:00 - %z 2014 Oct 26 2:00s
++ 10:00 - %z 2016 Apr 24 2:00s
++ 11:00 - %z
+
+
+ # From Tim Parenti (2014-07-06):
+@@ -3232,12 +3418,12 @@
+ # Go with Srednekolymsk.
+
+ Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2
+- 10:00 - +10 1930 Jun 21
+- 11:00 Russia +11/+12 1991 Mar 31 2:00s
+- 10:00 Russia +10/+11 1992 Jan 19 2:00s
+- 11:00 Russia +11/+12 2011 Mar 27 2:00s
+- 12:00 - +12 2014 Oct 26 2:00s
+- 11:00 - +11
++ 10:00 - %z 1930 Jun 21
++ 11:00 Russia %z 1991 Mar 31 2:00s
++ 10:00 Russia %z 1992 Jan 19 2:00s
++ 11:00 Russia %z 2011 Mar 27 2:00s
++ 12:00 - %z 2014 Oct 26 2:00s
++ 11:00 - %z
+
+
+ # From Tim Parenti (2014-07-03):
+@@ -3255,14 +3441,14 @@
+ # UTC+12 since at least then, too.
+
+ Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15
+- 8:00 - +08 1930 Jun 21
+- 9:00 Russia +09/+10 1981 Apr 1
+- 11:00 Russia +11/+12 1991 Mar 31 2:00s
+- 10:00 Russia +10/+11 1992 Jan 19 2:00s
+- 11:00 Russia +11/+12 2011 Mar 27 2:00s
+- 12:00 - +12 2011 Sep 13 0:00s # Decree 725?
+- 11:00 - +11 2014 Oct 26 2:00s
+- 10:00 - +10
++ 8:00 - %z 1930 Jun 21
++ 9:00 Russia %z 1981 Apr 1
++ 11:00 Russia %z 1991 Mar 31 2:00s
++ 10:00 Russia %z 1992 Jan 19 2:00s
++ 11:00 Russia %z 2011 Mar 27 2:00s
++ 12:00 - %z 2011 Sep 13 0:00s # Decree 725?
++ 11:00 - %z 2014 Oct 26 2:00s
++ 10:00 - %z
+
+
+ # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
+@@ -3275,12 +3461,12 @@
+ # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps
+ # Asia/Petropavlovsk-Kamchatsky, but these are too long.
+ Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10
+- 11:00 - +11 1930 Jun 21
+- 12:00 Russia +12/+13 1991 Mar 31 2:00s
+- 11:00 Russia +11/+12 1992 Jan 19 2:00s
+- 12:00 Russia +12/+13 2010 Mar 28 2:00s
+- 11:00 Russia +11/+12 2011 Mar 27 2:00s
+- 12:00 - +12
++ 11:00 - %z 1930 Jun 21
++ 12:00 Russia %z 1991 Mar 31 2:00s
++ 11:00 Russia %z 1992 Jan 19 2:00s
++ 12:00 Russia %z 2010 Mar 28 2:00s
++ 11:00 Russia %z 2011 Mar 27 2:00s
++ 12:00 - %z
+
+
+ # From Tim Parenti (2014-07-03):
+@@ -3288,13 +3474,13 @@
+ # 87 RU-CHU Chukotka Autonomous Okrug
+
+ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
+- 12:00 - +12 1930 Jun 21
+- 13:00 Russia +13/+14 1982 Apr 1 0:00s
+- 12:00 Russia +12/+13 1991 Mar 31 2:00s
+- 11:00 Russia +11/+12 1992 Jan 19 2:00s
+- 12:00 Russia +12/+13 2010 Mar 28 2:00s
+- 11:00 Russia +11/+12 2011 Mar 27 2:00s
+- 12:00 - +12
++ 12:00 - %z 1930 Jun 21
++ 13:00 Russia %z 1982 Apr 1 0:00s
++ 12:00 Russia %z 1991 Mar 31 2:00s
++ 11:00 Russia %z 1992 Jan 19 2:00s
++ 12:00 Russia %z 2010 Mar 28 2:00s
++ 11:00 Russia %z 2011 Mar 27 2:00s
++ 12:00 - %z
+
+ # Bosnia & Herzegovina
+ # Croatia
+@@ -3413,7 +3599,7 @@
+ 1:00 - CET 1986
+ 1:00 EU CE%sT
+ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C.
+- -1:00 - -01 1946 Sep 30 1:00
++ -1:00 - %z 1946 Sep 30 1:00
+ 0:00 - WET 1980 Apr 6 0:00s
+ 0:00 1:00 WEST 1980 Sep 28 1:00u
+ 0:00 EU WE%sT
+@@ -3494,8 +3680,8 @@
+ # but if no one is present after 11 at night, could be postponed until one
+ # hour before the beginning of service.
+
+-# From Paul Eggert (2013-09-11):
+-# Round BMT to the nearest even second, 0:29:46.
++# From Paul Eggert (2024-05-24):
++# Express BMT as 0:29:45.500, approximately the same precision 7° 26' 22.50".
+ #
+ # We can find no reliable source for Shanks's assertion that all of Switzerland
+ # except Geneva switched to Bern Mean Time at 00:00 on 1848-09-12. This book:
+@@ -3534,6 +3720,7 @@
+ Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
++ #STDOFF 0:29:45.500
+ 0:29:46 - BMT 1894 Jun # Bern Mean Time
+ 1:00 Swiss CE%sT 1981
+ 1:00 EU CE%sT
+@@ -3731,7 +3918,7 @@
+ Zone Europe/Istanbul 1:55:52 - LMT 1880
+ 1:56:56 - IMT 1910 Oct # Istanbul Mean Time?
+ 2:00 Turkey EE%sT 1978 Jun 29
+- 3:00 Turkey +03/+04 1984 Nov 1 2:00
++ 3:00 Turkey %z 1984 Nov 1 2:00
+ 2:00 Turkey EE%sT 2007
+ 2:00 EU EE%sT 2011 Mar 27 1:00u
+ 2:00 - EET 2011 Mar 28 1:00u
+@@ -3740,7 +3927,7 @@
+ 2:00 EU EE%sT 2015 Oct 25 1:00u
+ 2:00 1:00 EEST 2015 Nov 8 1:00u
+ 2:00 EU EE%sT 2016 Sep 7
+- 3:00 - +03
++ 3:00 - %z
+
+ # Ukraine
+ #
+--- contrib/tzdata/factory.orig
++++ contrib/tzdata/factory
+@@ -8,5 +8,15 @@
+ # time zone abbreviation "-00", indicating that the actual time zone
+ # is unknown.
+
++# TZ="Factory" was added to TZDB in 1989, and in 2016 its abbreviation
++# was changed to "-00" from a longish English-language error message.
++# Around 2010, CLDR added "Etc/Unknown" for use with TZDB, to stand
++# for an unknown or invalid time zone. These two notions differ:
++# TZ="Factory" is a valid timezone, so tzalloc("Factory") succeeds, whereas
++# TZ="Etc/Unknown" is invalid and tzalloc("Etc/Unknown") fails.
++# Also, a downstream distributor could modify Factory to be a
++# default timezone suitable for the devices it manufactures,
++# whereas that cannot happen for Etc/Unknown.
++
+ # Zone NAME STDOFF RULES FORMAT
+ Zone Factory 0 - "Local time zone must be set--use tzsetup"
+--- contrib/tzdata/leap-seconds.list.orig
++++ contrib/tzdata/leap-seconds.list
+@@ -1,5 +1,5 @@
+-# ATOMIC TIME.
+-# The Coordinated Universal Time (UTC) is the reference time scale derived
++# ATOMIC TIME
++# Coordinated Universal Time (UTC) is the reference time scale derived
+ # from The "Temps Atomique International" (TAI) calculated by the Bureau
+ # International des Poids et Mesures (BIPM) using a worldwide network of atomic
+ # clocks. UTC differs from TAI by an integer number of seconds; it is the basis
+@@ -8,34 +8,34 @@
+ #
+ # ASTRONOMICAL TIME (UT1) is the time scale based on the rate of rotation of the earth.
+ # It is now mainly derived from Very Long Baseline Interferometry (VLBI). The various
+-# irregular fluctuations progressively detected in the rotation rate of the Earth lead
++# irregular fluctuations progressively detected in the rotation rate of the Earth led
+ # in 1972 to the replacement of UT1 by UTC as the reference time scale.
+ #
+ #
+ # LEAP SECOND
+-# Atomic clocks are more stable than the rate of the earth rotation since the latter
++# Atomic clocks are more stable than the rate of the earth's rotation since the latter
+ # undergoes a full range of geophysical perturbations at various time scales: lunisolar
+-# and core-mantle torques, atmospheric and oceanic effetcs, etc.
++# and core-mantle torques, atmospheric and oceanic effects, etc.
+ # Leap seconds are needed to keep the two time scales in agreement, i.e. UT1-UTC smaller
+-# than 0.9 second. Therefore, when necessary a "leap second" is applied to UTC.
++# than 0.9 seconds. Therefore, when necessary a "leap second" is applied to UTC.
+ # Since the adoption of this system in 1972 it has been necessary to add a number of seconds to UTC,
+ # firstly due to the initial choice of the value of the second (1/86400 mean solar day of
+ # the year 1820) and secondly to the general slowing down of the Earth's rotation. It is
+-# theorically possible to have a negative leap second (a second removed from UTC), but so far,
++# theoretically possible to have a negative leap second (a second removed from UTC), but so far,
+ # all leap seconds have been positive (a second has been added to UTC). Based on what we know about
+ # the earth's rotation, it is unlikely that we will ever have a negative leap second.
+ #
+ #
+ # HISTORY
+-# The first leap second was added on June 30, 1972. Until yhe year 2000, it was necessary in average to add a
++# The first leap second was added on June 30, 1972. Until the year 2000, it was necessary in average to add a
+ # leap second at a rate of 1 to 2 years. Since the year 2000 leap seconds are introduced with an
+-# average interval of 3 to 4 years due to the acceleration of the Earth rotation speed.
++# average interval of 3 to 4 years due to the acceleration of the Earth's rotation speed.
+ #
+ #
+-# RESPONSABILITY OF THE DECISION TO INTRODUCE A LEAP SECOND IN UTC
++# RESPONSIBILITY OF THE DECISION TO INTRODUCE A LEAP SECOND IN UTC
+ # The decision to introduce a leap second in UTC is the responsibility of the Earth Orientation Center of
+ # the International Earth Rotation and reference System Service (IERS). This center is located at Paris
+-# Observatory. According to international agreements, leap seconds should only be scheduled for certain dates:
++# Observatory. According to international agreements, leap seconds should be scheduled only for certain dates:
+ # first preference is given to the end of December and June, and second preference at the end of March
+ # and September. Since the introduction of leap seconds in 1972, only dates in June and December were used.
+ #
+@@ -60,15 +60,15 @@
+ #
+ # The following line shows the last update of this file in NTP timestamp:
+ #
+-#$ 3913697179
++#$ 3945196800
+ #
+ # 2) Expiration date of the file given on a semi-annual basis: last June or last December
+ #
+-# File expires on 28 December 2024
++# File expires on 28 December 2025
+ #
+ # Expire date in NTP timestamp:
+ #
+-#@ 3944332800
++#@ 3975868800
+ #
+ #
+ # LIST OF LEAP SECONDS
+@@ -117,4 +117,4 @@
+ # please see the readme file in the 'source' directory :
+ # https://hpiers.obspm.fr/iers/bul/bulc/ntp/sources/README
+ #
+-#h 9dac5845 8acd32c0 2947d462 daf4a943 f58d9391
++#h 848434d5 570f7ea8 d79ba227 a00fc821 f608e2d4
+--- contrib/tzdata/leapseconds.orig
++++ contrib/tzdata/leapseconds
+@@ -69,11 +69,11 @@
+ # Any additional leap seconds will come after this.
+ # This Expires line is commented out for now,
+ # so that pre-2020a zic implementations do not reject this file.
+-#Expires 2024 Dec 28 00:00:00
++#Expires 2025 Dec 28 00:00:00
+
+ # POSIX timestamps for the data in this file:
+-#updated 1704708379 (2024-01-08 10:06:19 UTC)
+-#expires 1735344000 (2024-12-28 00:00:00 UTC)
++#updated 1736208000 (2025-01-07 00:00:00 UTC)
++#expires 1766880000 (2025-12-28 00:00:00 UTC)
+
+ # Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
+-# File expires on 28 December 2024
++# File expires on 28 December 2025
+--- contrib/tzdata/northamerica.orig
++++ contrib/tzdata/northamerica
+@@ -27,9 +27,12 @@
+ # in New York City (1869-10). His 1870 proposal was based on Washington, DC,
+ # but in 1872-05 he moved the proposed origin to Greenwich.
+
+-# From Paul Eggert (2018-03-20):
++# From Paul Eggert (2024-11-18):
+ # Dowd's proposal left many details unresolved, such as where to draw
+-# lines between time zones. The key individual who made time zones
++# lines between time zones. Sandford Fleming of the Canadian Pacific Railway
++# argued for Dowd's proposal in 1876, and Cleveland Abbe of the American
++# Meteorology Society published a report in 1879 recommending four US time
++# zones based on GMT. However, the key individual who made time zones
+ # work in the US was William Frederick Allen - railway engineer,
+ # managing editor of the Travelers' Guide, and secretary of the
+ # General Time Convention, a railway standardization group. Allen
+@@ -185,26 +188,6 @@
+ Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
+ Rule US 2007 max - Nov Sun>=1 2:00 0 S
+
+-# From Arthur David Olson, 2005-12-19
+-# We generate the files specified below to guard against old files with
+-# obsolete information being left in the time zone binary directory.
+-# We limit the list to names that have appeared in previous versions of
+-# this time zone package.
+-# We do these as separate Zones rather than as Links to avoid problems if
+-# a particular place changes whether it observes DST.
+-# We put these specifications here in the northamerica file both to
+-# increase the chances that they'll actually get compiled and to
+-# avoid the need to duplicate the US rules in another file.
+-
+-# Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone EST -5:00 - EST
+-Zone MST -7:00 - MST
+-Zone HST -10:00 - HST
+-Zone EST5EDT -5:00 US E%sT
+-Zone CST6CDT -6:00 US C%sT
+-Zone MST7MDT -7:00 US M%sT
+-Zone PST8PDT -8:00 US P%sT
+-
+ # From U. S. Naval Observatory (1989-01-19):
+ # USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON
+ # USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30
+@@ -2373,6 +2356,81 @@
+ # the researchers who prepared the Decrees page failed to find some of
+ # the relevant documents.
+
++# From Heitor David Pinto (2024-08-04):
++# In 1931, the decree implementing DST specified that it would take
++# effect on 30 April....
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=192270&pagina=2&seccion=1
++#
++# In 1981, the decree changing Campeche, Yucatán and Quintana Roo to UTC-5
++# specified that it would enter into force on 26 December 1981 at 2:00....
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4705667&fecha=23/12/1981&cod_diario=202796
++#
++# In 1982, the decree returning Campeche and Yucatán to UTC-6 specified that
++# it would enter into force on 2 November 1982 at 2:00....
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=205689&pagina=3&seccion=0
++#
++# Quintana Roo changed to UTC-6 on 4 January 1983 at 0:00, and again
++# to UTC-5 on 26 October 1997 at 2:00....
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4787355&fecha=28/12/1982&cod_diario=206112
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=209559&pagina=15&seccion=0
++#
++# Durango, Coahuila, Nuevo León and Tamaulipas were set to UTC-7 on 1 January
++# 1922, and changed to UTC-6 on 10 June 1927. Then Durango, Coahuila and
++# Nuevo León (but not Tamaulipas) returned to UTC-7 on 15 November 1930,
++# observed DST in 1931, and changed again to UTC-6 on 1 April 1932....
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4441846&fecha=29/12/1921&cod_diario=187468
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4541520&fecha=09/06/1927&cod_diario=193920
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4491963&fecha=15/11/1930&cod_diario=190835
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4418437&fecha=21/01/1932&cod_diario=185588
++#
++# ... the ... 10 June 1927 ... decree only said 10 June 1927, without
++# specifying a time, so I suppose that it should be considered at 0:00.
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4541520&fecha=09/06/1927&cod_diario=193920
++#
++# In 1942, the decree changing Baja California, Baja California Sur, Sonora,
++# Sinaloa and Nayarit to UTC-7 was published on 24 April, but it said that it
++# would apply from 1 April, so it's unclear when the change actually
++# occurred. The database currently shows 24 April 1942.
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=192203&pagina=2&seccion=1
++#
++# Baja California Sur, Sonora, Sinaloa and Nayarit never used UTC-8. The ...
++# 14 January 1949 ... change [to UTC-8] only occurred in Baja California.
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4515613&fecha=13/01/1949&cod_diario=192309
++#
++# In 1945, the decree changing Baja California to UTC-8 specified that it
++# would take effect on the third day from its publication.
++# It was published on 12 November, so it would take effect on 15 November....
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4555049&fecha=12/11/1945&cod_diario=194763
++#
++# In 1948, the decree changing Baja California to UTC-7 specified that it
++# would take effect on "this date". The decree was made on 13 March,
++# but published on 5 April, so it's unclear when the change actually occurred.
++# The database currently shows 5 April 1948.
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=188624&pagina=2&seccion=0
++#
++# In 1949, the decree changing Baja California to UTC-8 was published on 13
++# January, but it said that it would apply from 1 January, so it's unclear when
++# the change actually occurred. The database currently shows 14 January 1949.
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4515613&fecha=13/01/1949&cod_diario=192309
++#
++# Baja California also observed UTC-7 from 1 May to 24 September 1950,
++# from 29 April to 30 September 1951 at 2:00,
++# and from 27 April to 28 September 1952 at 2:00....
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4600403&fecha=29/04/1950&cod_diario=197505
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4623553&fecha=23/09/1950&cod_diario=198805
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4469444&fecha=27/04/1951&cod_diario=189317
++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4533868&fecha=10/03/1952&cod_diario=193465
++#
++# All changes in Baja California from 1948 to 1952 match those in California,
++# on the same dates or with a difference of one day.
++# So it may be easier to implement these changes as DST with rule CA
++# during this whole period.
++#
++# From Paul Eggert (2024-08-18):
++# For now, maintain the slightly-different history for Baja California,
++# as we have no information on whether 1948/1952 clocks in Tijuana followed
++# the decrees or followed San Diego.
++
+ # From Alan Perry (1996-02-15):
+ # A guy from our Mexico subsidiary finally found the Presidential Decree
+ # outlining the timezone changes in Mexico.
+@@ -2576,7 +2634,7 @@
+ # http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/
+
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+-Rule Mexico 1931 only - May 1 23:00 1:00 D
++Rule Mexico 1931 only - Apr 30 0:00 1:00 D
+ Rule Mexico 1931 only - Oct 1 0:00 0 S
+ Rule Mexico 1939 only - Feb 5 0:00 1:00 D
+ Rule Mexico 1939 only - Jun 25 0:00 0 S
+@@ -2595,14 +2653,16 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ # Quintana Roo; represented by Cancún
+ Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u
+- -6:00 - CST 1981 Dec 23
++ -6:00 - CST 1981 Dec 26 2:00
++ -5:00 - EST 1983 Jan 4 0:00
++ -6:00 Mexico C%sT 1997 Oct 26 2:00
+ -5:00 Mexico E%sT 1998 Aug 2 2:00
+ -6:00 Mexico C%sT 2015 Feb 1 2:00
+ -5:00 - EST
+ # Campeche, Yucatán; represented by Mérida
+ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u
+- -6:00 - CST 1981 Dec 23
+- -5:00 - EST 1982 Dec 2
++ -6:00 - CST 1981 Dec 26 2:00
++ -5:00 - EST 1982 Nov 2 2:00
+ -6:00 Mexico C%sT
+ # Coahuila, Nuevo León, Tamaulipas (near US border)
+ # This includes the following municipios:
+@@ -2619,12 +2679,15 @@
+ -6:00 US C%sT
+ # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border)
+ Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u
++ -7:00 - MST 1927 Jun 10
++ -6:00 - CST 1930 Nov 15
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1988
+ -6:00 US C%sT 1989
+ -6:00 Mexico C%sT
+ # Central Mexico
+ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u
+- -7:00 - MST 1927 Jun 10 23:00
++ -7:00 - MST 1927 Jun 10
+ -6:00 - CST 1930 Nov 15
+ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 Mexico C%sT 2001 Sep 30 2:00
+@@ -2635,7 +2698,7 @@
+ # Práxedis G Guerrero.
+ # http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf
+ Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u
+- -7:00 - MST 1927 Jun 10 23:00
++ -7:00 - MST 1927 Jun 10
+ -6:00 - CST 1930 Nov 15
+ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1996
+@@ -2650,7 +2713,7 @@
+ # Benavides.
+ # http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf
+ Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u
+- -7:00 - MST 1927 Jun 10 23:00
++ -7:00 - MST 1927 Jun 10
+ -6:00 - CST 1930 Nov 15
+ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1996
+@@ -2662,7 +2725,7 @@
+ -6:00 US C%sT
+ # Chihuahua (away from US border)
+ Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u
+- -7:00 - MST 1927 Jun 10 23:00
++ -7:00 - MST 1927 Jun 10
+ -6:00 - CST 1930 Nov 15
+ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1996
+@@ -2672,23 +2735,21 @@
+ -6:00 - CST
+ # Sonora
+ Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u
+- -7:00 - MST 1927 Jun 10 23:00
++ -7:00 - MST 1927 Jun 10
+ -6:00 - CST 1930 Nov 15
+ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+- -7:00 - MST 1949 Jan 14
+- -8:00 - PST 1970
++ -7:00 - MST 1996
+ -7:00 Mexico M%sT 1999
+ -7:00 - MST
+
+ # Baja California Sur, Nayarit (except Bahía de Banderas), Sinaloa
+ Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u
+- -7:00 - MST 1927 Jun 10 23:00
++ -7:00 - MST 1927 Jun 10
+ -6:00 - CST 1930 Nov 15
+ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+- -7:00 - MST 1949 Jan 14
+- -8:00 - PST 1970
++ -7:00 - MST 1970
+ -7:00 Mexico M%sT
+
+ # Bahía de Banderas
+@@ -2721,27 +2782,32 @@
+ # Use "Bahia_Banderas" to keep the name to fourteen characters.
+
+ Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u
+- -7:00 - MST 1927 Jun 10 23:00
++ -7:00 - MST 1927 Jun 10
+ -6:00 - CST 1930 Nov 15
+ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+- -7:00 - MST 1949 Jan 14
+- -8:00 - PST 1970
++ -7:00 - MST 1970
+ -7:00 Mexico M%sT 2010 Apr 4 2:00
+ -6:00 Mexico C%sT
+
+ # Baja California
+ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1924
+- -8:00 - PST 1927 Jun 10 23:00
++ -8:00 - PST 1927 Jun 10
+ -7:00 - MST 1930 Nov 15
+ -8:00 - PST 1931 Apr 1
+ -8:00 1:00 PDT 1931 Sep 30
+ -8:00 - PST 1942 Apr 24
+ -8:00 1:00 PWT 1945 Aug 14 23:00u
+- -8:00 1:00 PPT 1945 Nov 12 # Peace
++ -8:00 1:00 PPT 1945 Nov 15 # Peace
+ -8:00 - PST 1948 Apr 5
+ -8:00 1:00 PDT 1949 Jan 14
++ -8:00 - PST 1950 May 1
++ -8:00 1:00 PDT 1950 Sep 24
++ -8:00 - PST 1951 Apr 29 2:00
++ -8:00 1:00 PDT 1951 Sep 30 2:00
++ -8:00 - PST 1952 Apr 27 2:00
++ -8:00 1:00 PDT 1952 Sep 28 2:00
+ -8:00 - PST 1954
+ -8:00 CA P%sT 1961
+ -8:00 - PST 1976
+@@ -3550,8 +3616,8 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Miquelon -3:44:40 - LMT 1911 Jun 15 # St Pierre
+ -4:00 - AST 1980 May
+- -3:00 - -03 1987
+- -3:00 Canada -03/-02
++ -3:00 - %z 1987
++ -3:00 Canada %z
+
+ # Turks and Caicos
+ #
+--- contrib/tzdata/southamerica.orig
++++ contrib/tzdata/southamerica
+@@ -402,11 +402,11 @@
+ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May # Córdoba Mean Time
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 Arg -03/-02
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 Arg %z
+ #
+ # Córdoba (CB), Santa Fe (SF), Entre Ríos (ER), Corrientes (CN), Misiones (MN),
+ # Chaco (CC), Formosa (FM), Santiago del Estero (SE)
+@@ -421,120 +421,120 @@
+ #STDOFF -4:16:48.25
+ Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1991 Mar 3
+- -4:00 - -04 1991 Oct 20
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 Arg -03/-02
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1991 Mar 3
++ -4:00 - %z 1991 Oct 20
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 Arg %z
+ #
+ # Salta (SA), La Pampa (LP), Neuquén (NQ), Rio Negro (RN)
+ Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1991 Mar 3
+- -4:00 - -04 1991 Oct 20
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1991 Mar 3
++ -4:00 - %z 1991 Oct 20
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+ #
+ # Tucumán (TM)
+ Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1991 Mar 3
+- -4:00 - -04 1991 Oct 20
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 - -03 2004 Jun 1
+- -4:00 - -04 2004 Jun 13
+- -3:00 Arg -03/-02
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1991 Mar 3
++ -4:00 - %z 1991 Oct 20
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 - %z 2004 Jun 1
++ -4:00 - %z 2004 Jun 13
++ -3:00 Arg %z
+ #
+ # La Rioja (LR)
+ Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1991 Mar 1
+- -4:00 - -04 1991 May 7
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 - -03 2004 Jun 1
+- -4:00 - -04 2004 Jun 20
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1991 Mar 1
++ -4:00 - %z 1991 May 7
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 - %z 2004 Jun 1
++ -4:00 - %z 2004 Jun 20
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+ #
+ # San Juan (SJ)
+ Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1991 Mar 1
+- -4:00 - -04 1991 May 7
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 - -03 2004 May 31
+- -4:00 - -04 2004 Jul 25
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1991 Mar 1
++ -4:00 - %z 1991 May 7
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 - %z 2004 May 31
++ -4:00 - %z 2004 Jul 25
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+ #
+ # Jujuy (JY)
+ Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1990 Mar 4
+- -4:00 - -04 1990 Oct 28
+- -4:00 1:00 -03 1991 Mar 17
+- -4:00 - -04 1991 Oct 6
+- -3:00 1:00 -02 1992
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1990 Mar 4
++ -4:00 - %z 1990 Oct 28
++ -4:00 1:00 %z 1991 Mar 17
++ -4:00 - %z 1991 Oct 6
++ -3:00 1:00 %z 1992
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+ #
+ # Catamarca (CT), Chubut (CH)
+ Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1991 Mar 3
+- -4:00 - -04 1991 Oct 20
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 - -03 2004 Jun 1
+- -4:00 - -04 2004 Jun 20
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1991 Mar 3
++ -4:00 - %z 1991 Oct 20
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 - %z 2004 Jun 1
++ -4:00 - %z 2004 Jun 20
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+ #
+ # Mendoza (MZ)
+ Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1990 Mar 4
+- -4:00 - -04 1990 Oct 15
+- -4:00 1:00 -03 1991 Mar 1
+- -4:00 - -04 1991 Oct 15
+- -4:00 1:00 -03 1992 Mar 1
+- -4:00 - -04 1992 Oct 18
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 - -03 2004 May 23
+- -4:00 - -04 2004 Sep 26
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1990 Mar 4
++ -4:00 - %z 1990 Oct 15
++ -4:00 1:00 %z 1991 Mar 1
++ -4:00 - %z 1991 Oct 15
++ -4:00 1:00 %z 1992 Mar 1
++ -4:00 - %z 1992 Oct 18
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 - %z 2004 May 23
++ -4:00 - %z 2004 Sep 26
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+ #
+ # San Luis (SL)
+
+@@ -544,53 +544,53 @@
+ Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1990
+- -3:00 1:00 -02 1990 Mar 14
+- -4:00 - -04 1990 Oct 15
+- -4:00 1:00 -03 1991 Mar 1
+- -4:00 - -04 1991 Jun 1
+- -3:00 - -03 1999 Oct 3
+- -4:00 1:00 -03 2000 Mar 3
+- -3:00 - -03 2004 May 31
+- -4:00 - -04 2004 Jul 25
+- -3:00 Arg -03/-02 2008 Jan 21
+- -4:00 SanLuis -04/-03 2009 Oct 11
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1990
++ -3:00 1:00 %z 1990 Mar 14
++ -4:00 - %z 1990 Oct 15
++ -4:00 1:00 %z 1991 Mar 1
++ -4:00 - %z 1991 Jun 1
++ -3:00 - %z 1999 Oct 3
++ -4:00 1:00 %z 2000 Mar 3
++ -3:00 - %z 2004 May 31
++ -4:00 - %z 2004 Jul 25
++ -3:00 Arg %z 2008 Jan 21
++ -4:00 SanLuis %z 2009 Oct 11
++ -3:00 - %z
+ #
+ # Santa Cruz (SC)
+ Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 - -03 2004 Jun 1
+- -4:00 - -04 2004 Jun 20
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 - %z 2004 Jun 1
++ -4:00 - %z 2004 Jun 20
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+ #
+ # Tierra del Fuego, Antártida e Islas del Atlántico Sur (TF)
+ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
+ #STDOFF -4:16:48.25
+ -4:16:48 - CMT 1920 May
+- -4:00 - -04 1930 Dec
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1999 Oct 3
+- -4:00 Arg -04/-03 2000 Mar 3
+- -3:00 - -03 2004 May 30
+- -4:00 - -04 2004 Jun 20
+- -3:00 Arg -03/-02 2008 Oct 18
+- -3:00 - -03
++ -4:00 - %z 1930 Dec
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1999 Oct 3
++ -4:00 Arg %z 2000 Mar 3
++ -3:00 - %z 2004 May 30
++ -4:00 - %z 2004 Jun 20
++ -3:00 Arg %z 2008 Oct 18
++ -3:00 - %z
+
+ # Bolivia
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/La_Paz -4:32:36 - LMT 1890
+ -4:32:36 - CMT 1931 Oct 15 # Calamarca MT
+ -4:32:36 1:00 BST 1932 Mar 21 # Bolivia ST
+- -4:00 - -04
++ -4:00 - %z
+
+ # Brazil
+
+@@ -961,12 +961,12 @@
+ #
+ # Fernando de Noronha (administratively part of PE)
+ Zone America/Noronha -2:09:40 - LMT 1914
+- -2:00 Brazil -02/-01 1990 Sep 17
+- -2:00 - -02 1999 Sep 30
+- -2:00 Brazil -02/-01 2000 Oct 15
+- -2:00 - -02 2001 Sep 13
+- -2:00 Brazil -02/-01 2002 Oct 1
+- -2:00 - -02
++ -2:00 Brazil %z 1990 Sep 17
++ -2:00 - %z 1999 Sep 30
++ -2:00 Brazil %z 2000 Oct 15
++ -2:00 - %z 2001 Sep 13
++ -2:00 Brazil %z 2002 Oct 1
++ -2:00 - %z
+ # Other Atlantic islands have no permanent settlement.
+ # These include Trindade and Martim Vaz (administratively part of ES),
+ # Rocas Atoll (RN), and the St Peter and St Paul Archipelago (PE).
+@@ -979,119 +979,119 @@
+ # In the north a very small part from the river Javary (now Jari I guess,
+ # the border with Amapá) to the Amazon, then to the Xingu.
+ Zone America/Belem -3:13:56 - LMT 1914
+- -3:00 Brazil -03/-02 1988 Sep 12
+- -3:00 - -03
++ -3:00 Brazil %z 1988 Sep 12
++ -3:00 - %z
+ #
+ # west Pará (PA)
+ # West Pará includes Altamira, Óbidos, Prainha, Oriximiná, and Santarém.
+ Zone America/Santarem -3:38:48 - LMT 1914
+- -4:00 Brazil -04/-03 1988 Sep 12
+- -4:00 - -04 2008 Jun 24 0:00
+- -3:00 - -03
++ -4:00 Brazil %z 1988 Sep 12
++ -4:00 - %z 2008 Jun 24 0:00
++ -3:00 - %z
+ #
+ # Maranhão (MA), Piauí (PI), Ceará (CE), Rio Grande do Norte (RN),
+ # Paraíba (PB)
+ Zone America/Fortaleza -2:34:00 - LMT 1914
+- -3:00 Brazil -03/-02 1990 Sep 17
+- -3:00 - -03 1999 Sep 30
+- -3:00 Brazil -03/-02 2000 Oct 22
+- -3:00 - -03 2001 Sep 13
+- -3:00 Brazil -03/-02 2002 Oct 1
+- -3:00 - -03
++ -3:00 Brazil %z 1990 Sep 17
++ -3:00 - %z 1999 Sep 30
++ -3:00 Brazil %z 2000 Oct 22
++ -3:00 - %z 2001 Sep 13
++ -3:00 Brazil %z 2002 Oct 1
++ -3:00 - %z
+ #
+ # Pernambuco (PE) (except Atlantic islands)
+ Zone America/Recife -2:19:36 - LMT 1914
+- -3:00 Brazil -03/-02 1990 Sep 17
+- -3:00 - -03 1999 Sep 30
+- -3:00 Brazil -03/-02 2000 Oct 15
+- -3:00 - -03 2001 Sep 13
+- -3:00 Brazil -03/-02 2002 Oct 1
+- -3:00 - -03
++ -3:00 Brazil %z 1990 Sep 17
++ -3:00 - %z 1999 Sep 30
++ -3:00 Brazil %z 2000 Oct 15
++ -3:00 - %z 2001 Sep 13
++ -3:00 Brazil %z 2002 Oct 1
++ -3:00 - %z
+ #
+ # Tocantins (TO)
+ Zone America/Araguaina -3:12:48 - LMT 1914
+- -3:00 Brazil -03/-02 1990 Sep 17
+- -3:00 - -03 1995 Sep 14
+- -3:00 Brazil -03/-02 2003 Sep 24
+- -3:00 - -03 2012 Oct 21
+- -3:00 Brazil -03/-02 2013 Sep
+- -3:00 - -03
++ -3:00 Brazil %z 1990 Sep 17
++ -3:00 - %z 1995 Sep 14
++ -3:00 Brazil %z 2003 Sep 24
++ -3:00 - %z 2012 Oct 21
++ -3:00 Brazil %z 2013 Sep
++ -3:00 - %z
+ #
+ # Alagoas (AL), Sergipe (SE)
+ Zone America/Maceio -2:22:52 - LMT 1914
+- -3:00 Brazil -03/-02 1990 Sep 17
+- -3:00 - -03 1995 Oct 13
+- -3:00 Brazil -03/-02 1996 Sep 4
+- -3:00 - -03 1999 Sep 30
+- -3:00 Brazil -03/-02 2000 Oct 22
+- -3:00 - -03 2001 Sep 13
+- -3:00 Brazil -03/-02 2002 Oct 1
+- -3:00 - -03
++ -3:00 Brazil %z 1990 Sep 17
++ -3:00 - %z 1995 Oct 13
++ -3:00 Brazil %z 1996 Sep 4
++ -3:00 - %z 1999 Sep 30
++ -3:00 Brazil %z 2000 Oct 22
++ -3:00 - %z 2001 Sep 13
++ -3:00 Brazil %z 2002 Oct 1
++ -3:00 - %z
+ #
+ # Bahia (BA)
+ # There are too many Salvadors elsewhere, so use America/Bahia instead
+ # of America/Salvador.
+ Zone America/Bahia -2:34:04 - LMT 1914
+- -3:00 Brazil -03/-02 2003 Sep 24
+- -3:00 - -03 2011 Oct 16
+- -3:00 Brazil -03/-02 2012 Oct 21
+- -3:00 - -03
++ -3:00 Brazil %z 2003 Sep 24
++ -3:00 - %z 2011 Oct 16
++ -3:00 Brazil %z 2012 Oct 21
++ -3:00 - %z
+ #
+ # Goiás (GO), Distrito Federal (DF), Minas Gerais (MG),
+ # Espírito Santo (ES), Rio de Janeiro (RJ), São Paulo (SP), Paraná (PR),
+ # Santa Catarina (SC), Rio Grande do Sul (RS)
+ Zone America/Sao_Paulo -3:06:28 - LMT 1914
+- -3:00 Brazil -03/-02 1963 Oct 23 0:00
+- -3:00 1:00 -02 1964
+- -3:00 Brazil -03/-02
++ -3:00 Brazil %z 1963 Oct 23 0:00
++ -3:00 1:00 %z 1964
++ -3:00 Brazil %z
+ #
+ # Mato Grosso do Sul (MS)
+ Zone America/Campo_Grande -3:38:28 - LMT 1914
+- -4:00 Brazil -04/-03
++ -4:00 Brazil %z
+ #
+ # Mato Grosso (MT)
+ Zone America/Cuiaba -3:44:20 - LMT 1914
+- -4:00 Brazil -04/-03 2003 Sep 24
+- -4:00 - -04 2004 Oct 1
+- -4:00 Brazil -04/-03
++ -4:00 Brazil %z 2003 Sep 24
++ -4:00 - %z 2004 Oct 1
++ -4:00 Brazil %z
+ #
+ # Rondônia (RO)
+ Zone America/Porto_Velho -4:15:36 - LMT 1914
+- -4:00 Brazil -04/-03 1988 Sep 12
+- -4:00 - -04
++ -4:00 Brazil %z 1988 Sep 12
++ -4:00 - %z
+ #
+ # Roraima (RR)
+ Zone America/Boa_Vista -4:02:40 - LMT 1914
+- -4:00 Brazil -04/-03 1988 Sep 12
+- -4:00 - -04 1999 Sep 30
+- -4:00 Brazil -04/-03 2000 Oct 15
+- -4:00 - -04
++ -4:00 Brazil %z 1988 Sep 12
++ -4:00 - %z 1999 Sep 30
++ -4:00 Brazil %z 2000 Oct 15
++ -4:00 - %z
+ #
+ # east Amazonas (AM): Boca do Acre, Jutaí, Manaus, Floriano Peixoto
+ # The great circle line from Tabatinga to Porto Acre divides
+ # east from west Amazonas.
+ Zone America/Manaus -4:00:04 - LMT 1914
+- -4:00 Brazil -04/-03 1988 Sep 12
+- -4:00 - -04 1993 Sep 28
+- -4:00 Brazil -04/-03 1994 Sep 22
+- -4:00 - -04
++ -4:00 Brazil %z 1988 Sep 12
++ -4:00 - %z 1993 Sep 28
++ -4:00 Brazil %z 1994 Sep 22
++ -4:00 - %z
+ #
+ # west Amazonas (AM): Atalaia do Norte, Boca do Maoco, Benjamin Constant,
+ # Eirunepé, Envira, Ipixuna
+ Zone America/Eirunepe -4:39:28 - LMT 1914
+- -5:00 Brazil -05/-04 1988 Sep 12
+- -5:00 - -05 1993 Sep 28
+- -5:00 Brazil -05/-04 1994 Sep 22
+- -5:00 - -05 2008 Jun 24 0:00
+- -4:00 - -04 2013 Nov 10
+- -5:00 - -05
++ -5:00 Brazil %z 1988 Sep 12
++ -5:00 - %z 1993 Sep 28
++ -5:00 Brazil %z 1994 Sep 22
++ -5:00 - %z 2008 Jun 24 0:00
++ -4:00 - %z 2013 Nov 10
++ -5:00 - %z
+ #
+ # Acre (AC)
+ Zone America/Rio_Branco -4:31:12 - LMT 1914
+- -5:00 Brazil -05/-04 1988 Sep 12
+- -5:00 - -05 2008 Jun 24 0:00
+- -4:00 - -04 2013 Nov 10
+- -5:00 - -05
++ -5:00 Brazil %z 1988 Sep 12
++ -5:00 - %z 2008 Jun 24 0:00
++ -4:00 - %z 2013 Nov 10
++ -5:00 - %z
+
+ # Chile
+
+@@ -1359,36 +1359,36 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Santiago -4:42:45 - LMT 1890
+ -4:42:45 - SMT 1910 Jan 10 # Santiago Mean Time
+- -5:00 - -05 1916 Jul 1
++ -5:00 - %z 1916 Jul 1
+ -4:42:45 - SMT 1918 Sep 10
+- -4:00 - -04 1919 Jul 1
++ -4:00 - %z 1919 Jul 1
+ -4:42:45 - SMT 1927 Sep 1
+- -5:00 Chile -05/-04 1932 Sep 1
+- -4:00 - -04 1942 Jun 1
+- -5:00 - -05 1942 Aug 1
+- -4:00 - -04 1946 Jul 14 24:00
+- -4:00 1:00 -03 1946 Aug 28 24:00 # central CL
+- -5:00 1:00 -04 1947 Mar 31 24:00
+- -5:00 - -05 1947 May 21 23:00
+- -4:00 Chile -04/-03
++ -5:00 Chile %z 1932 Sep 1
++ -4:00 - %z 1942 Jun 1
++ -5:00 - %z 1942 Aug 1
++ -4:00 - %z 1946 Jul 14 24:00
++ -4:00 1:00 %z 1946 Aug 28 24:00 # central CL
++ -5:00 1:00 %z 1947 Mar 31 24:00
++ -5:00 - %z 1947 May 21 23:00
++ -4:00 Chile %z
+ Zone America/Punta_Arenas -4:43:40 - LMT 1890
+ -4:42:45 - SMT 1910 Jan 10
+- -5:00 - -05 1916 Jul 1
++ -5:00 - %z 1916 Jul 1
+ -4:42:45 - SMT 1918 Sep 10
+- -4:00 - -04 1919 Jul 1
++ -4:00 - %z 1919 Jul 1
+ -4:42:45 - SMT 1927 Sep 1
+- -5:00 Chile -05/-04 1932 Sep 1
+- -4:00 - -04 1942 Jun 1
+- -5:00 - -05 1942 Aug 1
+- -4:00 - -04 1946 Aug 28 24:00
+- -5:00 1:00 -04 1947 Mar 31 24:00
+- -5:00 - -05 1947 May 21 23:00
+- -4:00 Chile -04/-03 2016 Dec 4
+- -3:00 - -03
++ -5:00 Chile %z 1932 Sep 1
++ -4:00 - %z 1942 Jun 1
++ -5:00 - %z 1942 Aug 1
++ -4:00 - %z 1946 Aug 28 24:00
++ -5:00 1:00 %z 1947 Mar 31 24:00
++ -5:00 - %z 1947 May 21 23:00
++ -4:00 Chile %z 2016 Dec 4
++ -3:00 - %z
+ Zone Pacific/Easter -7:17:28 - LMT 1890
+ -7:17:28 - EMT 1932 Sep # Easter Mean Time
+- -7:00 Chile -07/-06 1982 Mar 14 3:00u # Easter Time
+- -6:00 Chile -06/-05
++ -7:00 Chile %z 1982 Mar 14 3:00u # Easter Time
++ -6:00 Chile %z
+ #
+ # Salas y Gómez Island is uninhabited.
+ # Other Chilean locations, including Juan Fernández Is, Desventuradas Is,
+@@ -1408,10 +1408,10 @@
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Antarctica/Palmer 0 - -00 1965
+- -4:00 Arg -04/-03 1969 Oct 5
+- -3:00 Arg -03/-02 1982 May
+- -4:00 Chile -04/-03 2016 Dec 4
+- -3:00 - -03
++ -4:00 Arg %z 1969 Oct 5
++ -3:00 Arg %z 1982 May
++ -4:00 Chile %z 2016 Dec 4
++ -3:00 - %z
+
+ # Colombia
+
+@@ -1430,7 +1430,7 @@
+ #STDOFF -4:56:16.4
+ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
+ -4:56:16 - BMT 1914 Nov 23 # Bogotá Mean Time
+- -5:00 CO -05/-04
++ -5:00 CO %z
+ # Malpelo, Providencia, San Andres
+ # no information; probably like America/Bogota
+
+@@ -1461,10 +1461,10 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Guayaquil -5:19:20 - LMT 1890
+ -5:14:00 - QMT 1931 # Quito Mean Time
+- -5:00 Ecuador -05/-04
++ -5:00 Ecuador %z
+ Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno
+- -5:00 - -05 1986
+- -6:00 Ecuador -06/-05
++ -5:00 - %z 1986
++ -6:00 Ecuador %z
+
+ # Falklands
+
+@@ -1564,10 +1564,10 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Atlantic/Stanley -3:51:24 - LMT 1890
+ -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time
+- -4:00 Falk -04/-03 1983 May
+- -3:00 Falk -03/-02 1985 Sep 15
+- -4:00 Falk -04/-03 2010 Sep 5 2:00
+- -3:00 - -03
++ -4:00 Falk %z 1983 May
++ -3:00 Falk %z 1985 Sep 15
++ -4:00 Falk %z 2010 Sep 5 2:00
++ -3:00 - %z
+
+ # French Guiana
+ # For the 1911/1912 establishment of standard time in French possessions, see:
+@@ -1575,8 +1575,8 @@
+ # page 752, 18b.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Cayenne -3:29:20 - LMT 1911 Jul 1
+- -4:00 - -04 1967 Oct
+- -3:00 - -03
++ -4:00 - %z 1967 Oct
++ -3:00 - %z
+
+ # Guyana
+
+@@ -1610,10 +1610,10 @@
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Guyana -3:52:39 - LMT 1911 Aug 1 # Georgetown
+- -4:00 - -04 1915 Mar 1
+- -3:45 - -0345 1975 Aug 1
+- -3:00 - -03 1992 Mar 29 1:00
+- -4:00 - -04
++ -4:00 - %z 1915 Mar 1
++ -3:45 - %z 1975 Aug 1
++ -3:00 - %z 1992 Mar 29 1:00
++ -4:00 - %z
+
+ # Paraguay
+ #
+@@ -1687,7 +1687,7 @@
+ # and that on the first Sunday of the month of October, it is to be set
+ # forward 60 minutes, in all the territory of the Paraguayan Republic.
+ # ...
+-Rule Para 2010 max - Oct Sun>=1 0:00 1:00 -
++Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 -
+ Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
+ #
+ # From Steffen Thorsen (2013-03-07):
+@@ -1706,14 +1706,35 @@
+ # https://www.abc.com.py/politica/2023/07/12/promulgacion-el-cambio-de-hora-sera-por-ley/
+ # From Carlos Raúl Perasso (2023-07-27):
+ # http://silpy.congreso.gov.py/descarga/ley-144138
+-Rule Para 2013 max - Mar Sun>=22 0:00 0 -
++Rule Para 2013 2024 - Mar Sun>=22 0:00 0 -
++#
++# From Heitor David Pinto (2024-09-24):
++# Today the Congress of Paraguay passed a bill to observe UTC-3 permanently....
++# The text of the bill says that it would enter into force on the first
++# Sunday in October 2024, the same date currently scheduled to start DST....
++# https://silpy.congreso.gov.py/web/expediente/132531
++# (2024-10-14):
++# The president approved the law on 11 October 2024,
++# and it was officially published on 14 October 2024.
++# https://www.gacetaoficial.gov.py/index/detalle_publicacion/89723
++# The text of the law says that it enters into force on the first
++# Sunday in October 2024 (6 October 2024). But the constitution
++# prohibits retroactive effect, and the civil code says that laws
++# enter into force on the day after their publication or on the day
++# that they specify, and it also says that they don't have retroactive
++# effect. So I think that the time change on 6 October 2024 should
++# still be considered as DST according to the previous law, and
++# permanently UTC-3 from 15 October 2024 according to the new law....
++# https://www.constituteproject.org/constitution/Paraguay_2011
++# https://www.oas.org/dil/esp/codigo_civil_paraguay.pdf
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Asuncion -3:50:40 - LMT 1890
+ -3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time
+- -4:00 - -04 1972 Oct
+- -3:00 - -03 1974 Apr
+- -4:00 Para -04/-03
++ -4:00 - %z 1972 Oct
++ -3:00 - %z 1974 Apr
++ -4:00 Para %z 2024 Oct 15
++ -3:00 - %z
+
+ # Peru
+ #
+@@ -1740,12 +1761,12 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Lima -5:08:12 - LMT 1890
+ -5:08:36 - LMT 1908 Jul 28 # Lima Mean Time?
+- -5:00 Peru -05/-04
++ -5:00 Peru %z
+
+ # South Georgia
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken
+- -2:00 - -02
++ -2:00 - %z
+
+ # South Sandwich Is
+ # uninhabited; scientific personnel have wintered
+@@ -1755,8 +1776,8 @@
+ Zone America/Paramaribo -3:40:40 - LMT 1911
+ -3:40:52 - PMT 1935 # Paramaribo Mean Time
+ -3:40:36 - PMT 1945 Oct # The capital moved?
+- -3:30 - -0330 1984 Oct
+- -3:00 - -03
++ -3:30 - %z 1984 Oct
++ -3:00 - %z
+
+ # Uruguay
+ # From Paul Eggert (1993-11-18):
+@@ -1971,15 +1992,15 @@
+ # This Zone can be simplified once we assume zic %z.
+ Zone America/Montevideo -3:44:51 - LMT 1908 Jun 10
+ -3:44:51 - MMT 1920 May 1 # Montevideo MT
+- -4:00 - -04 1923 Oct 1
+- -3:30 Uruguay -0330/-03 1942 Dec 14
+- -3:00 Uruguay -03/-0230 1960
+- -3:00 Uruguay -03/-02 1968
+- -3:00 Uruguay -03/-0230 1970
+- -3:00 Uruguay -03/-02 1974
+- -3:00 Uruguay -03/-0130 1974 Mar 10
+- -3:00 Uruguay -03/-0230 1974 Dec 22
+- -3:00 Uruguay -03/-02
++ -4:00 - %z 1923 Oct 1
++ -3:30 Uruguay %z 1942 Dec 14
++ -3:00 Uruguay %z 1960
++ -3:00 Uruguay %z 1968
++ -3:00 Uruguay %z 1970
++ -3:00 Uruguay %z 1974
++ -3:00 Uruguay %z 1974 Mar 10
++ -3:00 Uruguay %z 1974 Dec 22
++ -3:00 Uruguay %z
+
+ # Venezuela
+ #
+@@ -2013,7 +2034,7 @@
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Caracas -4:27:44 - LMT 1890
+ -4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time?
+- -4:30 - -0430 1965 Jan 1 0:00
+- -4:00 - -04 2007 Dec 9 3:00
+- -4:30 - -0430 2016 May 1 2:30
+- -4:00 - -04
++ -4:30 - %z 1965 Jan 1 0:00
++ -4:00 - %z 2007 Dec 9 3:00
++ -4:30 - %z 2016 May 1 2:30
++ -4:00 - %z
+--- contrib/tzdata/theory.html.orig
++++ contrib/tzdata/theory.html
+@@ -89,13 +89,15 @@
+ href="https://en.wikipedia.org/wiki/POSIX">POSIX, an international
+ standard for UNIX-like systems.
+-As of this writing, the current edition of POSIX is: The Open
+ Group Base Specifications Issue 7, IEEE Std 1003.1-2017, 2018
+-Edition.
+-Because the database's scope encompasses real-world changes to civil
+-timekeeping, its model for describing time is more complex than the
+-standard and daylight saving times supported by POSIX.1-2017.
++Edition), POSIX.1-2024 requires support for the
++tz database, which has a
++model for describing civil time that is more complex than the
++standard and daylight saving times required by POSIX.1-2017.
+ A tz timezone corresponds to a ruleset that can
+ have more than two changes per year, these changes need not merely
+ flip back and forth between two alternatives, and the rules themselves
+@@ -121,8 +123,9 @@
+ locate the user on a timezone map or prioritize names that are
+ geographically close. For an example selection interface, see the
+ tzselect program in the tz code.
+-The Unicode Common Locale Data
+-Repository contains data that may be useful for other selection
++Unicode's Common Locale Data
++Repository (CLDR)
++contains data that may be useful for other selection
+ interfaces; it maps timezone names like Europe/Prague to
+ locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格".
+
+@@ -159,7 +162,7 @@
+
+
+
+-Names normally have the form
++Names normally have the format
+ AREA/LOCATION, where
+ AREA is a continent or ocean, and
+ LOCATION is a specific location within the area.
+@@ -187,7 +190,7 @@
+ href="https://en.wikipedia.org/wiki/ASCII">ASCII letters,
+ '.', '-' and '_'.
+ Do not use digits, as that might create an ambiguity with POSIX.1-2017
++ href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03">POSIX's proleptic
+ TZ strings.
+ A file name component must not exceed 14 characters or start with
+ '-'.
+@@ -198,6 +201,8 @@
+
+ A name must not be empty, or contain '//', or
+ start or end with '/'.
++ Also, a name must not be 'Etc/Unknown', as
++ CLDR uses that string for an unknown or invalid timezone.
+
+
+ Do not use names that differ only in case.
+@@ -218,10 +223,18 @@
+ do not need locations, since local time is not defined there.
+
+
+- If all the clocks in a timezone have agreed since 1970,
+- do not bother to include more than one timezone
+- even if some of the clocks disagreed before 1970.
++ If all clocks in a region have agreed since 1970,
++ give them just one name even if some of the clocks disagreed before 1970,
++ or reside in different countries or in notable or faraway locations.
+ Otherwise these tables would become annoyingly large.
++ For example, do not create a name Indian/Crozet
++ as a near-duplicate or alias of Asia/Dubai
++ merely because they are different countries or territories,
++ or their clocks disagreed before 1970, or the
++ Crozet Islands
++ are notable in their own right,
++ or the Crozet Islands are not adjacent to other locations
++ that use Asia/Dubai.
+
+
+ If boundaries between regions are fluid, such as during a war or
+@@ -378,7 +391,8 @@
+ and no great weight should be attached to whether a link
+ is defined in backward or in some other file.
+ The source file etcetera defines names that may be useful
+-on platforms that do not support POSIX.1-2017-style TZ strings;
++on platforms that do not support proleptic TZ strings
++like <+08>-8;
+ no other source file other than backward
+ contains links to its zones.
+ One of etcetera's names is Etc/UTC,
+@@ -425,8 +439,8 @@
+ In other words, in the C locale the POSIX extended regular
+ expression [-+[:alnum:]]{3,6} should match the
+ abbreviation.
+- This guarantees that all abbreviations could have been specified by a
+- POSIX.1-2017 TZ string.
++ This guarantees that all abbreviations could have been specified
++ explicitly by a POSIX proleptic TZ string.
+
+
+
+@@ -576,8 +590,13 @@
+ locations while uninhabited.
+ The leading '-' is a flag that the UT offset is in
+ some sense undefined; this notation is derived
+- from Internet
++ from Internet
+ RFC 3339.
++ (The abbreviation 'Z' that
++ Internet
++ RFC 9557 uses for this concept
++ would violate the POSIX requirement
++ of at least three characters in an abbreviation.)
+
+
+
+@@ -775,7 +794,7 @@
+ the Western 06:00 to be 12:00. These practices are largely outside
+ the scope of the tz code and data, which
+ provide only limited support for date and time localization
+- such as that required by POSIX.1-2017.
++ such as that required by POSIX.
+ If DST is not used a different time zone
+ can often do the trick; for example, in Kenya a TZ setting
+ like <-03>3 or America/Cayenne starts
+@@ -866,29 +885,62 @@
+ part of many platforms, where the
+ primary use of this package is to update obsolete time-related files.
+ To do this, you may need to compile the time zone compiler
+-'zic' supplied with this package instead of using the
+-system 'zic', since the format of zic's
++zic supplied with this package instead of using the
++system zic, since the format of zic's
+ input is occasionally extended, and a platform may still be shipping
+ an older zic.
+
+
+-POSIX.1-2017 properties and limitations
++
++In POSIX, time display in a process is controlled by the
++environment variable TZ, which can have two forms:
++
+
++ -
++ A proleptic
TZ value
++ like CET-1CEST,M3.5.0,M10.5.0/3 uses a complex
++ notation that specifies a single standard time along with daylight
++ saving rules that apply to all years past, present, and future.
++
++ -
++ A geographical
TZ value
++ like Europe/Berlin names a location that stands for
++ civil time near that location, which can have more than
++ one standard time and more than one set of daylight saving rules,
++ to record timekeeping practice more accurately.
++ These names are defined by the tz database.
++
++
++
++POSIX.1-2017 properties and limitations
++
++Some platforms support only the features required by POSIX.1-2017,
++and have not yet upgraded to POSIX.1-2024.
++Code intended to be portable to these platforms must deal
++with problems that were fixed in later POSIX editions.
++
++
++
++ -
++ POSIX.1-2017 does not require support for geographical
TZ,
++ and there is no convenient and efficient way to determine
++ the UT offset and time zone abbreviation of arbitrary
++ timestamps, particularly for timezones
++ that do not fit into the POSIX model.
++
+ -
+
+- In POSIX.1-2017, time display in a process is controlled by the
+- environment variable TZ.
+- Unfortunately, the POSIX.1-2017
+- TZ string takes a form that is hard to describe and
+- is error-prone in practice.
+- Also, POSIX.1-2017 TZ strings cannot deal with daylight
++ The proleptic TZ string,
++ which is all that POSIX.1-2017 requires,
++ has a format that is hard to describe and is error-prone in practice.
++ Also, proleptic TZ strings cannot deal with daylight
+ saving time rules not based on the Gregorian calendar (as in
+ Morocco), or with situations where more than two time zone
+ abbreviations or UT offsets are used in an area.
+
+
+
+- The POSIX.1-2017 TZ string takes the following form:
++ A proleptic TZ string has the following format:
+
+
+
+@@ -955,7 +1007,7 @@
+
+
+
+- Here is an example POSIX.1-2017 TZ string for New
++ Here is an example proleptic TZ string for New
+ Zealand after 2007.
+ It says that standard time (NZST) is 12 hours ahead
+ of UT, and that daylight saving time
+@@ -966,26 +1018,46 @@
+
TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'
+
+
+- This POSIX.1-2017 TZ string is hard to remember, and
++ This proleptic TZ string is hard to remember, and
+ mishandles some timestamps before 2008.
+- With this package you can use this instead:
++ With this package you can use a geographical TZ instead:
+
+
+ TZ='Pacific/Auckland'
+
++
++
++
++POSIX.1-2017 also has the limitations of POSIX.1-2024,
++discussed in the next section.
++
++
++POSIX.1-2024 properties and limitations
++
++POSIX.1-2024 extends POSIX.1-2017 in the following significant ways:
++
++
+ -
+- POSIX does not define the DST transitions
+- for
TZ values like
+- "EST5EDT".
+- Traditionally the current US DST rules
+- were used to interpret such values, but this meant that the
+- US DST rules were compiled into each
+- time conversion package, and when
+- US time conversion rules changed (as in the United
+- States in 1987 and again in 2007), all packages that
+- interpreted TZ values had to be updated
+- to ensure proper results.
++ POSIX.1-2024 requires support for geographical TZ.
++ Earlier POSIX editions require support only for proleptic TZ.
++
++ -
++ POSIX.1-2024 requires
struct tm
++ to have a UT offset member tm_gmtoff
++ and a time zone abbreviation member tm_zone.
++ Earlier POSIX editions lack this requirement.
++
++ -
++ DST transition times can range from −167:59:59
++ to 167:59:59 instead of merely from 00:00:00 to 24:59:59.
++ This allows for proleptic TZ strings
++ like
"<-02>2<-01>,M3.5.0/-1,M10.5.0/0"
++ where the transition time −1:00 means 23:00 the previous day.
+
++
++
++However POSIX.1-2024, like earlier POSIX editions, has some limitations:
++
+ -
+ The
TZ environment variable is process-global, which
+ makes it hard to write efficient, thread-safe applications that
+@@ -1003,16 +1075,34 @@
+ handling daylight saving time shifts – as might be required to
+ limit phone calls to off-peak hours.
+
+- -
+- POSIX.1-2017 provides no convenient and efficient way to determine
+- the UT offset and time zone abbreviation of arbitrary
+- timestamps, particularly for timezones
+- that do not fit into the POSIX model.
+-
+ -
+ POSIX requires that
time_t clock counts exclude leap
+ seconds.
+
++ -
++ POSIX does not define the DST transitions
++ for
TZ values like
++ "EST5EDT".
++ Traditionally the current US DST rules
++ were used to interpret such values, but this meant that the
++ US DST rules were compiled into each
++ time conversion package, and when
++ US time conversion rules changed (as in the United
++ States in 1987 and again in 2007), all packages that
++ interpreted TZ values had to be updated
++ to ensure proper results.
++
++
++
++Extensions to POSIX in the
++tz code
++
++ The tz code defines some properties
++ left unspecified by POSIX, and attempts to support some
++ extensions to POSIX.
++
++
++
+ -
+ The
tz code attempts to support all the
+ time_t implementations allowed by POSIX.
+@@ -1026,25 +1116,18 @@
+ and 40-bit integers are also used occasionally.
+ Although earlier POSIX versions allowed time_t to be a
+ floating-point type, this was not supported by any practical system,
+- and POSIX.1-2013 and the tz code both
++ and POSIX.1-2013+ and the tz code both
+ require time_t to be an integer type.
+
+-
+-
+-Extensions to POSIX.1-2017 in the
+-tz code
+-
+ -
+
+- The TZ environment variable is used in generating
+- the name of a file from which time-related information is read
+- (or is interpreted à la POSIX.1-2017); TZ is no longer
+- constrained to be a string containing abbreviations
+- and numeric data as described above.
++ If the TZ environment variable uses the geographical format,
++ it is used in generating
++ the name of a file from which time-related information is read.
+ The file's format is TZif,
+ a timezone information format that contains binary data; see
+- Internet
+- RFC 8536.
++ Internet
++ RFC 9636.
+ The daylight saving time rules to be used for a
+ particular timezone are encoded in the
+ TZif file; the format of the file allows US,
+@@ -1053,10 +1136,11 @@
+ abbreviations are used.
+
+
+- It was recognized that allowing the TZ environment
++ When the tz code was developed in the 1980s,
++ it was recognized that allowing the TZ environment
+ variable to take on values such as 'America/New_York'
+ might cause "old" programs (that expect TZ to have a
+- certain form) to operate incorrectly; consideration was given to using
++ certain format) to operate incorrectly; consideration was given to using
+ some other environment variable (for example, TIMEZONE)
+ to hold the string used to generate the TZif file's name.
+ In the end, however, it was decided to continue using
+@@ -1069,15 +1153,6 @@
+ assume pre-POSIX TZ values.
+
+
+- -
+- The code supports platforms with a UT offset member
+- in
struct tm, e.g., tm_gmtoff,
+- or with a time zone abbreviation member in
+- struct tm, e.g., tm_zone. As noted
+- in Austin
+- Group defect 1533, a future version of POSIX is planned to
+- require tm_gmtoff and tm_zone.
+-
+ -
+ Functions
tzalloc, tzfree,
+ localtime_rz, and mktime_z for
+@@ -1088,7 +1163,7 @@
+ and localtime_rz and mktime_z are
+ like localtime_r and mktime with an
+ extra timezone_t argument.
+- The functions were inspired by NetBSD.
++ The functions were inspired by NetBSD.
+
+ -
+ Negative
time_t values are supported, on systems
+@@ -1116,6 +1191,7 @@
+ -
+ The POSIX
tzname variable does not suffice and is no
+ longer needed.
++ It is planned to be removed in a future edition of POSIX.
+ To get a timestamp's time zone abbreviation, consult
+ the tm_zone member if available; otherwise,
+ use strftime's "%Z" conversion
+@@ -1124,6 +1200,7 @@
+ -
+ The POSIX
daylight and timezone
+ variables do not suffice and are no longer needed.
++ They are planned to be removed in a future edition of POSIX.
+ To get a timestamp's UT offset, consult
+ the tm_gmtoff member if available; otherwise,
+ subtract values returned by localtime
+@@ -1135,12 +1212,15 @@
+ The tm_isdst member is almost never needed and most of
+ its uses should be discouraged in favor of the abovementioned
+ APIs.
++ It was intended as an index into the tzname variable,
++ but as mentioned previously that usage is obsolete.
+ Although it can still be used in arguments to
+ mktime to disambiguate timestamps near
+ a DST transition when the clock jumps back on
+ platforms lacking tm_gmtoff, this
+- disambiguation does not work when standard time itself jumps back,
+- which can occur when a location changes to a time zone with a
++ disambiguation works only for proleptic TZ strings;
++ it does not work in general for geographical timezones,
++ such as when a location changes to a time zone with a
+ lesser UT offset.
+
+
+@@ -1157,8 +1237,8 @@
+ Programs that in the past used the timezone function
+ may now examine localtime(&clock)->tm_zone
+ (if TM_ZONE is defined) or
+- tzname[localtime(&clock)->tm_isdst]
+- (if HAVE_TZNAME is nonzero) to learn the correct time
++ use strftime with a %Z conversion specification
++ to learn the correct time
+ zone abbreviation to use.
+
+
+@@ -1278,13 +1358,13 @@
+
+ Leap seconds were introduced in 1972 to accommodate the
+ difference between atomic time and the less regular rotation of the earth.
+-Unfortunately they caused so many problems with civil
+-timekeeping that they
+-are planned
+-to be discontinued by 2035, with some as-yet-undetermined
+-mechanism replacing them, perhaps after the year 2135.
+-Despite their impending obsolescence, a record of leap seconds is still
+-needed to resolve timestamps from 1972 through 2035.
++Unfortunately they have caused so many problems with civil
++timekeeping that there are
++plans
++to discontinue them by 2035.
++Even if these plans come to fruition, a record of leap seconds will still be
++needed to resolve timestamps from 1972 through 2035,
++and there may also be a need to record whatever mechanism replaces them.
+
+
+
+@@ -1374,6 +1454,12 @@
+ the establishment of a reference timescale for the Moon, which has
+ days roughly equivalent to 29.5 Earth days, and where relativistic
+ effects cause clocks to tick slightly faster than on Earth.
++Also, NASA
++has been ordered
++to consider the establishment of Coordinated Lunar Time (LTC).
++It is not yet known whether the US and European efforts will result in
++multiple timescales on the Moon.
+
+
+
+--- contrib/tzdata/version.orig
++++ contrib/tzdata/version
+@@ -1 +1 @@
+-2024a
++2025a
+--- contrib/tzdata/ziguard.awk.orig
++++ contrib/tzdata/ziguard.awk
+@@ -5,14 +5,10 @@
+ # This is not a general-purpose converter; it is designed for current tzdata.
+ # It just converts from current source to main, vanguard, and rearguard forms.
+ # Although it might be nice for it to be idempotent, or to be useful
+-# for converting back and forth between vanguard and rearguard formats,
++# for converting back and forth between formats,
+ # it does not do these nonessential tasks now.
+ #
+-# Although main and vanguard forms are currently equivalent,
+-# this need not always be the case. When the two forms differ,
+-# this script can convert either from main to vanguard form (needed then),
+-# or from vanguard to main form (this conversion would be needed later,
+-# after main became rearguard and vanguard became main).
++# This script can convert from main to vanguard form and vice versa.
+ # There is no need to convert rearguard to other forms.
+ #
+ # When converting to vanguard form, the output can use the line
+@@ -145,12 +141,12 @@
+ }
+
+ # If this line should differ due to Portugal benefiting from %z if supported,
+- # uncomment the desired version and comment out the undesired one.
+- if ($0 ~ /^#?[\t ]+-[12]:00[\t ]+Port[\t ]+[%+-]/) {
+- if (($0 ~ /%z/) == (DATAFORM == "vanguard")) {
+- uncomment = in_comment
+- } else {
++ # comment out the undesired version and uncomment the desired one.
++ if ($0 ~ /^#?[\t ]+-[12]:00[\t ]+((Port|W-Eur)[\t ]+[%+-]|-[\t ]+(%z|-01)[\t ]+1982 Mar 28)/) {
++ if (($0 ~ /%z/) == (DATAFORM == "rearguard")) {
+ comment_out = !in_comment
++ } else {
++ uncomment = in_comment
+ }
+ }
+
+@@ -172,13 +168,8 @@
+ sub(/^/, "#")
+ }
+
+- # Prefer %z in vanguard form, explicit abbreviations otherwise.
+- if (DATAFORM == "vanguard") {
+- sub(/^(Zone[\t ]+[^\t ]+)?[\t ]+[^\t ]+[\t ]+[^\t ]+[\t ]+[-+][^\t ]+/, \
+- "&CHANGE-TO-%z")
+- sub(/-00CHANGE-TO-%z/, "-00")
+- sub(/[-+][^\t ]+CHANGE-TO-/, "")
+- } else {
++ # Prefer explicit abbreviations in rearguard form, %z otherwise.
++ if (DATAFORM == "rearguard") {
+ if ($0 ~ /^[^#]*%z/) {
+ stdoff_column = 2 * ($0 ~ /^Zone/) + 1
+ rules_column = stdoff_column + 1
+@@ -216,6 +207,11 @@
+ }
+ sub(/%z/, abbr)
+ }
++ } else {
++ sub(/^(Zone[\t ]+[^\t ]+)?[\t ]+[^\t ]+[\t ]+[^\t ]+[\t ]+[-+][^\t ]+/, \
++ "&CHANGE-TO-%z")
++ sub(/-00CHANGE-TO-%z/, "-00")
++ sub(/[-+][^\t ]+CHANGE-TO-/, "")
+ }
+
+ # Normally, prefer whole seconds. However, prefer subseconds
+--- contrib/tzdata/zone.tab.orig
++++ contrib/tzdata/zone.tab
+@@ -264,8 +264,7 @@
+ ML +1239-00800 Africa/Bamako
+ MM +1647+09610 Asia/Yangon
+ MN +4755+10653 Asia/Ulaanbaatar most of Mongolia
+-MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
+-MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
++MN +4801+09139 Asia/Hovd Bayan-Olgii, Hovd, Uvs
+ MO +221150+1133230 Asia/Macau
+ MP +1512+14545 Pacific/Saipan
+ MQ +1436-06105 America/Martinique
+@@ -311,7 +310,7 @@
+ PF -2308-13457 Pacific/Gambier Gambier Islands
+ PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea
+ PG -0613+15534 Pacific/Bougainville Bougainville
+-PH +1435+12100 Asia/Manila
++PH +143512+1205804 Asia/Manila
+ PK +2452+06703 Asia/Karachi
+ PL +5215+02100 Europe/Warsaw
+ PM +4703-05620 America/Miquelon
+--- contrib/tzdata/zone1970.tab.orig
++++ contrib/tzdata/zone1970.tab
+@@ -184,7 +184,7 @@
+ IT,SM,VA +4154+01229 Europe/Rome
+ JM +175805-0764736 America/Jamaica
+ JO +3157+03556 Asia/Amman
+-JP +353916+1394441 Asia/Tokyo
++JP,AU +353916+1394441 Asia/Tokyo Eyre Bird Observatory
+ KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi
+ KG +4254+07436 Asia/Bishkek
+ KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Wake
+@@ -210,8 +210,7 @@
+ MH +0905+16720 Pacific/Kwajalein Kwajalein
+ MM,CC +1647+09610 Asia/Yangon
+ MN +4755+10653 Asia/Ulaanbaatar most of Mongolia
+-MN +4801+09139 Asia/Hovd Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan
+-MN +4804+11430 Asia/Choibalsan Dornod, Sükhbaatar
++MN +4801+09139 Asia/Hovd Bayan-Ölgii, Hovd, Uvs
+ MO +221150+1133230 Asia/Macau
+ MQ +1436-06105 America/Martinique
+ MT +3554+01431 Europe/Malta
+@@ -248,7 +247,7 @@
+ PF -2308-13457 Pacific/Gambier Gambier Islands
+ PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville
+ PG -0613+15534 Pacific/Bougainville Bougainville
+-PH +1435+12100 Asia/Manila
++PH +143512+1205804 Asia/Manila
+ PK +2452+06703 Asia/Karachi
+ PL +5215+02100 Europe/Warsaw
+ PM +4703-05620 America/Miquelon
+@@ -295,7 +294,7 @@
+ SA,AQ,KW,YE +2438+04643 Asia/Riyadh Syowa
+ SB,FM -0932+16012 Pacific/Guadalcanal Pohnpei
+ SD +1536+03232 Africa/Khartoum
+-SG,MY +0117+10351 Asia/Singapore peninsular Malaysia
++SG,AQ,MY +0117+10351 Asia/Singapore peninsular Malaysia, Concordia
+ SR +0550-05510 America/Paramaribo
+ SS +0451+03137 Africa/Juba
+ ST +0020+00644 Africa/Sao_Tome
+--- contrib/tzdata/zonenow.tab.orig
++++ contrib/tzdata/zonenow.tab
+@@ -5,7 +5,7 @@
+ # From Paul Eggert (2023-12-18):
+ # This file contains a table where each row stands for a timezone
+ # where civil timestamps are predicted to agree from now on.
+-# This file is like zone1970.tab (see zone1970.tab's coments),
++# This file is like zone1970.tab (see zone1970.tab's comments),
+ # but with the following changes:
+ #
+ # 1. Each timezone corresponds to a set of clocks that are planned
+@@ -97,9 +97,6 @@
+ # -04/-03 (Chile DST)
+ XX -3327-07040 America/Santiago most of Chile
+ #
+-# -04/-03 (Paraguay DST)
+-XX -2516-05740 America/Asuncion Paraguay
+-#
+ # -04/-03 - AST/ADT (North America DST)
+ XX +4439-06336 America/Halifax Atlantic ("AST/ADT") - Canada; Bermuda
+ #
+@@ -123,8 +120,6 @@
+ #
+ # -01/+00 (EU DST)
+ XX +3744-02540 Atlantic/Azores Azores
+-# -01/+00 (EU DST) until 2024-03-31; then -02/-01 (EU DST)
+-XX +7029-02158 America/Scoresbysund Ittoqqortoormiit
+ #
+ # +00 - GMT
+ XX +0519-00402 Africa/Abidjan far western Africa; Iceland ("GMT")
+@@ -199,7 +194,7 @@
+ XX +3431+06912 Asia/Kabul Afghanistan
+ #
+ # +05
+-XX +4120+06918 Asia/Tashkent Russia; west Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives
++XX +4120+06918 Asia/Tashkent Russia; Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives
+ #
+ # +05 - PKT
+ XX +2452+06703 Asia/Karachi Pakistan ("PKT")
+@@ -215,8 +210,6 @@
+ #
+ # +06
+ XX +2343+09025 Asia/Dhaka Russia; Kyrgyzstan; Bhutan; Bangladesh; Chagos
+-# +06 until 2024-03-01; then +05
+-XX +4315+07657 Asia/Almaty Kazakhstan (except western areas)
+ #
+ # +06:30
+ XX +1647+09610 Asia/Yangon Myanmar; Cocos
+@@ -228,7 +221,7 @@
+ XX -0610+10648 Asia/Jakarta Indonesia ("WIB")
+ #
+ # +08
+-XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore
++XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia
+ #
+ # +08 - AWST
+ XX -3157+11551 Australia/Perth Western Australia ("AWST")
+@@ -240,7 +233,7 @@
+ XX +2217+11409 Asia/Hong_Kong Hong Kong ("HKT")
+ #
+ # +08 - PHT
+-XX +1435+12100 Asia/Manila Philippines ("PHT")
++XX +143512+1205804 Asia/Manila Philippines ("PHT")
+ #
+ # +08 - WITA
+ XX -0507+11924 Asia/Makassar Indonesia ("WITA")
+@@ -252,7 +245,7 @@
+ XX +5203+11328 Asia/Chita Russia; Palau; East Timor
+ #
+ # +09 - JST
+-XX +353916+1394441 Asia/Tokyo Japan ("JST")
++XX +353916+1394441 Asia/Tokyo Japan ("JST"); Eyre Bird Observatory
+ #
+ # +09 - KST
+ XX +3733+12658 Asia/Seoul Korea ("KST")
diff --git a/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch.asc b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch.asc
new file mode 100644
index 0000000000..a4ca86afd8
--- /dev/null
+++ b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKYACgkQbljekB8A
+Gu/rTBAArfZClfutaM3DseJ5JQqYK9ZX8/K5bD7VXdz3ES+4+/OUq9JLS3mTDWfu
+KCWzuwf90nrE4E5HSLzvNjZj20EDw+rHPg0abmxc+itmixERMRttSfnYWyNA8aTx
+eqhZQpT7AyB7oEQEwl+u74Hziu04q94Dzw2uJ8Nd8wEgsOuAz5UKigiyFyzkhWJV
+KZeiS5BbCAoH+/OETNHjeloe+9J8hCHP4u48JktEMjHmNKcLE0Cz1i+AdN1VzUB7
+EoGhYkQzs25avBL5gFJabR7EJh1Ui6vT58LI/k3rAsnjlynAV+OZRyzzDg0f9UID
+ZqIL2PtAUI2NpF4O8H9FnlWxZXQlV8Dsu8dN0dT2nKTOicEponmlK+h7MPpIxmKc
+yPSDQ8Omu1jMSCuM1uoylvwxnSvRof2eOxCvlRjhG1pOGCYmGm1JQe3yXEIb9kb9
+2iDncF+8qFh/aa16gwsjFXqdB1nj5hds+F4ZSer67sOh1+EzhuJD7JlC1DvLl9Te
+C3Rdui3yLRwy3iZLodhv+OZmmUt2K0qR7Tp5+JER72iOMy4U0y9f3CwzqTNNEavm
+eDVvrnWZLFj5qRY5p4nzWvfz92BMoXIqFTElmwcHs9l2RW6AZts6i9qPTYIGN8bd
+c+VC4X7SRh5eRkmDQqYXOAdiBR44XygJqK6wE1Dh9IWJKkNUfxo=
+=AyyE
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/EN-25:03/tzdata-2025a.patch b/website/static/security/patches/EN-25:03/tzdata-2025a.patch
new file mode 100644
index 0000000000..dbc93c9653
--- /dev/null
+++ b/website/static/security/patches/EN-25:03/tzdata-2025a.patch
@@ -0,0 +1,929 @@
+--- contrib/tzdata/Makefile.orig
++++ contrib/tzdata/Makefile
+@@ -137,7 +137,7 @@
+ uint_least64_t.ck
+
+ # What kind of TZif data files to generate. (TZif is the binary time
+-# zone data format that zic generates; see Internet RFC 8536.)
++# zone data format that zic generates; see Internet RFC 9636.)
+ # If you want only POSIX time, with time values interpreted as
+ # seconds since the epoch (not counting leap seconds), use
+ # REDO= posix_only
+@@ -255,6 +255,7 @@
+ # -DHAVE_UNISTD_H=0 if does not work*
+ # -DHAVE_UTMPX_H=0 if does not work*
+ # -Dlocale_t=XXX if your system uses XXX instead of locale_t
++# -DMKTIME_MIGHT_OVERFLOW if mktime might fail due to time_t overflow
+ # -DPORT_TO_C89 if tzcode should also run on mostly-C89 platforms+
+ # Typically it is better to use a later standard. For example,
+ # with GCC 4.9.4 (2016), prefer '-std=gnu11' to '-DPORT_TO_C89'.
+@@ -262,7 +263,7 @@
+ # feature (integers at least 64 bits wide) and maybe more.
+ # -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
+ # with external linkage, e.g., applications cannot define 'localtime'.
+-# -Dssize_t=long on hosts like MS-Windows that lack ssize_t
++# -Dssize_t=int on hosts like MS-Windows that lack ssize_t
+ # -DSUPPORT_C89=0 if the tzcode library should not support C89 callers
+ # Although -DSUPPORT_C89=0 might work around latent bugs in callers,
+ # it does not conform to POSIX.
+@@ -285,7 +286,7 @@
+ # This mishandles some past timestamps, as US DST rules have changed.
+ # It also mishandles settings like TZ='EET-2EEST' for eastern Europe,
+ # as Europe and US DST rules differ.
+-# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255)
++# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 254)
+ # -DUNINIT_TRAP if reading uninitialized storage can cause problems
+ # other than simply getting garbage data
+ # -DUSE_LTZ=0 to build zdump with the system time zone library
+@@ -319,7 +320,8 @@
+ $(GCC_INSTRUMENT) \
+ -Wall -Wextra \
+ -Walloc-size-larger-than=100000 -Warray-bounds=2 \
+- -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \
++ -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wcast-qual \
++ -Wdate-time \
+ -Wdeclaration-after-statement -Wdouble-promotion \
+ -Wduplicated-branches -Wduplicated-cond -Wflex-array-member-not-at-end \
+ -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
+@@ -336,7 +338,7 @@
+ -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \
+ -Wtrampolines -Wundef -Wunused-macros -Wuse-after-free=3 \
+ -Wvariadic-macros -Wvla -Wwrite-strings \
+- -Wno-format-nonliteral -Wno-sign-compare
++ -Wno-format-nonliteral -Wno-sign-compare -Wno-type-limits
+ #
+ # If your system has a "GMT offset" field in its "struct tm"s
+ # (or if you decide to add such a field in your system's "time.h" file),
+@@ -614,8 +616,8 @@
+ TZS_CUTOFF_FLAG= -c $(TZS_YEAR)
+ TZS= to$(TZS_YEAR).tzs
+ TZS_NEW= to$(TZS_YEAR)new.tzs
+-TZS_DEPS= $(YDATA) asctime.c localtime.c \
+- private.h tzfile.h zdump.c zic.c
++TZS_DEPS= $(YDATA) localtime.c private.h \
++ strftime.c tzfile.h zdump.c zic.c
+ TZDATA_DIST = $(COMMON) $(DATA) $(MISC)
+ # EIGHT_YARDS is just a yard short of the whole ENCHILADA.
+ EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi
+@@ -855,10 +857,10 @@
+ chmod +x $@.out
+ mv $@.out $@
+
+-check: check_mild back.ck
++check: check_mild back.ck now.ck
+ check_mild: check_web check_zishrink \
+ character-set.ck white-space.ck links.ck mainguard.ck \
+- name-lengths.ck now.ck slashed-abbrs.ck sorted.ck \
++ name-lengths.ck slashed-abbrs.ck sorted.ck \
+ tables.ck ziguard.ck tzs.ck
+
+ # True if UTF8_LOCALE does not work;
+@@ -1103,7 +1105,7 @@
+ touch -md @1 test.out; then \
+ rm -f test.out && \
+ for file in $$files; do \
+- if git diff --quiet $$file; then \
++ if git diff --quiet HEAD $$file; then \
+ time=$$(TZ=UTC0 git log -1 \
+ --format='tformat:%cd' \
+ --date='format:%Y-%m-%dT%H:%M:%SZ' \
+@@ -1354,13 +1356,13 @@
+ zonenames: tzdata.zi
+ @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
+
+-asctime.o: private.h tzfile.h
++asctime.o: private.h
+ date.o: private.h
+ difftime.o: private.h
+-localtime.o: private.h tzfile.h tzdir.h
+-strftime.o: private.h tzfile.h
+-zdump.o: version.h
+-zic.o: private.h tzfile.h tzdir.h version.h
++localtime.o: private.h tzdir.h tzfile.h
++strftime.o: localtime.c private.h tzdir.h tzfile.h
++zdump.o: private.h version.h
++zic.o: private.h tzdir.h tzfile.h version.h
+
+ .PHONY: ALL INSTALL all
+ .PHONY: check check_mild check_time_t_alternatives
+--- contrib/tzdata/NEWS.orig
++++ contrib/tzdata/NEWS
+@@ -1,5 +1,83 @@
+ News for the tz database
+
++Release 2025a - 2025-01-15 10:47:24 -0800
++
++ Briefly:
++ Paraguay adopts permanent -03 starting spring 2024.
++ Improve pre-1991 data for the Philippines.
++ Etc/Unknown is now reserved.
++
++ Changes to future timestamps
++
++ Paraguay will stop changing its clocks after the spring-forward
++ transition on 2024-10-06, so it is now permanently at -03.
++ (Thanks to Heitor David Pinto and Even Scharning.)
++ This affects timestamps starting 2025-03-22, as well as the
++ obsolescent tm_isdst flags starting 2024-10-15.
++
++ Changes to past timestamps
++
++ Correct timestamps for the Philippines before 1900, and from 1937
++ through 1990. (Thanks to P Chan for the heads-up and citations.)
++ This includes adjusting local mean time before 1899; fixing
++ transitions in September 1899, January 1937, and June 1954; adding
++ transitions in December 1941, November 1945, March and September
++ 1977, and May and July 1990; and removing incorrect transitions in
++ March and September 1978.
++
++ Changes to data
++
++ Add zone1970.tab lines for the Concordia and Eyre Bird Observatory
++ research stations. (Thanks to Derick Rethans and Jule Dabars.)
++
++ Changes to code
++
++ strftime %s now generates the correct numeric string even when the
++ represented number does not fit into time_t. This is better than
++ generating the numeric equivalent of (time_t) -1, as strftime did
++ in TZDB releases 96a (when %s was introduced) through 2020a and in
++ releases 2022b through 2024b. It is also better than failing and
++ returning 0, as strftime did in releases 2020b through 2022a.
++
++ strftime now outputs an invalid conversion specifier as-is,
++ instead of eliding the leading '%', which confused debugging.
++
++ An invalid TZ now generates the time zone abbreviation "-00", not
++ "UTC", to help the user see that an error has occurred. (Thanks
++ to Arthur David Olson for suggesting a "wrong result".)
++
++ mktime and timeoff no longer incorrectly fail merely because a
++ struct tm component near INT_MIN or INT_MAX overflows when a
++ lower-order component carries into it.
++
++ TZNAME_MAXIMUM, the maximum number of bytes in a proleptic TZ
++ string's time zone abbreviation, now defaults to 254 not 255.
++ This helps reduce the size of internal state from 25480 to 21384
++ on common platforms. This change should not be a problem, as
++ nobody uses such long "abbreviations" and the longstanding tzcode
++ maximum was 16 until release 2023a. For those who prefer no
++ arbitrary limits, you can now specify TZNAME_MAXIMUM values up to
++ PTRDIFF_MAX, a limit forced by C anyway; formerly tzcode silently
++ misbehaved unless TZNAME_MAXIMUM was less than INT_MAX.
++
++ tzset and related functions no longer leak a file descriptor if
++ another thread forks or execs at about the same time and if the
++ platform has O_CLOFORK and O_CLOEXEC respectively. Also, the
++ functions no longer let a TZif file become a controlling terminal.
++
++ 'zdump -' now reads TZif data from /dev/stdin.
++ (From a question by Arthur David Olson.)
++
++ Changes to documentation
++
++ The name Etc/Unknown is now reserved: it will not be used by TZDB.
++ This is for compatibility with CLDR, which uses the string
++ "Etc/Unknown" for an unknown or invalid timezone. (Thanks to
++ Justin Grant, Mark Davis, and Guy Harris.)
++
++ Cite Internet RFC 9636, which obsoletes RFC 8536 for TZif format.
++
++
+ Release 2024b - 2024-09-04 12:27:47 -0700
+
+ Briefly:
+@@ -116,7 +194,7 @@
+ Changes to commentary
+
+ Commentary about historical transitions in Portugal and her former
+- colonies has been expanded with links to many relevant legislation.
++ colonies has been expanded with links to relevant legislation.
+ (Thanks to Tim Parenti.)
+
+
+@@ -204,10 +282,10 @@
+ changing its time zone from -01/+00 to -02/-01 at the same moment
+ as the spring-forward transition. Its clocks will therefore not
+ spring forward as previously scheduled. The time zone change
+- reverts to its common practice before 1981.
++ reverts to its common practice before 1981. (Thanks to Jule Dabars.)
+
+ Fix predictions for DST transitions in Palestine in 2072-2075,
+- correcting a typo introduced in 2023a.
++ correcting a typo introduced in 2023a. (Thanks to Jule Dabars.)
+
+ Changes to past and future timestamps
+
+--- contrib/tzdata/antarctica.orig
++++ contrib/tzdata/antarctica
+@@ -174,6 +174,8 @@
+
+ # France & Italy - year-round base
+ # Concordia, -750600+1232000, since 2005
++# https://en.wikipedia.org/wiki/Concordia_Station
++# Can use Asia/Singapore, which it has agreed with since inception.
+
+ # Germany - year-round base
+ # Neumayer III, -704080-0081602, since 2009
+--- contrib/tzdata/asia.orig
++++ contrib/tzdata/asia
+@@ -3665,21 +3665,70 @@
+ # be immediately followed by 1845-01-01; see R.H. van Gent's
+ # History of the International Date Line
+ # https://webspace.science.uu.nl/~gent0113/idl/idl_philippines.htm
+-# The rest of the data entries are from Shanks & Pottenger.
+-
+-# From Jesper Nørgaard Welen (2006-04-26):
+-# ... claims that Philippines had DST last time in 1990:
+-# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/
+-# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires,
+-# but no details]
+-
+-# From Paul Eggert (2014-08-14):
+-# The following source says DST may be instituted November-January and again
+-# March-June, but this is not definite. It also says DST was last proclaimed
+-# during the Ramos administration (1992-1998); but again, no details.
+-# Carcamo D. PNoy urged to declare use of daylight saving time.
+-# Philippine Star 2014-08-05
+-# http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time
++
++# From P Chan (2021-05-10):
++# Here's a fairly comprehensive article in Japanese:
++# https://wiki.suikawiki.org/n/Philippine%20Time
++# (2021-05-16):
++# According to the references listed in the article,
++# the periods that the Philippines (Manila) observed DST or used +9 are:
++#
++# 1936-10-31 24:00 to 1937-01-15 24:00
++# (Proclamation No. 104, Proclamation No. 126)
++# 1941-12-15 24:00 to 1945-11-30 24:00
++# (Proclamation No. 789, Proclamation No. 20)
++# 1954-04-11 24:00 to 1954-06-04 24:00
++# (Proclamation No. 13, Proclamation No. 33)
++# 1977-03-27 24:00 to 1977-09-21 24:00
++# (Proclamation No. 1629, Proclamation No. 1641)
++# 1990-05-21 00:00 to 1990-07-28 24:00
++# (National Emergency Memorandum Order No. 17, Executive Order No. 415)
++#
++# Proclamation No. 104 ... October 30, 1936
++# https://www.officialgazette.gov.ph/1936/10/30/proclamation-no-104-s-1936/
++# Proclamation No. 126 ... January 15, 1937
++# https://www.officialgazette.gov.ph/1937/01/15/proclamation-no-126-s-1937/
++# Proclamation No. 789 ... December 13, 1941
++# https://www.officialgazette.gov.ph/1941/12/13/proclamation-no-789-s-1941/
++# Proclamation No. 20 ... November 11, 1945
++# https://www.officialgazette.gov.ph/1945/11/11/proclamation-no-20-s-1945/
++# Proclamation No. 13 ... April 6, 1954
++# https://www.officialgazette.gov.ph/1954/04/06/proclamation-no-13-s-1954/
++# Proclamation No. 33 ... June 3, 1954
++# https://www.officialgazette.gov.ph/1954/06/03/proclamation-no-33-s-1954/
++# Proclamation No. 1629 ... March 25, 1977
++# https://www.officialgazette.gov.ph/1977/03/25/proclamation-no-1629-s-1977/
++# Proclamation No. 1641 ...May 26, 1977
++# https://www.officialgazette.gov.ph/1977/05/26/proclamation-no-1641-s-1977/
++# National Emergency Memorandum Order No. 17 ... May 2, 1990
++# https://www.officialgazette.gov.ph/1990/05/02/national-emergency-memorandum-order-no-17-s-1990/
++# Executive Order No. 415 ... July 20, 1990
++# https://www.officialgazette.gov.ph/1990/07/20/executive-order-no-415-s-1990/
++#
++# During WWII, Proclamation No. 789 fixed two periods of DST. The first period
++# was set to continue only until January 31, 1942. But Manila was occupied by
++# the Japanese earlier in the month....
++#
++# For the date of the adoption of standard time, Shank[s] gives 1899-05-11.
++# The article is not able to state the basis of that. I guess it was based on
++# a US War Department Circular issued on that date.
++# https://books.google.com/books?id=JZ1PAAAAYAAJ&pg=RA3-PA8
++#
++# However, according to other sources, standard time was adopted on
++# 1899-09-06. Also, the LMT was GMT+8:03:52
++# https://books.google.com/books?id=MOYIAQAAIAAJ&pg=PA521
++# https://books.google.com/books?id=lSnqqatpYikC&pg=PA21
++#
++# From Paul Eggert (2024-09-05):
++# The penultimate URL in P Chan's email refers to page 521 of
++# Selga M, The Time Service in the Philippines.
++# Proc Pan-Pacific Science Congress. Vol. 1 (1923), 519-532.
++# It says, "The change from the meridian 120° 58' 04" to the 120th implied a
++# change of 3 min. 52s.26 in time; consequently on 6th September, 1899,
++# Manila Observatory gave the noon signal 3 min. 52s.26 later than before".
++#
++# Wikipedia says the US declared Manila liberated on March 4, 1945;
++# this doesn't affect clocks, just our time zone abbreviation and DST flag.
+
+ # From Paul Goyette (2018-06-15) with URLs updated by Guy Harris (2024-02-15):
+ # In the Philippines, there is a national law, Republic Act No. 10535
+@@ -3697,24 +3746,26 @@
+ # influence of the sources. There is no current abbreviation for DST,
+ # so use "PDT", the usual American style.
+
+-# From P Chan (2021-05-10):
+-# Here's a fairly comprehensive article in Japanese:
+-# https://wiki.suikawiki.org/n/Philippine%20Time
+-# From Paul Eggert (2021-05-10):
+-# The info in the Japanese table has not been absorbed (yet) below.
+-
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+-Rule Phil 1936 only - Nov 1 0:00 1:00 D
+-Rule Phil 1937 only - Feb 1 0:00 0 S
+-Rule Phil 1954 only - Apr 12 0:00 1:00 D
+-Rule Phil 1954 only - Jul 1 0:00 0 S
+-Rule Phil 1978 only - Mar 22 0:00 1:00 D
+-Rule Phil 1978 only - Sep 21 0:00 0 S
++Rule Phil 1936 only - Oct 31 24:00 1:00 D
++Rule Phil 1937 only - Jan 15 24:00 0 S
++Rule Phil 1941 only - Dec 15 24:00 1:00 D
++# The following three rules were canceled by Japan:
++#Rule Phil 1942 only - Jan 31 24:00 0 S
++#Rule Phil 1942 only - Mar 1 0:00 1:00 D
++#Rule Phil 1942 only - Jun 30 24:00 0 S
++Rule Phil 1945 only - Nov 30 24:00 0 S
++Rule Phil 1954 only - Apr 11 24:00 1:00 D
++Rule Phil 1954 only - Jun 4 24:00 0 S
++Rule Phil 1977 only - Mar 27 24:00 1:00 D
++Rule Phil 1977 only - Sep 21 24:00 0 S
++Rule Phil 1990 only - May 21 0:00 1:00 D
++Rule Phil 1990 only - Jul 28 24:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31
+- 8:04:00 - LMT 1899 May 11
+- 8:00 Phil P%sT 1942 May
+- 9:00 - JST 1944 Nov
++Zone Asia/Manila -15:56:08 - LMT 1844 Dec 31
++ 8:03:52 - LMT 1899 Sep 6 4:00u
++ 8:00 Phil P%sT 1942 Feb 11 24:00
++ 9:00 - JST 1945 Mar 4
+ 8:00 Phil P%sT
+
+ # Bahrain
+--- contrib/tzdata/australasia.orig
++++ contrib/tzdata/australasia
+@@ -1239,10 +1239,10 @@
+ # The 1992 ending date used in the rules is a best guess;
+ # it matches what was used in the past.
+
+-# The Australian Bureau of Meteorology FAQ
+-# http://www.bom.gov.au/faq/faqgen.htm
+-# (1999-09-27) writes that Giles Meteorological Station uses
+-# South Australian time even though it's located in Western Australia.
++# From Christopher Hunt (2006-11-21), after an advance warning
++# from Jesper Nørgaard Welen (2006-11-01):
++# WA are trialing DST for three years.
++# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf
+
+ # From Paul Eggert (2018-04-01):
+ # The Guardian Express of Perth, Australia reported today that the
+@@ -1254,54 +1254,10 @@
+ # https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/
+ # [The article ends with "Today's date is April 1."]
+
+-# Queensland
+-
+-# From Paul Eggert (2018-02-26):
+-# I lack access to the following source for Queensland DST:
+-# Pearce C. History of daylight saving time in Queensland.
+-# Queensland Hist J. 2017 Aug;23(6):389-403
+-# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS
+-
+-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
+-# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
+-# # [ Dec 1990 ]
+-# ...
+-# Zone Australia/Queensland 10:00 AQ %sST
+-# ...
+-# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D
+-# Rule AQ 1972 only - Feb lastSun 3:00 0 E
+-# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D
+-# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E
+-
+-# From Bradley White (1989-12-24):
+-# "Australia/Queensland" now observes daylight time (i.e. from
+-# October 1989).
+-
+-# From Bradley White (1991-03-04):
+-# A recent excerpt from an Australian newspaper...
+-# ...Queensland...[has] agreed to end daylight saving
+-# at 3am tomorrow (March 3)...
+-
+-# From John Mackin (1991-03-06):
+-# I can certainly confirm for my part that Daylight Saving in NSW did in fact
+-# end on Sunday, 3 March. I don't know at what hour, though. (It surprised
+-# me.)
+-
+-# From Bradley White (1992-03-08):
+-# ...there was recently a referendum in Queensland which resulted
+-# in the experimental daylight saving system being abandoned. So, ...
+-# ...
+-# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D
+-# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S
+-# ...
+-
+-# From Arthur David Olson (1992-03-08):
+-# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
+-
+-# From Christopher Hunt (2006-11-21), after an advance warning
+-# from Jesper Nørgaard Welen (2006-11-01):
+-# WA are trialing DST for three years.
+-# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf
++# The Australian Bureau of Meteorology FAQ
++# http://www.bom.gov.au/faq/faqgen.htm
++# (1999-09-27) writes that Giles Meteorological Station uses
++# South Australian time even though it's located in Western Australia.
+
+ # From Rives McDow (2002-04-09):
+ # The most interesting region I have found consists of three towns on the
+@@ -1359,6 +1315,59 @@
+ # For lack of better info, assume the tradition dates back to the
+ # introduction of standard time in 1895.
+
++# From Stuart Bishop (2024-11-12):
++# An article discussing the in-use but technically unofficial timezones
++# in the Western Australian portion of the Nullarbor Plain.
++# https://www.abc.net.au/news/2024-11-22/outback-wa-properties-strange-time-zones/104542494
++# From Paul Eggert (2024-11-12):
++# As the article says, the Eyre Bird Observatory and nearby sheep stations
++# can use Tokyo time. Other possibilities include Asia/Chita, Asia/Seoul,
++# and Asia/Jayapura.
++
++# Queensland
++
++# From Paul Eggert (2018-02-26):
++# I lack access to the following source for Queensland DST:
++# Pearce C. History of daylight saving time in Queensland.
++# Queensland Hist J. 2017 Aug;23(6):389-403
++# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS
++
++# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
++# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ]
++# # [ Dec 1990 ]
++# ...
++# Zone Australia/Queensland 10:00 AQ %sST
++# ...
++# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D
++# Rule AQ 1972 only - Feb lastSun 3:00 0 E
++# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D
++# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E
++
++# From Bradley White (1989-12-24):
++# "Australia/Queensland" now observes daylight time (i.e. from
++# October 1989).
++
++# From Bradley White (1991-03-04):
++# A recent excerpt from an Australian newspaper...
++# ...Queensland...[has] agreed to end daylight saving
++# at 3am tomorrow (March 3)...
++
++# From John Mackin (1991-03-06):
++# I can certainly confirm for my part that Daylight Saving in NSW did in fact
++# end on Sunday, 3 March. I don't know at what hour, though. (It surprised
++# me.)
++
++# From Bradley White (1992-03-08):
++# ...there was recently a referendum in Queensland which resulted
++# in the experimental daylight saving system being abandoned. So, ...
++# ...
++# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D
++# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S
++# ...
++
++# From Arthur David Olson (1992-03-08):
++# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes.
++
+
+ # southeast Australia
+ #
+--- contrib/tzdata/checknow.awk.orig
++++ contrib/tzdata/checknow.awk
+@@ -44,7 +44,7 @@
+ END {
+ for (zone in zone_data) {
+ data = zone_data[zone]
+- if (!zonenow[data]) {
++ if (data && !zonenow[data]) {
+ printf "Zone table should have one of:%s\n", zones[data]
+ zonenow[data] = zone # This suppresses duplicate diagnostics.
+ status = 1
+--- contrib/tzdata/checktab.awk.orig
++++ contrib/tzdata/checktab.awk
+@@ -9,6 +9,19 @@
+ if (!zone_table) zone_table = "zone1970.tab"
+ if (!want_warnings) want_warnings = -1
+
++ monthabbr["Jan"] = 1
++ monthabbr["Feb"] = 1
++ monthabbr["Mar"] = 1
++ monthabbr["Apr"] = 1
++ monthabbr["May"] = 1
++ monthabbr["Jun"] = 1
++ monthabbr["Jul"] = 1
++ monthabbr["Aug"] = 1
++ monthabbr["Sep"] = 1
++ monthabbr["Oct"] = 1
++ monthabbr["Nov"] = 1
++ monthabbr["Dec"] = 1
++
+ while (getline >"/dev/stderr"
++ status = 1
++ }
+ } else {
++ stdoff = $1
+ ruleUsed[$2] = 1
+ if ($3 ~ /%/) rulePercentUsed[$2] = 1
+ }
++
++ if (stdoff && stdoff !~ /^\-?1?[0-9](:[0-5][0-9](:[0-5][0-9])?)?$/) {
++ printf "%s:%d: unlikely STDOFF: %s\n", FILENAME, FNR, stdoff \
++ >>"/dev/stderr"
++ status = 1
++ }
++
+ if (tz && tz ~ /\// && tz !~ /^Etc\//) {
+ if (!tztab[tz] && FILENAME != "backward" \
+ && zone_table != "zonenow.tab") {
+--- contrib/tzdata/etcetera.orig
++++ contrib/tzdata/etcetera
+@@ -51,6 +51,10 @@
+ # so we moved the names into the Etc subdirectory.
+ # Also, the time zone abbreviations are now compatible with %z.
+
++# There is no "Etc/Unknown" entry, as CLDR says that "Etc/Unknown"
++# corresponds to an unknown or invalid time zone, and things would get
++# confusing if Etc/Unknown were made valid here.
++
+ Zone Etc/GMT-14 14 - %z
+ Zone Etc/GMT-13 13 - %z
+ Zone Etc/GMT-12 12 - %z
+--- contrib/tzdata/europe.orig
++++ contrib/tzdata/europe
+@@ -1147,7 +1147,7 @@
+ # However, Greenland will change to Daylight Saving Time again in 2024
+ # and onwards.
+
+-# From a contributor who wishes to remain anonymous for now (2023-10-29):
++# From Jule Dabars (2023-10-29):
+ # https://www.dr.dk/nyheder/seneste/i-nat-skal-uret-stilles-en-time-tilbage-men-foerste-gang-sker-det-ikke-i-groenland
+ # with a link to that page:
+ # https://naalakkersuisut.gl/Nyheder/2023/10/2710_sommertid
+--- contrib/tzdata/factory.orig
++++ contrib/tzdata/factory
+@@ -8,5 +8,15 @@
+ # time zone abbreviation "-00", indicating that the actual time zone
+ # is unknown.
+
++# TZ="Factory" was added to TZDB in 1989, and in 2016 its abbreviation
++# was changed to "-00" from a longish English-language error message.
++# Around 2010, CLDR added "Etc/Unknown" for use with TZDB, to stand
++# for an unknown or invalid time zone. These two notions differ:
++# TZ="Factory" is a valid timezone, so tzalloc("Factory") succeeds, whereas
++# TZ="Etc/Unknown" is invalid and tzalloc("Etc/Unknown") fails.
++# Also, a downstream distributor could modify Factory to be a
++# default timezone suitable for the devices it manufactures,
++# whereas that cannot happen for Etc/Unknown.
++
+ # Zone NAME STDOFF RULES FORMAT
+ Zone Factory 0 - "Local time zone must be set--use tzsetup"
+--- contrib/tzdata/leap-seconds.list.orig
++++ contrib/tzdata/leap-seconds.list
+@@ -60,15 +60,15 @@
+ #
+ # The following line shows the last update of this file in NTP timestamp:
+ #
+-#$ 3929093563
++#$ 3945196800
+ #
+ # 2) Expiration date of the file given on a semi-annual basis: last June or last December
+ #
+-# File expires on 28 June 2025
++# File expires on 28 December 2025
+ #
+ # Expire date in NTP timestamp:
+ #
+-#@ 3960057600
++#@ 3975868800
+ #
+ #
+ # LIST OF LEAP SECONDS
+@@ -117,4 +117,4 @@
+ # please see the readme file in the 'source' directory :
+ # https://hpiers.obspm.fr/iers/bul/bulc/ntp/sources/README
+ #
+-#h be738595 57b0cf1b b0218343 fb77062f 5a775e7
++#h 848434d5 570f7ea8 d79ba227 a00fc821 f608e2d4
+--- contrib/tzdata/leapseconds.orig
++++ contrib/tzdata/leapseconds
+@@ -69,11 +69,11 @@
+ # Any additional leap seconds will come after this.
+ # This Expires line is commented out for now,
+ # so that pre-2020a zic implementations do not reject this file.
+-#Expires 2025 Jun 28 00:00:00
++#Expires 2025 Dec 28 00:00:00
+
+ # POSIX timestamps for the data in this file:
+-#updated 1720104763 (2024-07-04 14:52:43 UTC)
+-#expires 1751068800 (2025-06-28 00:00:00 UTC)
++#updated 1736208000 (2025-01-07 00:00:00 UTC)
++#expires 1766880000 (2025-12-28 00:00:00 UTC)
+
+ # Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
+-# File expires on 28 June 2025
++# File expires on 28 December 2025
+--- contrib/tzdata/northamerica.orig
++++ contrib/tzdata/northamerica
+@@ -27,9 +27,12 @@
+ # in New York City (1869-10). His 1870 proposal was based on Washington, DC,
+ # but in 1872-05 he moved the proposed origin to Greenwich.
+
+-# From Paul Eggert (2018-03-20):
++# From Paul Eggert (2024-11-18):
+ # Dowd's proposal left many details unresolved, such as where to draw
+-# lines between time zones. The key individual who made time zones
++# lines between time zones. Sandford Fleming of the Canadian Pacific Railway
++# argued for Dowd's proposal in 1876, and Cleveland Abbe of the American
++# Meteorology Society published a report in 1879 recommending four US time
++# zones based on GMT. However, the key individual who made time zones
+ # work in the US was William Frederick Allen - railway engineer,
+ # managing editor of the Travelers' Guide, and secretary of the
+ # General Time Convention, a railway standardization group. Allen
+@@ -2631,7 +2634,7 @@
+ # http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/
+
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+-Rule Mexico 1931 only - April 30 0:00 1:00 D
++Rule Mexico 1931 only - Apr 30 0:00 1:00 D
+ Rule Mexico 1931 only - Oct 1 0:00 0 S
+ Rule Mexico 1939 only - Feb 5 0:00 1:00 D
+ Rule Mexico 1939 only - Jun 25 0:00 0 S
+--- contrib/tzdata/southamerica.orig
++++ contrib/tzdata/southamerica
+@@ -1687,7 +1687,7 @@
+ # and that on the first Sunday of the month of October, it is to be set
+ # forward 60 minutes, in all the territory of the Paraguayan Republic.
+ # ...
+-Rule Para 2010 max - Oct Sun>=1 0:00 1:00 -
++Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 -
+ Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
+ #
+ # From Steffen Thorsen (2013-03-07):
+@@ -1706,14 +1706,35 @@
+ # https://www.abc.com.py/politica/2023/07/12/promulgacion-el-cambio-de-hora-sera-por-ley/
+ # From Carlos Raúl Perasso (2023-07-27):
+ # http://silpy.congreso.gov.py/descarga/ley-144138
+-Rule Para 2013 max - Mar Sun>=22 0:00 0 -
++Rule Para 2013 2024 - Mar Sun>=22 0:00 0 -
++#
++# From Heitor David Pinto (2024-09-24):
++# Today the Congress of Paraguay passed a bill to observe UTC-3 permanently....
++# The text of the bill says that it would enter into force on the first
++# Sunday in October 2024, the same date currently scheduled to start DST....
++# https://silpy.congreso.gov.py/web/expediente/132531
++# (2024-10-14):
++# The president approved the law on 11 October 2024,
++# and it was officially published on 14 October 2024.
++# https://www.gacetaoficial.gov.py/index/detalle_publicacion/89723
++# The text of the law says that it enters into force on the first
++# Sunday in October 2024 (6 October 2024). But the constitution
++# prohibits retroactive effect, and the civil code says that laws
++# enter into force on the day after their publication or on the day
++# that they specify, and it also says that they don't have retroactive
++# effect. So I think that the time change on 6 October 2024 should
++# still be considered as DST according to the previous law, and
++# permanently UTC-3 from 15 October 2024 according to the new law....
++# https://www.constituteproject.org/constitution/Paraguay_2011
++# https://www.oas.org/dil/esp/codigo_civil_paraguay.pdf
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone America/Asuncion -3:50:40 - LMT 1890
+ -3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time
+ -4:00 - %z 1972 Oct
+ -3:00 - %z 1974 Apr
+- -4:00 Para %z
++ -4:00 Para %z 2024 Oct 15
++ -3:00 - %z
+
+ # Peru
+ #
+--- contrib/tzdata/theory.html.orig
++++ contrib/tzdata/theory.html
+@@ -123,8 +123,9 @@
+ locate the user on a timezone map or prioritize names that are
+ geographically close. For an example selection interface, see the
+ tzselect program in the tz code.
+-The Unicode Common Locale Data
+-Repository contains data that may be useful for other selection
++Unicode's Common Locale Data
++Repository (CLDR)
++contains data that may be useful for other selection
+ interfaces; it maps timezone names like Europe/Prague to
+ locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格".
+
+@@ -200,6 +201,8 @@
+
+ A name must not be empty, or contain '//', or
+ start or end with '/'.
++ Also, a name must not be 'Etc/Unknown', as
++ CLDR uses that string for an unknown or invalid timezone.
+
+
+ Do not use names that differ only in case.
+@@ -220,10 +223,18 @@
+ do not need locations, since local time is not defined there.
+
+
+- If all the clocks in a timezone have agreed since 1970,
+- do not bother to include more than one timezone
+- even if some of the clocks disagreed before 1970.
++ If all clocks in a region have agreed since 1970,
++ give them just one name even if some of the clocks disagreed before 1970,
++ or reside in different countries or in notable or faraway locations.
+ Otherwise these tables would become annoyingly large.
++ For example, do not create a name Indian/Crozet
++ as a near-duplicate or alias of Asia/Dubai
++ merely because they are different countries or territories,
++ or their clocks disagreed before 1970, or the
++ Crozet Islands
++ are notable in their own right,
++ or the Crozet Islands are not adjacent to other locations
++ that use Asia/Dubai.
+
+
+ If boundaries between regions are fluid, such as during a war or
+@@ -579,10 +590,10 @@
+ locations while uninhabited.
+ The leading '-' is a flag that the UT offset is in
+ some sense undefined; this notation is derived
+- from Internet
++ from Internet
+ RFC 3339.
+ (The abbreviation 'Z' that
+- Internet
++ Internet
+ RFC 9557 uses for this concept
+ would violate the POSIX requirement
+ of at least three characters in an abbreviation.)
+@@ -1115,8 +1126,8 @@
+ the name of a file from which time-related information is read.
+ The file's format is TZif,
+ a timezone information format that contains binary data; see
+- Internet
+- RFC 8536.
++ Internet
++ RFC 9636.
+ The daylight saving time rules to be used for a
+ particular timezone are encoded in the
+ TZif file; the format of the file allows US,
+@@ -1201,12 +1212,15 @@
+ The tm_isdst member is almost never needed and most of
+ its uses should be discouraged in favor of the abovementioned
+ APIs.
++ It was intended as an index into the tzname variable,
++ but as mentioned previously that usage is obsolete.
+ Although it can still be used in arguments to
+ mktime to disambiguate timestamps near
+ a DST transition when the clock jumps back on
+ platforms lacking tm_gmtoff, this
+- disambiguation does not work when standard time itself jumps back,
+- which can occur when a location changes to a time zone with a
++ disambiguation works only for proleptic TZ strings;
++ it does not work in general for geographical timezones,
++ such as when a location changes to a time zone with a
+ lesser UT offset.
+
+
+@@ -1223,8 +1237,8 @@
+ Programs that in the past used the timezone function
+ may now examine localtime(&clock)->tm_zone
+ (if TM_ZONE is defined) or
+- tzname[localtime(&clock)->tm_isdst]
+- (if HAVE_TZNAME is nonzero) to learn the correct time
++ use strftime with a %Z conversion specification
++ to learn the correct time
+ zone abbreviation to use.
+
+
+--- contrib/tzdata/version.orig
++++ contrib/tzdata/version
+@@ -1 +1 @@
+-2024b
++2025a
+--- contrib/tzdata/zone.tab.orig
++++ contrib/tzdata/zone.tab
+@@ -310,7 +310,7 @@
+ PF -2308-13457 Pacific/Gambier Gambier Islands
+ PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea
+ PG -0613+15534 Pacific/Bougainville Bougainville
+-PH +1435+12100 Asia/Manila
++PH +143512+1205804 Asia/Manila
+ PK +2452+06703 Asia/Karachi
+ PL +5215+02100 Europe/Warsaw
+ PM +4703-05620 America/Miquelon
+--- contrib/tzdata/zone1970.tab.orig
++++ contrib/tzdata/zone1970.tab
+@@ -184,7 +184,7 @@
+ IT,SM,VA +4154+01229 Europe/Rome
+ JM +175805-0764736 America/Jamaica
+ JO +3157+03556 Asia/Amman
+-JP +353916+1394441 Asia/Tokyo
++JP,AU +353916+1394441 Asia/Tokyo Eyre Bird Observatory
+ KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi
+ KG +4254+07436 Asia/Bishkek
+ KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Wake
+@@ -247,7 +247,7 @@
+ PF -2308-13457 Pacific/Gambier Gambier Islands
+ PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville
+ PG -0613+15534 Pacific/Bougainville Bougainville
+-PH +1435+12100 Asia/Manila
++PH +143512+1205804 Asia/Manila
+ PK +2452+06703 Asia/Karachi
+ PL +5215+02100 Europe/Warsaw
+ PM +4703-05620 America/Miquelon
+@@ -294,7 +294,7 @@
+ SA,AQ,KW,YE +2438+04643 Asia/Riyadh Syowa
+ SB,FM -0932+16012 Pacific/Guadalcanal Pohnpei
+ SD +1536+03232 Africa/Khartoum
+-SG,MY +0117+10351 Asia/Singapore peninsular Malaysia
++SG,AQ,MY +0117+10351 Asia/Singapore peninsular Malaysia, Concordia
+ SR +0550-05510 America/Paramaribo
+ SS +0451+03137 Africa/Juba
+ ST +0020+00644 Africa/Sao_Tome
+--- contrib/tzdata/zonenow.tab.orig
++++ contrib/tzdata/zonenow.tab
+@@ -97,9 +97,6 @@
+ # -04/-03 (Chile DST)
+ XX -3327-07040 America/Santiago most of Chile
+ #
+-# -04/-03 (Paraguay DST)
+-XX -2516-05740 America/Asuncion Paraguay
+-#
+ # -04/-03 - AST/ADT (North America DST)
+ XX +4439-06336 America/Halifax Atlantic ("AST/ADT") - Canada; Bermuda
+ #
+@@ -224,7 +221,7 @@
+ XX -0610+10648 Asia/Jakarta Indonesia ("WIB")
+ #
+ # +08
+-XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore
++XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia
+ #
+ # +08 - AWST
+ XX -3157+11551 Australia/Perth Western Australia ("AWST")
+@@ -236,7 +233,7 @@
+ XX +2217+11409 Asia/Hong_Kong Hong Kong ("HKT")
+ #
+ # +08 - PHT
+-XX +1435+12100 Asia/Manila Philippines ("PHT")
++XX +143512+1205804 Asia/Manila Philippines ("PHT")
+ #
+ # +08 - WITA
+ XX -0507+11924 Asia/Makassar Indonesia ("WITA")
+@@ -248,7 +245,7 @@
+ XX +5203+11328 Asia/Chita Russia; Palau; East Timor
+ #
+ # +09 - JST
+-XX +353916+1394441 Asia/Tokyo Japan ("JST")
++XX +353916+1394441 Asia/Tokyo Japan ("JST"); Eyre Bird Observatory
+ #
+ # +09 - KST
+ XX +3733+12658 Asia/Seoul Korea ("KST")
diff --git a/website/static/security/patches/EN-25:03/tzdata-2025a.patch.asc b/website/static/security/patches/EN-25:03/tzdata-2025a.patch.asc
new file mode 100644
index 0000000000..e679bf5d7e
--- /dev/null
+++ b/website/static/security/patches/EN-25:03/tzdata-2025a.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKcACgkQbljekB8A
+Gu/GnA/6A4jmcrBaO0Wj4EqNm6VV6JXKNuj0FsRPTtNIq8nykUbNOlr2MHdx8Qfp
+g05Mq360gPHYSSIYrdeo8asKgz8hK+qVIf21z399KGiq/Ox7Bf1OOwmT72MTUCzx
+9ULrt+FBfx4OGrUDJrcnZxMcImJ00I2wOWii2pnHEKgeavi8Xx4nVzQYNBAfdwjQ
+nS5+IzU436BCrV81HWAT/APpD64WkTkRHot02eNpop26Fjk4GjEhcgjlGp6sXGvJ
+DqlOIJ16l2ElsSLTqMOc2M1+ByImv+p91qbbuFcQkSkuVxnaRUSo6dC/K4TAoHvy
+4UzWfX+XWqo7pvh1zYPjBzeWJ47P4hRooJaC8WoeoP4w5gNvYlG6lqVPyURa+3dY
+z58QKBl/d37OZqdhRIYrbaR+Pz5MY4rzz/KX5ou+Hx3dqPvJupglQn9zsEjAg5m+
+NofKaCFbqt0QpBsiw3lxiq+zDdbHKCfrbIPPzBJi9+BGhULLatpI72cw9QblGAKS
+Qyr1sqlNt1zpr5aNonP72Y4skQDNbNivQrclDrw505KjBvkpof3TFr28rXTBxx3i
+8PCIZAObpKlCKOmIOUUedrxYW9B5NB9X9Kj9tOeUJgtp32PaZ3iVwxiLoPrx9zMZ
+s32nEX9BiBh/4bVdzqqn4fDfETG44Ytj8TanRFFelNtpUpRZnDE=
+=55QH
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/SA-25:01/openssh.patch b/website/static/security/patches/SA-25:01/openssh.patch
new file mode 100644
index 0000000000..111d0f886c
--- /dev/null
+++ b/website/static/security/patches/SA-25:01/openssh.patch
@@ -0,0 +1,14 @@
+--- crypto/openssh/clientloop.c.orig
++++ crypto/openssh/clientloop.c
+@@ -608,8 +608,9 @@
+ if (timespeccmp(&now, &chaff_until, >=)) {
+ /* Stop if there have been no keystrokes for a while */
+ stop_reason = "chaff time expired";
+- } else if (timespeccmp(&now, &next_interval, >=)) {
+- /* Otherwise if we were due to send, then send chaff */
++ } else if (timespeccmp(&now, &next_interval, >=) &&
++ !ssh_packet_have_data_to_write(ssh)) {
++ /* If due to send but have no data, then send chaff */
+ if (send_chaff(ssh))
+ nchaff++;
+ }
diff --git a/website/static/security/patches/SA-25:01/openssh.patch.asc b/website/static/security/patches/SA-25:01/openssh.patch.asc
new file mode 100644
index 0000000000..c1a5a73d77
--- /dev/null
+++ b/website/static/security/patches/SA-25:01/openssh.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKkACgkQbljekB8A
+Gu9rRhAAiz8+V48ie3Bpl2vxVdH3tiIfe/MklgRDToGdB/E4Kl8QsAIP2Wq8N17m
+KBvyZuVA77w/IpcbDlSujmonmRmKpQnyBoGY0Zhmb105/7JswXpJpy5xkBvcRxUn
+POF4qGo4hUH28ozf/2zxw7xNJuMMUc2cbd6qxVNDs4232SRJW4Fjpo8CpUtg7EFq
+Fbb6s/Y+EcFATXeWm1KAZ98Q83J4AdvaSc2v3uMDtmXgVBNfV8CpJz11HRTlwSCv
+/LVw3L3qiq+3yKKjxoiYLZXgFUS5tGgPv0iiaFkhlrYxBdiPuwwqD4wo++m3kdYF
+KTZbCsQUt8SMBBgw1rMrxZgR7ui8OEGFGKOLBkVdD5HDPApVJ5gx3PvBEwoCbXGb
+8sWaeAbPWinXMVn3vs20oDh+n8oyg2V+F023ZynJM7fY+O8mBCnYgYYTwUJMmThm
+RGckEoy3hFpsAVt1RVDlEcfnIqAPl/Q0/kDc/90PhUnZrITQ6cOuvdo3uJLpFd0c
+fLqA8fZbInFVQbsECc7ooXaFv9aiuu4M+8U4Jogdpbl7NSS/DGnrQb1iizliLMRb
+NQ/9t4AOAjqIbV/uaE68WDvMzbnzIoLllvNyFpf4du+SC4BwfMa0r/cIRQP9F3yx
+lG2ZSOBrB/6m+rt1NUavcukjHF9UQq3b59xJJuu3eYh/mvemlmQ=
+=BRJ3
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/SA-25:02/fs-13.patch b/website/static/security/patches/SA-25:02/fs-13.patch
new file mode 100644
index 0000000000..a938a33cb6
--- /dev/null
+++ b/website/static/security/patches/SA-25:02/fs-13.patch
@@ -0,0 +1,45 @@
+--- sys/fs/cd9660/cd9660_vnops.c.orig
++++ sys/fs/cd9660/cd9660_vnops.c
+@@ -758,6 +758,9 @@
+ /* NOTREACHED */
+ }
+
++_Static_assert(sizeof(struct ifid) <= sizeof(struct fid),
++ "struct ifid must be no larger than struct fid");
++
+ /*
+ * Vnode pointer to File handle
+ */
+--- sys/fs/cd9660/iso.h.orig
++++ sys/fs/cd9660/iso.h
+@@ -267,7 +267,7 @@
+ u_short ifid_pad;
+ cd_ino_t ifid_ino;
+ long ifid_start;
+-};
++} __packed;
+
+ #define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data))
+
+--- sys/fs/ext2fs/ext2_vnops.c.orig
++++ sys/fs/ext2fs/ext2_vnops.c
+@@ -1889,6 +1889,8 @@
+ {
+ struct inode *ip;
+ struct ufid *ufhp;
++ _Static_assert(sizeof(struct ufid) <= sizeof(struct fid),
++ "struct ufid cannot be larger than struct fid");
+
+ ip = VTOI(ap->a_vp);
+ ufhp = (struct ufid *)ap->a_fhp;
+--- sys/fs/ext2fs/inode.h.orig
++++ sys/fs/ext2fs/inode.h
+@@ -191,7 +191,7 @@
+ uint16_t ufid_pad; /* Force 32-bit alignment. */
+ ino_t ufid_ino; /* File number (ino). */
+ uint32_t ufid_gen; /* Generation number. */
+-};
++} __packed;
+ #endif /* _KERNEL */
+
+ #endif /* !_FS_EXT2FS_INODE_H_ */
diff --git a/website/static/security/patches/SA-25:02/fs-13.patch.asc b/website/static/security/patches/SA-25:02/fs-13.patch.asc
new file mode 100644
index 0000000000..01a6ed0472
--- /dev/null
+++ b/website/static/security/patches/SA-25:02/fs-13.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKoACgkQbljekB8A
+Gu9AphAA4eMQpgamKakYk82sjRV172b0xR4/DvqCcJt1Tc6WPq/s+dujLYadQazZ
+tCIgKPPMsmI/Lwa8QbeTk+8D/gcYi0TchDXaIbkIlCf7yZWwtRngWIBYZ6SHZauJ
+HPpB53fSF72YJvS7zb5DhdL3FWzZk4x8WUcFsafRCbIIh+7df9QwG5z42JdjVmTm
+GUnMFGPQR2NgitUTQ2jQASBglCWOxJzjPZF0x0kW5NPueiq4QDljZIPbUAIfmPVu
+kIpL5NhWkJCxVjNRLYLgopHJztRZqg+iXsPCBZB97RDfzGYCLp0r0iXN/I7Na8cw
+8A7jWFtsxOuhQSCXfLwH8m//1zcF/Pw4MwqlHJGYGNhqBswvdMhNSct5m7RT+q/z
+fSu5UMmVgpv4XbhYOLpPikirvxUrZvzZOY3ij4clSdJiN7IwcWlifKQZ8ca01FKm
+fZROwLlBeii5vUAybtfOYOHEi1iDO5QGMoGpO8egRniLxsiiz38luSsima4wF2jp
+u11Gg3AfBG86WQMxE9JFWuaYXII3TxA4X1b9XKanALzxAvIvOXapVJb0K+2RlKtv
+1zNPPy0d76rokT8mf4OCM1lu9YcT5aZ82NyJGLMnX+y3nIKuusPYdqvAX8tb2Arj
+pJJG8WDcuU0JaFgkTrhNpImGalK9ubp9w2GQuBEw/Q7JnfX7GJQ=
+=nWiZ
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/SA-25:02/fs-14.patch b/website/static/security/patches/SA-25:02/fs-14.patch
new file mode 100644
index 0000000000..947d3feb50
--- /dev/null
+++ b/website/static/security/patches/SA-25:02/fs-14.patch
@@ -0,0 +1,67 @@
+--- sys/fs/cd9660/cd9660_vnops.c.orig
++++ sys/fs/cd9660/cd9660_vnops.c
+@@ -758,6 +758,9 @@
+ /* NOTREACHED */
+ }
+
++_Static_assert(sizeof(struct ifid) <= sizeof(struct fid),
++ "struct ifid must be no larger than struct fid");
++
+ /*
+ * Vnode pointer to File handle
+ */
+--- sys/fs/cd9660/iso.h.orig
++++ sys/fs/cd9660/iso.h
+@@ -267,7 +267,7 @@
+ u_short ifid_pad;
+ cd_ino_t ifid_ino;
+ long ifid_start;
+-};
++} __packed;
+
+ #define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data))
+
+--- sys/fs/ext2fs/ext2_vnops.c.orig
++++ sys/fs/ext2fs/ext2_vnops.c
+@@ -1889,6 +1889,8 @@
+ {
+ struct inode *ip;
+ struct ufid *ufhp;
++ _Static_assert(sizeof(struct ufid) <= sizeof(struct fid),
++ "struct ufid cannot be larger than struct fid");
+
+ ip = VTOI(ap->a_vp);
+ ufhp = (struct ufid *)ap->a_fhp;
+--- sys/fs/ext2fs/inode.h.orig
++++ sys/fs/ext2fs/inode.h
+@@ -191,7 +191,7 @@
+ uint16_t ufid_pad; /* Force 32-bit alignment. */
+ ino_t ufid_ino; /* File number (ino). */
+ uint32_t ufid_gen; /* Generation number. */
+-};
++} __packed;
+ #endif /* _KERNEL */
+
+ #endif /* !_FS_EXT2FS_INODE_H_ */
+--- sys/fs/tarfs/tarfs.h.orig
++++ sys/fs/tarfs/tarfs.h
+@@ -165,7 +165,7 @@
+ u_short data0; /* force alignment */
+ ino_t ino;
+ unsigned long gen;
+-};
++} __packed;
+
+ #define TARFS_NODE_LOCK(tnp) \
+ mtx_lock(&(tnp)->lock)
+--- sys/fs/tarfs/tarfs_vnops.c.orig
++++ sys/fs/tarfs/tarfs_vnops.c
+@@ -668,6 +668,8 @@
+ {
+ struct tarfs_fid *tfp;
+ struct tarfs_node *tnp;
++ _Static_assert(sizeof(struct tarfs_fid) <= sizeof(struct fid),
++ "struct tarfs_fid cannot be larger than struct fid");
+
+ tfp = (struct tarfs_fid *)ap->a_fhp;
+ tnp = VP_TO_TARFS_NODE(ap->a_vp);
diff --git a/website/static/security/patches/SA-25:02/fs-14.patch.asc b/website/static/security/patches/SA-25:02/fs-14.patch.asc
new file mode 100644
index 0000000000..68e966726f
--- /dev/null
+++ b/website/static/security/patches/SA-25:02/fs-14.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKsACgkQbljekB8A
+Gu81lxAAvCWTz6CpeaKV9mUpE1R67gLnB/93uRWWBIJ0bDwkqT2t+C/b9PjTewA1
+tV5dP6zV2dEgEUUJ6rJDT/egkjtG3DYfQ7W4pGeXs4E4qDNZ5Rc7dbPGGkzo14Io
+tmT8hwTKPmBSmbWnCH7mkFiJWSuODydswNEnW0hwCqpVIWV2tYBJ4o3UhSkXidQR
+aXbykuqkzYte4NjA+AWe8A6cbRE6nFwR6z0KXLTzP1J2on+tN9NzkP2mATQiwwMD
+m8mYzmVI+v4kkA6SrLTSzwxpCJ6M+6CWSkmzGRKDwZ1zPFcFhdckjgsxBWkmKU4X
+Y/gGOF/GvnY7yBNlWUC7MDRzNilc41kqgAcXPL3S78MfTqIFjwA0TFA46pUgqpmZ
+AeZxKFfgrsR/5WRqgARRKVZwMBGqjlnQMUSvt5Q5muNc2O/NSHXyF7kiB28OfWkF
+cjYrKfu/YogVVlJnEAlC+ffZ61cH2wzoWLn2j0UZ3VM1pDLOBFEA2Cxgvd8PANbP
+QVFkRQm0FlcCLb9r4avd+rqyid3M2xmBbWzKAwf2lN+gC5MzsKfQxKIrZJegSbPY
+ikGAcFzgEQCmhJeW4vjZvxt4E2jNwqBsNYECTTv6BNr+xD9Zp9WyydS07OX7gk1M
+YC7u+8zc6m/vPSFex6mvK1q0FUFiMsqnlWHWVtjIYZ0zkaVUL94=
+=sAwr
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/SA-25:03/etcupdate.patch b/website/static/security/patches/SA-25:03/etcupdate.patch
new file mode 100644
index 0000000000..8bd7741a49
--- /dev/null
+++ b/website/static/security/patches/SA-25:03/etcupdate.patch
@@ -0,0 +1,12 @@
+--- usr.sbin/etcupdate/etcupdate.sh.orig
++++ usr.sbin/etcupdate/etcupdate.sh
+@@ -1611,6 +1611,9 @@
+ # Initialize conflicts and warnings handling.
+ rm -f $WARNINGS
+ mkdir -p $CONFLICTS
++ if ! chmod 0700 ${CONFLICTS}; then
++ panic "Unable to set permissions on conflicts directory"
++ fi
+
+ # Ignore removed files for the pre-world case. A pre-world
+ # update uses a stripped-down tree.
diff --git a/website/static/security/patches/SA-25:03/etcupdate.patch.asc b/website/static/security/patches/SA-25:03/etcupdate.patch.asc
new file mode 100644
index 0000000000..caaebacda4
--- /dev/null
+++ b/website/static/security/patches/SA-25:03/etcupdate.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajK0ACgkQbljekB8A
+Gu8x+w/+JaS/W+ZyZHlirsy+61nGmS7nFyMEgDuMonSQ1NTA1dUy2gLNhMPWXzWw
+YWK75x2RNzNnkx3tV6500p4CWjkkxa//4XpwbU0RSNCK2e7yCnYazyuns/5Rsfqc
+CcVUIDC8Vl8oLrGbKJGsbedOyZOXqnUrHZU25YG8J3hc4txcIOgLbENmSLuhvmii
+2+WzH4tEnsFa/wTxAtoU7culB/6wEr9iAyYTEn0c+xVHNCDEVOTh73xII7hNk9e2
+1ubdgQd4i+hYR+2K6PXVSYrWO4eYI20Q4c87sZjg1qFbCza5+izt5ZEoXBNt0PiL
+ivaNL7QZvN4224yLkBMsrBSmwodTPRj/ZiQ4ddx+CmhKlo5tfNfmolysXCtH/IzX
+vANaEbFKLqt4w4xvxvphLLMBr+U0cO13sYq6JSs6HNm5zMFe5g3392vGYKsnso69
+FoShLlAzWtJ4RG7NJVBsDHErGyxUiBVBvgCCcfH7K+7Pr2jiLVdowZA7N5hhUPpE
+o9N/mw7D5ChfaYGFjPijPUsbHPQRzMwSUCD8+UihO29MtcIopYAn6WxuVI1XY2AK
+aFbqtWVyn6vnm8MfNNoGF/8BWKzO3Dxn1pFkzHVMDDgORaiNfX3/FhJBqIEkDgz4
+RbvCbmXK6MCh8ArF0GPqKLyl1HH9nuznPgs9Y2hXU4rQY3MrkOY=
+=w40Z
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/SA-25:04/ktrace.patch b/website/static/security/patches/SA-25:04/ktrace.patch
new file mode 100644
index 0000000000..0d19526c6a
--- /dev/null
+++ b/website/static/security/patches/SA-25:04/ktrace.patch
@@ -0,0 +1,21 @@
+--- sys/kern/kern_ktrace.c.orig
++++ sys/kern/kern_ktrace.c
+@@ -958,9 +958,16 @@
+ case CAPFAIL_PROTO:
+ kcd->cap_int = *(const int *)data;
+ break;
+- case CAPFAIL_SOCKADDR:
+- kcd->cap_sockaddr = *(const struct sockaddr *)data;
++ case CAPFAIL_SOCKADDR: {
++ size_t len;
++
++ len = MIN(((const struct sockaddr *)data)->sa_len,
++ sizeof(kcd->cap_sockaddr));
++ memset(&kcd->cap_sockaddr, 0,
++ sizeof(kcd->cap_sockaddr));
++ memcpy(&kcd->cap_sockaddr, data, len);
+ break;
++ }
+ case CAPFAIL_NAMEI:
+ strlcpy(kcd->cap_path, data, MAXPATHLEN);
+ break;
diff --git a/website/static/security/patches/SA-25:04/ktrace.patch.asc b/website/static/security/patches/SA-25:04/ktrace.patch.asc
new file mode 100644
index 0000000000..4392df0b03
--- /dev/null
+++ b/website/static/security/patches/SA-25:04/ktrace.patch.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajK8ACgkQbljekB8A
+Gu/ZExAA0GBrlwTGoKw7DmkehSVOlwJiSiTeeT0CZLKkRxzW0js1b9AaIX5fnto/
+9DxFERxxVkUCKBzuo71RtjBd5gAwAEhMudsuTj8v2OJgiSdp3dlmpgKbUpjaM8hT
+gNDTRiLf3WL+gyL2g747pHFcsMLA2l/AN2HKfdNz+W1MUmdpc+GINjd73WUG+dm0
+Ok+XwuP0s3brRW6sYYBdBiHbOEzAJh5WZ20vrtnTbfeiSsBvoS0ZLfXA9V9yne97
+lcFD39Apv5QpInc/xtqp35nZ4pHAPOyEEB9vcmtHnMAA3TyFd6HuGichRD34OXs8
+rM9PV7h5pgRxXVdPvSjDb4ZF7NA5CVq6nAW11eDKqdI+kf3/X+W7HLfb8Cm6X7Jt
+OmnrZdbf7HjYJi7YVsYefTiW5Q5iz8/h8GnN+lFjAiZYXae9+oflI2kVHDPYSp+o
+wvqSgDAatBctipvIAT7SAJD1Hg1OscM3cgQh92NpA2ZFjF/o7XB+th2vYl0BLCA7
+WW2DHqarHsb+hLwXoPV9Kh7+BSOH8TlVKIgcZ/2zBCfSP/C1EtHaLcY97wHsWs/T
+rHVDc7BlP1WJy+/bb2pqGJSHZNfH6A/t1WCfleYO+uEjZwpTi4G0JDNeXOpe6KQn
+Uzhzhwv6uvbUmDAF/yzzPiz5xt5K6P0/bWd+BK9GkNcta19cZYg=
+=uUwL
+-----END PGP SIGNATURE-----