From b64dfa061f58556ffaca732a431d59c2e0a9d9ab Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Sun, 31 May 2026 12:09:02 +0100 Subject: [PATCH 01/76] Revamp --- .docker/Dockerfile | 18 + .router.php | 5 + bin/createNewsEntry | 19 + docs.php | 70 ++-- images/landing/contribute.png | Bin 0 -> 336415 bytes images/landing/docs-translator.png | Bin 0 -> 731748 bytes images/landing/externals-io.svg | 4 + images/landing/php-bugs.png | Bin 0 -> 12113 bytes images/language-flags/br.png | Bin 0 -> 21238 bytes images/language-flags/de.png | Bin 0 -> 401 bytes images/language-flags/en.webp | Bin 0 -> 1230 bytes images/language-flags/es.png | Bin 0 -> 648 bytes images/language-flags/fr.png | Bin 0 -> 677 bytes images/language-flags/it.png | Bin 0 -> 681 bytes images/language-flags/ja.png | Bin 0 -> 3181 bytes images/language-flags/ru.png | Bin 0 -> 656 bytes images/language-flags/tr.png | Bin 0 -> 4149 bytes images/language-flags/uk.webp | Bin 0 -> 98 bytes images/language-flags/zh.webp | Bin 0 -> 1960 bytes images/logos/composer.png | Bin 0 -> 104378 bytes images/logos/github_invertocat_white.svg | 10 + images/logos/php-foundation.svg | 11 + images/logos/phpc-discord.png | Bin 0 -> 36820 bytes images/logos/reddit.png | Bin 0 -> 80185 bytes include/branch-meta.inc | 92 +++++ include/branches.inc | 10 + include/communities.inc | 22 ++ include/development-links.inc | 46 +++ include/footer.inc | 5 +- include/header.inc | 13 +- include/landing-heros.inc | 40 ++ include/layout.inc | 1 - include/prepend.inc | 5 + index.php | 2 +- js/common.js | 20 + js/sandbox.js | 41 +++ landing.php | 450 +++++++++++++++++++++++ sandbox/boot.inc | 112 ++++++ sandbox/example-old.txt | 10 + sandbox/example.txt | 37 ++ sandbox/microframework.inc | 33 ++ sandbox/sandbox.php | 192 ++++++++++ src/I18n/Languages.php | 58 +++ src/Navigation/NavCardItem.php | 15 + src/News/Entry.php | 14 + styles/landing.css | 393 ++++++++++++++++++++ 46 files changed, 1704 insertions(+), 44 deletions(-) create mode 100644 .docker/Dockerfile create mode 100644 images/landing/contribute.png create mode 100644 images/landing/docs-translator.png create mode 100644 images/landing/externals-io.svg create mode 100644 images/landing/php-bugs.png create mode 100644 images/language-flags/br.png create mode 100644 images/language-flags/de.png create mode 100644 images/language-flags/en.webp create mode 100644 images/language-flags/es.png create mode 100644 images/language-flags/fr.png create mode 100644 images/language-flags/it.png create mode 100644 images/language-flags/ja.png create mode 100644 images/language-flags/ru.png create mode 100644 images/language-flags/tr.png create mode 100644 images/language-flags/uk.webp create mode 100644 images/language-flags/zh.webp create mode 100644 images/logos/composer.png create mode 100644 images/logos/github_invertocat_white.svg create mode 100644 images/logos/php-foundation.svg create mode 100644 images/logos/phpc-discord.png create mode 100644 images/logos/reddit.png create mode 100644 include/branch-meta.inc create mode 100644 include/communities.inc create mode 100644 include/development-links.inc create mode 100644 include/landing-heros.inc create mode 100644 js/sandbox.js create mode 100644 landing.php create mode 100644 sandbox/boot.inc create mode 100644 sandbox/example-old.txt create mode 100644 sandbox/example.txt create mode 100644 sandbox/microframework.inc create mode 100644 sandbox/sandbox.php create mode 100644 src/Navigation/NavCardItem.php create mode 100644 styles/landing.css diff --git a/.docker/Dockerfile b/.docker/Dockerfile new file mode 100644 index 0000000000..ccb97e4fe5 --- /dev/null +++ b/.docker/Dockerfile @@ -0,0 +1,18 @@ +FROM php:8.5-cli + +ARG DEBIAN_FRONTEND=noninteractive + +# 2. Install system dependencies and Node.js/npm +# We are using Node.js 22 LTS as a reliable, modern standard +RUN apt-get update && apt-get install -y \ + curl gnupg \ + && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ + && apt-get install -y nodejs \ + && apt-get clean \ + && rm -rf /var/lib/lists/* + +# 3. Globally install TypeScript and the Socket Dev CLI +RUN npm install -g typescript socket tsx esbuild + +# 4. Set up a default working directory (Optional) +WORKDIR /app diff --git a/.router.php b/.router.php index c204ce635e..7844b251ab 100644 --- a/.router.php +++ b/.router.php @@ -4,12 +4,17 @@ $filename = $_SERVER["PATH_INFO"] ?? $_SERVER["SCRIPT_NAME"]; +$_SERVER['HTTP_HOST'] = ''; +$_SERVER['BASE_PAGE'] = '/'; +$_SERVER['SERVER_NAME'] = 'localhost'; + if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $filename)) { require_once __DIR__ . '/error.php'; return; } + /* This could be an image or whatever, so don't try to compress it */ ini_set("zlib.output_compression", 0); return false; diff --git a/bin/createNewsEntry b/bin/createNewsEntry index 937330218a..f4d8868558 100755 --- a/bin/createNewsEntry +++ b/bin/createNewsEntry @@ -180,6 +180,8 @@ function parseOptions(): Entry { echo " --conf-time 'value' When the event will be occurign (cfp and conference categories only)\n"; echo " --content 'value' Text content for the entry, may include XHTML\n"; echo " --content-file 'value' Name of file to load content from, may not be specified with --content\n"; + echo " --summary 'value' Short, plain-text summary of the content. Should be a single line.\n"; + echo " --summary-file 'value' Name of the file to load summary content from, should be a plain-text summary of the content. Should be a single line.\n"; echo " --image-path 'value' Basename of image file in " . Entry::IMAGE_PATH_REL . "\n"; echo " --image-title 'value' Title for the image provided\n"; echo " --image-link 'value' URI to direct to when clicking the image\n"; @@ -238,5 +240,22 @@ function parseOptions(): Entry { exit(1); } + $summary = $opts['summary'] ?? ''; + $summaryFile = $opts['summary-file'] ?? ''; + if ($summary && $summaryFile) { + fwrite(STDERR, "--summary and --summary-file may not be specified together\n"); + exit(1); + } elseif ($summaryFile) { + $summary = file_get_contents($summaryFile); + if ($summary === false) { + fwrite(STDERR, "Summary cannot be opened, or must not be empty\n"); + exit(1); + } + } + + if ($summary) { + $entry->setSummary($summary); + } + return $entry; } diff --git a/docs.php b/docs.php index a7003afd07..c531c7a159 100644 --- a/docs.php +++ b/docs.php @@ -7,54 +7,46 @@ site_header("Documentation", ["current" => "docs"]); +$lang = Languages::ACTIVE_ONLINE_LANGUAGES_EX['en']; ?>

Documentation

-
- -

- The PHP Manual is available online in a selection of languages. - Please pick a language from the list below. -

- -

- Note, that many languages are just under translation, and - the untranslated parts are still in English. Also some translated - parts might be outdated. The translation teams are - open to contributions. -

+

PHP Translates its documentation into many different languages, but the main reference is in English

+
+ Flag of <?= htmlspecialchars($lang['label_loc'])?> +
+
+
+
+
-

- View Online: - $langname) { - if (!file_exists($_SERVER["DOCUMENT_ROOT"] . "/manual/{$langcode}/index.php")) { - continue; - } - // Make preferred language bold - if ($langcode === $LANG) { echo ""; } - - echo '' . $langname . ''; - echo ($lastlang !== $langcode) ? ",\n" : "\n"; - - if ($langcode === $LANG) { echo ""; } -} +

Available Languages

+
+

+ Note, that many languages are just under translation, and + the untranslated parts are still in English. Also some translated + parts might be outdated. The translation teams are + open to contributions. +

+
+ $lang) { ?> +
+ Flag of <?= htmlspecialchars($lang['label_loc'])?> +
+
+
+
+
+ +
+

-?> -

+
-

- The language currently being used as the default for you should be in - bold above. You can change the setting for this on the - My PHP.net customization page. -

-

+

More Options

For downloadable formats, please visit our documentation downloads page.

diff --git a/images/landing/contribute.png b/images/landing/contribute.png new file mode 100644 index 0000000000000000000000000000000000000000..07d570ab2cbffdbcbb2a38f7d2dca10c24486891 GIT binary patch literal 336415 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

okMHVBB)OQq9#?Q+B`q|Tifk!j()E@00^RwJ zj9o<->yECT`mlbaYY6u-8Xn9{tU0W9Z5Bv@xp&R0I+gp^%phXGH6eyo}MDmF#>VBy^_hq=v0qVdBberMS zE#p9$Q&rH%jR7DRCLN!86^);UE1w;Bu7y%fC^}vtwxO(e1;Dzxz8m~$b7qe23W7?` zr=Df#gR27}iCg0ykhzzOga0l2I9q5AQ%SbMFcRmf+ZQYVh7fN9r*k}Oi|Rx(l`yas zv6Ht0c;t+JvV~Fvs=Z**bNxwe!A9g+IDDI9dvvcYFek}+q3#89&r*?$lk_S3U3jNS zMV@IRp?(5gK>nVRYot2m$D*A=XhF$b$LYx+LWm9odI6Q|6Is5^aXIqR zdTg^i7q&g$EJ5|8af9-pYtIm^@Vdh~KQdN!j;XMYWoP~gDd*Jj^QK(TC{w5?d+@CF zJIX>+$QX-;h0QdcwT<_|_fkgVrjd>};|6g@!@B%A>{&+w*lP z3(4Hls3LbNBlPM~0HK~j5Jxm4aI~`!FQv#p$V;ulP(4*?@zXumlzDC2%4tJJ$#jM@ z?QaMTl%Xe=U1_K@G01NhF&=(o0>G-Hu)2#to^IL`;7p={ z+mDU_=$WN_>G|l!!#Zp>LNp<5vxuh+bE%GT!?7U`-Q z6J`N(p$RBEc?l|uFk{Kq-;PBV3;V-LSL^*(%i~#;xyLV@AK7fOV{Bfka#K6WscxT` zbC_6uyWV|>QoOMrzsaWVUojkKshMCI{T`HeoYfnX|B5A8Vc&C{2I`qTc&be(Mi@Q) z=b%)w<5H1teDE;8T`5c5+Xa<4M)zP}fDNa+k~-rrKv}k6FdRPJJiV)UsW+RE#z6&| zy}9H(1eQX5o(j@&UEK42otN_+W6}4LqZngLuj4+6%kw7l(9eB;A*7v3igx-kU_U^8 zyZg=a%>hrpXKM36iQ`Fb zzMo-I={3gUHT%12g2m+RpWok}KuQWbS2VFa@zp>3Guu@4p=U{|x`kPMU)Je^gv~Nd~Ss z2a<0sc8JK`?=K+8nr{;+4m_-IDU6<$J%-kL_ql9Q!EUk_$ZTGs97bM$C6>rvdiqjU zW}1vl9`xYY4RBPAtB9G|%2~b|`a>kRLMv=6Cw9|3;p;Hv!nsty{@7vkSGM8=Y%B6$ zBl1#%_O`Lf$v9Y!Im$!-#TtG|{F$K0I!G+sy^hgpRNHQ9#Vysj?bm4Z=9n?rz9hCh z)=)D)7vW*{8gDX(Ifu zutC%W>a}RNJQQsO}Iv15%XE6J3t_cNqR8j#1=|x*ToZj(F`| zO;U1Qr%Q>4+!gU>!G|z26-bJ8rP~*j4BM1q*t^_7)p15u2);f^At7@9Yqt!|XJI+! zH>aZ_J{xKpdc3RIAt0;_w~b`O!Fc9Q8OC(tm+o8HdX2ia-W*A}@2Ukc{GE$^1C2C& z;jee&)PuJMy1VH=96?;|fGmRo&?z9_sc&(P@J@cB97Kypb%&tP`_q!^v5^*_igKL} zFlOF$xoxKNuS9=1zzD{piH>1Qqq1&51b1e598k0zdL3fF5ZuaYq?d|r;Yk`||FiDs z5UTE2#&zufrA_3C1q9Z6c(0GA$%fV!o(CNg!ASFJ&D0^XAp8DDZV0IK5CLlCT3?M#*&jD=xo(fYhV#=p0sMtYQNO|<)AHdwMGkuX6XOIeAHhI zJ`ADT<9r$s_bIh0MKnG8;>rfKB*XfL4hrx+_xzS{PyTvzf-EZDcx3+; zQm#inlTVwUI#|uscBhJcp!DZ5K15)%P{Q>wEnIjkq*J7Bv$PeZSw5?1ONHrRYyrmy ze@zNN2jRsejDs^s4?d>^%d*@5rO)H# z@(+_}0WgMtkTP*u$6Jn|K~}n9JopWlSau+eS-BsV|KU5&tQ?0-(VE*Ub1a5DKXWRE z*QM6Fd{ay-2>@&SIQcd}9W5xyxQg6^CcJkgG&=glyOePw^5`I6eKu0Y6)JFHLBZDv ztBTgTzr|`LBOb@SWKw0ijqf@(hxwQG=x4>~K0>b0sH~Mv6qfnB@{T&|zSB#!@pxVx z6##K~(BEi8uAtfMvQK9PFJHj9rc}bw_r6|V?jIv~H+6g|PDJv6{n4UMFKRO z(@=-2?9*#y^SbL1x~7-avcJ+B!FjiD=ksBQ)8|_52*Aib^ml(S^KI2a;rNUtpYoVr z|2vp_v%j5RQ}|9y0@>H~`5-DWfj5+mgg`BR@80H?ClIHRLCNyrtUv@6oyOCC^G`B& zg+z|K<4DuH?6*a9+|xM={okdW$;}f4Q|Z^A2s|@Gk76K*H!sPOOr?0ciTKqSNchvT!BmasFNF4ORbfx6<2xtMK**XD+XsGc6#^ z=mx7z$I0qh=uxRBbERR8y3Ql>o{BG1;=m@}qUl?dSAe0Fm~9u24_D5$cg+aTMdGc( zBs$tMnqsfT&WxqKLNyUSY%I0tf|_FiS^>-7@%Vtqnn*~FK<#v=iu>01?`+<#z4exA z=}Piw>a$|+VzfN}LQPVCr`o-2klO)#jA^0#_LfIH9;YO0Hiq5%M*t*0bie1^<^faa zO>v}oMtC`0R}4E+yTbx5|39vV$A{Yhx6=)0(6>KtBXXFuGgQx53PR(THMB3c@LmW~ zR`L($-+lE$-Df*Jd9%8^A6zr`3ML4!wS-RYd25r(ME;Tiyt5`7RC(GUWB}6>t*d3yu(Nl+nqS4bL!5LR@Aa)5etX?AF}pPD52-=;b_-dgC@ z&r4uU@28O zh26hfcE_DO4~0x~UBvgL^Q&O~^~VP=JxHvk{Bwj6Ep~q$a`^q-($aBI=U9{mWCw%B zXMa4LrwjE_{Fxuwm$N44U4_SbpWFHofCw>jNJUh#LUESak(eq=R1ClI>w>W5Z#JCw zAbu8Dq33mlWa6;TL0yaRx}p5{+qKs^V!!rIjh=Pi9yH@+#i@`?0&cZjTnNMeq6;T0mQat1dlo9y-f2qS4k+EmqKgS-sJ54bU8w< z#7g-)xnkn*X$9EI3aWh&LmOC1r#4W^fk@#M{VVx?!4H|_pj9abmMwV`Eg zMUi`_qX{`q`G01qHkDp%K~178bo++2)=WEp>d~9FlD@T5cfTYf|8?!zrrOH!SBM$I zpBbPSpN-yY*4r-Bm1tCCJh66mu4o5P7YqL)bhTd+2J%`0i0C*O{Ebr!8^8_#!mh5+ z(}2VvXkc16YgkOB9-%(uP*@|VTmrUh1*|#M(vwF~;N0Q{YJ3E1OIQrAJK~!~-vI#l z*Lhk^LsXhMh&CT{KV^1bg>(Xp;gY)HkI(0};Ed}L{bs0udekbZ*|u@t-G+(o$b0Km zSc!TW7RdVwVUr!Gx`TRhR7gB93z-)5ghl6I45GK#{sO2*9iGtH7!Dh#$$UJ=@O)>w zlgh4zz=tcEfFtxYj@Q;@&OA5Dg_7S^w-U&dPHn5yhZtsme!O-4HO!|2B<&SijKt13 zsdXWoZs+nA<|l17$l$F|YT;#gewi8ONg+FRd_L?oj@4%KVVeh{K=`}}X+}9dUCk~K z*QT28vjv^Xzog(AtK<3J(KB~l`!VN8efWB#vSP4J{qA30n!wAtYfk*TXrYVQzNn+n6pPO0goO0t=l+e4aTzzaq7LBCbDsJ2Qhh3?&?!w-9Q{ojSV7VNpfCKf#Zpm} z2`Oo1^LiP`9VF`OgX2s|huOFLwaIZtWHL@_wT^Dad&XgPdgXO_)FqgQEgUGqHB|sn zecQ@&?I~O?PRv6y7bJo=-6Tn($4HU;=l=auvAJ`zt>{Df&-->iWfh^?b6pkm8j531 zd^T7KVG|GESF%=eyyG!E1hvcI#c2p z^@4WU%~SQm5S|)V8kURGM?)d{+8ww)+=36#%Pq)1MX+?etJ&jd z#o^!#WjEL*Tw}k%9+f?n)~pD_Wp`l4sjDU#@vDWih|eitnOx|?fz8QwMS*W^ZT%oY z={#T0fOqFk;Fkg{wf$zNBt+NqxK|G-9Bg#UqQlX*<75R}=-B9Nx~Zp4WO}vY*RQBN zefvV^ZJXH}HZwf@KPw8=?yk~2Ui~AWm+WAzF4bh?;3SPuWQ6Yng_vCy=1h0^NoVwR zmj>Gtt$QaBU0ocQ*XvoAYNo?_r8#~9sXgRn<3}@9v)6S!i)E1W4s&ct2|Xa3m@eKq z@osQrJxd)7IG5b=R)g{+E+jB^U7TpErtCQ&5#!&2>&p1X7xTfh_-u7L^L|jzj3HFQ zd0NuObah4$TRXc4h?L}$IYG9k(#J(txSp%C&*q0E%qLCY{a0*Re-_F-yNMj?+&_9M zct5Sim7xL5_vd=At<)NtC8G-1&W!%{Nb;d=o|V}RDHQ+-LjRKvOKxU=dEBf+tiT92(wLx2s&^Si~o|`I6ADe)J^&$A`5ug-{ z$e7cW%O!@!Lu-!B2lYlu_iAI=G2N?WD&3U?%_E|7A@D%_pM&_Vgfl9o@I3s@CiDuc zcIS5C4>!?p#dv&Gik(R*_VAxmHPzvP(fl6=_GmFK+V`r5nnne8OAWUt@;hg%OiUEf z`!QP+uV_qjk|TO{XT$9+rIGAgSh#k^Cp`(FdLXy8@5_^!4^F-kpEBKdiiQA=^AiZf zfkxdI`!8X|dNTUN8#%MjjY&mSc}$?dxsr-=hqP>H&u`kEd+&}C>Ks~{XrXHilzmB6 zd$r<&Zvv7S|MEI-$>XrqL03TREi~GSKt#faPGdcu?7@r)1Cx$`OFRf2x+z{_GN$40HLOOvMuUWInwY|kQ=}Tyf%+)pE*efH(>H0Ug;bS9h|JJy zONCS|h}ST;x&p6l@&1sbcbgrPzd2g`y~Xr5l*oaul?+gy{(j;4J%vt`PEJG28ay{1ST_#q5 zoP)jBsb?y84joo;Cl^6_D5MC9>$vTHdodfNZduBRzz)+avi4SpD1pu-xxJ8^l1hV$0Tl*Q0Az3b8D*V zsIe{{kg=YbOYqoSsim_?OrJ>!69~&9G>phIuIHB?T>2EfPvQ)RQ+V^8MVWNF{ViHa z?_AuNCt@dyI%Z#MVJGo-Z5XIJmSfjdld<=eE0F|e&E8t3+T#Rr_^O4HKOi&Mo~#XY z29fE%cbzI!evAxUU<$9CaGC+clTK#31l8QnreXvY-Xo|O9`5c6k58J+f5k$F{sLPVfHWzfM7Wm* zLOy0_eVJMd;W!`b^JbUIq8)Hk-lbLiRW?`ZeBPYimjK~*hs>cSl#_pW&8o}yEM-PT z=c}A@HjdsJFo*^wL}>k@yOpDqRR12J2&B7oqLO_Ij(JY!m;as@{JaY}$hj+6aoZ(n zEEeoR!yt#1h@a!c?1{3k|U)}Iv7N&9=zRVyjj373ssATj@ z3XK<#yIXuF+S-pk0x#tGUs(Cpd>v+-@h)A>mK968jrr+>A<4~iQdYkxc-nG0lImC0 z_}45o!Cav~Y*^}*mkw%H+N-YP;Z--B{s`*0I?J>ZwA-@FNnI9wvfUUYru*CF0KAQd z?aYUw+xX84o&KRo#<;O-f>kFRgVdBD|D>>2v8Fuk-sQdbcgDrTM2YI=F}kW2YU~qH z27n-(o4!0aKj!u45yRh*jW`ABECZiDhBRfrOrOA8w&xdI-8lv z>_uW0Q2DnrAGqvp@!gS6YT!s+V^?))QvbB~1-e*OjnJ%1$20V!Is80NT@P$A7Gco= znuW>900%U@zk@x$Ixk_es6}gZ%=JjKTu*FW z^i*gsML^JH&yJd=*y)IT_qaxuf8My2n0mR{$GZ}GyfQNCb@1)k z3~g8rlY-^wx}#h!lRGy;C>z6lKktfrC(M^LG_3!m43V{8^)8>o4PZkybC#+&QaQ_65RVl5 z-0AEZ8w-Deis5~2H`)4ayNpdNf$=uOc>pKVdPu5Qu;d-wG|zO^#F;8>>K9x(K^}V! zj9qdyLhLc$W)3{_|9SR;ORDVJt~XRmEi;%dKQFrPmi0cF2&GB-?%SCRGQ`)qpdlideI`070;Lz*Y?Y0 z{)2vx`50N;+7)NFa;rV7)a}L|{sX^#B}wnc+a>f-kw?$XMu6*V<;lcxFq1}TCR1NR zdBR`mqC`Yjp4o9{jqh70dRt79+c;lWYX;cc%!}~uR+uS6w39!k_{-o-d2N*#eZjua z8xzDf!hn1PPL4SA`He{r-X0weDkDK+Wt$QmP6F28fpL2`++eG#aWdR$=S~ZlGL$2 zS`ZQwx-(gxSmpTkn3hNMuI%wz&3tOT-bnq>+}s=>MdLMa@y)ISn+YIOm zCR-r6=k5HGu*2fv^UxxJ-6!+)yI7(@`lqxtO}Hme4=1);q9< zu;tC}xFt`{+nuYpp>;ET`%Y9wBgdsLaq`By^l!Ye#E7vp&D864Mngy@ZUb07Wl_oC z+Nk%;Bq<+q9#6@276$w3N|ekJSXwh!h4qQtrUj!O;bl5xX^w-;NB+90s@I)4)(on$ zV#AVlWiPTjRZL5m!uh6T)gN!$ALpM0NK~MdRJFjN>%ovk+4{cQf8?I$ac@I3q~#=v zYKMFKYjr#!*JxW$?4{mdQ-)QA2^q??S8=J1iQiBJ21wjntT#iSuvD@7%K+h8Smf2> zWgEXU;C4*<(>9c7vXP!%dnyJU4(6gAwfv^iMGvo2hp1j}+2KzocX)m>$JVsH$^9DBkQ2``X{6`h&|b z3L42dU|1EoR(qO3OZl3b>%GCM`RN+AEmpTqR27FO!PT#5N=^_IV+MabL>spBTo*`m zfo)7TxS2@8kFBlD&3zt0dC?3~!Oos27IzLH>);MD9z)3jPtC}NcHzB(k^X$U*@O}{ z#*5Q6k!sf_u$$C=XKJli141Fe*b~l)t;DvihlJwxk9lF0U3A}s|UvZ%EPU_`|RdS;=BB)`bPEbvhXC@S128-m)>99%=9Hf(%H>x>uWvS z4^z8a+^WbPoa@+vb+vP3nKb%3rA9SCedtW%bv8b!Wbr~-mt$XmJYI)COZ$mCSA2EK3{vOu) znojb>=nFcH0c{IbcgJGUSRIA1|DVb`?1HJqfHD-m9rgcV?Te zz=pq1dWIG1{;H6?xy2SoWP(dv?;6~wXxSNjWfXgCDTK3QBts>VGFGmSuU2#J?oOQq zSE@+gkQx8#$WSqV9AdI9(RB&)KBEVpS|@%eKWlY63kHNON=(2+R7D-lN}+V)9)|&@ z_vBNWD$>w%Rx7%R#D!JsBiEKUpNGqy{#u2cJ(Wh*QY5$aoYM#|-=0(z^zCvt@njpSWkHnh+R{@@Sx4l!Rwr zi)>hitZ@x9U9(0FPC^ZP&7h)yvtMJ6=u-H!Z0VNI*opO8Nfk-+Vp?u&_syGr2r3O+ zz`b;MdTf=)Q-Zx}X4UU;pJkXYum_cuEgw_XU4BugyGs|8fai17-I*rvEe5?h@>2RD z$O7_>+D*~t%%tDoCm2SdI;->@b5WwyUwD7JAhYd?JM;R}=6?MWC zQLNtouyAT1j_t38<6_=O&#q2n$%;2Zp;pQ>UY3pWw+(E49DZY_wa#kX{#|`-T{|P| zEn=BO2 z;O&3WJT?Ee=A|I5_c5xKndcHGcL7Wt1(8Ai_>X60#=z@*I`;rLHnGUaMo2PKJKL3& z2x{NN^-n}f6Y7%nkmgGMt_SK77X>A z)w)GmH+(x_GQ9z~lq1lKzh76UlhocDh6V)l6(QN0be1%@(ySv_Vn27Jf~|Tr>WO_k z%N@-!VsA-eN3~=xyWl^R%NHx_Q)eFcuAZmyJnA&OK3V@o&f;IJX%Vi{OdGYyL&O>T z?_zy)HQ!!vmf($`jWe%s;uqo{kw!SaUO}~o9}QmIk6BYubM{c zWut5`o+eS?XV7pdnZ)~l(D(zY8=-Gmk)g&Z{K|W z`6)SYQ1drU#|^D0ADm#zPA?|qs3EeH1H9#|j2~PJ+{x{8w@TAL2qtl5qJuu_4yTz6 zF@&D_utMh@wg|6^aN_j0-|mg>CjJzk#TR=}z;3V3PPEkBI@I+rNSZL3&&}4lpz?}R z+cI$9&Ohyg(ZHOcH>DIR!>@YRW1b1JN65|yTgB#(%QJs=t7&BHvAn*wxL;&h9=BZ; z#_4AMQK{T0B?e+rwQ?Jg?P5Bs$C76WEIhB){nXf+$s&+KJCqPd=Nb7@;N3$oErzLI zR~8E!-{$j2dNwo~7Vdv&MlX!Gb-%0dhYE8N`8ic z-AFsh*?KlX@#LJe6oSO48t3?1%~4Rzl8!Prj>qhp6}RWrw3|iDJ#;~#HM@CHOFVcH zyMpB&jSx!b=7o?p(<1#yFScs;$NNh~g%-MD+RZ73ma15PGWjfD=oggp*zdoD-=pJv zXt<%W-sdAv72h5d-*byQQ>*o*1v~eKlXyAuB59xTf?u=0&}$`ge|bryuH>o~>v(U# zkrdbu!7!3W6Z=UnoR2U8OkfpX#IdR_w7hS9vfEE7^{Fm~0vabpntc~$)k(M7-`WMr z>R>D3li&15g7PwRZ5-V^Gdu#c&JYPi4WGq!xvGkdWs1dxjpG#!bErNOVI_1(ht`mogmMACb70Zmc- zPcrd64UO)$eUV7GxJ$PDTK)9%PLtIL&HF}*&levw5^W`*l2aL8B*ApDVJn-1a04Hq zj*u?bYLSP!u6FN&AlZB^mokP){Sw`@rq-WW!m7lxXnI??OG-H8K}$fs~8vP z5KF@a(35qu{WBHqKYeS~I08zQ0J8R231f8E%1@ph!7Hz~{#$K$ywa-&I5fBGOy6-N z#OEg8@yww8W(-Fi)Kz?(uJ9(Aq?GN6eIZJA6z?ZlGgW5wvN8S}#9}_!v=L0;qFc;3 zL5ZykX&rhFyy-Lacj9zNsGy|v-c4>ID;x{S+xOD9>bk!D9=FAY1qY4kB_OP*Zuk4g zA0yet+UFII7mp^a3!iuibJdg*zWX@ZZWKqR zAW5)cRrQNHvF#2!ChDtYL1`C>-(+>W+|^Cv7xQ*B;On)x{I5nb`ubEfiB>`OHGpU@ z4|Jii5_MwWk-iv5QMWhpWR&Ty%le6pqaTO}ksd#lf7n!ZhUC>cDFm`c~)WQh`RZ z--p&`82u;Szxmb-$(Xva=%!|=Qr8ykV}NQJ{Z@M>hsxP(NEze_rLO~KVhG5bRVyFY z11^<1V~}5rtft_qiu2$F`;)>#RE*@}jF;4PY)C>@Xf*;y`%bqAvgh=Vxa<>&9hS zulg^l=88LV=ydsTdh&fW^OzZTs;%gT?m_A)6|7?#Szy(D@0dN=MZOmOaImJYK0=pmsSEE&~!AT z$O9p9MDO<>9|%Wh;@j`mIjiukTS<$3nOdLaneL7&t7o&BCt#s3Z|FboWYd8UMsuUTFu zpH!PBTQoaqgftI%GeBg^0hvtLyF#4;sTCrSourI<%fs+|OxC`s4fhd!4@zIw)Ph$m zuE`lra;DY+uT!>oHPKZ*0cKzKw))`KHl$;89Vu`7b=&&r6c!riQAZEJDz>zOF@kHo^MD~>*A(qssMuSjL@FMG4#D1F3#aN4WtM|&!u zOTqRMmWgBe6MmWeeec{c3|g-H7fGPI;7z?caybcp^tPG#Ue;UHOr-SXM4?6+YM& z7B;uUwn#OOF;5gwUlxB#0xiZ5DsT&H9{yy(cDI@DtMT~D>t(&P&AWy9EG8@3Gu_~B zg^U~MYXy9D3!rVFJTYMmf87^SrO8$!%iBO2^Ng*%==RQ_e6+MhbN>XdEV#03v+S%v z{WHXvAxDG`KZ1AwBB9Hj?WF4%MX>RCW@X+GPsW?8wsXklv=Fy?s$Q}R)VB|4UmjS< z#4rb~&zKt0VeHJs*~A>{3oPg5_*_)*5xj%|pt}(KemgI2W$ewll4iav+%!uAaykDX zgKdha#}crt%0DMTXi6(crdArXzQ-Z!q(u9z;RaN!4iB%78`Q-=m|1_Fp`SNUgTSk% znYN~N+xvdIIyn&&a?Zp{M34%wUkIYbC+cRP>Ih&fX@3sNSj4$s!a8k9%D14V=g2nb zPMeqd29;sTK;CT==rxG|gN(C_yr!;KkMEE~hk?G3B!;v}Wl!F(5 zyoEb;yK-`5Mon^p3B%$de^?c)*CI}+gwV$rXNBDqol){U8+7CP^Jv78gw0xOo~2vF zWghZQd7W4ak+Ol_RH*4{Qk*>T1pM-HJ}UCL0F$7Blj=L)DNe+va`JO>cXu z1nk|`ns6oU+wB3PJK^>+RCq>i7lkmi?s&C7X+*Sr;@yaqqdZ~!j$W(#Ia_JXupA3b zfDT`fqUJ*qg{t*A<#Gf03KlP_n<7SUN(1246paesT34(*$I92~a{qm$bE#92?N%r3 zR5Vz(*iDJH()Zy&YWCYo2%l*)?|}ZPD4VWqf;)7ts%~_GnBT+ZR_B`~MxwP_B;1XnX6~z=Djnj>9Vi)j5Uou)TK5%|L>U%YumFwMPjQb}vvE6;1e!L5Oi z^nK9kvDWJPl*9=WRb;)RQ#XRG~t;nfGVaU}==7@ek*MZ0y6w z>nivYfhm;GpA>N_fHG`MGNbv7C*ZMpCH}Ajs~zf8fY~u4Lc)$jR;z`r@PE; z*W}qLvv^3v+NlFg2EJ9ntK+6yL#61|di^EoN#~C>OY0xS6l=q!SkD~V2Kn$dDBNtj z<6|gW@O!Gr5@K%XV?Bip^7`pBM?;K<=eUlYXeFH{=4!3J3Z4GpX5`SWG4BET1dQd@ zfsWyopnpGbhF*&W>Sj^CAY~K#BshaH3y3bweNj~PuN!a zYEG(9_owC@ptz@Uqk{?d*}paY#OI~2DtY}`;y$His7jew-fh1Y{)Ub$tgDFypTo*~ z;$WiINw;yP)jo=0f+Vie`Oe;kfVy5i%wCV%`>JPl;~k4q*f`(c-MMd9I2IY=Ho4SP zK(O}_W(jDv1lNfj!i2lKf|$PF16?L-c*0l9wt>zEzea`iMDhOsE)O<#P}dGqcz9T8 z%xDhs%I3xnklDSHx(yRxE~1+B+I!})=;KO3#s80^vtWy|>!L6nL&wlv4nqh?cS^(1 zjf6BvBi-FdN~hA@-5?++O1yw{cXxab-yh)Of|+ynUTfX!P?ITz6==xo&dk3KGS`5v zIpYq*Z-!!W~%@siM>y!mt z>UJfxm9jl8)Un-szo=hx02o2l@cKAnpO zdb9IC8v_D`aRt4GoSAN#R$yZsdr7o0=%DPkxu)9h3$3L7r@BJHIgH=sa%3+FE4YzV zo~uD7*N6Wlf8l_gM%0^omF_hxk=R_`l8$xL_*LpPpcDvQvI{0OjWtb@YLm_$90-S) zC*cg0JCM`>fkf9=J8TtjcMb@SwNwII9vY<`Gb4UNQ3JJFf%7C#G*4vKn`8Pm;^4nq z%-Mlr1rSKqDVtu8()?wS~!a& z6>K9`g=**B3@}Aykh(Ay_oI@gSY`sMYJ9g@JVDcT(PNPAq<@gVjo)15lCw0ND?KF}9 zYb<06yZ;%*yy}5&eB!6l`Z!FV$Xp@}1kUip1`~eL>05$Q+4Q4!(UAG8VH2v5&>;X( zbB1dHyX5}RqLq-E#u>b52=oTQ=RuZRmP5&no89f`c>Q%CczcxUK0M+K*!;L zTaLJre$C(>zgz@7Pvrm-`JK$2FV)znI)rYTXs+FK*=%{x+PyoKdi8=w-=EpdT|$LQ zf3@Ht>k+lUHx{@wAAnzcy#P3&Os-{!jT+bdZvGM1FpGZ+O{gZT>c>E4=UQgqE1r9) zwWl-0pbm8cGJ{fmuj??YUj1gRL-T*zey`bFNp@b~7&qn6bEuIYLPu-_~?F}a2M)ZA~;2_1(S`fyKo&|~%Gqt95rPUDQM1D>! z(jo_moxqkmH{YOW#8qRhUnZh?i(RZpOPNW-s~7{Qo9tl;YF_5^n`&kHCaR0B~BI4;RAs}`Sj<)@WbC>n3x43$>(S4OU z3U`s+G|l1Xj-zH4BZ8YjGR9)Ixs1lSxtDQfe4C@j_vmvMHVExJND#y2ltv29elk(R zsjYP>!%o}_?qNm@X(u+~w4dEK%RVi+ybcTUS-{^TngbIr4S4{LL|c{XS7V62e&Ch$ z2ji@Y->%vVR$ou~w9DQ9Q}Ug?W!Jc~eFVRb2(lPXD~jxG#Xd9TS}Wq%3hG`JW%pfR zSd0Q)YFc&$kF6)Qrq0-gclPafrLX5SyE9C+(gUBr2cc5%$3 zsCFwy&ILo86|%8@uZw`aD-|PuaZbHdjTDN74SRFXtAfTu?5P(L6|bD?0}7l>Of`J- zTb<)aJSGq3!<{ioj$c!tPQWqizU9*P2MAhxW1RW5j=&qguS?~CFlBe3`sZacYugce`h(v?!gg*G4 zS*G?Uz;M@5$>c6ekPTW>CUh|@0MG8*iqLEK{qlqMc0hMZPo+$;9D?x?-UfS1Uh>-+ z&6sP-s|OA1d$3hbui>|rvKA=4)%n~4N)V-vm*9uYV(h6}+YLMaE$>u9{v2)wZ`1!- zV2Hdn40jj4uXVs#=%`VHm4-zm`CIcpk44YpHE)5=X6V?~*tvetKks*j50z$x<|;QG zDa6FowL7*wrT9DTY4H*w#w~mAeg|5MyqypC|Cki-=(|CVR&@+$9cS%yFzMn@F?v?6 zAZye3nc< zgd{dx&iYQYDHHC}(}}!`Zhvyf|9Imbb!^j3Pfzvd?UB;3qX2|AJn`w%Y_n}>=$zDo?GjWI9 zy2HrDGWo1db5(Deh>61XD+`Or#i5sL|dDdZHA zHBum7w4~A^D8fMa$+J?0MB7Pyc-RjP49*VmFnIy83nac^=)pkX5wPVsyZPy>(ycpNZJ}1T&9;w~(5o8|g^~Z}2+WdcT z!CIEnlKj(>Z)uzge4DRwb!9@0<^7lphQ__$*oU!F&XI{0&gJ(7&Gqv~{O&u)*kW9I zo_IHvzhVUjA*cAc>-%Pf$+jSB-Zn;8QKE*HIIuJxWc2cdnnD(UkC1z%3GD7$l6dN; zSiMSR#6E#4g)~Yl8wZVhC5_5a`a}2WZKxK}ejJ zRL*lPj5yfQ|01hY+=FZEHo}x7;rIIjqJo}~obh^wz&Uf7ljq6t>5DmYQ^}4lb9NsKK?*TmbZJE~%OPcF6a*?0r2 zf$0MSoLuPqV->B@lps z;L;d7ap+wjz9c}1Vv33&nZ^)8%kHyba;sd|Nr4>QSTqE12886D`GVFROd?n*YAj5f zf%cFg@L<|ZW@wO0ILEDY;@4R4HLcB4Fb4Z>eBrL#StRDQAIv(cMvM7(!F@~_+#hah z*>H92na~+$mlc|!NC0>uidC_H!BO#C*Oj5hr@a_|R3ie&FwN#z=C!*>V>dLu= z0`701Te3-OwoBo(3p8OG!$e$a=#}>eEIa8o<4}kH9;+HTq!-`MdFTY8`3<`mV?C{e zYwn58T}{WkGvmw>lq}B3jds^M%)Ydx0YK>}oZ-@`YQVjQ6A)1Qj3U9oyq9jx5#GT% z5g;WJzkk)Khh{p?buLvrdj0t@v4)^9SmSFGhXPL0X29y3FGJtLO!@7e?ypdNkL*5V z#ZGsa48x^@{vM*5|GqulH1>Y^VgfhED+z@qQ!2?3%=cy2GNFZ{4wm%XuE*4INe(BN z|8SeB`k9(l7P+dQ!QZ>uykJ{#{6|Fy3xm;U<@fKPCTVE(^v5?c%ME{Rez6upL}mY7 zJaMRYS+XCnL^ZQWITuWWo32F6OsfIMU0}A+>+-kk1Dc$m+9HX^@f-}BMXB}6!V!;_ z^*U!cM`;VvOT)3)aF(*M7EUCTvAvxuz#u5*h$(Ni>*(x$LO3tx%{n5zl)hXHNYgXk zD%Z=h0f@K}#SodX(FR9<+#WWlC|b%?g5f5A77V+d=I;QqhJJ}j3FVWTW|jC=G~y(%EB(+-524jN#b2din69ZQTpgwAceC@s%~ zVa_P_Kb7;JedS(~xhdO`z6zn0_W^qvCe^2=#J3HUMm4AU;kguS2Bu;YEfhT2Fn3$a2RGCQ&a z7LxYb-c&=<^vPs5VyWRgjB7Ek+_xSA$4^UZpkbzX9>W&1EPBJEx zVM)H@e@CTQI1{?t2SxeO##jLHs$pE0+s$7YiWS+9QG(DuCX0XBrC?}}3Asj5)|NXkv z1L?vcb3o~=H-G@WYvsK6JwSt@*zF2Nymw^Ng7sGxa%!u5&9F}}8m(RW(LMAnApJ*i zgK*h%Fh`3nbC4umvXbbX5i{cZ2qKMgXN&2E=}&39n?}{k!0@>Zxcj{S#?#nh_Vh(O zwdHmk1B3Ab2+E~b1vx+_N-8;mJl6=4Fw|OW2+<8NvF@0a;;`z2b6wJnUlE^ji1`=_R?fe*3rcGgr1W4 za7R)HrrAe=O;epghfn~%T+bo|^#O#1v3kag&pOC`Q-I`yHIBkvzedl;A74aw=G_C) z42C9oR{rBqg3bww9@ep!(EW@tP1-J76BWnu;XV12O1vH&xcct*ZNXG23i@d^K&A8Y zpY|et2ZUV{Mt4mjOntPcpP!pDasF)k?OZ*mVJf5|B@3`VuZ%GJUBh@~s$uSC?;}FmvL86q! zTUFf2ks|qTu9NEPR~7z8nlwVm#ml`v8=1#^E55G6=;Et|V4|B1FWzOUXk6Rm7hrHY z5C)nT*a4cZj&Bf+kN%5Qcp;~nq%Kok=PEFV@Yn(CQ-d)uPAJzt_eO(R)}fNtdHP4K z!|2B`{vqecEM&ssz^d+P^LTrwu{3TJ60t5)7!qF}+!gcHvZAv67_ zi@X<#1WJ8p2e~kPYxh3MUPjMSi@9*9{z>rx=}fy_KZW8{nZuf6BlQNgY1Y1$nULF= z288xUbKQ^Ie(29LdcEazt*s&>)+qT~7U40CzJ@j;r3HQ`FLpv`Z^)DDK15%A4J^?b5pH7=-4w5w^JVDSe z#1rI=ZfA-&gyK>>X!<4G;W<5|WWi%PBb1*Foo@bpM#T|66|aN~4El|+q2G(S;&eBe zBgDtQ8i=_46A;w&fz7{3CeP<(u!3_dj&C`m9nh>)Dun<~KVeY&qvm{H*KJkQx&BY- z3h&>UGRVjy4nPY@mIIKEHmWV9Wrg!YQk_a+*4U1x6!K65sv#2Q-3jWoR7mAxs#N~X z;rxZFsTS+Ca~;rmkj>-1k-aRN-r5zM?o5 z7BY0?;8^1JO$*b-hU&mj@GsbG?EA0kl5n_^V(86v#G8*7Q`B|7cjxL;+= zOE67;A+p$oICD6O$c9Z3Gc~rk0FcUud0=X3FOdF2zLvSfY_glddBaADcpm{nNgh9s z8cv{|MD1&Xv^D02$~IqBch*2)!3dy`&(#{nHiDDyuPAm*oDP*0d!`EBQSCqE2(!8 z?Ej=O?XSmyCo@J(+xWB36sX^v()M4g4*8pEO!A!&)1dhTf$fad*YXRB?-j>ptu=Vt@z<*`5kfz=Y3xUZ zX?Tq)3b53$?2Ge?4^JRJz|g(FWQVx<95w080fMkO&JTcBUU#bED%Dc5Q7#WnVG&EO zugS28X_NsI;o)LNOaVL-ZJMDqtBGXAe0vY&Peq$DMMpaJKaA%dQ;()1R$Q^GRgd>4YCB@wiQt; z0mn!`93nynhhQO7sTs|Dcy{cWBzV9-$^o9`y8ijs;`N$S4s@)HcuWhDJ| zlipY*9fBrCE#zTO{819ZaJvksOn7&kRsbUgQ%J)h=fzyxfr&@gGilB%T?AASJKAF~ z7E|Dxk(~h(kjhB;#x3smRg;fUmopPi zdN$b_%9!PCWzAV2svEp&ujZkfcQ*G5JXr8}G#46<5v3pbviIT{D+c(2LZ)0wlaxtQ zJ7?^+#zEh+U6%9KMdzQIL~F3uy8Z4KA!S8Ciw$t3B)nW^+Eqt&{p6K~D64IWj`s+B z24+=BQ&GemMAqW`wMH8%;^XiA0|)hxaUuhIy!5A`bsyYqC)Tbl%}_(`V{axO$Bv&v zZw*Hl{kHn4wASXj&BfY=yQr+dtlfNAZ<E#aMIN2bc%KKikQC7V&fOc8$fENT<>#e3a?^pxkH9r;v`wSR6(uKeg?k0t=pxqdOQx{Q zuliXSx*FyfxD*N0WzkiyBE~SAk87d9#u-r18;v0}{JGUaOz`^*l2w9Ooz2RDpY_VP zr;yltKX)A%!7HF?;MH=r88YBG3^fCBhAR+Q10&5(B~WSFf~{dzKr}`)Su`O|#-nXb zPZ?>amn|B+-^c$AV5Lt62~;s(?LYxaO3Ko*cz4zLjOZ|^ESN^wmc-x6!fgQ2ffnWp9;_(=?yID^;Jfs_>aKMfYvYhew19RX$KzCxEqde~Mvi<`+Z% zPqG+Q>P&s*1%`2j1=^@avANJH_?nVP@(R>Vh&`_1)PV`5L#6F4#0lkE%LV-D6X2s} zHEHZEp19)0U^i61CanvQIX@N{;a#WN4 znx2j6@svjXgcg{*`2%VdxZfTEe~&@*forcgSJ35s`zv##OSld6qZ}lci#0{MJ2J2J zBtb@WrD=wR^lyW3d`*4=F)slHb9?x#H+{t}l*F?bsN-NH7x5bNe>?5eb3%YcXC8!Z z%22y2$!RL!;Qj9Jc<)YabRrbNHcq?bpMF`B>Sa49olzz1opwP8qy9)dc(-))4GUMp zZpbn;*$$sOB+MbvB$#!1WRnKX^7R^dXCe^RA9xeWVbHskQws~yyC4$ic2Z_ptuULk zYaNa+d8_ZCl{8GzN5SY>{o5n7&E&Tch3Zt~q*!O}vcX8KAFtN(QERh;-%{VVr6wxb zUH`?r`>KsU;X)m;uAM!8eD)z}e?OC+FTkgzg-t4Yk)x?8T@NXY6w1Vic9`@9>*mW2 zA}Q3`m3`K#e4WJfaFMbkB!YrS9%vBDX#bK${I&aT9yCU0!82V0r6ObN-`R+`oH~nS zB*q0@1Ln_R=_}PDo8!42wWcC;bb0(yO)u`!TH)CcJ8pXsI0YV}sI4Q$jMnwhyQ--j1=ePS6jGQom&tu7~m;l~2mw0tqQDu&O#YXiZ)jP+23O(c)}rpvj(w!^S$Hsd?eX#_Nqu zL}Ov&M=bHcadlN#YeQ%5&H2lJ=;83=GGOU&)K zZb6_Q*7#u-id`}u_KW_TyblxA{&bCwRc4#&`EVp+$>wXMKJO|R8&G2y{#HuIgh|rA zbrTR(6aFTv#=Z4g{pAf{_#XW+@O_l$SbH((8`Thk64zg%>D(|<&9i?^WOW#acW~GYyGcVPs3zSgvn=o}*szFi0?<>6Z)|8N$MTNS=YoV)c zrg%X&JO57nKi@NUZ>J*pl zWcoulv1jl@D8d8?I6GJlikW=kJ4inT)^&f~#R=zbq+Q@IgbYcwEV+#HOJkrg__~U^ zFvDxtYD^X97`SEEv4v7qxRUNrZ84T-w1z5XmK38ZJi8b0Y`?b>XKEaspjhRX17b2^244INwk_nLYs+F+d01HKVa)Ps+*+V?}IVH zB8Of}C z;mJI)fCe0(K9Ho-bvTx^$l`4M>iyr$v@`;B*(s?ess!zZz*MtUz?%+V^Qq~&&TIgJ z^&a%^)6B7Jjb$WP@<1w{FSzy2SkoyW+u1*6U?hJ7WTe`I30mFQEq8E6a)cp+&fRs}N zlcW%xIAsgG2)?3onRFv<)?9TH$%>aclIn`^^GNSE!NT#bgmPsDSW0;r?wphO(wLZY zt{buw>(tr-QX29>v%N7FTT8uB zOiOQDKvT3**wR91jJkY&-Yeuh=Y8fWnV=YR&qy72wd7g93wndqRPN35O;5lvP`)`S zb?&VWEB>&dRux-idL7&BCp?yVIMsfhn2R++B><^;}|I)83tWcrnti}(e3$?gT`+dHg!Jz3g(zUyQ z>T05euA+bVF30oqr>7~DV7{8Oe?hF7&9=n62VOXRhLy(psRwA-NX%b(YMb)IE}`F% zR%@iel+w)YtvkTQ4jq@g`}NT#VHn;bZGgiUu}wJdZo(=!0f2!xMSjt3o>P>5Rzt?> z49Je*kk$<7cLX^>8!KRi3T-*1mBbn^-^EK1!W=3TIW&R>ymb!iyx;O5?ebDC8g_ga z>%(8ug(fm?G;Nv1Wx=1T$i8xM>p;`obeyzSrL2rT!&AMcbtWv6i9?Szdv04`zpjNg zP}{n>Q+J2jIN{;wg-k85E()jlH7MmQ!$v6Am#L;d^BXF~J{7z?wQP{L2sOU;wOifr zy9&61D@&|6Db5c5*rMm(CqS@V2xK9)1bvRQ-`9tagv zdva!jCnD{sBu1#>W~!SYmH6`CnXmEGv_L>I_6*uL6#d-qYVRIb`Nw24rQ~WvY_i-W zy~4fXfj&-mC*X2(&joPo900-J%%(wu#ePre%&knAj)<63a2}m2&|ibmTqww?dzrHK zd#4B_^Yi0D>iRH(B@n)q$LfW_KQ+(NYl#{zgTT3(9KWLwUy9gj5zO8H0aROBxkxF( zkgJwnJ)<-_mSPYWiVPwF2`iq-7f4w2N~54_{oj2k^l;6)k}GK5M2R1ES!+U@f?~e` zSHhx+%DFgVZr{V)kZ(bfb`@}!9)PYQ_H=oSc#U!F`YfmJWM{_rA9Q(kTO~Oc3OU9 z2AfiLb~=;yn_FRnv6@e17&x3eob=(e^ZM)I9b7Ej4@X@+oi~1(=zcAfezT;zx1~S| zU$@8qsqwXD&W%Ln)W0;eA`lr8SGG0^8VrQuwo|*AVHpGOle$3)ngKe_7G@*F36?Is_VzZ$2g1hQ92ua{r-=bz;`w#8BLuT00|ahi%PP zd19|{`v5?Kjn z-n#ZbZ|brddp-&5WMAx$h+fwzYqmCPzp08ZArM~Xv&L@>Ig5$bkqg!`l^A%gT+E(> zt^H(7ftkRDjKLOmq_gPLCAYc>5q4Zn4!`Zr4a4h_KAhfbd;TsYF%!AWO&l(YME;BG z%>}gl%J&^+am?|t;CLsO|!75MzjB^T;5rmctDut0iteh>!1BaFe z0qi}jk?fEcyx>q?TT+{=S>3HsAWcmLI*`#E$em=YJ}aFv8L2x8nB%wJ(((U56Sc+>y~XnbAJ5Z!4xfROntB|C!y6&R;P#UoYB}!wF7{T=d;XJw4?NJ2 za7&12q8ANn-!6y|Zqa&ahBN$n&2ZG11BreLJ)A>(efmb}t1{M)&4C4#PZ7ccL*mRB zeFpcN$*LYXfDKk!=&rA-I)#uztvw|da1f&zV|nIw8S(mAI2`<4+6yN!ul=_+S>Smj zRAT(gY?5{idYC^Yq+HDaqozG9^{jkIp2tH;Q}^sE##$*d$wbbody{Z&Gx%tbM#@IL zG7D}i zU2J`*a&Jw*lO1dB%-w%e{vI7{&GYMI3{Q;OF*>jE=NktPbaP|=iYZ+dHo;VY)si52 z6)h%30hFd=&3hP0TEE_TZar2v6WClC$&jY-6}g`Q7Ho04=TVW z)4~M2or*ODQ^V#*PggD8v{iht1P#S3(8nKs{gy6ed;-1JxCo%45suD09b+$xF<>Rs z1HCjAcx%d~UC>hxScEn+1seyA zXy@^6Dq#5u2rkwXvnJ1(iGEkZ=K`%1K}*X^+pUv(+_PbI1;6pZKRB!cQA`833UgbD zHqleRe(|`0{!vuLvL-zWQ%49RqaICxspO|P9dg~sV~uxqlc7W2u2G@=l+42Abea^{ z*?jG@`b_;=N)I3&s^!*e*~ZawE^%f&Z{G}D^yLc+f5jQ;9}mt4v1ua{;-`aNZn4-% z2Y-a2&$OGfF==zq)|FYLhgRNbI~alKtL@`6_McTj8p{^@|qKjs8N= z$FphceSR&?q)LARF!h>4KKFgiY#*=l{W_?FeU1%onb##7XXNMF)gtPr-5ek)euNpi zb4H0!zFCp3%=Q3B!cBB9sk`nxLP@O3pgDXN@2t%BX%#=sjk=|xcN<@2UQ~QR8~W!Qs1f{A-L{>{zA0@Ys~sWm73RA4Dw9pD|78-b&wvvBB}kW}fEuH>?L8Mc zCn-?lGm+f}jn)WLLRg777@n-!K2^HgH9Xv$x;m_BhUOvgIR7zm?!s^kESPqyd|z)G z68j~HlX%1wJNOYn55=4k1PXL@3o<%@ZwW^XR3sE{yL;{YU0rgWIuZmx{C0frJ*`mL zMLjHicTtF&yF1UOsC=g>ci?nq@+Y9XtAVDsG!2wE`j-H%Ff6gC&i_XfpiB)7>Swin zKxVBJhJjnj3xAkqS)|e=AJO+6 zyn(4rj3fpjo~}j<5W!LJMtb9}e7+^1od}~1c`-OBwL5o4PhwXr&oyr`C}w8bR~}rz zK-)2`^5wyW;7CQjesper0p>z=Od%R~9t$Cer$oZAVX1g-<=G!*-J4PQX5HhBg%01* z-rj!?1}pco^18_&-&JNY!Xr!P|$;uOK?I)UEvAwJN55WUD}h+tF`AVG~or@kAZK>S>bcEg# z=+eF$p`~Pu4Bj1bIGg##Cl%N<)T$k-3;senT7uMrBRmrXT!DSWt`ydrx_%m@b^_b| zFh)sI`et*N->f@`k?H)#b71=(#9^Yv=8m zv6H;>@Yc!wRfQiPaz}J!Vov1W=u_1=tch^0_OkZ!ANRaG&m$s9BtP{<&9N7bdcgBz z$HGOA0+>Y%NdNylwlBk8e^?ZVa>1jFf6aXRAaYP^g2#}^caxs_tB~Vzr%I*CB&X>B zq*0J8-#peW(5d^Nrbkq}c5MxD!zxNP?dP^GV;q<4IEa)TgOyDSx~qGTqXOr_RZFzx zG8O|;f3z0;>W!+Urf}c#S2lCp?9GgR!572)%zu?pLGCWOz=l1(x;4|ur-PO_F6h`Z zLsLW>OCe^v#VDttA4~?z+UaS|i`5Eg)^+X>@Ni^2H-~wbbgg22>1!!&(t=9ReVjQ?Vp>Z138+YY! z7Xd=o{QiGKYECj70%>=F@mqRklK+sxSZqQIdQui!a-K0wavWk6sCNAt>n@0N&jB!J zw4eQ)7y}%Jw3nn>=VoO2t=PZ{D5mp(bQVhfZNBXw5E}by*IOQ@^R;9yw-zJ^B+_;xM&tO zfzq-+6gq1)%j=M^Wc)H^Hp`$+fq81w;%HejsbtSv1xYGy2vWH_!wj?{YlF2Hcq;;n zB}T%)m7`X0Td1I;tl|`2ZAtR1shyv8{MQVFa457IqYy-I z;`J?Tni$!=L|%v(Laiw=d9EOI^Ix07_%B3{?!V1@7rXEDkaOnxbcgt5A~{0e<$O50 z6I4AV%SLs3bTO`1$Z#Mi2$$^Q4Op~N@{wK018JqP;`H@*P~ZQGu*4$gwf_pGB~Tq>DS^9^^*nMaGT!oxZ3@k&&vYORbKhL z6R?YIYtLzD*nSfo7PP8V*fOq4;o%H1^NDvb;WFg9@aR^YRN^DXUd~)?Nm1%@{@+#p z?H@FGmOwd|5rD(cNyfvF3EdDkpw(aB60T_TB6Rwk>jYE@ zQK7(V5ziuW&xIg`a?t9p9gV19r#b5t4C>2NE+$1OMIs_4OHzT5eT{mfZZ=j6zYIoe zzO$N)UBv1y=^u106`to;u-$=9=qeJR##Dm~tF4I%Ec0|7swPlJLTvhC5NYvK zn{ds`c>3AsYn2dY(J*gcI||c*=Q7yB4}{QydC=>wU3_pDI;V;PbTj4FQN?fV0JQIB z8hCmJC!`QPEQq^5Y8XU&-<_Jq?-k_1Vaef-+Z<}^avFIA9IGXq_In03MGApXnf<5T zx8aLtohlL&@$ln{{C!;9_%9oJxYI=sSNd?0L>$)%KpD5e#oc3(DM@$Q)XrM7)yl>n zTQ`+GK9(sh(A&sD>muL~dUpN150Em7d^+Qn4<>m`Q_>B_y@ zwb>=gcg<-Y@&kDw)94$x98}UMu<6ABjg%EF^^zkdry?@q(|2mF~e5G$jmXB%B zc!3_hh1cSwm6zAd2s6Cl1vNyd)GQF^9@TD~;uVy~lciAO`c@u{C1^tOcGA?7FlKgF za=i2VmDz>=z35Tvv~!V5;&iq*@841JB90T}0m!+!_yt5Gu5(k}O0Y9(Y0|Fn<<$OS z`=`|Iy(thF*!Y(ri??pbO5_9V1nZI5^dp#zJuP*khz_z^Zn~Mk*iEC@M`_`7M0E#%jBHA=_7u6LV7L#c+O;!LM{R z2y?+4;qbjac(z;hl8K^k{uO!9nR-U56wU^xS%%d+r?yXVdE|ulg|6y{HIZX*uN&&4 zjOzY1t4wA>5!GgR+Iky+&c{TUl=`E~yNd3JV3s^sQc@KSX{7MWg(|?8w7u5qzQMn* zgv;l)5Q&}D!v0m7Ul0V@iAhY@`|~}0awnr+YrpY6E}rlC8{DoswDISCkDdB&yLqeH z;2i%3!s2*EtyzA5yf4WnZMiGb%iXqYoqBbL0`LpX2%RzPhK!j_MJwt4Is3V0+X3Ab!$K|(v^+n8@>e7sbu z`>jKlF7Kh?2xb9Da4+$M@NF5x8iqtHWtI06tJRS~HM5-vzV?Qv%T^ zg|T;S-QfCu+ReqL!m0A=Unw35q>}^Q69H5oJw9Wf=qTKBV#6Fejn{ zCD-X1z5F>335jJtTJ&*!APYxs933jt$--0yb=7gq11%Th*=cD^kq_XgRSjxC!)v1J zRHT9TwZ7J}-0%Buu?SE0TPQbc^CP$XmfWqs-Pi5sSBd6jRhay6Bsfy!T6gO$dsW%Tn#o86wjT&dYYk zIT?C#nu13j(Nys(M_&OhU)E;Yy>tYshw=VvmWObsABanzrW*WAu#oTB3CB9%(6%A` zu0MI^+yFlXXiUJaXz4b>-=`iOeEfL#!K@ZzobW{gGJ6Shd-&pDbHrNN;Ip8b)2$mep%nAT)-579DR4Vd_kd^NTk~v8Wo)J0 zSrs^~Otc}X>xbYz=}yt*;xr=4JOZg7XyyH$Dj6{V+&b>+##`R(_$g_AR z6{SK@k z8zF=2cky%*5THpY^UkzHV#0PBCEab7S_G^vO7+QlB^G#csp!inE5i)ilKY&|j_>`S zy!bcF2Uo7>OWL0GmvZez=gJlz-q0#;+#lg9X*zBA1Mhv8I~f#(H|vcg<#60py~oi; z)L7Vl2g_gQ59_Z^+_5F{X0!a)p+;*K!#PmID#C1(sshnKnGNUFvj`l6ChXj4>o#}J zHcdfgy@d;Iel_oT2o0yGR^SIadUmK~Amus|Y6hK~CKS}7kVOO|m}) z>ry*XKBxI0`V+Fc|1R(j?)2Qmq2mA2C)o%-eD{=q6uRzQT-ZOx06goLO=2L&J4pVi zwSX|(qDT@A>zypP;^}6kXRt$FClf=VTMm)c3wqZmF199fD7D@^-V8U*jLM z{CC^)Ul_uB(>53N<_6yrgTjVL2=~ts3?(^CDy-WG5y66n!I4}ZP4nxz!}9&mU?hVo zYHZyY0#uv~P9$ed6F4=ycQiqpdnO8T$;YNrn?FI1_FOwqVsDL<_g%4NZl zLP%xs2$PWWfR_|HOh_f|`AIvQYQM-Yj%j;5GAog=iV=8x zJwaYJiNmNq+upYVGdcJeh0EmJ90{q{e7R1aZ1DZ;sl6Hg2)Mb2n87AYAbFAmxz1ke z8uCYT*;&J^vwCzx@Dm_Gi=cOAU%bst6<*rj>N5zIK}p+>>pR zvlaUz8SDK6@SQFfN*|~ES~>EiX46QkJd%&zwj}h@s;YrZM*vHyCP;y^q~3vnzrx`Q z9D2Hi_SYo*xZyuvAU~YoeMFn-<*8C@-SV2{MNm4KxUF=t8bfRKW%uNrmD$sh5EORp zzq6&6CZ~?q_r7>h+PT*fK`AR|7xEF(^z%;1LBtAAv^H3EsY=fP_z;T`8_jM|{cGXh zzqlqwOD2}qFJBGXn=U`v)McFiXb)?nm8)be@t3Q#_WbYGIGN$k&;!t!!;U#n(q?#k zUgLLU=UT^(6Y3DJ==+X6V~j5hpXE?@Exs{?vtLHkU46Q)Kr(ZDtZYNPX235nJZ#>z z$-#z}epbI?jPT&6U59-sMz_QX2?4r7-S$LGg@=|=!t)x}M}`xoL7~0}69~#GzOfNE z&D@@Q?4-=*SN1KPk-#pL#e!U7@aj0*w5;y3V;8M9P0LLCB^lZ5M8diMTo>nZ?;q0R z3QP++Yrem3{DbxhIpE0ks z5n_Xx_-VW_QJJBpXYKlUp*I?R6h}e$VbTU@>uyI2AKA2|ch?(^=rnDnefIoys3KLq z*&6*h<#}!LItW5`c;dWTe9U^@2e>z zgtgzW3gMM7FNSJyTxM|7j_LRQVQsW$S(uVGyehUO7pU$f2Z9PN-wkVYhRC0W$ z`X5JU;ZNt^$6*~uch}U>F-%W)9B~egW=u@S4%5xl^i0R5yQjORriSS@KW%C}x92bL zdU4;k@Avb0zpsnx16{UqLr2!nb>WSNe2+Z2IEQN=)5((K_u*>raLwwSO*)vpW2&M(HyHgidRIh$e6{Ho$i&%SRL?+oD|D5=!9=QV=iH!G?rpPA~E!R`(; z(}vI^O1cewk{LK_hcO4;0357+0MMRG21a)K{miK+lONJ#UErD!F4+lq24-AXOCs)f zT1yS;oc@0>RE!Mn@{mq1`|`Ye+|T_^si3*TXCX+7J`Lu#D}~cL(m}>IK`Kl^FNGAN z;p}`tPvyo5%c&)Ef)?@yvpd@9C4weEslp#XJ32v-6aVTK_X(G})5M3$VJBdbDf-IJ z>Q<41aXnl34XVwgNQ57ft#wI`GX>ZLQKRmAd=)fe1=dvmkjVz9P)3XaQJqOKAj|aj zgAb{&0rtsfa^c1-qaC>+))ehxFJMM^@Wk80tr@M8KV-JR%5sR%8_ROm%N)RTq}dRS zpm#mjVp4Rvo&p2 zx!V7ldtdvMlclw;Ie(-9V=zPa$A0T=2(B0Z*0UGG<6U*Be%o9glJ9?@yE2pWW5=gv zYmwEWt;!ycysC54Lw73T+XVnwjg;gk8)CtUJ(rY-dTC@!V=03*z)AkGzJ`%u&rW8I zA}%AP0}>^3KR=V7YTS+bDe)f=z6R$(`lP{GZME3S_0NKHQ0lib5eQ}4o~qoZ9O05a{F@t02JNp z4Bxbygcs)vdbq1I=6-T8+!3nVSq7?iUQ_gQAeXWIbDKVr0!ulVXtRQ{ZD|bFdYx;p zO*BG=YvqEPGi8eghN_QSTcx-<*%bVj$19>%_h?8xUAE4;wieAHW;~>CSNRF15R5$Dm6tYxhBuV@E zB?`-B`XSNu6NznHBM*75&+ccBPZd!k1HR~@BB`s$e#S>st5UtfE#}R}M=3KEWW-)c z8hX+q2MEDQOh0a`02J z?;4>gw=0EBN27KEl1M+3b{MyYsvM1|>fJdpaG1n=hbqjZD0Bd~!s`x)wR#3iS04Zb zA|b%uLy}~|9@a=rztdk%YwH=%%XxAdqG1BS%bEbfA)=baorZYWi9dspbAYU_@*yt2 zH4z))cJ%i3y-|gq1p}9hEO^M}bQD;T@}!jug@lHC-*n9seZ(h)t=4t%5H#0OEax}m zJ25Y6LljOWqfTY|KLV1yw>Hpmx2Uq#XGZ~$w6bMCVV0)VoZh37F|%lVXqQ6`tFNSaodN(YP-9k^zfno+CSI~sa)^3O0h341;aG_dQ-R8CmKB-NpV#G8{;WV<69K)APhGjEHnziED%SN3sW z%d}@=GN9|PKp%u6_*%a#EmuL^|H?cOk4UIr7UAK^;FVmMNwyb`XGDml9LUtNh377T- zpt2~t;lLNx;EUSCSP`;@P4o6IHUM(!hasm-6`rRCz9;ab6~sl5bu4k_Iig|jT|bwg zZ=Q8<)#UO2xMf1O1ilWx+~66i9sY-QVn7wQYVGLPh{2LAj|6Bo_Bi5DVYNDdPt_;2 zel|nBk3`OqXrm{9-U-`xKlEW0j{W(n@NNq)%oWKckn_#>~Z6TlxF!3ZVj-lv~hZG0D19U#|h1 zFSl6kimp3)1P{m*-brwuSHd*Q>m*nFB6RCa3;5dqN5F*fDtD4Oe*(u^SV_>Qtt|G} zq0vKhaE&*BS2NV~f3D~TOanv;sP15+cl$0|>#DGQL`+#cM=$(0DNIH`b4JA2vj0DW ztspG~`8>RW$rdtyCFWyF7m0wy<^#d7bAbv4f*uOh16vfeM(|vz^Mi~|C96{jPfzJ( zE>QnSf-zIL0YESh%UXTy+K-PFiXB-~*cP?+k-@ zdlu#L`NuDhWwwiy){g~U0d*&Eeqjy8&PiY@`h)4~)>B?{TEsc*Z7T5Jcfb=An)~#y zS33j>waft+o%&}mv~4u;hLp~oR~I>TTY z?4TvVv7R1i%mdzc2xE7QusC+&sn_=i8`+i!i+o-=5X^z7xVQG-_3{vua7M@x$~luE zVX<(tF0(6E_NiX8>gbznqch$3d`Rq3kg5z(P%%w(Uq+UW0}(?DBT?Bk&}3%)kNq0& z-aMSoc}M_ZV7RT;!6bgRUvK>c6r2qnBm`PvdQ;BHd6}KD*!(^QZb`m?R2!I}vyy%S zhT2s)b9%5!I21lkc#>@M8A>@5jqKT@_(R4VvBsHoW+K=3H>LGLlx*Ge;Ye)$urwyj zY++S7@W{(*hz#sI@SZcz(RBD^4TzKk}Cg`4{J2W zVwHc9A)z|dnrE~$T19TxVdw5-0jgcpOLiwV;hr?UJDKKxD2vWr@ZLPk?@e9&@+LdI z`LVZ!2to-FGr8!$b4*_~UoP7Ez2jB4(C7qfNul${4B~_$M20DS-_5+vN`@R`IlR8WgwF~e9_`+q0 z9P(?I+CiN2cc8c&Y!&ZrcMCU*kQ+vm65&)-Ir;8cui<;J$DC}r)3nG@-g>v5I!(2U z6w_UWeQZv*n+3ihO*relo$$ut?rGFIjiu-?Su0S{^4-C3?Jj*4L&9HXv(blbxZEwh zB@sME?ij%Wl}a(IBe!0C=b9Sk?;Lox6>IS)}U>gZf4bQ#(yJXv8NMr>MiB0dqk+=bZal^W}XkmoWLlx%&}sOWwJ& zDh#xaW>DsXQ{~pu?rggKZlExR1H)pX4ZVxUtHw2fh^wU$uet)iOR8!}Vz+sc?%y*J z>PRH6lyY~_7V`~F{D#=##4S~8!80{~s|0Hp8@@`BH$7cNF>oZ4FCQNk5$?uNJ@7uy z`XkfD;pcgeN+y!2EGQn`f=~3`zNF<4o4t~{ruBq8FO}qrvUa;gUK^&YSML^UT6E{1 zeSZ^HwW3l$S*Np3LFw()=mTRMBo$UmS0M>K@FQeM7iLxHxl!{=16;-KkJ0QolwC5r z9Es6JIK%;c#5e|pV|Dn8!qWPVy9&W;jGS2OZJc$Wf7AhCO+93ovZM2PuyV@ko)4~! zi;L!X_PVzAm2V_h;bkTo2Bv9C1h5QL(Ux`ZuWwa9H~JP?{E(rf#+U;%h?FLP+10J$ zTU9`%57!@xsuuNuq)AJz;Eg*h>@c=A8H|Q{``8e<`ItbHImFFA%BCOxU3CN-``XT};Gl zr4>!;xAUH+L0}6h&oTRg$5B?FqaA}CI6f!TDI*yXPf1%>(No-EC8 zcwp!bi0FH{MYk-t9J)NaKPFN(Q!$E}uvL3F0=ZRA zH4At*8wE9ksx~!@f@vGVJ?KFvd3+_VcDd!270gBnSgnnK?JTq4+~5UjWNPe=tWVm3r+zR-Slg1tH>Z+JO;Ef$N0tI9>*Ry z5-Zx@nw|9u=qT%A2}FB9rqR=1q_KOD?ky=5R|}Chp)mnkD*A8y4fEgGyvQG&(7R<^ z@lEQ%Pv4FQJbFTkV2&)FzoPX_?^Ysu{sENhIJJDL>cmSWO(}VMlv;Rr0hs#p)Z}?# zytu=}vmV*dr+Bk;OT%833P$F zvuzDv#&n%zv7CoE0f2yDi4NWWQYVKu_5bf`m~nbn+u}jTCdi;Gwtwh#=}LZ8y|0m@zt67KY5>5O;v`H@ z@r`w<-qYe#p}g>u{`bS9LN|X)-9}JK2@f6CDQ7H@a1220JGNz3$KrnhxQzkz*OEZd z%~Vx|{KUG$q4B)#YH!0C+%=g=To7fdgS{a`)dTurE*Hy-5!#DS55JSeH8CNCR7VnH zqN5s@kq@~+T=T$0rKfQp^26vh*}Q@l9SnV)8d=VowRmAN1+dEhl(PNoK6AY)J*Dz; zwa>MyU=E^OEmlvz&O~?#&Pcy`?H-2(#v3MS1tbfb#})`bC0KTkSI>C<=`?U{jn{&- z(D#~hzQ|!RGxaPvSpyql&_!5ca@sPb>{QfG9A-*=@P1g$7*pI|)Y-uHwC+1s>GFLo zA$tnH6q!OTyfpw7-dj&|vJ_Qo z#d7FSV z;ksi78z|Gtxw8{ZS0!fRs#N)QOj1S<;PxjD6}25%H+ zWvHr#PYa7h#^eLg&^{vTQ(Gt|o9DR*bs50n3(?P$8iXltI7&n$_9YYW5?KOV(i&`mR=5D;fDRqTpypxniu_1vpe zpyy#qAoW#fAmMesuA~xiVRq^|x_L|_=;K$*Dc@#;`2r|t$}bNA0{K60pCRxke!%SV zZMV8b`I6BIYKlH*S#iWiOx+>+<^zSGe=V3~Zg}Ohsw(Px@Zhg2PY%M?om5L7KL8b_ z*G=033VqVd;S?aN6Q9Ws^Q^6m`Z9H4YWsaK1AE()7#{wOmp*U7%OC&NpVOTnlox=4 z+akI)1%fP`hs?PW`Wvq5LwifJAA})%q&RiqLqN8@sr2Pgk9VwEO8I0%@LJ{dW!twV zItxL8vU>~X^@nadR7dWgQ>-27W5hq!sE;j%ijVc0mUpIEJRd!OBs=WvHNLwRrerg%lnmBf^ijO9yjk&eG8>CXG`0?%iM(db zc?+ONvB|j&r;dJIQ7d8x0;R?KZUWmlYGDVe-3Sw21JJZ)kIWw4SoM7}0mchH{n)S5 z1;k3NRsgI?;$&7&`?y}P*yeh)#j+B)J`73SDgr4sVerqVbrpWXP9x2aXCJ}_xid!=1%}??dYC>Z|bCRbG5@y%w;8$UIo3$3A*+WV4v{W1i> z#QQj(#bX_=So-Ug01ODNtxiw75#b_HzNOafT{|2oR2+wgA#46YWyA_GtF_pDh9ioy zQKgAd(zSAl!h`3U{Zv`Q% zflL%Ep&%7wRP5ZrjL^UJ1%-uM?ue^Ap{YKl7Rh(><@hB-38P@iA9)k)KooqN1ZhclCI;H(iPku5YV&#m+wuy4Z^nW&p`C-yj8&b|( zS6ZXuZ2v7?vr4P4YGk>_)dSM~cisqmo}@Q;O90uW7B}qCw8ho(t!~x(cQa3)3%|h& zKhqPM5w)kLvS+!BLEg=A!c$+caAI8jaX6UUQa?;WEJLgpa26+Zb) z^kt39hKe~ynOP?Pnd8&qb916g8dM|ii{q?(!_BafgZlhLRyE+5RdL z90z76^2;(w;%H#R(k{#fEbJM)|0YNU$KR3Sk1f^~{aDOEg855rL-*f+>%7%(dI0H> z-JXydJ;1}31lR{E7-rO6>vLq}&|j*5DdN(4gWGJyDngnkv&gdPpp$R&-%4vO6ni1a zGAQ|TW5Z!%>Z+*NAxq&_C{**5+mMKo%yPE83`9_^oD(`?3veeEz1`0Djf4teatxIj zT)pjyX6x-Q0ZmKmuz9^tSedKc%6oU`>Q;GsY>P+6gUSEiQ!Pdbxr9LNDj+soM#!8d zX9(f8gMY5Hy;cGkmKIj$Vx;a5lPIjznFTrOPU%Wib`qWevu{-{+*?w}7FN={d8FoT zz&ZiJZ$C_aSPiu%(u#ILjBV-(I_Lv_#Eed&q}0hhOB-`B=am*?nV+yy7%EX};xl!u z1-R~Q`Ou#HvMJKp$Z4lmqDi^2DQH@iw?}RWjv`jj>Siw3h!>qtlUjJcRp2qU=M{Ut zI=^4!S;A1MQnob~L0VQ3zQ$km;z@g`1?nkZx&#U(&!u8A8o5eLOLWN_*XmqNEGzs` z6xJUU?$w9)s{P>^Km0J0VVCpgsMsF8c(!R$<*;GYRg!L-^ei!yQI@#p zYlQg^{u5~qi;d;7Tnl{qSNj5Gj7r|~9dUJbtd~Wok8Lgf2MIYf^eXH=ezR9BzvB5c zCdMf5?852As*3n!f|yd~5wzhn{gVZ!X!GUBg+pkOE?9E>^o#`9*va5nB;Pk2_V869 zfuz4Pr_?)`nK$^p1BQ|A0l>_%pUhNLM7Uv^Q>+DJN!Vj|d>u&8W+h8namY519d*6M z4*fCRD?uya{ipGnhm$MpB6OWqlW*iLArt;3e;{pvV{O+57G;3E##S&^pI+s-yj_Rl zD1kH~;n1V#8SKk}{iAT|qBSD@Iy7y*nI5}I8OVz(n*aUf*g}dgcR$%FA^f$}fV_+8 z)gRy>Yq(bSG4*)7@g9q%7Fhd$NIqQR;wy2{rWw7{en$jj4FKx)+(iGK|bunXz^1tt|K2i6#6nvkF zk2rIbuJ(;w$CF)iH$q8$h1^6i=?kR%E#Li6Yf2!`+zoOrTKP$cs%ML-L7l{MRSZO5 zhc+0VZiduRdQ(Rh$H(#?q2FvDXR0& zBGT-Qo#5;QS3-6lgwbTkDAF$>TTmwgaOHP6Ngk>JY|-Hlh=re`R!Z?Tpt=7qd! zU;dYCP5$?0aY!0t;Eyk*UQ%>%Mvo%aeSMJd?>0%YT{|XHuDI9zTt8(G(Dj2L+D*>M zAO4=#eDO|AA<;TIVnP`FX+QtQm^ zPD6qR*>#DU)R;HU6?K)21iQ2-E$yy%e?%6PKR)jNv$sXcz3Rg|# zPN_Akd!x!uGRxCdLNYocKj5vcp^eIR9u81Qce8+(yN*T4&Fp`J~TO$JS4kSk^|*R zvp3gRb8^M>8m^~rT&-j>km7At+9DEaIv|qkUcpxJHGE`diviLEmDVDW=$COx1J8NY zX=#cgpPtqM>Zn;kb?_wASNBoL*Vc{L^nKW6(UuaPW!j^iM*ZLBkmPK2&)k4=_k2s1 zJ6e$k+^No~w_Zk@Kkr6BpRTDqCmJRPMHXu)n#Rm>F{I24%4O_Hk#@_UOS3%y&r=BV zTv?Zvby!Aqwd~XBS1&|U$Mw=t&vc>k335(Zn*TXp9HkBwPR%*;!bo>55aL9*0vv~d z7|dOyVeER_AE1EqBSkNcwx zCsP+Y*frUZn8FVTkskX3-MsIFBeWYX=~5X+-2SxSog z&1X`%U(N7%8VP*jWfL+xprbdhtq*%@7#Yu7O_R&D5EgGRS}e#bhUB9k%M66-me5l^ z5%+=mTtR5A#d8gW3K5R3y4@|hnXI8hZl|8$j*{@yg>^$q6xJaLQc#-jF4~x=cV(jd z3H?V4u;vA+bV(%;bH`;x+VkTl>+8tTP~198U|%j^nn>W$TP=KE=|<~ znZ*1zW=r+{%0zM9(nx2nhh&|`0?7oP+7M)VE%b#M z-T--`;2|2zMu@G&A84^G&Pqv06%mL1s&d>S~;f<@Xc3pb>!O@KD=)vW=EZVBLaSgTO(8c!5v$&D~#iP0{q+y!oXq2u%#Pk z?{JyWN@!fJFX!fU@}6iOVQ(-t^4k22HI)b!W|}@0KMNZ^VdGc#Jo{U-qaCCf;sqb4 zN{ro1ZXxFdGBYdrmf4x{ZBy_Y{e2U!CLfm-oN@HC+7euhAOF z))TU@Yq;}7dvVzt%)Tyt!(U3iEcV~Vfs8B$LN#BKpD$K*$AM$^=1mX@ zB+os{$zwn@bV?j)`Rmao-ODDEc5Jr1D#T69(%9!4XqZ&|G;Yekm`&O#t4+?+i+9?a z!=IQJ*);G-`1oZTDZw%(snt~gjOb^pu;zjL56lOrzR{T+f+=CHOUm?uK{1_jA0`$% zpdf(Nc~$B1&*~YNswVlFwTFM;{u3)Y3p5Cjjo1LXJI`@}q07+(Rw1Eif0bh7^$!uX z7?PxQgdi6SI+jt|?dW}jKTp7Tnlg6?6k5cT8i-)nzRj2011MhPk(@pI>Pyr7E;C^~ zSVd}~cuXEtu}RVg!WfqUYK6S$%6mL`T|-&nVv#;f)Y$Utf#U*LG-d#UunACa;=);I zn`}}D4S^dsH&hge!VbIk%E_kZ0wH75NP1tp2ls$WsODY96oolZ+{nBg+~ zuW>m~I5)k^*ulApqfQOUr^XhPwxsWZ_DA>&!QWt<5=?TXLBeRxMo_ug^N20GMw#AU zKrzn%{sno1=NSZHRnFI)C@Sb>rd=839is6?#mL*Myt2u+Vx~-_QrwO!_JF(SSX=H} z%+)qo`y=3Nn$XdX5_EM8wh_(aJZxYwY72%Yfx6;3=unI3Bm|}_tN(supBj|*=;Ha) z4ZvaS4N=<5Ro*;z^8azFeSC?_bry1|D=A1mXlXE8`S)gINpc(RCLXZB%~Xj}Ll(xJ zLS9Lz9RQe0z#ZG4+Ef@%er(NU3_9I?SxftCY|}kctu9vUkw1};W^lApgi;L6yo6Wz z81an%yB|Zogma zC}Alf$;i+D{{8!*Il^1|(iOYM>KUZ!>H)tLe4ln-79rA%$;!)e5ZZk|r~HFmI3yCe zQTwS%`;I=M23RY5E0LWvRQZX2s=RCy?$Dmk2sGMfnS9zP19B-`&ym89&qjOiY#@VC z?1%rwP|MJAKrzexpEL=Uj7uo*=C>TIqb9u_Im`@v>fe(IO`l0Xe*qL9Nw;aNm{V_m zf6QJt9J55FXVI@wzw~{$Su~Ip6q!GT8uojMOGs>qYSH2hC~aNa>rAKGSCYjhf4!!v z3jPpBCvk0{%CTtXX}MNgEvWCI|K^u*SAhSYa}_mEyjiW)09%uIn%3RJ*Q8Q21+MkP zYb1>fKvDMooj;cW5!TcLF3(nF<1+Nu^jYbaZYmMp_csz$_|b1=ZZISn*KQ}?r@aFZ zXzV?kU`xX@{|dsNgR6)6Di__`lL455w=c51C zoEPp-pM-Eq?DtkrFkMk*FCW+P+9>22gd2kyDEolb z;XR51{2kDH9a0y-1~dBJ`jNz1^6Iy+=_ss{GLN0>6e{tE1It+T)#w>jT{Ptb;HXOiPXsL?aaghi&z;I@^cP>NI3iwJ5y9|o4`mv{DSeqwkO~6TN{O)OP>A)5ok9xRU-#Bq2o3mq%F0tGr$p!n z&tD%cLg4dfjze*Dm@sEgDil%kyj;Mnt5`26b&u!M3Y4%xUn+aR=}{b;^|?ejuluwU`n#1GCs#$Ya&?F|wrp$YT9q(l=Ns_t_hgS|RCzhtlV{eF~pLA0)lY@9L_$+y6}+2@8+mPe9+fkKrjXa-UDd8T2{DXY|? zV3FZtA@Sa=yHxd;le}>6Nkocv8+Kn-dkU)@|7wQcc3GNu+BY|CB%iwxUS!S5Vj@eY zhAT%!MDlO#>EGIW=h^{s^Pnrq^f7>p<87nGZ!bJ+e52=*U97{EvW#%q>ET@85C!VV zb!QdlUp-O)vr02axk`7@d&OwO`0tVbmEX>ggIH5N~>BnW7hXxKlyOi6l!9{8C2ugkfnY${G~EMNJh4AY>-8jM4hTSD%_p-bVdW(6iP_aKXeZKZ*-tOB$k;SN^ z>m=HeI%Sd7*hgV)cc#7Ur_%`mq;9F^I3er8cG+Lki(?$gf4>3hYi=J@#_Kw%=*)#}N?wB4^7W2hTVdjO>J29Vmv=ZohB>78Yk` zH7wRBbG1cje2zT@1)ACzV^_MRY`GR+L`O;?QD+k@-W8^vOZMNGu>bjmiEUrp7Dpq6 zlFa`+`f^(3ej=$7?*z_%b#%jofk;@a=T#E(-TifPGZ=oM4LCCQY6#g@UxzcZWR+PQ zIVfjZS#+S~nIaNeCv86ObX+d48gx|>+9WJEWj^IEd*QlfZ|Ae#pK75J(b_O!R zE0h2BTqO7s%|kIP_d{qyMeOn!dD?#-_29*oxKF&Dz3{1+Ko<`@6Q6fBs{H(S^Zo+NnF-umSIUWzXLX~v#?Uq6w^`$RG2P-v#>@y6ryrif^#xBi z2~YdIRyKf~0`hR)V@Iis|Kcr&S-W2lYV;9tNx^1}fc{r?*^f-{Ln0lNMrQ|*pgl@Q zll*JmYOKaUn?EeB&>{=r?vP-^{AA%npVy6)rECPYc zrPpHp39E4*7_P_LG!67pr(zUF!K*)Jf2eT(Bx3H+m8UJByn(8I1-$*YcFCF|twOnz zd|@cW4aiCF>jcl1%s!$yP+JIVYo(%buAeG6G8l`=FW~4=GZ82jfl?@kNfDSS*pyy9 zjS7b1h6gkYA;ht6sPYsrqbC5>LmtRy+SagbiV3E0qt`hJ{UPfWXJ4+r?@d$o^_;Fl zG0WP5zkZauy9P1(Nfd+W+=lawFrMf_>o)s1j%KTt3TSh&6)-(l4+N>1{dXQ8ACIp0 zO)LB9S=~4Dj1Bb%J}86bV0qEaG0cm6n~w@uA?q?8tt~vs3u;88?HJ7mux_aXn-8?fkR>;Q6R>Z-d-_>Gr>_DLG3P#y@`M_$G2gf{rGT(~Gf zC;@EqIVoTJLM6f`m7%f0HE8P<@h<==5)G+n5ma?QiKrsd<&z!##4zT!PN8t_OtuX^u6%fFkH~kD>)FGTX*v0T1FfOJ_S%D7ZpvWEc5L4@o zRSM(RK+q~Yh7Cf-=<_46+=2&Ucf65j=qB}CRA*d@UD6i5x`lW~&&;0qE_@FG(A>9e zz_C9E2o|QZJH_->6BiDH`>$TGaOIzwm5>D0=qimkT>E7!l? zR~W>bX&_cld!)ggQGW-0aceRyH|3Wp9mg+(X~QLhgyPRa0RjbxmSp9>?N^WGUuIe`Ebo9C?Nj-wg*%hn zXLC3mLJRz&aGD}2(LyB|eqL#StwcGjcE~eLC`*HHlL}46Lju159HbwUCq5Y~^9fBt z!_&``=tz*3K8i4D;E?UDQ$<>W_8j#=2eNp2nLjP@I$<31E~9Wx0%Vb9%8RV{Uw$(T zH*o-NqSGyp9}rROO38n1B}f;k7<84hSo0N_J(`BxU--51%|N``KOuOf9v%+tzXl zNj|l`?J?x9t?kcYt6f&r?@ExqvkMD0%?z{ZaSv^JsU<;zS~-|zRIU##dqakqXM)=z zS>|u{xunMb4}fyE8U(STO<}9@C?WpV5Voe^=M4G7*JZ!@sRv7*NjaPaFMq}@ z`E+Q;aHICnM#)Z)lmLMve3lLpBlYBllYi=EEh%kbmgikol9}Rb^>X}va z=HI{TD$AF@SD#$)*bvJWvY!d8fA}z(;RNlc3w<;M2GyjL4*JeIvgXJHq5svNO#9;h z2}rf3B**ma^9vT1t+A-!yoK}pv}w`5MZQcRxDhY2XF_8bjcU>(v!QVq_AcFn*eeZj zCDcxHd7JgN_bIyDBca}K3-!8j_lnj42HXTEAlAFUJ{cz#N@8srTOFGEAyb-NL4A@n zSsf>u|gUpf03nn4S3Kv7r@0ZsT;jn?M%|oGDVtly6jo=ijj_ybo$yNXbC0L z8=YIo-}Z0!vy}a+f16IsCN?a5V9IV@PP?(%5YxSdW(na^C=u-2v%0sm2P_-b^y=LD zM-`_lxn7kzs60-Ac;_nT_6w7n-8 zeYyy`8A54`JMKOlivoE;3Gx@#V9Mn|0c)vDRX;(}gj?Vak`@-o=q4=00IU}ic;~H; zGhuo%b%skRD*MhmKxXXzm;d!Ic999BLm7|b6)^D*iWU`}^{4$Cq7dG-9o9-oN z%7L7n!)(t=uv@hIpBlu^I|qvW{*F^W$c)z~qb8{QXHo56d#+ODWA|^-N7eGp2o{9r z^osm#tZ!=RFh+o1YW{;nlV#2bH{Cok!l%Sm^cn~kpY(pf{8u_8cM#nWzd{7XIKJ0= zJP?mx8$HTj>|1_tdAfEHa8W`qHd!+4(3>gyGzsqto}*48n3UCpkg?#842_Knj<`p7v5o zr2Jw?xxfM&z6tf`1hbG|8CneQxbp$u4rR+S`xB`|a<++`R?kR|*wS2&RaKDw{@zt9eYKU}9<)4d;!%BdaS`*%@e=njGmP zR#_%+5oxg^aDfgWCKk?bf9-DnwiKiZHiQ|%Rk_^XG2CHT+xnO}GW{Isg})Zo(P5`E z!CAX;HO2IEED(#g95H>Ezw-Bdcd<%}lstvnADa#hiknLyt8KBMEX&^6?l`<3epR2h zx{dwEo(q{`r$gq<SjH(b_OXir;;M< z!LV9(12kClyxG_C4u3_v%!n(ysI$ZTU)Xl$&7jY_Z@WsLp30R6K?U9coZnIw&)%TJ z|E<~JHeg6Kc9&l*Pjn&Z$CaNw9~Y{(@7vcRsG6zc+}lwn<2cjyna?GJ+_arHs*$fiD~ar!1Wcv~tvL^55eT1XMP z2Of|B-C}t%e2Kx-K{wu*dvJ$0rH|HR`t~J}l5{sZe}a&Ii$$j*2BboNA43)C_$u3- zH`$&DUW-Lzw3X?IRxsulV3d=ziZCEN z=|fqTodo5@*j^Dz$fPQJHYqJ2z3Koq$5;{>m0rQeFk}L+#n#+VBa*=iD7=I1icq&s zzjbJ!$-tsjcr|d09-12i#;|c5Snumt zb1SEU-^cb6X1?kjk+*I#o!5eTH}btR%q34-M++xNCDK5^+?vdk{Fu|X0gYNN?pVr< zKdZ`;xj0kl{!n0_yO@N&Rh>$;69#n^46x_rL`~Q7nenw5D%VgTfk^%usS(l*%%#4IY#5Ip0=Kf^bv%!@d1dx9D_8 zH8DFNyHjQML7+{nff+)0kQzt+psLga=q|;BQZD=-M4Z2hu=5|l(3Gz7#cB)J)o>A+ zZ1zzVY9Nk9%ZE&w7&_tLTu*V?*-%L{+;(!Yk8zIj`e3X@fpyIIxz8p_A~6>FF048d zuZ|Y1cRVMKJIXv^M^fW2GCA3cmPQOn6Vxhp1O{*!r2PbVOuT2NRtN+G9-Gn_oSVZA z>L^RR2DLQW`N)W}DJlOtvg49v^51qReKjMp!Ka=ajwZ=rG@-D$$O|gzE{;LXRrHX3 zCsBb;r~;Ed(YsZ=kDgSv;ZGmaj4i-o)!yKAQEg^fA0~t6@A9k!lS6104SUa$xyLaQ<~Q7LS)A(T4t2{3n~;2=ctZFf5887fxmIwG6vE%KC)N{`^`g6O zc(H$r>b5F?0aw2d(}0!RKL83j-%R|^MhUxAZ)6~baU8dIQII%Yv-fN2sIM#*@i)*z zn%fe5L2ac;^U!PB(fEis0kfo{8;((qfsw6QW>Bms-+lU}T#*?KXWXdoD-zvG1NXtp z!?1$bkNK#gn9e4+-u-OL@AE>bhS)!LJAI)QX*1-0(fqA+-;r>5?87Rf4tZXXM%r-& zvowcKu3jEeJ7DLMXa_8-U))$-w0d0&6R2M9&H-~6v+qEdi*I!AA}Z93Tyff+gNJ6J zT5C{Y0L9g+mVrTWx`9`5lpnuK*N54^Hx0Cs7H~EjBKI= z?N_w!*6&~MDRF8PasjINH`e5}0o7WxAJE=2BC`1H)>V=39lz;mX^iWM2eh^Ej7NIs z902*0PuP7gVbVAzMc|R~8r%=4@xBk`W!#>Ukf9$5!Ca~G@q`V-R-IGHkoI&w=d+sg zR7s|_lMK19>aJEpDWSu&FW4?K_z4mhY-S`oYZ+FxxIE!ZdQuPKuL;Gk$>tH3sU-A$ zx6{S#`y!W^QhArx)_CQBZ;FCTq*~*~aVo-^pDpB>;cLtiswd0*qinp-DVa_4kSwjg zm)3suC70dBzeMMj2$HJFkQbLt$SKy4&xE%UU`EfaxL1Q9F?m;xmSrrGc+6Ft{DYR) zWMF8-4R;3nS?tfRnjcd!e7C4H3+m#9VIG}2x5{{<5cert$`8scWH6}ho7^o*%5#9d z{%Hbua`N~mO*hG^zgv#7zMPYfAB`o})kYSm4ACI|qPfXcxsS7ZSVuVGbM~q)qam$H zF5I(w2i;9TgQl=VfnfiQC8p3yYRPq<__e3Y(kZcA>Wkg#EC5ebi_$yN6H)jpcqh|P zpJ*dYHBYmqD9@9SygC`NfL$w`_0F zHGoQx7>cFxAW9)FO`Wt&r8MuwQYZI)1Rkde*MqLh8TGw?H$$)gBjdE<=@Ks$5HRVW zosTKHl)ZazB%AuF965N|G=~(ivmesDFjX6AEmIFD-ln!q-~YZc@8!?R1T^;H*c;FS zxfd})TL@)|RX6V8vUTu1H=pXywwM3o=p3W#?6xQz+qP{sHX5U`)%Z(e+eYK2X>6M( zHX5t3Z9DhP{h2Y&kBl?+*=w)0=6t3(yzMusE(R(=*b6gaB#M0L*tYji{3S%t?0Ie*FmccTuJ9XDk>wlfR}XxwV>XQBHzAZlr|_UW#RyDX~L0xFgB^^YL zsZkNXrn#M#F52V)i2#VhelK!FRTXP81Q}}3Kaw4Ozns^O)i=)kkU4~yv{~5H^gH2k ziFB?K2AuoND6`CJ6zTGLM%AAlvi~i_rWJ7|Z1Q?osT!|Y`S4zXA#t@WcrqiQtYSvN z3X)xtEI~<$YK>_O2BK>D3E$1B?O-dg!*NUN{Ax>O+jB0D&R*0w$@tO7nWxSmN3M4P z|H9yzRtpVv*ZJ_zlC)ncj|0eVX~3xorh`e*UrQl5mYPFOqS)ZyjR2*056c=4atoqXaeYM}pcCc1U$(8r*B&!}zCAJkxKmqu zs#pW-=phUdxD5M)+QGD~ELizRK%CQD=;w<>8aO(xS9j#Av_p5lO03?3Y9PlF!bI|f z$^`Xv_ikE1Q8sq-HzTVW_}fD4>+`xN-!i}&;N`A>7Y*Xc(jcXD%puWdM5R-vO1K|@ z9d?$EB?vt=p`*Tf;pjFEGsBc$94+X83ukn5aj8(gcJ{i8fGQl-)oGeoumycLW*U@P zNB?Zb`d)^K*Gd>>!lr)v zy{_GxD%*cI4T(hO@vaUnZS}Sl;59h5dKKg&1WTux#zVL(rb09>`n&fU3Ym`OHp$OPY^ul1q@O~$=xg^xW5U->axl9D7MDM0 zu_U!F))Gi(-mdfmqkS4Ufj&VWwc4kFuq1e|z{WNHfMW(EU0D(ycM~NYaQXY8#}9{F zj0zmYLWgj5?%pL(bsp(#vRRMNq|xT-@3sC2+JsM{RgR++qX;*x+#$LqIsX8x)e{83 z6zNWOgUzMQRJ~WET;rRK>qpTy@lhSHh=wzI1esFZShN#yZ42%TvGWZ}3gZC=YT?QS zQ3z_61Rdy*NQ0>a^lCUQ%4A5__WDuOWwu!z6<;FU7})j^?n08I7Ni?6MMtnW zl`=_>7iJX?ILvdUqy2?GbrQ)WOll-M^X0N2TI8X1^6!S%N#(((A31u6cCcs$G-gv_ zrp}05T-3eISyW%4o5Ayk#>(C@V*O? zp}(sgZ!Q_ZKo)SVj63P(yD}x!sYT-etd0_jP<;<2dVpA9Q^Rprd$7Mc^B;U)<{qWY z^^Y(~$E#KF9L@j=Yf4P_0$ovE)=YNgYM8h257EXMkb0^a=?R~QCRVaG$iwk~rTx^& zF!ALd<9{{(o*ce1GJgn9$?8BGqM_sL@3`4I))^uxx@q(%3Bd|#bwFcnyM7Do1vd@H z{>5FZVb#mdL>i+lR{0zt8^5R;D#I*a##HNzCYU?!a~Vt;V-VNEnmga3AFM!&qm|8Z zuZ>Uef_N^Y;NoG?%fReoK{cidetdL<4`Wi90ZIsLp(y{iFV3ydt1zW)=glO1$pU)Z zj88X|Z2O}#WB^S#6P+5`lms779em(7`R)0nI{pYd1_J{3FjSKZL00oog&b-Tf|yNHZ>2B^T4dQ`#h#yh z>Cr*!5ocMB9K~+X*-YQss<25mnocw#w=woD)VYRuUg4AH{>|qa$V^_1R1t5vtwmb| zYM}c;i{nlz)r0oj^fdaxE|pCw8OO_eejEhZfHoCRQj9Ky2h z3OxT5R)FJw@EM}GiZlq}Atg#lkRg>oV&_qL-aJSuKzbyc7GN1lt z{Cu8tn2lG5-{Z&t^1Z{8Bef!e9F+=1i)5c;E6AsF)!Suc)hlDE=x5g zldxhnR7iccxd~)~RIMa(VS}DDBivW8S(`=LEoCVkTu4`dHZo%8C~2k&c=I#^*X0@u zz-giUd>x!`0J^$b6{xn{yHo_GAq109Yh?6>C|LjUpV1o&q6IKuduxxe2@J`4(5w~% z;(LT&Hh$hfr2OZF)*AnyZkP}8+m1DUQFzL8oPnD^&Ed5znN3JK*1_rmpasRg@=)co zDuWW`%z(8f&V9ZVY*=6`)e zP>>k=WRlv(Al0oJ=eR!?R!Flu^V$mduwCrJn`hy9aX~Pv6JK;f4Tfk_T<!lXkSw2}s)Zq&-_5?Q4#C_N`9ZtH|m zC^VA0enhTws!5#PRe4Ck9qxjsLOD#9iDU@G_M z|1L+MLc=nSGX~SBNln14|KFnFL72{d(q;>d8E`9aA2?IW;j#WZ3re?ucUrsfpYBgt ze;i&-vo6nyne;I{QQf&?iL%FXXr=7%b<#f-R@ymvMbN}kU-}l&Zc#*6M;>Ec@n9`DOtmV4 zm&p9zT`AHY3{o5jQkTAXOsgV6nu#6=q~#9pT}?^4`_kC@sL0oHHyz!b@%@LoFL=r3 z;i3$ny{g!d4%}T_lA~my6k~d>!N&!vJD-oU^cP1aj!u;cq)lpSsa?VMoOch(=#F3N zve12tH5cTTmxkafoGBI`1BN`;L7rFb`})bZsz;qRk~6Jw54o#-H@vWH2N&g9!Jt?kgNysoW#+7sJj}e)q^Z}W22YqoN)rdH8iwYn!5T!E$E7X??scl+RyH%ptjUcxR3a=4 zBXr}E9#&5LmQZc4ulL59r7E0+vyE(-sU!lx2jGh5|AcchAoacF)A7Fn<>mCX2h|Tv zZ%-$Xs`F=mq?0P`ngxEtp9*gEXe6~?j2p!W%r*nL#lefTv+7&=W*)9VD$vWiUI{N; zuE%qU0r{z>e`2hD&VSJ^Oyl}-q=NljD7)*br{6{%vi_pdU835O*;kXVd1q9&o&A36 zNE~z}O=#C}2801MF|WP>irJ4pz~9ptyGfF&A(58k+03Qg^FxH+2HIetk9gJ=>Tou^ zM4wxCRS$G2$j&59K(;_O`o${nQu>vMJj;mha@}qCNq)cFox#q#)%!DBkZj-x_#i>1lH4hf5B&ZiZUTLlpnT%pWFm8nJlh(e65m)zh?urD zJ%e9``V7MwZd!5DdnlAB%s5RHtEq0Go(ub^&kM7IHVsY()&O{Q@4vO3;i*zGT}*l+ zJ%o(&n)HTvpnN}UpJ2_nfyO@s);ffZfQBF!>qGo2Z(HhFWx8K^?jNrs1makAQJ5RF z*l($qGr$0#9!ZlzTbdo*s*r>+CZMM$2rOvEY%Xu?gFb+hgqZ!kCThAjCzT{Nc5#=V z@N4Nq!-7MTnwI|tU^3k17BvQ+#a_cFu-L(H-By9_Pc5p~M8YPUck0<_;aP1vK3|Ls zTg-t*gXG>Z#xs81Hdr8{BpOtpyb9c$FRt!G(2g7DTKZk{NT1L>L!+X0z(2IBbjSbA+OsQcC*28 z(Jmq&Lf+wHat#=^SI6ejv1DhiDlajxYW-K! z1GBLVytr7Uhgm~JocWn<9O2K;nm7Dr0JDbw?WZyiZ#2QQ(FKkZ$+uyhPveK{M1TrR zE;?ydxCFm?r)dh|Ocw!+hh3pHj`XzIf8H*yZ6UG(&BtHX>-AA`n!?xRFBNZb2RXBd z%YV4LxlJGkk+GEibrnl=yBp2PC%crNeHMDd=#SdbGOKLxshLQ0kmy1cE_XnTNC_lF49QvoUcL%g5|12A z6S4@|uNuVI3(5Dg`TCRKw!R5nYB^ipi$OSLQ-_?b9<2n4>A0p6Mf#!a`qCVC9yh`^ z9#bJEjU~1r;MtKk9D^wGe@#2eKX0h%&wS^3U})H-&BOu__1;FQO7RWB)J=~xF3F?v z*yN|lu>&AmX9U^lNU2%j{JMV^-bfyavh#xH(A&b*jfP!&btCMjTHfI8eP!`-hJSh% zVPvP+K;er~sYqTZ&9vQ0C3agPkAoAN1CJ5GGn0X$6*|%%_ZBw^9EVk=L9+S+zu|SG zkH8fduHUqmsy7H@vZ}_YZ^Moq$LV2|1;ArT16iqHqFw3tyk0=VUdaoU_nBNzjLv-I z-NxKafe?!_aNgwUxEQjPQ^o5L2rLehJq9qQPC61vmJG;-A(FWm(4juAgo(M|T4rrq zVJbKrnot)_((#&1kRg+Sv$-Q#AQy+iW={4+ctba{HU2{{It3w?;AZk5gpo9emXYa7 z+c0f15;gH&wFf|gnV}1vG7<_W77Z`hU{8q+ZswUuV?_^G1ECqD`?(O!(v^9o-#2U*R<9w1=M$%a++c z>KiH-ST)`qlywPPz1U-LJ^>!V8?XC3e*o1bS`<{bN)R^+j?C-bj467XjFJS7ZCzWH zd}+CBr_qA(1|U?QKTCShicAc1FG0?-S_nY){P0F$bpNdJRB&ED?6t zRzv*+zpa_axN*1Y7{iKqs6;GgRjuVvlI`o^O?jS}1gtZZXtt(_DrL|F>L{m+VS_aK zCHMMQY*gZQu7aOmdofT35QFxBEf4V-=w`wwv^UOA;h7F+{rX9e04FWzzkw)c>Wc4z$&PQmYR3%`NhNE^ZqIuWSz`_a z{?-qCBy>3-Exau`PYUf=LWuIP2^)DG6?WiY6iml$sFUS{bOZO8+QLp%7NIohp$DoZQ50c}w}k699IZm0Ohl|x_rcp5;k?csGm?hoDO zp?L&exGt15izpC`n*ljwGGdqY;?W3Ct0-ZAT}fPw%cvK1n>~>cXsNU@8g&P{LF6)~ zD&$v02WRSBJ^$9?V9z$fhE$9< zrU2URU_>p+aQzM=DgfDtG=xK^-i;7s{Qr0s&*2X+%nq2jD!Cq4@cGrZH#!Ia&MIu{$-GAsIa+ap&{Y$J9D#iy9fCDBDd1Ri_U6bKa}dt>WlN2~p9oiKzU7WlLs-PhBvmEo9ms0j3P+>O<%%wqzIajUlSZxzJ}fPR1~1qcoBB_Q>>lVch%^N2Oobj9 zwnM=1W!A4?cKcx_mUJ3?ZcoP2<2@~f`}ZaL<0<=bEz#n?;jFNgQo>&sq_x$LWG198 zIS8!r`Gp87wv;KDbQ5%ZaQ67mkF5Sr^7^fj(J0F`jO7X?*x4$%s~qMUFnAbYcIiaj z5!0F>$j2V_3tHtR&cFX8>!<#AA9&CDjFLsCt8rASM!=IR-!aHD6pX#uV6cE@g3a)w zc@*~HCO>FpR#}9YF;3)pI{xyVf0F;CVgisW9bE1jBD#Y2d(9_TM*wPyuaSkWGl1T!I0!Z`9o{4CTE5%`*f~FHtSjptG-plP z(h;w;A{hrU-w<*8V@$EJ+cNKaNq*}4vi6p@)s8ok5Pmh_At;)FhHa5N@FADFC~f zUshAxo5Df+2ksvZV~lEqx^&PRT99kd9BN<_Eql5V9`MrM8)>bfaAH4_Mr1T+HZ{Q; z%!Jv(m%S#CRjd{}mVUoxC|Od0 z!A8*L$8SL7`NDKEED_)|{4JaTYeja*>+55!c&u%2?ojaP7bvDxLc0K`0!)Hmf)~Y@ z8ORqk57TbeiOj++tlM^c6X3evHLPdeojuu^?Wf*GVJkQ$y|3_2{+gJ;6Dt!<`ry#T z!A*aP@%DXh^GOZrf%eIlAu8_#F%-fIB`AFmMWEbVgK(V}tsqoVbEmZelHoj_E=rpE z!Z_C2s0%@+RTzj;Sr>U62$L;Q$Sla3Jh1Ep*7;wBF1sN)t3cPION`^Mxx1@|X4zbY zxz%Mpj7E#KdU4gXlj~m{i^!2Qbq(0kxGK!VombdkXHG^v&zH>N4fui1?jY#}c##~` zCeSJkm}Y@vj{ch{P&l$ut7=%J_%ZTG*P)yyZjyp=1SyYN8I&%z@5DEy{aWFJ%d%eB z%P&}`@O}Wwe;uXKylK7`)lk_b*wiat&d*PS$t%l}o+UT~!p;dfJQdIR)2+HObLX#shJAj-zg!DM)#C%*(@Xi@nW zu6ey5WxLDF#UV&d5=kmyar!LHE`XjogAA0QFI^w)1!Ptl9LSM7A6TMSu@8vym+47$}IpeO_hm|7Pj3ZPPO?WG+ZeA9$y}hELnPv`kXauMIK#3;lrrB z$Bfix*T_JY+aLvrUmjpH(?npbKd7Z;#PHEDw7kLKy>zcLAc4%uUk!e|wf|biCkH~= zMGMQg;wQ+>k)|akM53R2`6no=(S6IWXV<7<-9d8gM$E~JvcfL14m983Q5rD-r%deI zuxWRBv1K4`b0)?&L@dC+T5Zx7j%wrpSm>eB^qpiuYY5r_C{&6ni&N+rq)l6RTIbO5 zf!&ed4#3QGsFzH_#szGfzXrn}2n~&#EEGk&T(-H|cl(3p5>P&qyI|;Rfs6}Ta#~WC ztI_8XL%i8^LAGjY%>Gpxn$vb|asDXD4VSZb=||=<`T)SlgYA$ah@(VsUHWu}R zUWe~M6jZvYcG;eaR2d4DPqkCikWia`GC|H95G!Fl+b@NOh>jvL(mv;8l!}f%3NC_CY_6+t=f7Hu0XmC_)+a77=j#gz=L*s%~KEsu)_S)SF zwu_hWDq9bHVK^)5@*epX!oYH}SRMb8Y#U}Q41t$e9feXA&WAX7{t2ydepqw=+Imzt zQr}kgof{g2u`LRe(VSaqCRPA|`ub}0ex1fSf2^?eHL2zje5*HVjGF`ud86AN$xR%V ztQtA5{|T;VyH&SJak4R}%;q11`aRF3#?LwhIz_Qs%t~{z=Pm>gLrmUUg?IcVCpL*j z4|ofS{B~ls^cqm)L&7fhjHu?+>Qc?z(+|V_v_}prDW;ehm zOrF-Q-qD_3HS5lwYHRK#*e$vjy;X)m+{4o7UJ@{QxC3}E7r#RZ(qlm&r~LqsNT0OI zHBjx}dx?;grka6~r*?p3dST^lp}?7bjoWxcPQmt@XaaZt@)0oJSD}S+^4LyD3qiwR z0P=`;nrEQ9@myx;o~UC9@QT^OT9M?QJNeFM1v68HT~Vf{FjrA;aIlc>$QZf~Jn=5r z7RW1h0bK&hXGrlCK(gP$AMOF#MNKrQ#r>Nn*^##d-VROZ=J!J`#Dz5rFzY~D)l!bJ zHz;S)lGkOYi2~HdSH0la6nr3%XL-jhMXVxF(UaNySHsH*XPKky*n;zqK*7AlP1h2i zDYG8uMnxjl1;%P=`n@yN85|D@73euHy<0wZWiijM+?8wY8$yOHXrBIm%L2d*;XMgE z%9sFOAr;K_!SN?peh3)WY${MOkawb~i0Q*JN5BMe2s6DDZIabOB!ww&L6&2TC4G~b zzeyI=xSE0=O4-SUT-5D#-7GUM>(Xd(W@l_1*OdyLti~kB?rRgSS@pyk-^vx z10rHlMsm1G@pFXpu@Fu3nFgj-yq0xR1tL!@{!TFFCF2*#p{VG=Goe%A^5jF0#*J6I z6v;G);ze`9l7t$cW1t1Y)dw;p)^dtJvtU%DH%I-s_-HvEs<<)>H5O6nL+{}JP~29y z1fb{T7}s3Xf;q%bVPM5Ctpt860d7# z*$Iz^YeR^qtH>4qpfyr$n{AEWAmUWdIPGxJzX@iC4MY(1oz9c$!R@>ZH6Dxsgm05s zLXf!wfN2=fdHXgJzANv_I`;N0;83~DNW*JA=g^xjnz0~RGd5DzV-P1*dd|V@3G2QT zJhf);y%MAvhhpG>FUc(8if?(!-gNdKW4wtWS$rS`nApZBr>scoqX3ru8S5X*TYUAv z>4U}V+0SbyHYroj)#pY(AWUG~=o4jBJlq?qSRTP82|wZ#iut=HHTlSQCFZRu!TW7U z_`dcM2yFYS_Nd0lLJO_yFRC4rTWnF;o2y#`?^?$<~lZuVIzdWA|?&n z;H6Ws!lCG>n)}b(x}HTwBi$oY*ZycwxqkTCqsl?oHiMAK_gffe?~%pG`H}5nl@Nj_ z+3l+~jJ<7m9|vmS%k8Xkd#=vL*}97ixuCYVN{s(1e>XXR9f7~0NLej6 zSUXxti8a2cPNyLaSkIALf&x30@o!S>Z^p zO%#k)zDxLIo0J7~g!KTZEA9==0y>Z|3Ra$FM^6a0EIY$uVW$-0SDgG`Ew#P`1b;77I8``o^6VK0T|3wdsrLc1pAQfh!@#0$gAa%@oS=;3 z-7XwSqV?B2kJgwlQnnH}P+?;DhC`rOEkXa1+|D!Du_sl=RNyI<99{}Ow=Y_Nuc{u& z0y}2uDKeH{Y5F66i>Um7k#$j=I$aMPX55syDibA)px4<1*^B>+i;_Czuj^Zt<=9q| zLEDh;M?}?ixPHNwWP)DvWg2QG2@=}0QS_zmWxuA-s3q||22+0GQSfg5tzNe-{-Y#t zm=oMa4ibHt_u6L}qpnz@Yle|;lGjlwxr9|IQSS*~T)1ytAl-uc4h#NZE0D5v_f0m;=DfB+_=+3saY{gv=Sy zwx$-M4Q-RAp8N-SVoA|YiDWzaIZVcfGl#gT8P~!`7Ov^;_VPV0EgsC(Zc89zj#W_q zDng-yeJc$OE1MnT*$D5|Mo}(bGId69-(v^3gJaF+Q@$`GAHD$V?IN8kJ5a5wv)QSb zn1m`!h}D+=Ew((-cCc{H%z(CKNNY}Zjt3RFZwHO;eSBC*YlZExXTz37l^-1sIwKcI zs?vHPC+DmdlTu_kd|631`|1VAG=_xgoZy_`&A$P1fKC{&5VXgUpD3zPNreSbd;ztW zs(-3k+7yopN%njzx#ys`c=Tn$(7X#KD{Tb@(Fx|2?D|6iuwFQ0_kVw#%<}+#z=&pT z=6pY@_|Nj7)26>3bu%y`kc8`t$3fmP>6*aQ*t#z94S0?Z0rkW3z+w?65o?kif&K;-6;`~ zpwmt2BSJS2%GWUTGj`29^sWkx?L1b=;(qyxTH_Q?pv@$*O7Wc0!_PNOErg;SDW(PFy;{O?))jcocYCz7p-c=E@I4-84%1DN0S zY5k;I9I43rj3h}}x>A`zNzJNf zAVomS!7;U<#T@=nizQK!|A}ykmO&OH-tw(F5~EddW)DoQyg8MVI=QC?ncuUdsapIe ziZKUaIhQuMJT$ccxYKVh@!RKTk(DEapZIc&Oh-D;aAssUay5A5a<+y*R;__HI&p(B ztwW_Qq&@7*?MM9s&1R~`eB%e-fu<^1o^}8h-Ats6Y`%;d!c4GB&{6`04a2))jHEAm ztn7bzh06IOYFO=1rkJ;Z5olsi{b6);Vl`qa6a>M;YP#&kqB-Y62OqJ2NqD*h(qC5f z8lWA0H#&+}fReSJVLQS8yD_y1YibTXLG_poopd0?M|X0O z9JsyB9BG=ulMN5Rw!i05`z!NRgwZ;+b&2UV(VgDNe}c$NBv{V@5$c3z`V0V1hbtKy zu^95bUiPuB0SLBKB_*XVKYxA!T{KP5b2!<5e=VyZM1YNp!bxF7YSy;&82*=Yg9C`^ z>IyS1t`BVuqt-KCGC$nNF1fysbgxEG?iKnMlW%XFrlUn@%_V~NY&FKS7Z8&_MvUmA zHCAExdk)QuIHM75IgzP(I7}pmPWo^E9MVbr_|zi3k7{++H3NtRuF?<)L+ur+VwEKR z#hDXwYsu9#>Z^24LH(KZ!kDvd&arRDcjLz@Th2~Gj8_=M!uvnDco|3(c7BJVtRWCm zYdVt_(58?)0dpv)Fa?^4tGf(KT{SvbyhWR7Yf)NA_Lvo^U&7ti$4+Ey^?_c?zw14Q z1nd~QfN9Lr?X6QR(^L0_mRqdt;z88~2^Zye4NZ!N9EStE&^7yIoASz3J3t{f#F)v# zW)X0B%Yb06w{X2A2hZ1Ffu_#P<*rIx=QLo<&;6xi5Z?4~fP+mA)du0$@h_bj-3M3w z2<0vHJ#UUx*>d5RB(n0c6Y#>-U9tO@H-WZiu0QejW)hzA3co$I4fJ0lPCEd{uh9K3K!9@*Fs*(snOehod7 zq08s?MW}}Yq>m#2bjUn8Ff6Ki^4+;AG3)59{7@bLHW?qDE}i15Lz%GGS79$GMM9~j zhP@rF&g&Grc>d#(u}|1q78h`z?KE&7_xJZ>Uw(;an6zC{CRuKl`}*Zv)>`b`*v4k` z>F&fjPFYd$Z0X_w6)39$Us?efbgGrW2_h?~CbH8yPVN5XQrSyb$R9*6J|Ry~KZ1Gm z$exfkak*8@vdg`ZG+9oB@JmUYL?LUQTUcf>OgQ_uUd3{0@*u*A8anUX3viGWRub<& zCE`0Dhw<++98Nmbi?gNE>s}d_0pm@Y{k9a(V(~A3Jv_g`+q>9v@qY6(-5hbc1b}S7;YD5<+5eWawFdCQ#T{y=|ym4 zso*norMpTy`Y_nP|93doJY7$Jkx?JnsDh*(B&32A$fSZ4rDYKG3|ajW*mI=L+oWwN zPRXw#Yq#O?M-WaB@aX$Nz{=z9Q+$PQ_TQfJWYNmefk5cj6MB}`-9-HEkbn}7?@8g; z?dnS7dXwy0x!{u*r`)ba?C@*}+-T{8CG8!INDtCG zDO3LYj9RF3@71yPsp)z9bULT9-A-d*CzLYVzKw%H&J8d2SWylHs9=r>H7#X@2N+H}54CIxU1?Na_6Pq`l;`hZi0}_2#3uKj`1m@UxQLjH`7) z9#zxXjAu33atM}6cyCX;R%dd_m^^B2R%^~d8AqIQYK40R zqWjU8VY%Fkyg!C^15OYt`q^xyVhmo0EJ z%d6UsJI2yj?H9=4@X~SNsuU@&W86ZgGf?87g_ypGQ^};97u)_ZG$Xi4c7f-DpZ)yS z{_2qOV=4SZCk~NSMg&hBiXE)1dU`z&*{Be5T!ss^CO|w(A1{f2O&ATjXg|JvxlM2F zbdZbKMYhEc-lK} zmVC*;isnDW@w2s>GvGZK62*w#uHdUdBkuWxhqHh|@RHmR?dK%h}@ni;)X{ zy+Iv6>a@c9y*>Q{+&y2KzMy?(Q^5mAmJ*P!men-u-bK`?_5uB>h=@JgH|g**OMSF{ zznv#WRzd3DC|?pjL#I7P`*&IY=%GLCKb3f9qotZa(5y?Lyyeqr6Jbmpvb3KZan+F9!ayz z)93vpnu3GG<^5sg|8_SibX=0Zkm4?tt1+8I0$2lMn|tQzdo|AuD<&gCh4}X=;|Xz> zbaMXj-g^z#znn!?{}<8<*Asm z&#rd_G4mQX8U>&Q$gxRNOrUSuV{n=RFJ_HLpNDrq&Bt0PRo!1)@s;3F$_|_jM{6|H zcSA6hrdsSj11d;9fSczwIvR)hxnaf#Cb&m2=Oi}NfbY66_3FoD=z+5z}jZu z2k2)M2}!ed94BL1bGO+y-5IhDUYUs{VjQT+rXMo;MwJ((agzYY(&4?wa%8eb5 z9!|WMyj|0r#2*k}5hdxT_1>=_{uj?itl=U!Wqj4>6*lvY6_7o1KLAzB+2|@t%f}HI zjrmmOyUWd950cyYKC6&40j1gbBUc?t+!8!Lc4+ktO9YmuTxlT-#8+DFgN)|%Ci%WF>5l!>^|4=;>oiqI z$9htT&5mXBXGN`1%7q7@@uzYT{E(!iq~GJedF-bhctOXxZ2}7+f=#Hw6vwES?%7^_ z#QOv&;qgAebo*%s8Q5X|!h!N`hB(LllLh9l+1XWv9XtXyZOK5zf!2(3ml}8N#5aE7 z#dn2&l~ZT6A|l~A1vX;P#2`V5Exx#mknvXr-o#t2l)j%OgY94)Q{5i}4}*?h$}gI^ ziMMm(!uGfHpXU-gdMs#@my4UL<}_S!7LjUz+Zokp54svm>$q>M_N@httQTkd7K`n_ zmk;MtkbGlEh01p~awbrOaJAbjp45FYiAQ~+3(d>kxvT?;E!$|pgt?#AiZ0ycHGlc4 zl686@{LnfWaZet~cmHcU4TAHD+B4NvgQSrO{y0hb?MBgy;6BZf_|S@D@*iJa44WCRC!F4kfEczBC)^ zH6L-Ect((&WK2WSeY`PsteHR31n;*<52W>N_@Q$`KW)qO#${E^HG402{B@0A;|8g(2d2#KSRdw#a&Cg zdeQcMc|2T$+t)_PJk|4HgA4CEtNIN5?_NZq?kiz9D;B+<4)iWUO3VHH~JrkYp>dE&Ce~ z6T0+u_V0k5%1g3X?l1+h`|^g3ngIHnc+(p`4|JaIgm7 z*Tofl3LC_)QjutW@EkJRAzK`7-MS0r67Q%6t+N;pLgK)04tlm*mAK5ylThG|4%Aw! zmSl`wh(9Y~*rQuHmrsxx1=M?ufaOqwE2;(!x_xFnrzbAal z%;~AHqlTj2<^&ysBdiQAb-WOH+k81*-&cqA%B_ltAf0gVz#NG%PZ>EzTfgJ~4XwA1 zC_pkbk*i%9G{BW-={MIaZFc#y zOyM=6_7)Go{dA2%ugdSc%3hQH?>CKAM>fPRO9UQW`ZdNq2#1W-PY9%b?_I6F(LMdQ4l7FF`b?TDV zu}l*0;N4Wa{h2dqRZ!*h*DJo}%x51A_=V2Kkg5J3repGKy+_s3?(XiS7wXluLu5$I zHmi`?gVbBByNQ$2wUQ@T_H}Zx{(T{l3+-ntZQ#`1Oj|Xq zeC{iD03FRoD?5_R*P`QT?R>4NTtj@b&sYJZ&EYi}pRUkfIJu)}DUQcjA_t|*`EVxO zX5LcRto(~Y*PV2Q;2K78WF|27c1H`nDW8zTEA^MMlD3v~W(gUp5$8h9(|JUhqkB>=Qg`TMLola}dPto-G}o0LiQ= z)&6fM51;D!-*mz5wRM~U#(iAnV1E2g|5fn*kw*cO;^4~8e(b0H!gs*Iz=hhFu6Z3V z8p*Me^Bt&_rwS`_e1D{o%;hH{p<;ItiAj#(M2LUDdt%zg|_U*FBUld zQ8<=5#=Gw!@g8Bs|B+ZIXWj|yFHu&2`^nFKt2eYOD>L(TzP~>N$prYJHmKgVqiv5< zX!^=Xi7n5Sdk48^+*EpXtn>41_}rNA7sTiA5SuXM)w{&0h4Jo3dSVzk{BTJ6oh-}1 zg%?3OoJ~K;_=|o$c{QVUjr?^nm{@NmqS=|pngl3G{Fr6 z371LR;SQMeza5OGHK*7Ns*_KVV@7!{>vy&*I&kJ+jDRGS4a0Np+M8IgE>p;R1&tx4 zbpIXQm5J&WhFmv7h+^^2cN7G^RKoiMXoD~9JgxDqyh@9*rEpN7Ln+qhr3~Aur}-@h zj}9>9d}a#>$%A}LtC}Y}>c^f37lRAIojagcsry_U4q5p-7JqR((Vn60;GuU(v1G|D zwu*p`i_SNVY567MVpG<%m69e+B8^`fBd9^vdzSMsC)YoD>4gGujMZRZ;u3EF-G)h~ zwV7Ec|6|;u!X*W26MNEaZFWAawdvObTFn&+!?}-J+ST;k>G8wu;9keBn)i(lSz2cj zr{r%7eTN=s4(U|8x)B=0{mJaEP8?~Vjto8?KD;0gLmEBibge_uZ5&j<>cUEM7Jr;{ zy`TI8+MAD2Sdqsbiz=B;r-{-j!i%C$|>I$U*eY^!b}}0zQrUITN)K!vTs}<|70G99C2+gM{P9Swiiez$c zT3kk4s{VIrUX!8xVH+#u%$|FWs_nZa0(;47$x)3%fUTn47;ph?Ptv5+ES^-ZT|C$; zN)$|ymizQnxiZ>?&_yhq+-33d@p*QCE}%RW_IAK~2B~M1A$GTUZX!MVA0AyZiSoy9 zUbsTu^e1RXPg!82qt~NRL)fwI7QG2XvM{-Pe6tV9U`zef{N2|*5AciAX_ZD}b@4iG zA6$;LQ)4zA+`Jo)Vlq*cV4ZE6*ovy1Z?9S>eb0Fow9R5KkisSK$rGDV>DPTlV-sMf zz*?)Ff{x(r1#Qlj(Oe~4C*rjmtfq%})?8+_MuUy_o4VZ|SIFWu*&k%wkAtI-VWh!9 z+T+#O4hbAnre+WX%EtED={TOy9vEx~2e&R7U=CLIK=$tfkb z?r}kz&_?O$>5sW}X)wWJkPfR%9ACQ~_#ynOT26ctXH`0s`$#e6}nkWcfhDw)~;ckG10 znT*Pb$W5@}0Hz!^mcJtp-c?5O9^XM`epjVdg?8;wQr2z3AfENj_yPWIFgtu%4;r2CWq$Hm8=%Zx?PKDI9EUIU!H__x2P*pOGF+H7{*@!Z+ijaUIm zpiAGZq__%?&ZAbj*n*qxyC)qOk*E;uX0Co_oL2Y$adegeQM7Fo7Ni>`B$e)7xSkzZ@z#wH2XhJ9C3uN8Gc{oQu(*=n-r1q9F1$~TWkB+S7?H2I1RjFGb1q05G z`VPQL6UL&~U>Ov(!z1sZ(Eeh|xhwV0Ur*mNfZy^A7izUAG=hSwlzlnC=6`XKexy9` zjW}z_=vuQa7mIJF+PiD8$cFX&F{-$pH6Ul;=`(cFF7MvpMyjLSvbf-}ddTivyQNFz zi7G4*3ro{H_~Gz{qbM_!$1B@UIlF3we_9}Uov`S{2AWVz{@zroQH^suRubzT7`32x z%~qqPb@0Y@AhWBon@$Wr+kY48!Hs>aQ$*07@u9={&3bi#`1Jf~x$r&4f{C$J+P3Q_hmTg|cr}MAmog-7 znLx;fJ~mQ_@aqj4{6G{ft#Pst2W8co%y{wJrq(-vml?RO*AENcy`p%{Ub1rV-6C1k z(aYb>5N9TnxHcxnQ)PY7gP<3EVmOhFv+gY6_+4VPAK#|^S%&seL>IEX^p!_<18F;=Q68^ITB>)N(u1#4O z+*SAIPbFKk9jpR^c1y~vSNMc_vtrsK!#-x`&g4$Q3~q7JNW{f+hF#EZIdcYUSk{@Z z#X}U2IV1bu-Ivi^ozXP+ip0|*Teri!)q};v&BQWavqXqp=Hetvx4g&W)aMd##gZ;3 ztvbR5@Cfo3ZJY%tkfb!m#coOlVk2Yk_gy33#b#goZsg4noKmqE`5w?_sKc==o;jA`EgQ49=!N}IQdC@{#8y7CI%$NGGQ3-_ zn9ZPj^H4H$3MJ1(>bX2t0lZFza$INRqIHH%CmTPUc57_k`4G%34yHkU)_+E!1z~up zau3RH;N)JoL)vuYS0VWO7d#R6KM8|e6jXy5l7w#NPe$gjil5zr%oio!h-d$0@+yX3 zH0Ytn}xZB2H#6CE{p95O>WTm`!@2 zsS}l+5BxVE$eoBPK8P;Mb!KKyXpg`1^#|c=^1Kmgw6qSe{-}6-?wWM^ljq#e&njEf z1O*?QwA7lFP4Z7$OziyV-#lmec-MoR%-E>yqT&)c81^v2tycI0;+7vpa2{tcB{ctZ z{dGRmq1c7^f)R{oK$Ma;xO!_hXu}Pg@!UKWMa97!)eY;|j$c&v$e%V5fg}>}52h+O z=oL#w#bM4@;e8;ocm8d8(e4>pH)pIFxMZBL3jcoiP_R)F_8M=Opq`r2ahX(OPzNlD zSUyHe@7+8;XXp|C$7TlFco8)T^3I_2@@a4V{S&WhMw(`q3<8IL#5w&Xjc|~po`1!+ z#*3YbJSpTm%;zcGCp>FT+MX+iQ*&U?Ds}OInw@~F#-=JBqcU^$z;UA03~FX{clh^+ zUZLbyvD_e{id{2w5+zQg8JQMb7C9~E;d*)1%l4jn=2`$84vzX+XWe5G&HQ8eKx@zXb4zSgt% znGXE10WEKPjR;MEd^Pb74sN^`oBVVOCio$@+=P-n6MRz7P~uN^2;XWka83xQ11a*x zYn?|oDG?K}+vgqx(+2YI(P3>IrtsTD6qB`$~hQYhoT7=W!Hli)NifG zM@@2D5Bg+tt%gCgi)rMB0_d8hlBrnxXXSGh+YI2Gn|9IauxTGD8lbv(sVe&!rz@DY zI--^o6Y%=Z)m8$s=;sG{N3INkk-SZA?-=W8U1sC&AxG7 zdm@w{;UJT0m#XXCoeasTd50rurqs{4d8i z`F%^RN(G&1NoLuBq4IqviXq?aN;F6LJ;uT+JnrI5nitELJ|kQbg8eVFP~I*-kG zMRqxUdYu8^Gkf+AYy2D>dF*Y})7AykrT>M0TDKm&gA}VGSg&Yep4w$?{ae~}ygLRo z8qW=Y%W4}3=RB*AYHHtCf$0M3nryL{@AQbt2Xd-?7f$OuvY!>Q)jmB8OEN$b_ZiHp zZa!&VCT*5UfaUyU(~C-&ewc#$YsbCI=h$NAg%RHv!X_F;ChI%cFyV=#tYWu?PhloPmm4MW*%3*W~a3zz%%9ZSjb#2{6yLZ+jHJzgprD|+e=Zu*(_w2*e_*sxoA#Oj13c73&L z^02D*x`5!{Nx?H)f-0a0U}`7}c9pAuoHe=cZ|bgyOgd=PElfYK5)o)M%udr?eW#=& z5BQhNR}jx|@icj6Y5ZZF3!c(n5&6SjoKvW$4pQYctwx^axa6*h)SnJ4uG#R31Vbd@ zg8>^xzrXjw-+OCb=rLChYO=Z9`S>Uc^SfTV$2Rkm#>JOC|L%adJn&!UJ>5a8trXpn z-`65%vIkeTiN-Q=xjq9V%s<}?D)Ni)u~&C2Ua*x<9lyBNrEyngp=K!KHGQFKk;RIe zW|@lBJQqk-B|YcN=Ur5xMJJ=Ct#9=ao^S(GGF@h5PJiZCJN^6bbV8ew`L)hoZXz;1 z#w+q~o0(6_CT*JFH=70iQ6>7l)%zCc`*M{d`f~PidPW>La8bC~+u5TvC+ekxCHi!} zd-cU4YyNuG>Meoi0a@Qw$)hZ`tF)o7QZY5P!}gty>B0{GN94NYh4SYz=DRLCd^*BvjGEuhGl^xOA&=$084CB0JyMj8XyjBACe7>jXHpS--ua-oV)}@4nlr#tFm`FF7uI?w`iB~ zQDAkc_s#NMJ8-93YXF1p4A4g+Ec=?nI$pk^s5gs#i57-&vNBu;H)h|aVQQ@EgBkv) z@k>b3220@Lj~r|{TS>kNxL(8{)(3Fl9RDGbQ@@OQZcnEB(G`|Yu@Q|<>8dYg z79BKCPE0p6TIhTQU%hAMKsV~wd-|EJWACi8+(iI{>W^S$^Lt#~=z4s$mdH=`*J*Sc zk$uTgO^l}ji}-|*xm(V>E87@fW!x2&l1OB&Y)qH;sN;ygERJ79ox9I)OBrHB=fK9a zywnzWHy*-3_mq7w6IFVb4w{_(Z_r15VRo~hf4B;!W0S?RaW}}D&aK*NKMv!!Q@CCb z@_d~%*=CTbOC^2eG)q#TY!5R#6w&?1!M%I+Sw>fmoTo}gw_YnskIH!-2um96gkBf( zatG^!tk-{H?##uKHpwI z)-kY!4;S}~UDgE36a6+A-|H+J*0IOUfO^se?F0yBn+L~Qgv2K*GDW)3;MTV!9!Gi2 z!+CBqVel(kzcpLY=rx}Pc(m2(S*enRQhmP=naWYkST}J_s#YJC?#j)4dW^qOgRB4f z(h2XdoIPr(P^1|&#@e;%r|D=bNvvmhqO?-VenPiO*Y&PD^54$#zqt~TqTyXyVAvu0 zG7HGecL;%5Nh1)Bw952te@rYjJ$=QKkJNs-dRf;HNfte^(2`^e0ax+4)i8OMp{8W7 z?(p9tP-To6Js;}uMkehb{HpzPf2=e6-S@zY3ORuilD+|kiKnl~#XiN=wGk@>QxMa$ zT75G6TvTzoz30?XdG;-k9#J88s4QzFqqW7bAwjLg@ZnNy)}Upa$K0sgvdk=7EL}b9 z^(~-f6S;{*$K2jl@R`RqQQPgSGaKWHH4)(8sI>&HQHXH)Qk9`9nPhcN^GxX zs%+rG#5>!vBn0GzMPPNt&z*6c3ukS(>m_l&rE^4l%3Si*(9%EeB6hNI8(%>8iFtAe z4ZSQi?5S1W4h zcxC%^!KkOZWqWBpHN>i} z8r{~VFsvW5C3WF4=+J&|Twe#tWGI~aZ-033KlwFpBbn~J&PZC5F!iy3`%}*2+Me>` zYWMSM@rm}Jbq-+%|If@m9jIVX0+7>FDVJ0rk({Cm6`Gb68wM#ubKm8rFeJId2e9TV zA^v@A@9{^JAN13K%Rm#`>+C3ILUVN(9bM3ws6TA4ZmSpVs?I0d^VRZL^fR;@=lDQ~ zKU``vd9YnlZikO)+2O4GL2T8M?o93g2)^Gq&H{`_J6~t`K5KyWMOYQ^q}Lb#{)>x1 zg|=d-P-A1oq&2cKZ8>LKvI5=6#0AAnCL=@DeL%!^5B&hooDWPwxF@h&mEXGg^B*MF zL297XeHK2kU<9jerx)$%ggA!g{x@>c8R~pQJEa(6jsMwD@R2VkXYRQQ@$X3DQWnh| zEFaQ|lL`+fst_9$6`jrB^~9qOlZG^5gy9KIG_A0!&@SbFI@n;$ZdVy{L7itA9+j6Rr4cYxrIJI%jf2 zLB`NZ>JPh1Krcz+G!;1PI_T6EFOBAv=H?t${qgA!@&pn_a#}If4qZ3l$?Gck$rJcL zMcRNZepIvwIWxGkWN%KWa;COTdvim_tP<|s`|=u%kg)#E9b{6+9`LIlW~+nOn0|U` z_yPjobGV7CvOHs~Vx0V@wVBxt818K_Rtf@nHclA|=dtpez9y~r@m64jNhny^Mtr8g zL~3kLzSkBAt{7V#aEaDIZeJU3J4f}ibD#PP)3OqW=m8wPt`P7hu9lT#w>`bO2S&M~ zH|isWM>7)R+BZKm0=qfhcJKRKUUVHpsshb04~C*1WLGa{^-r^br7J2s$4+#mvU=3A zRfmwh!Z+1}LU4>pAFc+Own~otkXx7)F1dqrZaSQh)Xj9=f?CU~L2FEsd6CHN5B+=Q zB#iv=&*~JG#nZ72SXQY^Y2rIsS2=!7ito-Ik3$oI0t1f*x0LVYZp#NyBjh_zq*%+) zc(uP~7FN7&6;&)ZZC8uOR`(d6Z*H&ct$V#llE72aN{RAic5ev{y>^o5{>>XbYrV}z zsO-F(TfKPa_^n%WPIy`^xdU!GG0rv~J2z|= zzH(r;%@8F~97-5wAS-KByGWW#{n*cy|%716Y>^2*7{s&F}I&?qI^v5V(F6c|4vi zjJtTl`SZU>gjmmDSjo`b;LjiRV5>WJ!gS+iPMl#;!|de_C}iRSG5XBiA-HNgtRvfP z&*P~IJyypp`cde#EyCT; zE8?NIkj_)dSE8bO8tlUDppJ8a9!+GVY?n!Xo7bG(B>;as)oq#-II?X89J*`Pk8T#M zAXa+Ki$_ZT8tcS^rAuWd5$wbn-+mi&FXr%} znek9_$nOCes*`^huJ|+MjYQzKn@;qqx z3pnOhABF};0n?T_QpTeVF3Lm@ml*fI;=KMN%~EXC^Xv9Oslo6;?P)WT)I$E8EsK`u z!-_kV4jAAF*V#Nkpig@HT4z@Rg}tFq*MubJMigG|8xCxoVb-~U12uo{Z zZW(Lm?Elz`Eas&lSB$Iu9hLm2R|~1oOslYi;WAHdGGa#Sl7~`v1=z-vv@2))F$9dg zBX!pXiv|Xm`#|EvG1KGoi$ju|#y8JOv^&p9h|jO+*lI(i!RlhRQxf5xyi&FH_dzbv z10c*PyR?naaG|qi79i_=#zOe$3;KeA%S2TppT;VNfG~x4P}lqZ<=JGh%2Dn_w@Rr% z`3sJvMF(?xHmJ=izvTVh%39ukrzMNrHL9_nc(`-*s>n`E;_$qk1uUKJ}D+@UL$StQXfOlQ2!1Qog3b0LB4t*>hlptFOWw|3xa`4K&I>E zrp73Lpy8;pUYV=p#sE&+%cpY-+e&PO-nwl4B$M(hRQWzFd!~?yYI*x4;-}UeZ52Zz zg*rd+lj4LR9Gz6O3tiPV$LX8oI;jJv2GTpR_1aB z^>wfs+gg7`;RA@d^hA~y3E<3yNoeRgP0qO_^-~DFq!sr;1(!O=mtO*(p<#B?d*UD_ zdn>QC zZsDc)zJk4&sO;)2EzTID(8kQwvH;nxfNhzl#?RfJe)HCoqK!SXI-nOFJSBKNCHe0c zumR4Uz$$b9t%rYpk(mQCCZRAS&;ZhNSN*WR5pitPaSIK%Oc2N2f)-Y3X=(ktPMTJ; zeTFH*Y|j&Np0+Pm2xb&*%q-8d^8ADUdzy9os?36rh_Ax-18vcqPiNIiwJWqW{#yMV zo(9Jimq&k@kfJs*!8hQSSF0!gosAwQHgE33cl|{|2Hf~srj6}Ea{jU9A?ymgWQ|;C zmvV{~7Z)$2r>Ee)9Wa8CG3@jB@{o6=pqL-3dNpc-`;Y zywdGeNw@SWygMo4?=WK(17^HgpX2 z1W9#Yx)6z&mDh#A1i@$@+#t2a>4rjhkeUHnHg^i*! z-;gqZ^!Fy=O8(}(`5F-yjm&6LLg`hTE@TG}OV>2$NS?-*@c>`Or^t#uzr7^)Vd8qR zD;(|M>I@wUb_G_)b)t|JKE1%v7TvvrnoQ>bJS^#q#$u+@_eaugATw{C31An}~e1;z~!uM;>PGOieNp zRNCadH-tZyx3T!_KQCB}$md+;q68^>YClBzzuv0k(f3`Op(L#H2AXq{Ry59cmcrRN z4i0|aZnLS07kP;L3^3-8UZQaC;4rMR(8pSXzVD#-WgQlxVL0$pC zE@+Y7orohw*Jl0an_pNT{eetpkJHx=OeX-&Hh0)Lv~&ME2miq(p;SVfV_t-A@IQAp zk%a)yXvS+Ip4+R5($1@(+4+Fs>=T`U*U68FA=wSD=ixMq?B#K}O|&X(@3k#*Ua}Ls z4=_JPsYRb6u)>*jTvNU-V_R6pQR<#2INVd*Q^K^U)j?z{l{iOrNbN;;sG^k2b#kTU zk6$v}An&e>jEiq+{%+EF)=LL?aN1-vm*EdDxq35B^rf_(^~Gev4<_sY7(hW!0KW6f%MUi+Jk*d1 z-PH6EhRjyX;)sC78|`t%%um|8>YRGE#W*E+$(V3bB-wy82iAb2dE*Rm5S?|Kc`HWo zXE?eWhS01&Tk%lxqa=O%VKNN!3&+x9@!7mcR{ZP7n%PD&2FCYsF%$*v$dS(gP|7qu zCS`Y;c5iH418(0s2;ba(>9GOoU{SegM_rDQm&>9UB0gi|>B(%;yQGu@)Y4yEW zay>~cHX>f0x7U%dh0Rh8tYer_Mr$Z0^uvX~yEru;G>P+vYpH7#r&*12@?=$68pb>K3d3WF*m9|FXQtX=7oA}@Uhm<(PGV6vp ziPB?GLOA7PVD*_OHBA|`Hlp$Zea3N|_0XeZfOO2IJvu-yxLB%2iOw{crdz#>Brr`*@gKOj7A5;c&W>Hc zXncn9X{TUXmafodiwa$zqz-m3w~MWr2HkbUXRAouS(xuakYaH$1NybMGk@jm;F#E+ zXi^O743O!(bl#zBbQWLc5-Kf@I!<-LMkBYEabrp?zh(jfJQMINjMC`vhOe?v-gZ{{ zsH%~^Sy|zG6i(*hv=Bv_s;?$_KZ5Bp9VOleZBnX|D}JLWdH@A&TxG+q0R!)|foK1J z5kBqozqlm`8bG)cgvv@vR-$+70Oj=pw5QAQ9-T*qO7g)PJeJ?omWiHpjb*3k@qDMm zk(JoMC7YoBx_>%nb@z2k$ zJL;gmPy=~F6k5!g@N$f3ryH%%trnikY=rar8entz{6`sB5>kn@}jLE89IFOjEvqM3>fZO-0Rs?xz$aY zPfgmuB-oVJQrgkikq00)0##%?i4>n~odM`7tAeGLT$xuVf0{d(Zcuf z#>yFfdw|W<^9fb|D)1%Y?F#2}so~bS{z=#L8H`OIfVj*cUXw1TOTZkgNqZ$;Xh*wL z>uw`q98Gt%lkrD5m|ux9$j}Rxv~l1@L{OLg^uSzHcye}K?vvGiASBO7M=ZYfb&=w; z-$Ey+e*=DvIwjt%1scKQ3{ENHrhF|g$P%vlNY-eU zR$NpZGl>^~i!=4rXPhv-A81Bb zM(9&CGMLHq*d6p)5Hmq0VqDvLh{07Kf7~bCOU=kxGV$U(sWgf-N=VhJvbWPqIV->Z zc9k2NW3eKw7$rSktj3&yAVt|Z`y7bt(NRx8 z?tsIWT>LAsX`8gGdioSFQEndUdOY<}>)uG=ZQ}+$)}2cr+xdQ8D}p5`*`^ zd%pfn8AqXI|4YQJm2l|ddVG#c<_X^QS@{OZo@cw00|atY$wMCQWXT-Y%O#%>P<7?t~< z-9NgIeIcP*1UkYw6q#;CqbDjYxC^j&f6sf3&!b)?wFj^EgEjsKMJbcR{nU1|j}kw- zR#-PnG<;BvmC#{o1AcQKWYhQ)ZLz6;)aEFt7|Z0GB9-r12S&BCirc{>iIi}1mRnR~ z@KtAjfrC|t_ZZ~#tHY5%Q$qC_lUfNbKbxg$MI2_&G#%Y1sUMf81lXzsOWYQ4=3esi zCmZ@In)aa?)gU20RKnmz)mPwYlz(3PjP<*2PtmhG&OcxWdBPVIlFk0A>$bAhl-9gu z!%PL;VxE5ce%^Kc5Q!B}cZpV^dfPH_SKKfac-3?&<*jYAQj5P4<-P z7Hf8X-X7VaknW-nmX{)z)Z!Ug&>v6FD*~gEi@76UTt2^Va!DSoKVQ^JrDz(WFSW=g zAb)Qo8FmzJF#fX(S_Y^eheaO1_|oE*IG8ww_yOes0Z&5#Yd-T8V7D1ym@r9>fy60M zJ=FWXU(1rWGVD1$R*Tldu3GB-m+6>RaLtGaakMLaya*WRIYnxLqPWY-+1XhHU)dXL zd`?|R9cP?dlOti3@8Y%-qgOx9)2S^Q1JwxCun2zmu?P=w=bv>L5)t)e@7(ic^?^!q zI|d<}>vasFJyT~qG=A}un@2<>vZeLI@qG?Dhtq2AlhvYu@G8zxvc;m$1h0;>df2i*OQm6 zTb4=JsS}=Q=o5AS@N+8mPv!r=IzPW#aPt)qKNzq^% zEBUcyk8N1m1ATe~(yO3XJsI+vy#OPQmR7P>B-{}FEnnZ1JHP^E86)X4c)CpK_I;fh zIdwd+3H5MUeWtqjV8y1liv)r`M|5PzDFwT}^(7G`|7e0fvG}^jTK+%*zz4$~5%vP> zF@se{vpI`}<(}lRDpnY?YPqew?hk3LBi}KJrCmIqHQSwH_e%$!0`5}+mREsqs0uL# z(hxvznX|mZhz-+ft%;6Zb|z~dog+Q;k=<@C!+6P1XkS^o=~Q`Wy)4eKPp?6gdzWmG zDr>g;AI0YIfQ}~o1M}Oy*1i~X$GSTaCPW|dQbl|Uwe(cFAYpv0$Oo?&MwB%lXSG(G zDdJE2f~W*6u221BS6W z#<%(Cj+2O%I&O8*as>yypR)sQtyqgVaoSe+Ci&8t0&6f5pSn0R_pK&t<#Si?F}M7f z6mnQYC^c9s_KG&g?lV6niuH#IJ*G}3F(cq52eH~$T-~G6qlEj3cJI~SWJO_*s2026 zhLy#s7!Zb|2-{#Zk{bhA*KkfD^tXoQ|_bYmgzl}SfQv)7A96BOX)Wi`yu6Y zoVz&eInf}>Dxzz604O0rDx3|xo@@lKrG-C}^OlV3^Q5Z}#{c6R1icgH5kSz{5PWy~ zGPPu;7ZX%I`Dq%iNyYy%VWS(MY&y&V=~DGNn+z2Vzw2bb^~6wlsD->?MI#$94MEGA ze2!1)__hq_5Qnz_6_y8&a=Q>|!t>r!zPJNv-~F~Ic+AelugWo$v|NvhLUP8XiPMuo z2X8ZRx-Y9{xIhby+^s910BrufFkNQcQgzctTF%~Kb_vuCzUw1Id&@v2jcmqaBeoqo zZ;n#l<@e&(D_DVnErLf$(W&)A7iM9V26N9kuOP$06G-W~4nAr4mBv*jm58_BrR`RZ zr6l21+x0MC!!sE10qPTQBtXJmy$Y%S^sBEic9$Ci=EBLjK6*yh)ey9mFhpZOO%1(> z@mPBb2MV`s9<-TmUfhyfoRN8b?^918R*5v=xORx=Js3hM<|GiBl=vuRQf%;*h&Ak^ zzh^z%8^RwmpEO1^A`uZ>SD2b%X5UMh4tr~lIoVOj{i?cE3O*evN{ODnpeec$5fiCh zcB1mVyT&v1Y<_GPYd8>|R6TlFyIHH=7$kBr1eI5p4dx!TwIb#ub~!x#Y@_({b9*iS!l{z1s}J1-ql3sB_Rl}2?} z_pbEyvp-YZE6%E2Ar%`8JCD-f%oxmPC6rd3leVL(ibh>i7DOL5a_4hid+%VzVNV&5 zF*N>|*0#@#bK@`&0aWO(T*nO^%NQf+4pXjHwm0?ZO|m8VdM zfAA&f%PB~*C`0;f5YEwGZo@ww7%J{B+846$<7iQu2ZRV1S{W!GMy^~KP){#i<{`)E ztK1nE@ouy@Hy&Fn8jT|m5?)$_mt|xDjB@V^Skh)P`BU|U{4a(3cpJv@y?7BTPfm$A zJBpqOn-BjrhOLsT6EnWBM5k=`f_$G0Mq4BN5iVT6<19T2j%hse2On-ck#5+0*-XT$ zdOnA@WkupKJozLiAiuXSC+P0S$t`t$C*>OQAa z%1JX2K(xC9&3TwB0sHr%(lI{+Id;?MY1h`pU>9-zMb|qQ?gbu^4sw};4T$F;SNeX~ zt#3Z;I){BgQdU&9$k2tDz~g>YqPUPVK14kj>93tLhz5h#xjEp@pFx>zZ(s z#0eVd#(m*%e)r&Qe_%nAi^t5+`UU`g_f8X`)QuAHaMP3~g zP%pn6oBkBO^#tyGH7jZ$7iNSS#h&FM^maV{Ak(Qi`oQ|+s>Fx|V_rr|eCGYZ(-Nan z#GhLDvcmt+A7gVgtmwkoYp8Q8R^|~yD~|5{cDq9zvwEB7KX@b|R6Y4u(;V1C+5g85lUMRQzdT*xzJ-OhR~l#lu9jLl5@?|c*O=n zbM+VZwVag&@eb$r>@=^^r*URers@Ys8qNr4;PFWJ%jj>I*h~7~#xGywnr-x%)wInNpaDt2UUyVtg0l;USNv2?0>Dk}tNI;9+HrB%^W!C_;DANja z91xK10JgnA>Jq^3WIY3~pu=o}ibyN}kz#vwn*Hb>RgNyl&CL#eX`ZLT3OCI__3R|K zT>5a2GUsm;izcO-ZIfHovf=sJ=_H){R@Zj|gb?&AMndSL#|B$R&)!n5np5GNoetSb zp3)ZvJ=It5A{HC7rGZyH7ZuQlK~^i#s{UCH7nb{AUtJm#Q81AJ-yD_0q{AU#c-h*G zwU%!|3x|~yPK)2^poww)G~DjC9Vf%%V?LI!)erBNMF_;@1wj>?#W%S8Mu1}7ctD!M zek#|da3B2dVQ~YH+mm!VfQSu+fQPnX1+QZFmrP(@nRW{(3`=h~3|UdoxQdsbzxA#j za3yNxY{KJ7shfJhYo3naA&e>d%b~jrlwv-BTomH^kdBE5p930A_5T#2!hkE3lzm^6 zG~LsrZc_4fJU*9hs2o0{gBKGSnsHVSMZf`OM#iH)On(IRuT4q!mA$q6)XSnG3T4bP zfnBG1dsL{?NokLVNd1Fw5L-=I)FA6tnT_q0i&Q(p#j*(ee4(9G0We=vrX3(ORGUpuA$33aFCl%{Q2f?*qXK<$$Pxrs* zBBe_g=P9>oqa|;1%^EJz&V+1bNQZU1prI9X6~pbY7jWInn?^kRd{*%XP0Yge?T3?z z>rv$=>R0(~`x(IY9&Z@wvPl&I&#Sfg#qO6I(N}VR9+P1_v`#&6AFn*+mc|(C^PUiEoPfGlAzg7 z@Xjag&uY3d2LUSHGYJH2y1#Ol)0M3DG(3p3;OPY<{xsX&One43L*AX-(Rvn>Lf@ke zKh7;Hj&DdwXlLcm6(9oj?DVVYlwHF_Rd2@+_AA3G+27ljq^hXzKkENsr2-*{7T8M9G>Ijrbp8|CrH>^A8FYJwWdL6WCnhP5!@& zg90L4+AR$14-p8PZ`82OesPD10HTo}!1``-=T#U&{4@D`%zhuDJqU}_dYi0H^D{E4 zq+NG~qhGP*H+i^jkHcVS1^G$%0GWj1PlKtwrr0KYdJj3rL@PZ*G1gvA1@HZ_K z_U%|1L&lnn&mJ>$)Y$- zq5}RBmgZ})jn4LzqY2svGcGcCqM}{D`@t*%o^hk1GhZbP^^%` zYWM*BVO&ovL2cGRH#`9J(Wmop?G?_wzAfcsDH*S08=F`5v$JX0JR=%d+Y|%O;NzGq z;Hb3f4(MeRXhnb>UgD9Q708SIxOX9LbVSWeK ztcO2)x}l|>y!-)dGQWN;y=I7hxQyta_p_Z<;x+67yzi`o?i+z8z1ZDu;#xfAYIj0I zyOmZy!MoZNVdXx5Sg%9~`|Y^`ISa@qb4y$S;gW-?PJkKEI4qiyaHuR8P$c7NqVW{l=N7|6d=a}5a< z-%D!S$@|2{sKW8+a$Z}%DlOCQWy=BBUDs$fw4(^PbbENcP5-#E@o_qvr{>7x2@31- z=uoB*1)j2Wf5uCbkREuM23J3VQ0*A|5@_V9o^R<}6nues?x@bZkKaKdfTJ31d|xryytWVOnw&U?M3)w{demtv`+M0fvKbj?zwG2(vC6>UG;U znu)f&!oAE06`cDK;?l!MbgH!Xx+gvXKxQ9@!2Z?l#QwWzvO@5;wMi=-Z^@=S1 zj8(bryj(_1Z$NCf(t>M`;&Wt?m1axzmwy{r=D-^DtyOt+7$Ic@MoP6I1C^)4JZtWX zpQa(pn`15_n0CA*qOwitniUY82dG$I>DK2*HiMS)j%mw6zu2Odllg3PkrtV|&0hM; z2TY)h!Nxt=#>=$ya7Yg#177AXdOBmDmYw)lrw+`{V?{H~iLGi;e$?TNo;MRrP8b}a zk=?KsZ+jcxq+o`(;#Q`=IT(y4TvnU6&|1NHNA?eV{gNlCJR%RzU6=_@Na0jy6&OD&ZNJP%$A(#Nq88R0 z`KAPRbgoZWO}|na>=aj+!lA9P=gilsRB{&r zJTF8fJFBVSP=SH=FZJ5%jNW%vN%C_vv#5*%BS!{piPr{i_%O>xWAheU-rbdL-?xqh zy00?!=qIrTDxYc1FIGRciC6?M{d7ZIXvgRrjiqudkE-?En1{*}c}&-H$^vo(jDgV> zw*&d2v4{4%z(w3r^NqBa1h+?U(~qYz9WMq%aui=nA)>oqb_fOh_Pdyu3Qz@hB{~V9 z5c{vN9;z^@z&fGE3P z5rdBFzvlPv-*XZC5g|o$FX%7@DrB3!4=K|{qFzrvEI1CMuVxW63qz#(#k{EFOox9O z3zCo8z%jjZ(F`S4ARmKPl9C*@j)LQ#QNIc~sy2RvxC0eZ89-5}3TpW|frzaZ%ZnWn zOIWaZp6xj>ATdPl{5b_{E6~|vvA97kpSi$nZo{0#o=L5+>T)xvE%H&-ajy?dtGD8$u^p4Ej&Nv?mm`S7@?%?lJmXnU5%p^+yp5Y9d|(KaKBrW3k($M=!WtCRg4e zb@C}M)AWQg59Pn_!AbZ>){lHUJ+5i0|$R3E*ec4#LVEuk z-jd>=hI6kxEKF_NsaO^L)tfqlEdsVnE9N?a(#N-v09Dh&1rc(glM-$~Eb73y%yukc z^I_ENcucu_=d;h|kyZu=Ig2%q* z9N)t=)bUPn>rlx!1zz|J;$6}4giwbd>jGD`wZg08;0+c%)eHGh?5@cm$WK__#_!=` z>*+_>iQ;OBV|E?mS{Y~qzveWkL3mfPX5xb?h8oC}-p=NaRe-r1u%H3wDbnvZhFBa0 zI^->qrtdq5rg0{9hPKowvz6~wl5rz}6s45fI1D-N^Txty|6E!~N#YsO7(J-=gE(Dt zRFd~ROFJV7#+YoMd)-(6lQ5lt(1~(og>Ffb4fyzyLBjsRtk$N*WTCS*#k)9S=81!6 z8ZjkX$`2Cvk1HRf!}exuARGl0R9mVC(ki}x-=~~4%qowq&Shk5!sU3!o=+HLj)Cq1iPariBL-xKI{K(t;9evd3)(4jiO}aps(=UZ^Lii#ded_y_eHPm_5y!LcV7! zIVqP__X6OCre6Vjtvx zZ>S~q#b*~Iw;qV%h(SHOHMBXXb_3c9J4Q&C3JGM6Lgky1CX1#f7R^!7U-_am`QHh{ z{I#6&*Npup0Do}$8X%J;vOOvxJX>2zy(6yP)#x1g|917}4lu!cpWbmv%6Bpf!!y2j z8cnl3vdIU`i`p5wuO9&;(fI!(KY0Nn^m2YGDn-1RRK{xBy5oG$V^@( zShD*Je#O^+rYhfoTV(#jH;xGmo=&dpUA`QJpPt2Mzg`$6@+5v%AB|$NIcHPro*kAP z&F3uc-`8W5f&NxN3R{Pi>XdF60L%HB?UL1r+VS;zxPDNnvw3`on)s&7D=RIOXjKaI_eFCyUXZcm7!b zVmU!czF8+eSz>K~+7Fop)HD{(_SFrx&rZiKe$@E$gpuSbOMRw_b?;r`ebA|1*WfOx zERl1TRJZa}So`llCBU1o_S89h^iCIHJP!k_lhr!sQP<3)p&@RQ-3^-{UPTyT(PORR zvfZ`v@z)Y(R`h{{SNZ`cfdCi`iyBrtwqIdmqLdDIuq*4+9}0LMvz&j~4=T?8^~snq z_$r$FOHmf`5%rXKDUmIpn*inj6GL!+1H-@8Xjas0 zgOX?pFaN}dqOX!+(uyhh=00E4#b(}q3F;`%vNG2E#6Co~x@*JeIIz(!=0D@yw5M}2 zA`&aIg_fk-#I>4}^E}!*+|`n8i=4xa<(oh#usgE8vMd#Om`!?y;8xv#mEj!hS2kE6 zA2voGrVy;3jIf8wC-;w3a$)4LBSr%1zmWp0Z>tf08-`|Ijb%+Tz6}cu`yzhrUv9-46# zbs4u|ma)V;BjEOB67}kT9Gz7_l-(MIVd(Z3>6Y#qkQ`71>4pI$1*DOVp+Q2VTe`cu z!JuPkq(Qod?m8dmLN2_Ti*N7!##+z%Mrjpp_5^Gp(#NAB@I}p`v3|%ifZx<-R{_w9 zt>Ze-Z1A;*cHJxjetqoOek&1D+yn?$YWa92{1xfSvk^&z694LHy2`iVXGPQU?KKWp zvoQ?uLPFDNtTn@GjM^C?D@T=b_RU$SPyXz~sQTfuG)g>d#crDNzeh6s&@|l8-;rA* zY0UKR`!ILh$!PbEm^f8f_0&iEysE!XYXzjM93)RW$^xf7`VqE{VZCAW8&mH&63NS8yv5 z(~Efrm%5}pAH=&ci~p9tOwBaxYC#PyZlBvXn`iTmZR2(PuVmxXcRZQD?9Hv-noH3) zO*muwhr44)ly*DyeJ{`;(Cs#~d%5`>HnL_dGrA&|=sm zd)1LkE8qQGy0{a+vE%AmiTBh(_VUe=(U^{E7tDHNPq8+4J7bQ!wOt80ZY}?gu9}<^ zGoDomd9m0s3g+u2vqjS(QwRkbE%SW$X}DW+6(mAymjuH2!;g-H73BQHoKLxI8chSGmbNS#CWvntzH^~SYw6jV$gTCs&wmF z6oFiS*eCj|3o#wjdni(8e-QJu;|gthsegI}R&GuTy3!m)o+-LJZvyh11T6wsBKvkb zr()3uqcU0cd`<_Luj&md)T0_kor!qfYd3;X+5rrq=b?_kNBpL9ih2NpGQIAe*mHXb zltjz_iXBE$-0vpkve;%C+bWs9?RF=go|SLW!7 zIS2}zZS)1WYsI-znE`u@#M2EUz_*>u_=OFy5cV1$nHb9w1tg?2he?a{H6PnfCAu+N zvT$R_wlyNWybnsmsp3qp`4d{)<#cSUt@r!^65o^kuJo|Y`JY!T$^YfrPmM>B!P$As0Y#4CSY=5=x~V^EY?4%=)L^I01)7}9{2x}mBon`MRA## z3`-rs7dWMI_5Iz-gR7i*T#lbtIS}(u200|-THBe_CF2~tw__hYUshF3r5^Or8ccEi zrt8jy7*l_SN51C6nr8)kEH6Ev4+psWUS(IV4>A%QD$aG` z?Ny*_HhE^XK`wgHxeqJbmND&JxuKi1oAh|dgWvKA@B~0z8}6eLLy}P%;2L*Eeo51;_)QsbX`CMvE#HY2)@$pmJ~g?T*KMKPoHrKaV&@*S}5x|Lb2vU`_QA z_*bbleZ@s(Z7#lI;CgpQmdVpU^0}$7O>_Fs1|WQC&f^u)(-ZiC{d~BauAhfI2hTCq z2jGH+AACY)*yvZ-i_f*FSItv1?MOQ^ZOkK(Qr(Eo%z$yG z$*kfwlE4hpP}Bf{gRqzKepl8n)iiBhfP{|tw1Z;^UogV8x;gx+B5;luBP>SI)sL)x zRE#?IPU|a>Yd>-&j*Ht7!W09egRfsMQAQ+>$)1UyLw;iizvtmc36Oa?+y(Nrz`EL&@-!K76vj z(ftGI#R0qJr!`z4p5@$Dq4b_XSMra$uo1@!xoP`!z^uN1x(xts=0`orE)c+wj=0Lp zVE?aeU?NLUX#BXk3F2v7reFTO62c0x)ctj~>~iXoAVmz{5m6lELW$kTm-9N!et1gL z`CnB85j!O)Oa7)#Cq|JE!)|wrxPj55!Uku;hxb-Er&0Y1xo8M^ zHERN%)XLv?U--Sb*FIMpoAf?xmc7C#RMGt_Wd06kwBf0Zc%;mOLXtv9+W~8Sz9#Lm z`-O4g>FF1BZS89qe!w3gv;_aeZrYWzHqBk^$8@(9A;UzgNIyoWbsgkoH{6JD(VFH?$S0Mg8%!Z z?l(&$y?XXCq42+=xP?ybv$*pU@gxlS?`nfD14@q?)U+Z$TrO<3?pLNo2|C+f*XTX=Eb9w9@MZKk$xD}5>iHx15hK^U= zS-)d(S@~aQT2pJrt|bH{D*h9&8e=}L*mBq;Ek6Igz}+_uXxWABP=COkAUi7PxvxJL z0kY6jl8zne`Gm~`L2{?29TXC7xOyQ1<;9R9Zi6(sY~7uB@8^e0ALqxJ=T#{^ck50r z(1uMUr!MiCTc(A!yZv5|6%E^5l>d=hyKsSxBl~pcYz{6|G+9eW$*>q^G$AZt8k95n zzz}&F;d|F@dZFtiNk#!Yqm{2;_Z`*rQHxA@oNq8o+z^ER&WWPZ$;-%-m-|9ZZ8|JF zHAUH51#;9NU><&um9$$%k< zowURH<*uF*OOoakQSsJ$f&NNdyiE%jFIjNJ{)ua=QD*EjI7ENdT)HBcC6rlU;qxkj zU*_P(`Dsz6FrsF}z9^3X77{_=DQ4#Fk<3d3+(tU5s`N5%7o#IUHHVJ|hZ;NDgYrJZ zFntmUX!wuwiUfBONm7idI0-h$Zfg`g6=yZ0LNnZ~vVbq8w3S^tdDblBhSG3lb6h?< z9X_ln4(jDFP!5`#hu^)d-}Y(G${M*^d=!opl^D8+mk=g-sXrDY2RBc||8p+=G&s2`Qit;bW4`nr>D&Eh5UjeIp2SEvV>8bcoY*= zsadu|LKu|$j8Cx`C0-YXY61nv*84DWhe~)9$L@<=Ua~wu&Cg7PCv2SII@8iTyKkU2 zFnlRmWGbO54b-aLZyO8@dmAi0Se)0M$?G3G&kMNmfN;VuVDv;^XxCSaX0G4(Qm3yX zAFag(KBUu6oJ|abFY-zcUa3K1EmD|9TJ~3N4hqjIoS{DB+QagG+XCJp3;QQp<6a}& z<8Py&b|c;ZXZzwgR)YEoP(Ve>7-b zPbQ(g5E1cE`I2_V>w+FKQ4N4@?Vr=jlY#1mJCm6yv8dAB?0vYlaKGl?^bJi0Fw#rf z=12MJJr%-4&mVR)pY+t)1sr2CGCcuaG~G!ls=fbHy`cKyRXQ86e9^P*gsZfek3Ej z(GNT+eMpSeh;$5eml1WcZ??O)PhabSq+~`oeeQCO<(mw^bWx(2n1`Qu8E_-*IQ!nW zZT1S$ccs#w#x1){DosYc0zsRC(^QUqC8GJNw>e6wL-lcMzu^ie=cxtDKAy4rj|y-lPW5@c3k?wCs+q^;ro@aRN!@Ijgz`S7`_ z9SO7Yg_xcnu_I4#WYYtGcVIr`xKLdFB&A6)dQnm@(vx22X!-9RFP*?%s4P;}cg= zDLschzk*CVi;9L!!NDcDQf6}{xaT=6B>sxDMad$6cDVHE7V&ZARy%(A0)SjxTm!LM zxlKUMd^#B5^EBC%ZMg-3+zOqCKd{$aUa!R!UWn4?=MAHESJ%huuT3-k0R*GaD+KAG z{mYSWtB0GD3v-b&c_@GkAPJ>`xdrb9%&ojwz>`u$GsR#R{d};7$`X!St;^bQPJIo_ zlFGH%@A&BrGVv{n3;(vuq-h!TUNd|mBq_W}WJ9hr$~uPW6nC%sC$RLZk<-flmlOA? zjeRxNn2pHNSLG)=V`6uC>B5!!i2*q=7Ij-Up+sG0C9HH?`)ZSvd8DC@=dE?HG&RkucC9bc|cmSs28b)+GBPG&aafq7&OgS_3lA$<*oB}2}hsaf)x z2Yf2GF8`Q+pN%5TI7?N{nIEwK!r$>c34RbxT<}wltY8IAh|vgBh%A<_Keqi}jvv;< zT&8u73y7|9{BWXdGp8z+I%aKcsoOg%j~-Q_BN^j#qRe5?J-Jd4qim9h z9SYJpVhr=1_h?w6L&G96l;Sz3tE%#^d)hIn{{--v1Xpd|qZAlg7U2{y^qI*_=8cWQa zAzPFx*|OQm&MY^4Kh32HjV2qMqgL9E$ymRmzDyMSEsGY()mddm_q|U__}Jj%@51)U zK(mRu)S_v3VGFs?_FliJ7qQxj<%}74N$OjKX4>^{qJLbS>sNW5eDUPYiuE3a#6jbU zt?E;J+q;}z4+~Z%uBl(>`iV&|!=Se^YWQC=e_givKzIOZs5)ADX8uIbGSHFs(s> z`S9oOf*p;-H|NOS&ut465QT9WSLMCQ-Z8}8|! zQA<@N8FXY{^qzyTFm$g5$EOgq5&G4m@^c!rXP#KOXGk1=OwCPv4$H+mIW8!{>WP!P zVKFu=L$E@z}0-)_Cx$pl3Q#s&lZ6|M#t|83`eQKRzmOi>R)ia1WBA``OQYmxlAeH&q_Dk${k+gR_oY86iP0Z*d5GRm&0JE$-oia)wJn7|R zu6>28ENvq8GNV-XZiT#xIS7P9ghN#o6dRYkmcvQt3JG`SZ8;VvDqqm>th8d$TsD|A zp=1GA-t2tuioq>QG*v2J+-4F3vkqTp=wK|!`v34wcz^@yPBBXN38vjYa06EcQUL>v zlDo{(3~!}*E%?qY=TA*2nT5YgqzS0ElnOPrJ$hMIA`f&J5jS!Dc_C#c4vG6NejI)I z!?JsuRhXH*c-6=`{X~%h^@-?g4-B_H@%G;cZK-3i$D~V*ckZ?p-v^utrCBiP63r}U z5#}aA)(5g~L59^!0XdS1vRs^_Gr`r)B-(1dE6L-20S*H(U_;<)?xic?8SUyYEL>?X zaTn(^>Zu?+C;er#4eZ~KLHUK~>aC=%4L+K2M;Se`CwX{yq0bh7mM#nsF7SlOjel&0+xzO@MM zaB>G5+6ccDDZ$foHjT-uU76hkycMq$sg)i!j=)S7>5jciF1&X!*S+A^+->5Et!Ztm zyCRc1_}kEqJuSU57$Wuqb;(p+FX?VWY%Jh(9dGv(p{dnXDOZY^!vB&}94t*tyiK9^`XYJd%SzZ08bGy= zyZRNMVfc0W|bYk;onORO;>R#Kp9?f^K( zKPype?4FnWVZ%-QNUO@i#8Zx{3=-`8+%`G1Srg~4mM@!z{rB$e*tVmSU!P~#LxeS< z|3-A_A;-F;Yx0XS+z?=1DT0~FMqgBx|E3c}T$hMCMdUyMH8LkXxz&tF444-1d+>to z)hdA*G@En2Dv(^0e+UKFj(8>fN93=#Dyu6+o4MdTVY+klG6hO2wy6%Xn&@Sfi3?qR z5%dv{StqydwT9R=?(`Z<*uw5PdE-xGSu2KRe4)F6de){E(9)b=pupA7`yLyt$BE*> zZASl3W(;{4tm`}dCszkjr!Q_eBC!X>qnM4vRmALx{Kg#QI|VEL(j*OD8$Z}v40=Be z*c@FDDi7t-AzCU|%!{9GksZ&8tDC@@r`;RKba0#TF-n}GuW*0(Pf)TG$dI9WdgFKY zMv3jme7?;zq=>m?Bwt}qeb0T*M+Uc`ZnIhQ>)YJ{Wqx?g@!41Q4Nc8dil5&0h4G>_ zu4`mb6$^(hPDBj~gdV{fEGS^UlI81NKsh+Y?&zjbNp%SQg`y*V0PNCvI^%AW=-j3KV(PVlBO?;U#Oe9 z4ng6>9AtF;n(X3IhBBVF_4|Y!kaG48>dq{9zR5p9(fJ&SD0)0=a5Ie56~l^60}W8!q)}3r?AJ@xkXd4K!*@3<5ls1BGJ4@l16r}*)*HIr zgmgdGOT~rw(HK`_vD`yD3LO`@=Q($!$$=q^MrM;Q0Rti2qKIkS~!F~ zbohTA6_l5H{kFmvD$&3qwwvJ`>_SRH#>8pR+@0hkitIsjNd95=pe^e+Cf7ndEqvwX zk+KMkdJn;4jWRg(BXVVepXnm#X9Ws=Dm%#g%KJ$AUg~E{$-(5*Zl3d$C(j2Hs6_@6 zZXBNHPY-~D<9AcjL#q`JDK7N&DewLjr_zYf-Wcp~H0{d`ph;>y2h<%l^BWBc%0@Gn zlY;qTkir71bZ7Xz?c!^x`{yvqGv;)91Fi$w>Z+E6UQhj zDV-mdf;WH`J=|qMHP7uAB7Ku}n&`cLa(P=ke9Y5HczMQ)a%%{megHD$y^q=f8@}&c zt$7DPrhYGKl_4%5;97$(N{JuZ1#Ejp3S}UsT-Cn@)A>)c6B2)p6R^{7EazJZQS&f`iHMd9gWzNdVgdEqu5Y?oa-2qU~d_Oh2tLlQWezDlA? zAQ_M#GjMc_>cB?67vknMD!WNE{rR{luDuA(_4birmo@ccUZp3~8JSKHO{V}Wo&h{x zQ-@FUw=Gzz;O#@5!A|CixF*f!@sPd%AMJmSW!{SdRc}-0nQc(4rntsQ-(5 z0~9)yla0|r|H6Jh=X0C_Eg-J|Ae%M1LM%*_6I!0gn)=^w`#o+0j^3FjuEZ;YZbNj? z-S#lbi5R_4iOTQ?&~&HKnF`KDLtbJoDO+x01i3*`0<$?rGybfU??t*gI9{fDQ$5PB zvQIYe_i23X)GV9Vd$sIm!EuYWY20aOtz3QVNp{caUeS!3Wqa^$yH`rqfbc4B`X)?s&HKE?xvc)= zq}q_sNg{c!aWqX$Yz=_U)qMf_WO@}q+{7qvpk53QC03(ryaFF}WaQyt;JoFxgAKQH zUjPyI6Kz1Ui`R407143bdZ1zDio6GA(gXq`UlW90{w#FZ#3w~Pe>~`zDkz?I!{Q_Z z^YyAleJ%(FSmjC6uHV%brJF7{)a~=rw74gw<4lfBmAneE}f72&U_4+Xb zN${uiX6!~*){p;4f)XjY$&vSph$rKifKRf{yP_8w?4(#VFTfm$vkD4*EA zzSloa11o>AE;Lm`*Y-|3O%dz4$vBiJ(;evnXHp)@x4MxTgGE|51hZ@;Q=K^@i#BQ^ z#7=Gol7$QB&`1B9E%8-QvHVTE+rwVj{LlV;+BL#Z{>_eYTOAzYbpymp!2r4JA0?{O z%6%TE6~7p_?!5B!^RhsdHge+I&GZx)=DLyb#U z_$W6}vne$Uw$uiw2J-cfdQYZ1_@XqcYH+tlP$^OE z*W!UDgRtYnT>PISjR4ro{j+tNr|Vv)B1vsW{GwaBoIH4H`Q2fYk*Q+;-)am=I}*F} zPg`Q@%70&Jq6!}5b;9d8E|cTI0beDGUJhkIi#3~NQ^3;~_yZbh1s_`Y?rU8FW;uvn z!1oD_3B$|=?g$SEn>D-58uveIPzde*_|>Skr z{Xx#t*SiWWzr&O#l3_)l3(BMLs^L6a(Om_UudbVm|JqmUWQQU)PRJWs@s`s4@>MRy zw?8vBoi67$9i82Re3-dg#5T@5w||*Qe7s6`_=VLGgfC**1mwr#DK%-^BU2 zer`N{O$-%_llCB;T&LMe%SV=N`Kb82cekWzJCDyH@FODBBf3RCyK}vCTy9_YGJP)R zihepFl5q=xmaL%(;L8a(X@`oiwdPvLF6&XJ79IF+Qi6?~eJg++)d>I78qMR|(PhTx zeTMrykngk%p~Qy+Q{-7T=`w?E-#!4Z;tUwI$kE?ZYYR8lU%M9|S|o;k_h9A_=@3&; zE^4&#NEU8cd;i}+PN*X0*y5IY%vx$F#JTmly6{C_B0_*N(`7L-IIx#6>WXzmedP-f z5*=Bcb1bM@Z4%!tMuf(!94NPR)N_taQyVoH&pc$f{4$txS9*NolAM%{Yl4MdDErPJ z2p295g2Lu?cE}V|*IFmrEKw#7O|Dn4HO>>?yx(of7ugf`a0W>ZFDkusrfeIu?M=7RB)SZ3--J1BCux><7UCrE zI>jJOz;{7O>G2WAC9=qm16lV2oPf08bib<07syT`IdDO=Yzv~-hEGaU+D(g{CoO}tVt)~nW}B!6cnyIXB{pfT%Amrrlz12J;Ch|* zmar_lW!b!8#?9{w@rOm;W^E;+r(z^Y5rtZ&$+52n9ZyNEw54&JIvu<<8r399#^}>S zOrx~O3(uXPX9~d~47;%*I7cRFShf$8BL4}5ZeULJvd)XgiAlAXQ?X`RT#r9G_Qq!9A(>o2NRgTUM5FwgTNJzf6`po{tkM1AT!<`DQ;_67tY zB(~Y|+#?d^O>*v@Meyh@>`Q}ilRsa**E_wu6AFhp_XpPh@WG-qsyhnmt+wvi#ODhz zmY^3yY9`W>uWD)+v%Qa-$Nwv@F=+R2Tvr|OEbs~rbrJL5$vcxwV9b?GzGH`#a&Npn zO?5Qw=73DVpqkt2PeqbK^WDK*Ll z$4Lo?lG*VNa}4yjf9ilDQMmqUw3RmrK2xH>;M?mlJP*;J zb<9=0b{;3mLlOHgIX=zUU}a!3+ivCDmTJaA1s$#ah;ee#Sa!ads)mdQ5rr>?Y_}=_7VbwH;;JFC6zKk-o$O6}GrN*pqf7&e49Z$pwYg zyG{kkB%F%2_PY&JP;)p!P6|bqtNh$udpX_fMlq0ghTHHJ&x-qsPuCk@V&CNljAb5T zi^MirX&^hs5UEKWz+)Hih93j z&V95C+VB+jWZ5R!tP;ONO~XPEk~&3{UC<^7uugib?9q-Ua?N|Dv$YmLDtdpy_-^9Q z&s=9NT9sGTkdoUKr6#hM)|sTPvV-t%A0345qk%yY=L1FXQe#h1DKquW(VM48lGGzW zl%Ad&4HW3`XD0(}_zticd{*`Xv_t}ZEE%YLlvCPd+TrDUimy&YNNV}%f4cr{Si zzX4F<(xxuEUQf!m9-YPb8D327F}m0-nBskrrc#;XK2DhI1@buEiI4(#BISj1I)s^A z7SVAW%x!BHxrv;C8{r~*Y3*fFk)}16Y!(*&W|-Cp7KHOJ1KF&^FauGPN9hYFJPuBP z)ro6Y!>r-QkJo$I3U>Z3XU061zve&1G;$(_A3ia}L?f(9jxT->V*VIGaEDdto!cA02fG})G4`sziVu*0%|4koZy#!WslRxu-oHXK;3WCoGrAVPiAGM$-tcg9g*13 zfW(ubhlg3=u}tPx&@6IQwZ#;D-2M1$UA@!+$ek)cx_HyhtBdF1X79#Q8kp(ZNs{A) zM;FoGgR8qUz!=o-+r?e9gD!%<3Q%A4osn{8qYCx&?p;=7EiOL%7yX=?I|9=Pa5Iff zm@CZ7D@?%H!Ww_Sul6^|T1+c6JxS5zC~mrhdC^w{OS9eW(v;>-XPsrEkT*ekOMDRU zq3?C&(vpeii75tsJe7PHyZj?!Dm%wJg=UrilK%2zQ7xaInNSHPlx=$7=yB6%Mi2PW zSAT&_v&sZKQBquh=nkav{3BW_3%|e0CLyQrHd>1bP5h4!`n@dU43fx&k60FsrI z;mBKwF2IRz2xwZm?v8-NcXh$|es~IfXCTGQiEXaYXHq!ilLv2_3uNfn zsflUQ&$^nkpa~fK!cP7gCEsThd;R4aDdOwYXVabErt@e0X5O~*09{mU?JHrFC*b=R zJ>;S9;LG5ft-n#kK|XqxB`Jmf_?}BR@u19Gn@MlPAh8gpG4quNW!tysDL0<7SOo}< z_V!|;WocJDCp#-kQUA;mEToLO3OAa z6v_VYEHvXkK8n?yzgeQpw|jumE)58c@!{?`pQyU;F}m;Jf6o5ibwU3E-99EidtzBN z81^tcDEP+Bq}6=38bn}!N}yH56wyf{RDF7Z>PDr_6cMu{s(Y`OM=RBvJ-6l(8tr2g z(nH3T|I1NgDoTO7qyEHRC|SQ}cF&z_c_L7JE8Xj#1(y>n_nt!hH|h+)VSB;p^7*@> zYHTbQxL=W;>JOj~ClLtj8*Buj&GpIu+!DC=)t7tm0dDpxlJI+{Ob|pLgd3>w z_}?ohh}wV!wTm>4FORygVA2pi9y}#s$Y#s~VCaB!C?~h4 zqE{~zt|V5np(xg`HZJG~nWIeEKokimtSUctS@F|+(0Jvu1v46Y-Q+`k9=+QySO%#O zy?G`K^Z^I`toQ@q<$UG~2&dWG^tn_bl?)*1O-Ce!=Ksg1P@i|^?i*@D{yT4^#`ct5 zU;vo>tkK+#g+|>x=ShU*2(bFJ7BkZ&HZT)2e>-Do5q!sr2BaWB&x-nkNuq__HHXV! zM2-_HlbW7H`;G9`JleuJYQe$w!0^*wzK`1k6aI&EQmf6PfBF^P> zED5XCVGaV|kr`2=DKFq6O* zF59c1DW5rCGXK==>C0D{)hD%xX*TmJ^D1l9%4*w7SID~28!rcy8C=9l)MbWKms}gX ztgl@ThuA8>D%e%mr{vf!4!F157Y4x!1H^X8EdYr$V+Qy(kFM@gZNoP%UtiR(zzh;U zmd_5&04?UaJD@_Mz!yIsv&jPFsGP7VpqR&`Dle>8`0_(eH`z3^Bt9tsUD#mvePQ&S z6#0KK3Lz|@e=f2hTF{Vnr|Nj!Qu=~#VFb5ber)fDp1imfbW5V>_|P-Y0n-+tG-r{U z&)yL;arU+zemElq&h>|(_-6kU1tflOD9_rproG0wcyP@1}|UT#J6(g^Dn z8_1;B;mo$@;-y7zJNQX%xu0|*%Q0p%bOGT;WVK>{mNecr{V=My0TzdlZI9dn7rTnV9lJany^ zxikvAb~jK1*J+F-ZllL^Ztpc5{>$Z}7Yr|GQwsQaEnPRH;tfqyHu0S7f+LA$=~Z*S zG2qO*!anh8`{i-^-qAl0ylpaP|~!6=sS)6O z{X*Utu+xCH1UJa?gA z%-K2CTv!Wsf#^qgiyHvP2?vVJLs-L(j@7?k3?s1VOX0`z$rHh>)Kqos86#k`MWdJ7 zP!j%YBlXV)2{|Il4T!|b838z?)a6BZ=WP?;%UafizqDFbvPdgE&w3aq5S4QA7CIzKjs`EIKJpxoHC}p-t_e%gSQ2DaO0X70!)w+h9g> zPa6`F0-Lc(6Xe~2&vd(uJO|ta0q;g2ycx_xw<0(mN|vlvn_5o4CiAwoZ-ou0*STKk z1vGFO7I%MU+tTzV3R{~g+$%c;yJA;htGvxn_@U4?=WEE1aK?6@fx~xQtL9Z%zgK#- z_6}Uc6dIuGkX&zlnNHd6C~+x0p-D#kyc=MiBk6Q&2)-DnGclD2NK+6I_4b4Hc}IGv zhdlY-9bUZ+_%VY?)-wmvyDr_|j62V2|J0?WnI9RWFHVa4`0U$-a_H6XTm#V9%|T#c zWp+^{erOeaCD%WAHd7`ZD|V7bEyaF`x|DcQ_>1Mcc^vKw&nQCDGKWLZZt}gBurOw| zPgleX5mL6!are03+=hL)+oqVy$GKkMmgEVD+kag>0C5|5JDUbC_)m$Md_np*Gra@R zQ4wwh5=CExw{nZh@2)r!R*X2A=|y9?-&{BJn^YHCrTN2B2y|VDzwXu5 zWM8$q0X^h0Y&=(b@GLowhOGk~pdS>##G=st)~pOR?I}r;vd~Oy=Dmcm+!_a3?e>nu>dlpN}xhQ zN3wV84*d@X)DtrODST|FtA%)k`Gyq&K(XQhCa3b)uW0JL+{uexzIb|Ec@pg~7E9C# z)PM~f-VoA@a9RO#>6oUx0lb8F1#d#a1F?tD!&4^LLWu(#a$y3z@%!cWF`UUB+Yc-K|VV-$$;N?34QPb$Z3Eqp z!hE~a5n@~9d@0;*ZQt4>lb(Lw&f+a_ZFU-*vjkuM_B`A2u?fNx6uKe<+F~of<~BwJ zc(M7ju2cHNK4*4En1xTsgPST`sAA3aKpM7~kHu5YVjImh?TQ#^eN0{S*_+p{kzEV9 z7d&8xIPOLKrn1y+$~MZp^OP-}ySByEuWDjOD!y{Rh3-;lvqW;OEl%HbjF&g%-Utb2 zn8sW+XUsvmULMC&3v;(cP|p73Rifr00Hkbb_2x7>Sx6O)BipWuG@l;OM--AcTC}5r ze7m0Zfh)8k_N#5$QY{dsNfTdLdRB3*(S?+P=EFZ&{>MCYyTpEA|lq8o$*9OR_Ic zNSVO4WnQ?nMcbtcAJ?rz%S=s28a}4|=a)ri(fsGMSfVJeLBBm{Q;>@wO+Q)11+$Y& znGj>9cf8KzgX(`PEFup;@bU*czfGX)|4SJ1+oW!(j^2uM+4XM2fxLb{2U;RPM<7bi zz$s3tQYF{%$=X^Tqw*ZkTh<@zX9g<)M);xUE(r?2rjPVQnQ;RkQmNXt=sCBB#*%}& zgzs!#zgnJ5vRkZp7d)Jl9Vp)$*h7s&6(Ys`0*{Q_V`yMqyoix>Q{ecuw&%;8!|d_3 zZ3U#TaiXoMhbU~vK%U%x$Lsun#9Zd@t}ZcUXW`Hb(xUEr2$3S%V{3vvBbfbdn*0yR z(DNC&lFMUNNv+HrO`W+u?6F!+JJUP%RHld1yB2@PBve1}ySCnltJBuOuv6E>?e<)S z*|UBdGCSE+LLQj+jrV187h(3;--`y01Tq7c-G2et{k#R^T~@v}ori5log=9+#EUB1 zi56WSP5*@STi=S2;%>yWbaZGhge;fFkICf4PQ3SJ^9Pehc0RMrsoH>l%j@_DAoeXYid_A&kyQLxDBI?ctT>{CydrTO zBw;DG>w=W;OU4{u8poF)wsubMiEwU$gRRRIf`t>b8T~5+UffRJJ?E4w$v3;@zoJ%q zuk9S`Q?>QNykRpIp;fk6XaqPFxH=7v91)KssI4o74E_ zv5S=CmdAdVQ>?>zVH+R{2DS+xuM5NajRAE~lwheK3Qp6}blBsQCB0cA+U8Z`E8`vv zJV91WjoNp&590vqYwI~5H;ac7-{=`H!8!fUSxFQ5OOcvm08Qjey_?UZS@>*0Z$lR? zhYUVYx!|3#YpLr7K=_$T>0gI)?Ra^vKD254(&2Vr`xIt0i%r|#uWt7Km&yf9tzlue zRT@Qi_t^lEO2y?=^D1lmTcrg+puAdg@BJzHSV3NfT4&GQ=age$uR z7wYIrU&1k$NTNP=zaq7m%&`MgSci@gsMy*zt`IAXz4e7lAxbXDZ-8HW2DS2Zhjo~n z-V9)XRk#+3%(;QdE9S__<{!^0RW}UiyoRJ^tFG|3?_zQWfb}i~F~r&r<~eVcat{y@ zy?vh7z9&Fa>O2n=5AJ=ypQf3ak6$_(U$xHEV9BalX-lT9uf8V8ni-9KM4dD6|8|k0 zjFsD(jvBWFLQe16Eq8cuTHTm$_m=6QL7jDp;1M5$%eH!q=6lOMR!GwB=P;+hUst3M zZyz~9Ij-pXLgAlR`bO%keUE)6-t=*8mSt`lgt1ADxbg(2h^?<&4_a(pn^BDHPh`xD zM7=7MdY45M;5Dd`d3voRIJYrxSap@*X3&2Rpl*Uyae$rDyi?trFmv+r_qlqhq zV$?RYoV6}qMDy$^`4*1v3Kt(SrhP4Xg*@&p2+1kW%{-x`l{oV>5KC8v%2+DW542S@ zEw?%bvQUkz%jV@xh$E5_B$3Zt(ZRKc!RKU{bzrFUR4^iEj4KfG;bZ7>G=g2s*J$kq zV+yl{o7|fqleKEqEG?XtvDL6^1qhHxCIE*1RTGzPpKXy9cqs`A&Ngaa8+T@Qx2EW= zdI2j;8)7fkL1U&mlF)a7+0CHR^zu%_ECI&^=8CYeD=Ld9(*mT4^)<-g$Graj=j?>f z9ie-#JYquMwi)j-JR9M&d57D*lF_mjWPauxO*3)EXfb>Zj|Fj^f%zGOehtHAMQ%ir zP+c@7vGm!FQ;#&%G~^U?yn*d~8gas2(29itmSu0lo3{}Q`WJ041GOXw%iSBSxK?5% z;u{Ul%Ox#(&I}kMTT7R{dxdCq$-WU8k3jN~H4L_o&KxSw@16A7^t5|5l24(r_y6_( z1rCjb5Gk&GOkROf#ix#U>@)d$UpLkaSk@|QLGY`_P9K)vpLyGyq5-U5)jU*MA>pt0 z0x(OBC*jmPFJ5zKmgM`hU|&e5LatW`8{TL>CPSMRJ4$^rxL2A#^O9It!9u$Bj&bzY zQ)Vpa&^iNqcEhuC#?fXl1uYX)w`02cHrwO<{;FICuZF7yq2`yTnWmg^{)8+HL7Y42 zvtn(ae?#RZt|6oRm+S#%gQ};WD%}Sl1)&*-DnCq?SdO~VeFXn3Vc7HTdv1EUt@yYj z_t5|oL?a-SVT1-3{cM4y_qDk-rO)~J9XtKozrU2Fmi8Nm3x}#hw4E#C;2ZQKRt-|3axi}CC^T1^NUaZ!5m_D?RhyJNAqwliO&RpC@>rxF zZ{U895u9Bk{GKdMj9;9%;+~uyk0Iot;Os4U*2?>mcGtQpy3wz1c_Vuk(J!Q8naE(z z3Lm^@0BJ$o+V8b$-uHUCkl)wEy(gIoUS3^8etnsU(ANrbhAm!BOZrC{rXBQz6$bC? z$5$SfRyb$>abe+oDf+yo7$Zp#Qt{dAk88AB`^#hPu&JI{OayMcd@hLZm2bLn4q>vkkwWj5UNf?4W)&v%3t4O+cQJ`r^!=oJGX zT#rHJyGebJmoi`6c9hYbXez^-i*E1a`_zoj(wBKw0HU_SEj)=m{IsX=h`7@bRx6=+ zF3oND(;cUf%VG6S^6Zat0pK~D1irR+ z6qFW#-7YUm{PM3%re26yxCKbND_QXqHt|hl{l9iO`rqIoIMKs^0@k@wUpiblxj2_( z<3EsPU~u|u!dqb@j^96SCk3wRzD!fXJ9|<_n@86ZAJ&>lIrv7tUe$H5n*P;(9Chq} zRbI|-1@ys%isLvL&M6P@oe$DpQNp{$UT7|fi2Sf@K1}t`YDFbsN1K?hWQ~Af-zMoa z!fjSrS(z&}J$=!RhxDKdGi=7})|PyqzDNRks#m4=yTok=$fjc~FS=;6vi%=P=NZoC z`>?vo7f@tejoq$L%ut5 zNOC{deO>1{r(#rClZuWp%W{Fc^1`-`?c4UJGP5~;z8xQLiAX)dJc^u8^g+5iFHlpg zI@}p8Sqr>t2&sQ}uy*qr7O$*E!$?~+_J`kvYLWNj<6w!pyy9GGJydQO(WvoS=FxFG zTWRI^XYpLrdjR?TKUY*GaK*vL383P&Pc~H!a7Q{ht1oX~;Ff&gacM{_-Nmw9%&U%R zdNmFRb!;1(sR$mmJ>(2RKo)j~$~a^g?RfVyl|tRb8yz8+IPL*Rcz8>+@gmaVe3uC+ zVoFp?4qrs(?(_6IgFXpKNt%P%6rjMeT9N9BJxqPjM>d}RJqa&A|DMR9CEMIWu6FO_ ze&Z@v#h$5(QR`HXBX=v2un0d6b&?YZH%J;0ZWfO*W4C^4FQaX^#}-&Xp1-Sy`jE>K zhY;A3gO5koWtFgeUOA1ILHlA^pEY1D)dk);NoN93%dE<)GAHwEweFaNSGXTamu|9` zipb~M=YO+dJKzd#&ng*J?!fssJX(xOARY>fidD_X!p4&aZ(t0dH4{)!P*|`w`vI6_ z?VW?{ub8n2s#X5QJtHoZ@8Lz)8!k8ZI0{bKi^%w`)6?n#b?G7nl(`x5KWinF$fa6N z)brTN7L~x)Xg$6q0+rSaX@9H$*SVSZS?!DgIgRn!f_`ApO!f7O8%PcJ8E-b~eklOPe85ojKhzBMa{PR|mi!HX*A5WI+&xIbl35t_d}O{A?)-33 z-Cw>%EMNSojY0yw7<>Jm_R6%^*`W zH@u|Nb-B1!EOwMdcKSfVdsi|4P%5e~sZTy1b}X>1IvlXw$X+-Oc=`HV^(WJu9b-o; ztnA7XXxjXJ?4l?m+AiM>yw$i{-(XIC6#X-1NDX>?Lgi;kC)j|3pdAn@mv860aCV=q zANiWwQoc#D{Q4oKR|F>&r<(p9WHi27wKHD?1LTErZ&hAQ`{`@yeVK7BAGnXZjEoQk zd@RII5GZc(_6C|j^$k0LSI#RIc)rF%)lP_kDh(|kX+N6B(Y{&C{5{{lwv)xNk`9fo z8H4nujZazoQ%4n1)@M!JZ)V)@;y4WZ^vU0qeziex^*n*4EHOJUK6P#fd9@ItNxD#! zHdwl(ROi@+gJQatIIf-|QQr+77tQ9IVKyTj=g+DxS@N8r6??C#II8X* zI^{1b9X~1;{L6OjL_GSn^%_(!%QE5AgF+7oa?L39SbY^olw_i}Jd3wDS_fxZ0UoE< z1G|Azkwh3fFUea|v~UwK&h)33he+P(<5 zkmPzmqf>^+NsVMG@Lv4&T0%TgeBMx-$!VadSMeO(Id!7+lirxkQ9OJ3bgkRd zLbfKlv`h28jUWV$K`{;E`2Fh&ggMg4pd%NM_6U0yiSmJ+YP)bs=#I#EePGKAmHyUa zI*G)4>yEhv{|{!jEYfOptPHUMP8@fgjgynTQ$ROk(^aA(WH&aebYY&)tErq+b{>@W ztk(4ixL|OdqguM?t4M;g=9pi`-O7p9AyP2k#Qr+sda~y{Q;ou&#$99!{xyx(1@V7S z;~*xHzq?R)B${WVV6}&C0Y<0gn^th&MVVFv286P@$|a4KRY09zyN`T3cE5z6D)Arg z*|yyIj1@6y#m{4j7Jh72W{_mk$uM-t-Hk#f5#P`yUD%4UBx{uz{5Yv(`Khfe6++g3 zX9@U(h~7U4b6dqO2bKB#e^M=0p8X&~Npe)0NBic)!h1`+6smG<&E}3^w`Mmcif+bGce# zVoB`-)W~x*^^e=<>)GTlMq0uNaS-5wdqC5z>|MeK*XJV>LSj-Mc?$tN`phLoWVELb zL*9h{(IOyDcIh{H*DSkxp8t5xjP)dPyLbQ?%cg}eXO5etNQaExn0Rj6zh+7Xnp^osyZCizK!;@JWJdb~KaR!kOv7zK4M!y> z#5oXPs*dwR)fuYo2;_9UYYVYl{nc4@i;GgqxHB^k8Xk0J_-OV3O?1o4h&IJJlJ&`t zr^h8P)k-W@_^g*TvI(Ta+hI*O8R3MF5v!b=v9*RkWjn@>@*Iqblcbq~Wa#0!HayZM zA1?MuKy7|7Yov#b{YGj0!4|s{MSigO$Z)8*F~*k?|9F6n!cX~UkDGJnU&*YKQGVnM zQ^lYE3T32hmQep{0Es9}IZ~RQo#ftvN@U88ZO+PhgxNP%TjA9!>*w@4S|f3ZQvoeq zK(q2W0OCC!92~R&BCvkZA6B*5`v#}^nj_#deK;ai9?>=QL>U^}Rq$H($ZG_5OlKs+ zAh`SNq9ZD{C15YHOjFNfl9R)zLQNwf=53SgIkinTmn1k|8s}OM(;m$|pI!SM&5v~O zTK{J$ly;L5sc$z_npH>=nEcp~bwJO1d)OH9JXUxBtkkJMk>u6eRWlOKPa2hZP}uTA z*f-i54jGs6a(!qZ?pD)T%J9*tQSmWk4R`T&?*UWxW^SJPr&XhvgWiMZ;Ln2* zlh^C0MC7{7km~&=$(t3@26Y`NeG1D`)(xRon0^~%%dY8j;Id)*^=FfqUl;vS#)2kz zd^oN(w?}>vO!B#!tJAtt_y*5-{_=SZr7thxSv3!Psa}x4bQ%Se-A92;WojPi&^`sM zc+a0#SX!C4*Pu&31uUQdo=o}1OB>ndWo#45*Td(peNJ_0fkNbX=k-67->Ra6m-^3Q zC91!_1bCQSgob7DAh3r0y$1|=D3_-oxrd$A{MfcdPOideR9cF(0v5zq>-yE==`Sts z2@WZ#U-d60PNv4yhva0cD4CV;OwN7>DY}kXvcs1EE@Dwq-L`h1GbLT+=+ZbwK6-#p z=qB4$V4p28qnEco^c=a)|FoXGiI6#8CIpNkG178fQwv33W6Q0zYfSn;%q%jSIIX$t z{R)@&TT{$_@slk#*?OF%U@%@w#Y%)Ejh00|@>`m`)9@m-Qh7b9wbl#W9mP#7J=*Bt z6`xURlrs{8zC52Xiy40u97qtGfgH}TgwA;4yvcG)e|Zvq8Bm`bJ>1yYT9s50Gf5fy zU@&0!zn%8K1yQVXi?-`ZW*2C%T95~_6_^~&LGBz01Vh1hlhn*vPwo)S)6`RBg_mtG z87Tcm0&)2|0ZnGabW~Mk-)3t8a$oPsSpB**|)&T#*lRAynDCgrdFt4_sh27)2gEkXQTsJoFM$u4CVqxWywKQjfa%=t`*AZev~G zjF<1PmGAP5EJ5j&adG*H?qEnmPxQ1H!~F)^<*btOxuWoor$O}>21S+XG~fMi7DwhG z(w>A2oEps>QBEUO6Ud~y;`J=!EHxHgRs-h6zjJ(~i1?d9tMHw_97P!potHEjwzY%0 z`?JcBq4e?E(1!{c;qu3{1WhelzRjD@w^Jm(0N1```t+fH`#@6c{2x|nEz`KDcR`E0 zEKO}`*9*E^-__XNNG_?mT{!j^hfc(LfZ;~LQF_xgKj8U)MUTe5oc)TI(TJ!rPh|O3 zhI^nw2{Tw-m#x@5AJx{V8gx=E?6Ws$v3yPs zI#Bx$5O!Lh`uJChYcz^=$P~JqbwtoyQgiU1oobdo3nWF_jTkni=tC{rKmi|gB`B6r z+&H286^V6szsk@T|7)j|9|C#2_^!CCRv1}^0P@X`Y>5f3FD}6uq|=2>gzY=$*Fse$ zcR&j?eOUNmS?#+4d@j$Y=A_jy{@N9hX9&ld<&I*Z`Nc2VL6h{*TFQB+W4i5R9~+uj z$q>S5pT>TLWu=@P8&PI|hWmu2CwfoTMGg|x?H!UflbqQv`yY|at5LY+TX<=Km8}1$ zD|w88pBC&{B9x?00j=V6`wLI1We5j;>|ox=t0CvxC(vr=4-7dKTiyIFZ*_?Jznd}p z#gXfK&D_#G;X~5r@`k(Y&W z7_K52@0*Dt55EvRIGY5NNTLd+ojq$>uX{tb`b?aIYyslBB2#E}n0tzvFNG$32b%9x z8{M(3V_{>?%X*o8!5Vc3kvXpcgy+v*O(+j~NMZ9$MfN!pGfeODvj1ZX_671b{pz_d zWw-4BXlFVbrvd&^oFlPgl|i&KhwUaf$nzbMyqq?CjKE18lOwlZgx+#)TOA!34xKt~6H3&P6f#h~rnvQ&Mh{Q;ardf7c~UfcyLc?*i|ze2ZS zTV8rI3d{YZmN{!s`zW_t8E+>iF}k}YW%0hu=GI5LMB{DqtZ0mz_LU-z$;EpQ(VE_- zOvf6T2y_5ley-+eXX}Uyq3>UbkgJ1ANzTpYxX1mC`^W3Q46|l*^g|Yb@VE`w)Hw~^ zZy4Vd{K%uGJ_ybmJOi*>J;xf-?M*BDSmPRnccK!KeCP2-xO6TG$2=W*x<&JwPnzdb zRFg{Yy+oV%k*IYTg!8iQTIn!ZDDV*;G{Ocm-hak^BxwSiBpEO|;8o^SEbcJ!UQFIu zdyKV+bbhU3G`HX+HTPD?Rol`k_%vgRG_@Es&FcJTCY~ zxs7nwi=&kJ7U5kr`e+An3P&7LDh^SN$t{6%;|UWuB=afz--7!SIL8M|mV66wH>xg` zz6tLN6H9$GuQvqhu8O6})Yz3v89H0aseg+4cz7hH!9w!FrX9mv%6pRO>(mOtJg0Ql zJ>FJ_#5}c?-*u`aZ|R_HivY2T{{zA_Dfjy{X2E|yAEkE^e;yk=X3q9pMWl4>Sy&Q1 z3LcstsyACz>6aU%YvF8~^ZgqY>s{w@*zwQfz0ZIx84M``F`v7tAOp-UFfPOL0a?4I%{{a zBP+HVE0g2Jh)3r*b$T(^SbqGW>VRfMa^2-c) z>F24PDLLVz@d~d;kwtKP^ia(%zZ!q} zdf&9t27m-DDJUv#yR87(-3oAkM&!QC|ixw4B$H$xXXXh}NK+BNl&^}7qbY;c@#ic7lh z5I;htl0cxV$j4&76g=FL<^0tw876Rvdt1PH^EI?(n|pcKo+n$4!jdV>C#^B^KY9q? zo{Xnx>n{{A4`RvuVL2>$wuC5<&ybkH9&_LoZ&nHn3QPC}2?!Tr_L?thQ`EvURf@$% zB%O=FkUwpIbzddCODyV%xUH9I`MJ1=H`1#{@D{UF%KSxPxX-|v9A^A`e;tfAhqXjI zFW)D^rx^s#HnMjq8x&7VhQq&DPvb+=+AW)L+`ZB&-l+{_@RMz6311Q00gC!6-oEqz z;_F>^Vg^+~Cm%IOW%Cz!+nZhGyRyjm^{(}me4=f|U{=DSOjYJniJd~; zXXshnpe>Om+f8q{)Q%4N?e%Y)8Gm%(N#zxDhdIrs&jI~1Yd?bT@~7Xs zLZPbclT`awUCNLdiFGMpojP`wKmW1EI5S~^PG*+9S8NVEJQHy&dJW9Z+5V<^KGeF6 zMPCv`Q$l;kF4J{B-msPxVYFG9NwiUEcCb*X+5VH7FPF1ln zJaF)aKUMLYmI9ENMMEle25)6kDUXH9l~k#K*iU|+k6X*!2* zqU*{HkG~Gbi=wUfGGZqg7FqLfF86z9zncADw9%A@EfY_-^A#68{%tCw2`|6WExGVm zJe>#6Q&aq6Vv8oQ2+!Zq#>;i@iszY~2{VfqlHxXqm>3m4{!{SK8Jgw(0IX%^fIey{ zhsdpXkyS;!w5)!)c!L#s3T&|Cc>+8*te~Ky-ZT~MYMY!zlXJp3nz1iFtEF>`W81#M zjO#th(F$UI8ix0k!j)lsEbP#&WPnA3WlM*-t7uy0_qjJW^Rn7K_0-xe8HPejDF)4a za)H{2hTu)q2Nhzy%bawp@J|IPa{H6LAK8s23NgueACW!67aj=zfS`E^i(3sYFh3a> zTCRxFjFFs9daZ_=%7LMDn7SrNSbc3Yp2jQxJ9RByIH|XivaCF>%#O7gYF990xTm{5 zv+kqtTZyK|k%^_G-LWtQDkQ*3XSbj=5*03*Nd@+}^aUwS$w&cxQc6xPUKI?-Uj-cmCVX7aOK8%*iJ> z^pLBM5$w!=?}GN^N8|3uism*&5sSkJl_4n+D#Pqu$@l}7SWVkXY+30ynO zY4IM_A?mVRM0>R0RhhJV`UPTaLKhy=w56gix*6^2hw|Pa4u~&@U6zhNLQ$~KT`Z_3^?MZX%CQP+W1MINwJ!S#a#l>hM|uC2Do z95*-go2yyJfk%o`RjyPLX38;qO?S$d;83R1B zjq0xbK!vs)kjGM+%OuN3tftL;YY}fA11=y73A+?|En z&Xh#-lQ$5g7vl?kNY~`^*CF$OWR6m)yc|IG1e0iB#8by z>he9QzQxA^%OSfwWN|phh7UuroW+pq@SgFM9EGHx(p9Yy7Lk{Pp%{{5`!$!G&)D*e(iY$X6@Po%i86EB2d7b>Gert{NI*V~FGdG8eBNn<6EN6r#xowh6Kz7}7Kh zF&jD>`%E!$4!*uZ&u_oXeb>$}GY|9pXNq{&|1L^}l%h+Is6_HfLqo+Ydx}$d4VN-7 zE>|fc7Eq})|0kCL{NzplGWyPnIF#%BWN1sj>zYx5QkULnFZP7(4<8L5aVc-!z>kL1 zPHSjA<6e%~txAlo(pQX5UOg*p3Ax_y+6 zru=kHF40`H#~2Q|LG?`n?8ZD#!?}krZL&&f2n@_|GX7EU<`~It-^huIJq3FZ>>^!cH|O?-&R??KL&4u$^8vi;rGn9^_79})Uoq|@05-9q!9T~N;NK?9BKT6p`L#fd)L@XTZCqKRAF zDO}!LFf7Fjboy!G{CU4iSz|$W@WrGC++qyhTNWMZ@=M{hd@^0ZX^IFn)qM)dc zc0=>`H_0Deo@0kp!uCB}IXnLFdKC-)3&r;6OfHe^Fmf0Nm~GN6fRST6w2|A{S4tFs z4dOrKeA#CYW9EhFuDjD?Qbi5Q2xZI0wNQAB@Fx|dWgEMiqmm88Bz>9TsSJYdo_q2Q zQks$p?C0l~(x1ND`*}^>A898E7Bw_^8-=iCqp#<1y=x{!1hs1n-e8Lv)&qE5mU4n9 z>{Y|s%x$rJHu|GMZB1HN*^G3|n)o|lc-ZtN zHg9{{eq4LSZhiDRkf)dDzNTuBC!aWMQ;vPyTwW?YP+nm1PDK3y*T~Sxw4Hw zx;z&FW+;WZ+)gzWzO47{3kH?t@%d!&i0Q*tl4WxiypKu@DG;l}mb=PypY1?bUyYFx zPxWfGtZMK#&gL^Wt|mK7|-HcBB_;HztEt5|q2P`XFYkcnu|=WTeFP-CX0a z^B>_)g4BS}$3c)<^!l6F&B}&@_xybH{kYieI3q;+w2v4|NYq6f1?He;L%{JCkfHB5 zXU{d4IWHM7RnSDFPK_npBdjihh0(HOj;Ay5@p89!)?X2_ZvH1(!Z8XJrfmzMd+K~$ zseTeP$80Dimpu>3?{t^bDfGsE%~-uyFc<=@)=;vxE8euu3w zjhh}CKU(VQhfrs%(MmZs@J}b_R&XN-z6e1F&2rEXRgJ69?E{k6CWnl8Mvp9hYe^r>CwfCZ3p0rEe*R&=~RBFuKY zSONs)xTCtmGtOHKNjS_G@pPiiwt_-E+G2c%mJn75+G&~CXk8hl3B3F`_e)u=o6*2vXV+HG$9Go^$mN@pt}=nqu79|pzYMy zsi;WRP7{C6A%79JX^D&i`Khure*gIBR{VHUw&OL}^4J3re6wPymA&sO?nD3*UG>GS zPt~?Zs{BrnE2?ZMS!(`I4KZAmZ5AF{W}h7#X9k(|y4*+^bres7u^A1xC&<(qf~BEi zr_9id6Lnq&x6tjl96c$^fIR>PF>Hx=3oXH?vxHsRV%@^GDmHB>^VeaC|Ddlfr>wJa zOVwlIk&5a&Ry*G(h%WbBjb1Ei`dWw;6PIo&N|})_zE{#Z{m(|L&wQ%teAUfVr-Hn; zCfiKXOpjZCEEeGD9R1cK5~L<1eQG^`5VhG*qoo;<9uPdtjp-wF8Kn_V`lBU?dtzMTA6>3=4asgH=Y3gum zD~9#7`H?q>rjdDmc~`CG5KxRLIbxAvy(Gmf01~Jx`_Pcx!&~lmz@FzW@BG0)dzHgP zeiYDWtRL-nRtK}2W0joT)~41k%H8rRw1+A}(9*zZ`W?p_iLO)`o}js*?hAmG+9qG{ zmsmWCP4j(ibSY8v8-|yq7cE%7(!OYhY~W%c*rYc!8)9f&jOBv^+y6k*Aj7Dq=GGI= z(cHtOYSDwla$?i7(oAQt%uHdQPoF;ZKU_w!BVqn`E%&?rw^bVtHFv6?`rCBr>d|NL zXVV5IcshLj#MrwXn`sB5$6~SqF;X~WZJ7dt%7*Q{_LYob#od+UX}g&Wjq_%EQ7ki@ zK`j5+FvPRswu$!s!+bWMJ|^2)bwb!tNfUw1ygkW0T9-B3sUT5tBHP)tP~{oo_V+M< zaa~WWad;X!&9;+*ZPh7rYGoK!`?{GG3zp{7%|*rRzi_r*0*XpstFXy>Q+oWNJm$q= z>&wjDrlExOuU+afS z&cmaVL`S%W{Wd$2{-j0-!_P}BkBy=e4l8*PyAeR2*c zgucr3J*z7S=Z}F=R7&KtEZkMeUReik`&)ty?A;sUU|bp5dYMM|&Q*Ih`~R#zOMb-< z+c%`6`{7)6wR8%%dGbuQN#kZMKo?5{l#Bgkkd0M^IMdu8)HBkkxu(l{F1#L*U5)*3 zl6t`Xx?6rkc?7nAmpWZ2P=TLg;a{xt@+iNbe^-(6dh~sprVBr87&_o}k~JmG3i1Jn zYHvk>T$I-B?h+}`RdNrp{^2CqlDMdNCiXO2SRwjU(>Z}xNpz*T4z|bHF9y>z>=*K+ z?K-}QAR-+$xhl9;7J8{scYBaQc6?00+I0n-?7t{!qg;%RI$#OH#(_JL>yDXf{+fNN zlZ3{~SL-uZLR2p|84=9aJC>g_aF&~9K1K9-?_RSaZ>asNb{j0J$Q;{r$QeeT{k`(r zDVnIrPuhkZ!;S?l;v!l1g_%2#P%Uk=+w}i|dswYutwFcuE5iIJogzl2n!Amj@B;@p z?k6flSV8=5dnJCCWA?Sjj&}^zHi}Ep?+=nmah3@FY4jEz*zK)jC#DImPch*R9Yr7p;({5H=$k)bX zijvPYa;nyaXiId+584_t1g!U9wK&ku||7J?terc^J1xth3H=#VIgXL)#Ge> z_anF62dP>O@b5|JBhqE}`__w)>Ca27!GfZO0XgyBmu)CwWjUq4bV?WlqlLlqJ6Xg9 z@+8k!W|$ltd7>c6pRYlAU(XBPGN)D&d|Njb`}UlzkzM_%FZ*`3Pz-l_It+j@Z8#)u zZ1-sL{$h^R9;4`>%z=y;10~(zIWZZ4|4i9sa9H+<*#hUK^$D|bp~2ckD$Qc42jGj& za#AsdTXm#QPdtW`pB3OccrIQD9YhzP{v78P`MC%cTyM45%~gx6k1M!rIDnCCZ-4X0 zxf>q;z(RvP)EA358N;g)gyQ-+f>*9!HPBD=cd)(zRp zmHoFzEmqDmFqaWEba;7lVYD1k{`(}4WxHw`U0W&jq0A6W7bR*#psQ!^Wyq3W1& z)M`nhwNE4$c@CVVf2&i-ku+YFQ7Rz`YgSmBBjoc_hM*eO2B+3jZg=Jv{u#1c!Uvs(7mL88!2kTtK2rJvX&8p$1)? z@0)Jr-%@%S$1Uk%v(eaa(5e$udjm5$PW+n!R=`eMzQx&+ezMDS&z?TK6VjQgMf!43 z5u-IgF(@AUzrl=I8cgv)957!kr?oi45^_~1hkWH6UWHfocRk^)re_}(YmSeQ@(kRFdT=n+8{F|VI zEYfMMZ?_-(y!4KX@{?f!G@V;*`tYyxB%9G>Wmb!#2j90@4m9rN>wf7H8=%@Jklqk4 zRIcqc&YHoW=^R}>3?3~zPwJFiWMa2oXZYuGYw+7RNvX_}eLlrG{enJf2mWr*au}y5 zj@+wEdz|D; z-wj{;dHy^Ra2n#O=-KC2Z%Z^v|Ea3g#Dxwnl(dg;t?IoDt<|NSA6Y^iC$6ROnq=jF z$EkIHH=YVb(wv3hlbwP%XC5{k0@HIC6+4CTH3*mV?@UGQnf`~5{r`Gj&o3=bB;9=U z(q8PO?hijJQ2;rnuFV%b)2WRr=j@1qDub*nbM`1)>@-5<>uXA3* z7`N0JKB9X^*DJqeKK5Zm75>=_rIMo>QY`Fq6s=XJW=1PFNQa-8nFk!t-PTU?^+%he z@FFu$j$H^D*qbTB?|zNz(f0UhUCpB*E*}E)wiPB@Ui)Z`3{saR0;hkJ$G?e;lC_fz z_W`wxeDwvU=md-J1e`}nZ`>fo=b@%-X>8z3UD_gR#5Me4l%Y$Da1kQvNG%we`K`RGSH#wTM;L9pb7`wRIbB*o z-R0!FBf~H;t--5JwZVXJA~qO@^q0^ZRLb}iAKk~?U&M3)H!O3t9&3xi8d{|E`EM&s zx!0;IfY6}hKVYryI|n*MN6&hCC0{0%6rxKr1l(lzx%emXs%0 z51QPFB>uy9wpLi_Q_HFKtiWuX`-mQC6OCqTKQ;@dc%OViXPeqD-gLfDr`#n21{>n3wU1 zS(o56H{h)A74vltY6O}+w|0*#G{AmEb68Up0vvJw0g|BUzJYTqs%-2T33jTY? z7cPWgfQnit-YUn~2CZQi^AbKWf%-PqwQAjtF8KV%cRzBb>c2xtgV??XEnAA7Qwz}6 z8gX==dUB(4w)px3cz3xIH4w2TuUO>;-S^%@Q*|W2LBB+4?Zjn%+x)M2d_q* zW29BLAFvd47#T$9474mmIey9@9|6yC#u@dBc(r3h5#u^j>sxLtwZ=wKwJQqvaBTd~ z6@mIgoKRZ3P0HL`X!O$0{wF<+ri$+y$nvLm+5PUXmzKy)CUTyAZJhq|OkwdqW3UT) zM^(1|bhMd#v?Jr05);#Zg@JLfGTam_7NE{LU3F9TD}H46W7IGCq9-`Y>K@6nK!rHlC@ zPHn|~d|QF*Y3k<{6!u33TDyS!KWkXp@LGs;!K$m+@LFW0mhk2-C@<>vwZGGQOR`~O z=x-i$3SGC4!dlB}AnyxC7ztSM5YDykyJv=ebDg=C70O^?fKEiR$VXekDaAOWyb+16 zIrM>cOvdWp{_4hIa70zy4BI$xGe+-k>Zu&nVl?!LNPNPA=PP5Gki~Fi(GSwvl3S!~ zZ}3I?X^n6;%Is2GKZ$FSrH4bKDWEF6Ehh;143f7+T3#YyBHLeSX~kr z=8-%#JO>nfM%&s$Q-BCZ;OyG>)s_1qkP}?9U=pA|g4TWZSMfp1wnSA`J7r(hPHoZT zNwLtFoO!s`5*7%%DX zLFt76l~qZ1%L^AC|Lp{X{BRH?MYGnvp6m0zGPAe$OmkUYC=^|Y#c9~h5J_%H}sAE=$fPN1} zn|Zo@l7zGo+Tr{28R4C$9#%$BnSH)vMdKtGAL$ zkHR)v?iOfBk1FdP<)e5ln_o*vU)3(Tux1XGm!+TQ<6m!eR=aMi#CVfhuf5bVOFM?w zJL|WoN{!5x7nNn**=q=5Ui!ijzXI1S27drB_1YD#DAs9}I1U>1e{7Ps53*U)xh=VV zqxxBC+f5O!kKEkxL+qb#I^k5WL3q!^NME5WF6{D0Y7= zMtcpc0UW9Tej21}>D~(^okKK{0IONM{BX`mMurYtMDmI@K}0#G4)|N|r&F5`z<@$gM9YX5{q} z4qnOnY#(;9b$c~zI|`Y}AZub+$atAFdgybg`}*$q7!;6j%Pf6 zvyEH^q=>^n`3hMLA|pI?}0 zyE4XX)isr-oX=+{Iuf+w=NqvXv43+u*kFU{nub)a+HlXQ8zvB@w2(Ch+YlstwtiMr zBXb9z=!J~B_-GYI<-J7CRtG@GtKv6=f_i6IYA|3wP`@8T#@bG&^ogwe_2rR=fOqTh zAAX&UsAp9;W4JMv+0acjcA=PgE*F-ou{=$zTw55UuK&ddDmV1iEL;1d-TgJOM_4Y!*G8QA zy^-5W^7Mx`tfkEQ>x^`kpg>A?Ai2wXEmXJt}z0AStEyABK37^9DVwIF5N2`i5^~rDgR6 z?$$<#5+Mo+kmXo$mZJ_kdlOS%wd+#mK7@_I~LOoQd^64s`4>66sI zWSa5KCl#d6gYPeWlS>aKzHuam{PN=9T>#scqzn+3j2>Tt`88=<;TqJ`a+%9Qmz{vW z#q4PH_prpm)grR2K&jg3FG}doSq1>$S2NvfWaa+Y$LCgQBSk|aEo&1{?glU%XdQvH zMfuwwDF%mEa?7SGj1Em?6!K|~9z;eN?+ezAmE!TlH*PiD2g6Ea<9mqfuhRJGUW655 zCgF+UP>K~5ecK;wM5lA){5d=J0+A(W4ro~ER^9Pt>)SPGnt6go=OY5ax|cpkU&wR0 z?}HbIm?~A?|8~9ZPn7TL_qKs)TrME;lLEd`l=>deO}*?8!XBsleX91Z<#zIGf%xFv z=ItOob(_U>(r*{izX}CZ(7tPo#s0Po3>Uzsy|!uimri4!qu+`ee`f}ThR2@0e{U}9 z(6-+gl{vto40mYycJ(8k(XbihPj9IHm}ykIeQ0+eqh!7{8y2m$Xgt_!tF0+u+`o-d z{Yy6=H(kS?9mD^YFBH<0@OCX!Wb#;8M&qGA5_MS!aM_&-hz>^4D(^mgthRheU*!FP zxLuLzm9Pl+_s{q$Z6N4$0tW^x!IPgcbJ`8+0fj9QV`$Pf%5(i)%l+^=C8FAwDCDEk z*GyjAa%Z*l!V(PUpxP0*jigCZKuA!!+dJ3NX+XVh+V?|P!`XUyTeI(*u*95=AMjK$ zDfa{UaIJ3GZqfs=t~wTRrF6>|6%XV zHs)UnhGm0f`b8*inqZ5~y zUn=V{?Z+1hyMqP(5W%76L33Y*2`^*tbo}SQ^7ukaw+9}a{tpbwKHygr{XkV}qV_rL z;c4$#CmLe718XMwqMMs(;OkD^QQZHk{6=r@*)C(98{yLZx9(E)&e+ zj$>}&PQ=6Of}iGvnNvZ(?rQx3S%-1N1enmrom^yw(@%y{!nLBO=Mi zqGQ5iRtYX}KHM&oUKp6v$I#!5FQDaGYW3rTZnveYsR1cvA1L|h)wm$!VEpg$P2O8l zA{I5^AL4fJG`PoveyHTWM0%jx4pFJ|=qn%uMaD5_xgt(<2}@$PSKQ!HZ|EM-YM&KY zLd!u+72=p(@_oB%Z(P!f4NaI}iUou2OvOWvZ|+$xh)HUdxcP9htW%7T*iyD0L84V>yKoWw^K1 z(XPI>i<2GYl}E5%4;}5T5~XOk+sfmegi5@X!-cR8*^&!*h1eZ#CEHU6R=AOD-y`a5rzM(b@AT8y{F_8R544TJQPsBIq3U zEvDx7fGx!T44g#RAJPpWdm>Moa1xW7OPUf_1@9`z%`2R{Vz9_OdfCA=FN;y`z z*+~8KK`Ve(hJj!*qJm&r2VI zdqXVX#G!H*r?f4*<}x0*u_V`pcken}QOOOW{>72>M_Dp{&8%}gbw`1cqHW~t|0p^O zx2D=S3@a%ppiln|vyGe&m_2-5H&F={Y6hrnnAM)!C819n~K z+IG%)-}m=C_kCQ#IFnTME{KKp29e&`Skkm-mgx~JO2IHGX7>sl+{QT502kk@Vn(Y- z1Z6ym!(=RQ4i6Mz7T`<$#36$J-%y3nB+E8KZ$(k)AZ%PHbMlcAr=%Q+!?QV`UzhFI zk^#m|PB*(G!nx1+*JdbjlXl*|GvcSQAtcvL#)P$u(?)VsG~&2hh8U{i zA0&MkNQa{CfFQOvQrj{{dzoPs|)3~H(yYB{vgnb~WJCBhL$5%H8%$>6b z+w!MLWp+%fXYtSc_nSl6dzCDjq8&BVex7C+_ER{t5)R8?YK1TT^T&4>04=0s0yhJj z#@W5)m7!>=e|T{bCv~fu3Dvsy=EL^xL4zl-zzsN$acl62T|DWQf!>^cxYG&Mtn735 zEAuhsF`pUuO+8O@c0IFP>a1tQlTeA)zRnUC<$#IoYH?Ea#CPmJ-t~2fk=1Y#;9NwC zr&q!a9Dw!O{v*Chsj=uK3WDH2^=$!o%2~-yL?*EgC=%I%{Yk`kp8|lR*?(hSZ zz`3N?^p(vLA8GQ~Vz|XP*aaS?wr~YJ*5n?6$w!(EC8*^G94NnH&0!`d5Y@e7@v-L*VjvWK-AZv6`63@G+IuH5{( z877_j zYHJjIzYxMX^vyK|urvaj6po6k(E8|lgwGwo(aiiSa+Sp&2^v0Tl#&d|JkLabJy~|; zf7t1;;g4IS=EYR$a7tGwd8)U*cBK-%?$>z&iK6S!AK{P2Nv(_DOd=C-cAlkf!0%$R z@EP5zfZ%QGL~Y#M@*G-$z@+6m2nS_a)`V-Zpqi`x!?pzzSU*or3Vbi&>*hxLu^+|q zM^N^sR!8e2&vY(}?0WgjYxFSh>~%h~G0|c!>>?Db*Y_l|scLgHySae*wEuNKg?-LM z6*f$2bh56lRJA`^+gI?aD$x@|Q-7TwmQ|oN8Sc&iEs}dX--Fb_*%hI{ z=X0wcL@A5ju8RZtUV|pL*GwHo8e|Nq21^;;l z5e|Iu;_(+INatDVKOQ+O!I;!*&xuTedmm*;R~Sri7u(u0#b1sGed_Q6e6(l%IeGVW z!f#Epw6say*NQB;_dbRKIOh`hB|RU5*Y@<5%(f&RgyExH3OkAG9doGr8)DswDC$8E z*~wzni5oAy+CyvQN|DDp0UC}Z#d(!qgfj(h5<|aVXjz(EHPBT>Ah*7hwfCIM)=Ba6 zfDhRse&a)}d)nPm;`hLPW7I75eL#?k+>YdsJB@s-yO1A)!%gYDMV0Yb zhq^t9LvX$>DFmZdR{%~PUPuzU!5;WrOd9XplNt~I60~B?NFO(_G4Hfelvf=}9A>QW z&d36I__sRB8NEAvp+k2n5r-?&wSZ1PsCvfKRQj~h^RJ#~(kgwJ9{OdMrkE@yLu$t1 zy5#C@_3KYXUVQ^O13A{4q!iNt$mZ@7DGc`JwR&nABkMGfG4whCV9vjQwk%|6@2tiF zicF|x)!T6cm}DWqgx$~Z<3sWTV0{LiU4SdS`|E5vS{n4i%e)IvhNb3zyhbE8;6?d| z@Z&8*JS0%|VxPwT#0QAsI$4}Zc70w!>|EA!Q{Os$9isR4Qe zbvFPlnbji^K<1Y>5}eo%Ry7mn-P=aE{$>su4IJ!BC1n1)gP8sLbROy*?$0Hf;J95x zoOpJe>miw5jL^%8_WsY)-1y-sD<07nwf-Ma>j3V|uI%u?yZXY1Pc)~A2#;~2b3x?u zczE|u00--P3y1?cbuIZ$IPE201#WyxMBl2c&ONbmBF)U%d2aSyv#0y(5=xBudB#Nf z$7(!mv($50KG_eylb@;CX^y8g79JgK@h~8;Ij+P`N_5zh(*%p=$S^*T2P@VwF@E{4 zP^INWpg3rum8_|2an9AZuhk?vu*2EME;KH2<7qs>j#xY{N0uG5;ux?QSp(kA3zfGH z07GZ0dns#GH*zQ;ulwNjcnz2b`!#ll#Yy4-mI2oD^50KrCo6}8F85V!2lZFEQWF*v z@6_bq`O9KP3+BHt{fUIbb)e<$I(Dcf)ly7oW{6q4;jtb<0NDomD`LwQhnwIwBPY$2 zxM66c+gBc`;iDqIdz_cEN&SM2I5FjI@RkJ9|4&Kwr|T|Y)8{V^)}_h=!s5PoYi9e{ z*A5rohMR!}az2T-eC?@{0h*IYcNAF}6A*8Utu%OYz3!Ea6J(CDJf(>PHM@ROXfXBl z79y!R4{cQHJPLR&rZuv-<6ap`0qqSOsa-lq#F58X28UqP?dvelUeXY}Z;m#1l0WtO zWXz&{j|X>1=N;1=dbBIuF>Ci!l3Tjj&i>~2>;i?xtSI`hvn;W+qLcYvnLZbpbnc>x zekaXI(=7PXOqA!hjM%4|6mLcgPo1yen|T?u_~J}tW@}DXp$+WSHO{CV07e#$uE$Pb9DLcFQ!1OMqk zJCUXdheoBmzH*_QDLhY4YHg+Cz;o8FLyRvQnOOE!5nZrXW%lne1JDohcjPv-$ZAU3PbDW7&+I zu4NVFI z&v2ivQ-y)v^hhY(E+w&XZM9q}_>)Q{;R2x1M#sLYT~$(xf-g4Wc&dJToE>s)SkGv| zE@Gj{BO49i!%uujAfF!Ym zKn=ORHO^4x&(M2$djg;J!(DB;sD!v%=monO42v8%NOZW1Qh)MZ`^u`pE2-wb3sVbg z1z1wTTe5Rhe^OqHd2m?jhOu{+q-Lh^Mv5(_BMlz)BAHirF`n35^6;tkZ0`+@cSb=| z`ngEj@z`zyQO7pRVoBPcf2dQZ^I%uLN&8X$ruOYhQP`zytRh)(;2~vo&zp#qyI>2P zn64G2w~~tn>>+79a=piU1-vpR(}$Da###|4thOwD#Sjp1e|MeV+*y=-)!Gk#_ z-?Z%6%lLe$Cafs4p~SnYPA{rKXXW8jdV$wqF9<)qe-}nqrg@R>i<-MKn=~CCDGgs^ zqx(uw?dLwufPYX9O<>?3f&^Yqw1m;Kgwef7;F18PuEnBuG7s@VLka75aKi?{K+<~O z8$THb!5#4u#4odT8_xg>e+z|7&Q9jIMSKpPeaPf(%TSRft31D4cWrTCuF!$l3TWcAL((NJLF z*4E5!G>V9c|DF`B$yCHVWC`FalJEb~8jq0=_ZL**8IRdMpXll5`l@Ni#>YOXS^mgj zsm8o$J9+~Opg8S}9V*%?s)Srg_oxR9BP{=XDXR+Rf3sI1>mh`*-l?kjC^DE_>B!H; z84(T7d#U*tDywN_a~Lri%(^USjt;&1XH^b!l{#7I6kNrGL#6e-0iyFG6r;(9q9dP& z)_ze{jIP)fGh`c6Mp<|4q7(Dahx;4nh%36YfDY%3^R4T$rTNYcW&G9oZo->)#>Jsq zQ7@)D?#&M&GkxNf!d~Rh&%?ZO{%aqO*t>Zaj!DIaqWy>xKCh-+F|%0Y0l9r&+tyX8rbM46dAPTHz9G`wfbpXo>LOZy=S#10&T%(* zbwFzA3AJ%?vS&U1eh4SP`|Q~$+@f`tyVw~`-=XTJ1AP4WaO3N)?Aw`AABInbhpaUI zO0`KLXBVjU{uMOS%Cni z>@N=R6{x_BITx1}2qFL;4}uJWSAPU}k|b^?0TRopmA9jyE-ij!BKXiba*WUEWnKNf z?l0L9xbown!$Eo=hQdPdinFGIz(^)D0_s)3JU$Eqzh#cJH#bqAI-UD*a9Yw}9`46c zljFdibDJwGAcreQ-Auy8GUT1q-ErJc<+pnl@Gbc-0KNIvG#%RZs%F-CCXTIEI8s$U z0m~ruh1Q+^G-TF&NsSzB8K9b(a{HTAS_^*@3An9N0m1HX-K34$4bqu|!2LM2x z_=8A}F$4V{FV);$Y=woCK4;e45$7qXC1Htl<7sDgy?TZaBhaK=#p=Z>;ex^0bt+m^ z`uZ?m8I|5-t|*^F(Ck|WqAN7GE^RjDi^;Y7ezuRqujT4oa;rZlOMdL;poD$v1ORCl zfC(q~&syKNbjP~^pzh9__U8>?9nS_<#}C;}D<%^gkwv7}4Ry#vXf?NKw5WB zK#%w9hs0UY^CG&%y!L|H+;JW+5R6bR}aCfQNc90JhZZJ#?Pucp>#ydWAeLD-_ zQKDnd(u_!d)w^EWDMrJ0jHxqzT8h21@@A|(aiV5wy2ymQZtI5U9la03PCpW6lG?L> zBSvIuFoYCL<`;jzrFITga2+xkI>_OqjTRJs*&K(#SprBcbw&9cHT~IFKJV&4jnTYk zl{%*zw-1{@JlYwY%zVYlQXD!d&UkY(kYOo+6>kn{}s>v?m}fn>z=|gQj_!f zS3!8EZNc!?E3@geB6e0xsWF^zQ zKGc=|G1VFgo==P$f_+=3{7X^vlzOYC0m>KgH>X0{jMYcn%qL2t^lyv00YrL~L3uLu zxl7b@KD^J5sQ6yZvZt*JmfO!A~1Rj z)Wv>idsBJel&cxz zEVv)V-d-shi$|YwRXu=`@oZKiBI#XxxPLx>{YVJV7n zpV`P2fonPF9Ml(wtQ?F)N`m8=QR+W= zxs%OxJ-tLSOUEY6$VMH~hZJ+LJdO;ExQ6pb%wAF7jxklT@5GgMm*c4dbbolMXnjJF z?!YC~am$|Kxi08EuKYj?o*dc{8{i|rEP_hczIOUu=UNp|pP?*@IX=9lU<}ds&BM4) z)o5fK|{iMd>@@|dnIM%2%$h9^%5aD)b0z< z$?t3SWa-pO}VaR(4li`H4r!o78c0*dTK)dh~jAhPNc$3`Z% zy8J!oDYF8_F1o)8>b)EvDz+*;mDe}mD$T49h(Ar{FkhSTUg4>r#Cj+y-swoEpZaWh+& z$LrZ$XVq@Y6`)vBh9d`@$TV3ceEBbkx;9Bk4#RLC4vBP;VRxO(aWN&-=-5^b)>!n{ zA>qgf_*NRE<=30Y5^XF;$$DD$-?t_8Lwkb4?P)_{3W@$=UEe#8@33sy)s|p#U8Ki< z*5sR5!!#GUZM-mFi&OYNw#e&nPM{X6f7dSGdNEN(WT_YX#n$#AM~$JuO+A8RsNw}R z#cSRo*T%WsG6AIWQOd;8(3~B89{&)Qof=LCxORi$9E2t!FK-YS}WYd!Kn>O0}-J;*ID9I zhyHWWD}ymR@!C&MiE8wu#WU1#@$Xj-?^euafq}*%K&)6kz&h;(fD0q-#!`g-i@O}Q z4^B+BS7?-lK5cI6+m6&T&FrMRZF{A*jqIt&jkEoylR`ds<-F@Sc>lSKTJ{C zUbb{v()bi>uMPZ`nQkj_E@rLl^r|!GU%RMc)OEu(I(^|5bUg`83+`x9*E2iz12Jvb zmI@=)x(_#HZW?6vutrx{I<9K!J+3Q!)5rO$6d9F%JK4|^*uKiz5g6-=UAPhBAP5*R z@(rIN`C`Ks@sf%r4H8eXr)b?RZa~kpm*g`#k$*bQJx5_=4J3FvuS!TWnAJHxz^~`> zY`W|~rkd}WG#V#}#&EY@`=}2rd}J-cz-O)GTvVd;()eVdBCdboZ5EZ*$Va2=2K%o> zJ^L?$ZIFw(UmETymSYlUGtRCdF8YEC@z~=vx7V%)rTpRF9wmS1gxY%V`GoQsiJJJM zBJwb81=pLJ(vuX>zzgPC_Th^&Y1}Vxbjwi257S|rnS@Yyo>*zW-l{;HnFfO`9aRjf z;3Q|}ef0d9a$SLQ?CtIa{C*!!c;DA`N#0y-(RJT3`dF+=HX^&E!k^Yl;+NNiM!f67 zG{$vPi&Q7w0< z(7~_{qobF7nBKX?%n!{6Eu75gWQDhAX()qw-{C&hj8@k)i>8;*GI2(LQ$`87zRs9H zsP=pX$K0De8ni49)?Dthqy?;IG86aiXwkH~xBK#q}Dx+nQcw9B>)*mqsN zAsOhQ*woxyc;lj5K$PG;cBu4$tUQMEV?wB*@BZ8m0h)jLnbv;wpL6%=_()^e3Xo!}=oRVlPdW^qZmv}X~29M7{l$|cq4P9x=<@j4Vd2$-} zT0KHg@JeRU?6?eCcmhA8ntw1-lo^n}2#!`@zAEPBU8xP{C`XEBX@}t|xTPS~va4`! zeim@rrrpZZ*bnsT)M$V5iVHnCF@AxmgUU~M-Dw_lU;A*@)wxF={D*v{^J8DE%qzlZ zP1xg|A5xP@adI|CoiGlTd8UXlL3By!Rs^SBA>BRXp)F`PZr|X-=abPv0!pUzygp%c zukj5y(rFoEFU@lv7d?s;>)=~d>-6lZ3?WFqq zOIwo=AykzPow)wmc;;e3N5Ii8m#0d*jS2k}fl+?1ZlXPJ2r-k-w3k(YEmAK2Z5Y)E zFqcqu!s@@`A2gh|VO>DtPoC~@vY_pt9aZkCyQ4;}0#}@v(fbzCaPhX=-;O2Z@RH*I z;p6JdAx0Ch#f1l=hus55XZIWa-W!?oa-Zre`3$25=5{hASWn=B_^5(5Vx*|YvaZ_9 zV!|fiu@32;(}PAXaWak^+?T}p%i=8{N&c&A^WW2-twW?IM?q%zN`>_Plx3Om3ZKY6 zt8G@3{EAb>NY_;$S^Lgb_qTn_!GrP)>vL*dgSj3^b{+d|-<}=~#Z^Ilv22|wWu5n{ z`Xv&2j#sSGy$quj76QfSslz5iH>h1Lo617dAFkn|9xMOy#A`4cbXbe2xfH`|g!l1# zjOePTr5g@bpB70gB@(L(h=$8Iik;H;%qJG;fqiaN3qL&!)6w)w4N<|b9U0M5CRI~e z3c9A0`+Bl25G1nGzher#87&i|mS+VD(i(TZ(eF++Dkw_B1G zp;kE0>Ls_Vt{1eJL$aWkHJ?>=6#gk%S&g;YnqB766p+9kEtjo#e49Z&;Q<=O!iFQ# zYDT5hUTt>inT7f6j68~M0WjfA{lDZ3(hoC&LJ^Ab{4HjlQ{@rb=^2|@6`U07B{I`& z=Gb6ZLNL^K$A%E|(4Z;IS0KVrSus6x&Wa3YMDitTUG>**qNrxdRFVT?xL!8(C1mQS z$~`3P^@_C$D8W1O<;EN&ytDB5kwphaF%jk zP9v{UigI%nCnJiQ{PU$N0I2EnWLdys3h;L1zc0K{H967Oq2s{(;3KGm6vR-7uhfdw zRcZ(&#*TI^80YW8`iK=rI=*>RBXFoSG4fL5X*yE*k=DxQM#?~p zK+OTARx}8iQg2`JIqz|5gtXZdOofrroc(sB4dau`I|Tm?-;N2p2BrZkJ0V5-KiC{& z3akjwhAY|t>*h5Ed2gp*gFIoHNDSL^16xZ(Xg!>we7$)G&|T(yR9Oa-VLit)=NMNn z&PhUc3gHJu9jJYH*IKV8j@pPYZ6B?Ut$d_B!(Hli2D7& zFJ@<7yIJd^c&uDOMv1pc#x^`?3pwQmTij?FNpI~UdZ)*ZWL-HDfG(zMLP#*o#Pg=mo?EkfC1-a)sKjKo@9A0>jjLWJ3tW z*NNuWG<&nPNFfoCX6VTh=rgP0Q?*G`m+T}GN>6j^4&rS)rszCK4-T3TRq5Gi)Wva~ zTE82#!rfpFa|~MOCs`%gOyrY?oO*I-jmL}Ci+EiO(r}G=7Q#L{-jsoy-U-@|D zQs!!Wu*OWqH@pqEC-=tLE^;(B1BXVX;zKo<{lh^?cWD z0ESiIYV=WTclcc@73T-MwsvZm=a5p>OGf_@5t=v`8AZFLPn0Gz%yL}*33qQmlv$p42;pUjC5~Lm0_BL)@?*)dyKvQ{icQZqehC^Uvvo z2_e4A=1PwA((0v&uwS)6Z(4f(X;p$ZVmWIryB!3tBZTjEckBjB2u3Z3sz^?EN=$z? zRA>)q6jD!HC2go)Ja&}LMM+4V8Cve4&7_CLwy-3OaMKK6IHi=O>V@BRCFPfUoHuaA z8(;<{>_Ci#koA+I^K*@xlCqkdcSBSE5G+Jb=^R|CBlN*~AV~swlQZMmH{IaENBiXG zLT6r3n!L$(;`22y_PR;1csDXY172pPg3~glBm6CzWV66UrV?2n`RulM-FUFOph>T_ ztv+%j`s!>Rw$ZRlIegqvalb^u`a`*xQ^{{~4sN&F^KI;6e_mibO6B27=3%P`AbLFb z00cH7t~ye}k)ji$`BRU5GLdikS3D;r?Mc$DEcSZeCQ+AJ7D}obVtR-v0~*uMYrpZ- zVGDw^3A3TT3mZVd=;d8pA2HnAyqOV}3;!L%P-;IMH!aEyR$P5wx z7!%_F#JQUyzqQ$Wx#xeF#`-uwE5=-HLA{nr;fyjJUzdfb#C){_jJZ%<0kpoZOvMwi z#ER6h-F5!rncvmij0eo>q-#SjAx=DjLu89kIc|j%*V=>qEWZ(f7RTQXf(tUV34UED zZZ`^t0FfI}pGwElz7_mX%8V_E{Zf^#I;fJ)@QcM{!5^dRua7rKH`(t`!XlM5Cz*~h zk5g`7Th1u1IB6;rdQ>9U4lKw|R_?AQFJP`J@j)uPQ6oUlb|e2+m1aC8YEThfd8MO# z=L@t2h=4>X+^5@|u?c|a{9ZLdUh9i^-pn+2`h>Onn^E~#?uJ^0CE3kmAtckEX2b(4 z%_Mfbcg{9f{|q=7px@`>kMe?qnD_pTw)y~NYMVX{}7)%(u(zdw@QF$rwd1bZeH#ASvhOY%Q75iI=lccc@Nk0z{ z7VZ7ldSdiRFB=6|w-fnli&zOXhU9Bb%3hl*Z(&jLK!Y+Tp|2b~LQ1TB?{_R)#;^iL z7(=$g6_CT?A8_j)%GRZd<)ErOEjCA*4?8l;H>zEys>Yx1+q}HIpi|oepCyBhqX}55 zIgDuAvECVO{A5#SNpb!DdvWDgN0AKL{5PvIuXJ{6FI>-G3#VeDeM&+l$8oil-!m)v zuP5cVlVY{fdj`0D2lca|dJ0|bdbMk@lRO9^>*24cb5|$-{eQ+LmijhYz5M;HvO@H@ zLkv7;2z>p`pE+()?sOYxF{QrZHqu`0(AzwvpYp)BLpPWF-OZBVWJN{g)vPlK;;Tky znbNNczx418Ma&2a;cf8|4ug!8A4`1$@vN`JL5+bKNWvyg?s zYEJyHZE_*#c{Kix$R`7Sh_X{Hr;6^2c>}FoIP{B?Na^o9{K*MEIaqAgy!zJu7E%y2 z%~Rdc0SxkV^IfM&CeyP8DG?wXng2GfK3?~;#ZWG~4hNoYPgvZg$Xun!zc@Z8Jjo<< z{@MGL?1fCG2x$=ZGd#m&JdW;+ysYkS!o6&DA!1zVluXEz%O6*o#bf(Eu!!{kFPClA28^UECZo`uVn))90auwwC ztBubrIur^H;)S*`xy>`ox%I0qSsil^)=oM#1F}Oh6get`Ix)J|YK7(H(uq!|#ZHtW zP}h7zE9CQ<(y%gT=#STK#3L<-VuCJ@-jz;Ya7Nf+s$zmQlqn$< z?FJ=f=erw|uq`e|kI|~FE9$Gltb&ZkWHKh$-a2H;7EQza^y2?YKnDuN{PbJ5GC(oj zZ*}>~!w&CklW!LYpryQ}EvV7xRN0yZxpXGpPlLGbACbR#RiYbuVz z?wzSiPN&VtGL=~OEIrx`CA$p3HXBZ=R9NlQuih)lr zDKk=fmgw^6>f))0Ih8qQ3%l+f6spj=gmTcktqjFsR>TnRWv<5DPAFyvK_@cW-8vFo zHP?07ccsl%oAje%4(Qn!)Im{?hiftL^twYqiS-%i)KFo_e;n6iotE=EQxmc!BX+bP zbW&^YVPNwsi8TH%l=Cw=))42DrsfV;_j%j&<&wTWf)BLgO>Na6+UnKEg|$v9;`Ba` z8>|Q7T}jLM=Dbfc+qZ)TMZT|G#C>3@L!IJpjY`5WHyWm78gjs3&LMpNukl_`#*dxl zGY3~KSXw)m?#sB4DpQO9CdUPykMFi<3d>DebzY6So$s>GnoT&V7fy^h*AI(9l$uzG zF4Pn`Y?r=H&M0v{_?kpIZ+uarr5#rgVd`xi|?bVMYD zpv}j&deDA^bmu`Y+kWA1fkt+*f`P4MWKJ^fOYfA;)Pu_1jLBcG=$~^(N|2bI&kPan zy5kBTgZWm0t~9?ClI_4@q14JMn~kwNUFYHkQj`SIv?jeHt96^NFV1#Ky-S-kon}#A zUg!#WX!}>Emso6^`zvfOcIPU=AVxmx^{MSJm-KWI3sLRDf!f|Ky?8r2^D)+Gt6)~J z@m_=3(C3u|J%QGW*TomX`YpPc<02rN$#guNo- zophg|-wmaOyeKgHw7Iz%Uy6oJH9u-w`+=Vb*B&J8Iu5p7y_RJr=u||GiSKdA$6>D# zetfzgkF4-En-XnJJ%XTGa=4RhPyIonHAqRiEvZy0aplrLOku#1=) z{*6pl4}go^K&bNG8ASBtc}WYtWDuiC7#P_1*X?ha&q|k~6Vqt+A=~JHGe=sK+MygwPP|~YxCKA?!ad_XT{VLu=;J?U(d`g{=4u7 zBNVQ(+niA`jF8t83V9vO^5%^aX}OCsGBRCz05bn%Rpx%+;g@Xgq>(p`?xtVY&GIK> zlEq%4okT_pF!SUuBBm0E&ioqtADnrCn!>ekyIBKCwr5QD#Qo1p#uoEBrWRcWLE7_d_ZC(S&uG!KC*?M=llDfoc%-VUE@S(WN2VA?Uv@{sWKUS*_jgSVTXCAVJyJ8NB? zAI3BRg%z}8RSKDN`jcFaxpzsf2Z20c^5NgH1nv!CgE2M0yhDJk)wf{)=6~znDt3#<_>4AKX~U16_j|v*^PqWBHAi>98E!W-dvR8? z%c^)q11Mlun}he7|6Wg9+)WdidQZq7CSoEAoCBkKtwhc^X0zGaj=wzT6{OA zg7=Cw1?G5t2T(IyakkAK;UKg$j*NH0y^Z}@$oxww)xBtUL{I0X#FJg@CuXqEn20jE zDu6T2-V>?0Pw|G=5H|N~j z0w3{M7FcHDJTt@vZu&f3To}bj^j8BihOQ8bawA=r-@0Di9@9N|h)lkmOtQ_=;lrUbI`{NJbA^jJ8 zaq>@1?()mMj717As%LL5RmzDPN@xnXm}(QdV8hZ+(h4gV#w^Bo73tW!p4IG`FYa44 z911=BA;k?3CUJgCrdJUc<6vS%9B^VUb2D#(iu_@ntW~uwUj*=3yRrpxE_8nIQ}*nE zp2;*YNR^uDD;T0cK$4mwXpIYPDV0zph zpQTn0{|nq>Zpl`=ydLg3q>jC6)Y)~{ez|!(Kxff-_Bt*CTMK_3Fvs177E~5alzGW2 z6lxt(dvvVde-sQ8%tBE=r%(Q*$JD+yARX`nIr&`Ng5XE4?}FokNJvk+FQ>w}2{y*d z&sjKF%(v?1M-AU~uLEocTcTq9&*R=^@*c1;g|v-LF*{aOeNi^)v@RSyZ?Pa23#)qm6Qv6RLN^&*uXJx`<~bB!&=y;uOo#+5 z_pqzW!GGY;uzzmLW+0Q-0ptvNh*>oxKi^&+7oMD)3~1(vzIhv1>RCZk)n0AA-EPqP zq8z>b=)jUMk+}Y9rxZ%-&;1l)6mGX$P}IC*@R)N_6yk{H^-+W7TFrYS?j+$(42IVC zx1&Kj&)UqVx5=Rw0_6gx3TUIBS6El^wtJnQIlaFrgb;lnSPwL)Hui}o6fAjmdR$j} z;q;|O{3-iv`SZZKztfbt()6wY;;&w_eu;l|A_OUh>MF*CI#9;d1jd!mj<8sG==S+c zObL8~XN|d#c3YWnbVD2ecwrr}i|Dz7;kxDc&o*ydREHGN*0zPeUM-6+ff%!%ezTJ% zY!nsE?{2A!)u1VbsIo496+C;GdiW}Y5VMzI5mu!t+S*WZWX$$1N`0BVE2Zuh1gJ9I zX7*zz9Exm7BMcbte)$gYd$cyl5zT}FMQo~T znE|(z4o*ml(H#;)gI)6qUMuNHXFWJYpschx+%bW7;zoNepj^J;;~3v-3H-KVq~W1= zSfoSgi*}&QFgmS84{bOythE81bVb2AnglhPmmI2T*@TKs0zLS(CnA0gDtWHGYPLCy zJnWS_+vDQ`9B{3a4YA!_&j7b_CtkbA>n|DUrb-&joeL0G}9ZgsQvhQ?;9RX)_gwgLH z-uHQA5cue*REPHtqBNb`=4L;r`wQrVQEhq68%nXpl&BJ{YGg;3q6nTd zaCx`;!hBf$4F^rqt?YdR&04AFc*6>wLcRK!jACDqlxx;-+2{D#+k-OBVHW63*3gR# zAf_z-ULBSlzfB*vB}nPnOCZ8!7-KdsJNZGf(*GW7lX_=^O}&`NNHJHlr?Xf<(`Z&m z{l^fy%*?@*E0B%aL?;doHMP1L*UCx{cBf5pDfarnh4tfo^-3FQrcb8NHZp$`!>mC) z3(`w{59}6ccyv$v&!!D{MXgznohcxr%t=8bkqNxN{YOHXq(9f3=wY2B|C!tA71oy z)N=0d(Gk#O%2F@zUwRZ2h*HEbTJu-@-XhM~c+2clLJ~v9;HZ>d3N3LrVYnW_|NF6f z>xryA9$$~xVlG_ZjYZS9q1psHkP2g}slp)Q7r)9#lT8u#uvXXMa$EB^9;LjNQpuZ? zAfO{;u-*I!UWKi@0pIxws|peF+}QF2y|ry@2-cn3IW_bj;Ybl|Fm(tkY$|&%J?S97 zIbAw<6BRr2KPCu+&gqp7bm@ZfL>4<2yS1EOKOxVt#hg=LClU10wB-G zpLU~JQYo+v-)a~_jL@~2Q~evYWoaw>mQX4^4v%+jMu%8_KI_PU>$*`Dt zmvZ<+&4PSzSo$JxAJ>|$6WVy*kftvF~X}>&SmMu<9LGeVC)bPQ1r~p%$-EWf>*I&<#TWH+4v#IKBz%41S#)H;j zynM}HVRijp!H;=3<;PgWf&nZ!!Om7cO0sn6Bf<^YM|U6EHTr#N2D@`=RmWGCU($k3 zCwc&8R;IjH9bP;QYFy}GVo5|(r0@s(Z_vTf4TxP1i?}C-z??F{Ws!d{~dzJt4&k{)0Scgj9Emi`b1{UT$Tb#|{2yqTX+p!~M~t~t_MSTk98ig)K$x9wVQRhR}xTo8|X zyGSpd5h4^~Fvc49>D))0Rt5hhOw<+Gc~=AMZ}$l03l2W3v7|7%_FUm5C^emP@td#q zW#%_Yo6YUA<8G2h@2Xv_4AeS$wHB z--87y19N|rMs@zUz!bFV8)}&mtDlL7)72i)bE>h$az=p?KZE2XHe%1rQ{ySq><01E zS3ZDbY0k1f1Cr$uCH&CMPnIqQ%obOsJ`h36?7`+#flpwO|>pRjiw~U@I%}?86(I-#i_AYNYO`XEq-}+)5g+-lAks%!J{J<8@|SBBBe6XxFRsk+q~v~_toufk z;K2jSt`kF3y7iD*FY~z}Eo8s(yWhGNva-I%2mzwd58BzBBWBdEu=rDEED+?uk2~&x=OH9gR!aaf@-Mpt4ejo#Ov=` zX!smc&(?!1)7INtR9`ZV=HRNA!t8^eOgZj3@6dvOwp$0oNI>Yxe5H5cZ;K2gZt@sbJ8;JOPvwz z$#oVi|MAkbz3r@ysiCxd2L%RYKM8Li9dGn58P=Ewup;Q3Rhl_dd662I= zDq#^>P~cx=Cur>^x9iS_0~D_(2B8>5ZHiJ(Roc{*-;^}9)tr+!*}UF%h0L%!NqaKh zAJ{q8Zs4Y&|T=y!0~Zi((MI$F$4dQ>mUS-RwWciGT&az|X0(ZmVLNXVGA zp_Z$F0M*FPe8o4P*2@b(izNsAm*QZ(i;8PGgvpnx-7NqlE~ffM5U!9{L2g+Q3YyNU1iX~hu-*C>rHeukTG2UkX zkzN33nf5!x@<%}mNI10ja+}F~iZhKcq%89H_WFwVTEH|?3S1jNoJA3@Cbt{p6fQ|a zbmVz{@lx0DL;RON`Insk#Rlpu=&SMe0Kf(->}FFww?@i^CJM)BP4J7SrDdXYoxu?v z$k116az88$-B&6v_--rg2Eo1}dE&|PIFYAvIPp=xMQm6?6tPfo3Z8@q*|2xLX>~o5 zSmrgcS^z=u*4`_pYaW+n&XOqy7(Fd9E4^T;r+#!YSS`d_yKw3skJ&SSef34au6*+f z${;~M(G!YV^aqJi$8{ErTMJIYW$!#BGcGu265~x{07S@-_D6PwQHDa~3}>(nx`h7R z)j!QHYp+}!vYOC<^DhZ>BMliU>Qu*=w<92w1X~hS)z8mG*G~LQLF;vUDie6B<~t?$ zmU=M-RB1IH5r{(o*PsYMHq&XUt+?f&>Q%AKNgr8r=qvSrYimE-t64*ffb@BjpM3Ec z^(f(xZocI;oqqEO*$f#>XZ|d(=n3S_(ll^^QTBW}2=mWONN2jNm}l|u`~l%~Xn?^3 zn@llCyC`KvX2Fm1Z2*yKv4>dsx))SRq=QR>NlJz4FUOBLT1Yg__+OPaw)P6Na_KzZ zegM!lk!NYs_ebE|^p3o9R<}sea;sz)Tx5`{5t%Q=V0J$FHGXRoB`d{SJ4cRbGu_|> z%@==cw447f!d37!jcYkB^y|s&XKXFC^TV?I23I8vHOuVZ^;RS2bOBXIEgtrydXUu) z#CrH=jNf@=103~K18O~yJIFsjKH|UB&Aj5Q#{UTy=I)OL>O@^k1`BDe%V%lJ-kw@X z+-qQk-Y%v@uXJHWG)O%2=4V{D@sLydH(t)nwbS?D4U`B5wIgIDQe*j88HL|e5( zHt;14B1Y6g@T=VBG9s1UF&%w$I@~#|)B;GgA4$Jm*Cg)o#xvzojwV(glymRlx}lxq^Lm%u8ubZ-N9u^Gtpu0|R9W2Y6)UViDbDT5hl1=fa7I<*LSy zT_^h5OPrv>zT6$2dqwGi)(^KA&7%G0?oUG7_UIiZnJbs`NOMtY^8xQ>P_EIlt$_fz z#nho;jWw6SesR;Ykx#k55}CCQVlEHPeWizW{D-umg_@7fPFXuPe*KNgso|;6q2Jd* zSD*I(jSM?#Ka1cv!S{rA}s1 z(2o;Q^9M@?oIWh4w`i9VsHY3nxw~6l_PUzBB#Jn(WLjr-?ZHtzU(ieDdBzq;Jam|l zJi{A+L+-;un5M$KqkaoZVhA9mxlM^k0}Yni?#6C4&|H$=4JL^V>CB}e1xDN7M4Z?5 zB$UK(U7uymx9>2c3OsL->gjwP-hqLg?f_%`tv@n(bt(R&p9Uy@{S#yXd#o z(3ZD8!?Y+*@?!=4F#S{*K5_UBwFayQKHvGoQI#{M#47fwJN7}-b==``ZH(S~dGGG> zj(}Lmm+vqAWzf!MotWU>U3@b8leJX&o~1{*N?1c#wJ3V?d4`WRL#9`E)U8U_QP zou-rN($xD#x3^%zKipsJ5H8Ie? z`aco!+*k{r6oCH62aagqvl?GZ)KSvOf)(wW$eP?oWp)c7t^` z&`6bUpBl2MSjO^=7CmGTIurp8@~^S78$N_wPl$~G)rLYs1*c;E`Sp^w&*p*ui3B+S zai@z>yXWj?uyd8x^OA1jJ{3wEO5ru&b6YMOZFEa`Qmn5ay6TH>kh{*paBO#K^d#ld zCSuv7&m&*l^j04)o4rB9Vz-5ToMa2tl`o*00vcL#d)B{~uE0DTxO`oU*zpZzsn4*2 z|8poZq7o?@%HM-bW+OE}cH`Fg?EKrin>le$fK<<_=*+Nrx^(Nx`b@Q?H&ZA3QW{s* zV$tddlr|o6lCO^&rh#_`!)nti5%0VK^or|A_gn4DHJRzjkvY?QrMCm)E!C-edS9r% z7rD#ReV_i-Xh~%=R+kKKF$lY`mHBjMJ7~$}8Hz=Xu>&P(5Q^YS@z*|4@?5!D%-<5C zo*%~!mm_i7t2~o9H<3R@4Sx?^V<^mz*6WGJ+{#ufl!UoSy`dso%3HIc;o(rR1BY8I zKOX%`at-u$6QOgUSUnuc)0x8bFf{)*yzF$M{7u&!>bqZ7Wt@6A>C6s5SKA55OF`}8 z&m=(m7t+MrYk2V^?o>Q#E5H1Ik~?D!p@wekk@x(kGE0N9=tmb=x~366$(CF;F~P=# zoA>}u;!?^Fo4uQ;fq30j?4{UZ4OY(qeKWgq#(As~&Ov@6J4iak);7d`3bua6DSHv0 z;Gg&BYe0_(uElOU4(-nUHh)mdvpxdLYoousPzSci3Vb~l{vT!yapbguxdf47HK?wx zcK$U`OL|68K@EspW$Ubgb*_whL3=`}2Oq##oUnSrrg4iaYHyt>L`U&jU?RlYHC~80 zfUGNtK4p#5WyC?%k2ptfK zw88`bDdB{m^{lI(B~W2${`cwSZ_9?$UG8Elb8?kUfhxk5{X)Ao;C~}_m2$z%1#ZSL zhHbDtoYKqLx0Aef+Y?{u!Ze_;+ zhLWV_;IEy4qH`w~zigT$3CwOSMf6Vv^8GKC5RV@NxQcRhm;-I;T?0}PIu|mKWlyq1 zQ&hqs$R4O%?7Xy!KT=!0$74Mc`OvR}eM(W773Nv33j-^C}F*S@jAD0n$N@Sf@P>!lomIhm7 zJW3!B986}-rt{tXo{K@9#RTg^!GtN4Pda30E$gV`&YnE1m(yYLr?2PXRDZ665aH66 zX|i2^`R6Jyh9Ccoy+KPH9M`rmis$g2d!EOb&mvv4+#;PS7siey4E6aN^)wz%VSbHc zOg80XFC;4JT{*ZOGMX*AR&PIBUZEc^n)!J_{J(PXBjfyPuv!`&)8TQW(Ry~nmh;Cb zQJ*0%>|p=3KdNrLj*M-k4p|>g5U9iBHO)$e=WWGq(OF61%l!{tTy;w z>}&FBH@-u_Z*M0!X^EHO>08MDUN9Kz)O=iHwPWE+V}lE-3vA_nCfel@_;&SR!a2Mt z{8XLuva8T9R@=@T`sxRGH~OrZN-m|q)#H>s@GpC@TF+2w?#L~hSXsCIMYgAwr74~% zb(Xy~V~rt$1Yr?rs?Cn(X$2Fgk@%deO)WLYc&B&t=PSQS(*by{{<&yE|B7*C^yRDv z7kmZha&S`|CoN#)Yi%boSbJlq7$+6flu}5gR~gGf!lM7X?5}rx-d+%f)2SywJz#CH zIn6x{Io4_*s3|ol;)V%Q75wW*O_=&&Qkj|VUuTyxig6li1{kTERa}DmYDVsi`!!hU zpb*hM8gXt#o;#5d;%xQ7=&xW7uwDsHE(ot`9vNymS<=!XPHXVfXxhiIURT61r>t$@ zt-ereV~}qZH5Q}TPMe1$F2`PMa(}Wir`A{)AP*{A0e;jN!%K>_N%sZrR1TgxFz-n%4bt zB+59yT7?mvr=R>#1G}0vh+`QvkDfbRYABhD!(6X+7j_S=OBTu~f@Z$h8+3@0+dZg@ z^>D0fzc&*{Zy@ZlJsVVL#rz!>iAY2auT_>zS6Vhe zK~loB>LD79zuu;~DJZD=Gju|BzelpT8^?HhPaWx{Ao~(NvM8uH_ltI(#F+>$Gc$lc zjdMgw=tnEY{1oOvcrufReYTGQZCmF=GynC|FxB2wNslP-u#A}xp_J5JPfY-TbjaTn zM@YJ>ENblE!s?3Ol~anxMXn8Uyr7amXFaRQC^cpnmINKEPGbhPTPPa+X*L*moU8p& z4aW^Hc$Z`KSJB`fPe-PJEEA_BLsyKDr#vY}jkE5BW4n7pg8FdmmiTLiOvT$5_dMRuPKAs19nk;)Y@i53V7g^|yFuf^l~MIlk*!qMB4=B0n4 z`ir!HY$@aNa}CAvg|sW*TK+WJ1I&iDsM{Na0y!N7g)Dv-G9HLdcQrZ)sw)M}sFIu) zDknT1hP{yfX-S)v44J>TTunLwYNxbk`wDDJpr<9HGnV)!&I<}2x#4{URk!moX>nY& zH3d*{c)TvHaMzQEwEE9yi%4I@+x+rXJ2%j?D5NPna~~~o3?Adt&UX=_=3Fn}e7{0u zU^01?gM)Eru56qh9S6W*FoXPv|tGeS@GQN84ew$X25UR z+@{xaxH;IA0(VvbRz#5_v7q1m)^>?Fr64cy(*2-Tpj*#5C#&#W5-m4on5yRMd^hd# zZXvwXBsni_dWLGshSNDIa+N~yRw&M*XPh$$ezP(y_x7%2S%!PGGQMFot!2k(Lz)0Q zfVwK@P`*FGW9zRN5qdIb8kEApzyrnrliTtpN3sM{@Z0s19zu>z$#S@}3R}MY`@478 z8tZ1(9nvIKyrdo;xxgnE`=qwL1OF7~sxKP{VbSicFIQ2nl%*-ZhAd zOM*X;{Z6o`-H)2-9yjxxcYm+!as;PF-Rd89jHct)dyf+7 z@D3?I!~HmGq)Bd35U9MaztP->fPcyTAXI1;gPnfPF0yHK)~m>=?_-uScOf-;W`a(_ zeHSzOx&Kwt235|xf@lAEH43)6`~633(}#l}ytZN#|=9qtspo1_2zaiG+2y(gltI0Ba?L2kyr$pRv~%pIqg*F3uV@-h>`{Phl5HojqZjrw-0Y^r1hl z2{O@E`$-22AQcuNAHI$UJ)Ys4+BY<32QKB&HYemH2S`FgZiq{b*h|NaY(u4+#nDfB zjci0d5VfFh=)SPa-I0}enYsAdu++%=*_hF8+p~VK>yh+1!Pq>=`4bO)A zZ(GcUsN5;(#gaUgUt(e2v&M@86jO@2&lZ|dP z<~YF`@)|oZx6&Naw?EG`Su@o%ZMcRi%wFTpaWG&fODkyV&_W5P=KI;zSNkQHGiLj* zt~GwCcS6;Y$M;hrB=#g?*0|w=gE}1^_oPCsN1tbyZn(*PPratXr^!i|UGv1@n(Q^~ zaph==Lx8(qpqG?A9%`M9r&yKu>l`t~#SDF1DkN6;;1ML3aO|5}09{x%I zNg-fM9ExPN)VtgI;^UjVG{gW5^_+ea78P(AI{3g&?RxeMn=_^4eC7P6QzVPiq@*`L zA-;bT=if^<0Sw4g)>}5eY`ge*ZQvhxyxxOV2rO2_CK~ixSlePRIjA2pNR}pl61SMD z@a^I+BKRbZw^i>yTr07)McpKQuw#~qQ9FXAWKZiaLuI;xMoL^O_Ruq-%Fb^QYG=#BsJdwz zTC*35<1bI_(T0<1(~|+81c^s*BZl8}lyfLthJh}Xxgcy)gEw#VgB8xiO$r$4F19n1 z0z*?g*rs|IcGZw#O;-2Od|NIxFQmZ5La!GcAO0~4!Cp0%w$0*@%1*2er6>KSkK{N^d zPw*sW<;NoF&6Dfu6QBDoFk$i>bBKi&TjZHB@z_%kjl>82Z6RYv%7p%|$}&8B6>VkP zprpr{nh}2G?%ed`o8`4VOO8yJ4Bf8ty~H8&{M_e58h3IMNEcwX)!msW0$wMU8|yjN zv`bZmx4kP0kwHeB|7Mpy!4q*o?~1zeKKOG&GO97KK#KXjy0AFR&m#$t+n|XvelZs4 zDg|M}%@@Bd!QX{|)yH@Nrf&B=H+=iU4x zYg<;ODdSPaTA6^V2gA0=_PI_4-iSR*x#i6~>&YwgOOD)HxBvKT&-cW%=p#_LV}JUG z?0vNXYWU_NOn2MIpbDnlwhL>TQ4cLDuqvla&efJOdBaXiln~4@_}ync1gG_aL3#i< zzT+%oP0+!wxO11sZh}V|g4V?iXO_!9vauFj0xIfIad44v`5lHI`R^%Cs}$*anv;GholTr{u% z%wAal#f#StSK3@AaVrZ_XPUt=%jxmj#ZDC%nz3rde8BbOZjLZTe<){ z#<+5&xw0BNt=#5=raAXkO}wvQXhnW8h#Xe#$Wl_1>{a%5ggzE1nnmz>CB6}DS(^7f z`}hy(8Hq!A&6+{!svM#@2`7QQjC%$D?sl%bjO)mIWz+Wy+D+oQ8Pei|UXws;6OHto z+uimNi{)e~#8&6GF&`9mQ9{54r|&8*ym!M?R$gK+$2ikz)b|b~9&RiTBN1x+{vQnu zp?=4gC{OH6D5NERpaS`2WPE%)VR5mS9QB30&I`C)a55ek?e%nfKk=mgQwRe!oa*h8 zGuO*gk!b#s#Y(g^<;)a7j|l!rQznFKM2{aelqkrIcJ@{Xcuzc`!}u9sI28^_+2aD} zM5O@zi!t7byFjs1kgC4$BTPrtNKDXel}=(T%MNb%S`t|uDwbcxZ%CPco`m(&nq+G6U%2us3}fXl^+5h3f*p5K$asanUvj!5lpQzSfZ z0(L-@zex(azzwK${_*H8i-_frmj&oD<79bBpq?b5 zOpOK;oy<=fE&C>glj1L_Gr=Zk(B$B*95-WQzpEAR8aEd4TsZ!HX%`258NAT^xpl<- zG){5Gt%r!WfLliys+weqO^{zky`;@WA>tM)v9Blc_2RGRqT`W9=^i7&qjrt90qm|J z!+*ZoY%zB07cZgQp@{I+>U`JZ#WdK!F?|VqLy9&tLO7SeP&1VsC8aXlnPj-X4Rcx4 z21XX;P0p1jt72hWzP;=^iF0Y!#F1*t^}wyCEr1g7&3ska-h7qRV1k^uoTw3^cAFRIK2r?8JDa>G#e18+cz+sD-c!lHmv z??am5B&Aah@PDJmq|bK)c!4z-(Pd=Ty&kpj$wFn}3k95o%Z;4LwcjcOc7cKBd|3vg zH7H+)vJ06zdu?^6&4>c#k#Ap81mq;nNtr~nF*6O#FT3BHMIUg0&2^gZWsU!y<+~BNTU@IO$VVWVZAKOfv z%}HHV>l*xczfl>i%P*l~MY(~pDbI$#@%phXiL1-$L3EPzA$meOLtkykdsO8sZ!N1! zx132<&WJ0ewYM+zhZ2t9)Fc?MhU|BSTek;FNh#iu1`9y(8w}Swj7{@&v@Fj2meIMv zz+VTgKV+sthE(jZ_3xLqOY;8ODTn4`c00)@jFwtZkjDq|m57ty{_qCq`FY*F2s{o; z^Se4kqQ#yU?5|55zo3)+`B{L{(W#Iz%<$vPJEC7aQjfYI*5)d@tmq4g=+if@N=B9z zSwRXx(53v;5WKUu-npu@Nx^CDh`MW@o0$6#vhwCyD^S6t)9j|m7=0tdeZaT$+X%_Z zwLGV8!4BGLL}6K@q|6t{{NM8uuUt7f_9;`#!1%rCI4MNn1U2?dOIt2WA5D4h-`D7}*${{1tqLBm#H@2EBNm1&IPVqzdc;(NC99NMQDkeYq^*(LDDxa8T$8qaEA z=Hsu5{VxqF?mdgFb zQ|6On_zf;7+?={C@kF=Ci{`4gyYLM^J&`ue8D$tH+Q=Iu@vsrLC&H z06!~!7S3LH2*ZlA;n}A>83~aK%5rBJr1*w%3zkCi_YJ4G3g5$2p>Ic;Y6;T{M+H-U z!@%zEF2V5v#UC;$mpHTzo-hptk_+u@bT5j3#?jiI?N-_@$t9bcg9oOs3+H>6Mz0KBHi zqeNSf)+e>@aWjB8VDzeDlwrzC-wn|^y@0tE)>Z%kx116 zileSPxev+PwbfC6?!Sp|)aGZevf^2B3im-)ZyJ^1hX*TdSN2ZYf2k-oKsi&b%Z9Uf zNg)$*a)pz-KA^z)HB=AebZ(7G>VZdGsNIZQn-vKG$rruc*V|Wu%az`{2R^W#Bq?5{ ztAbm-A-#NZW(oWcO757u)=rjInJu_o_TEJT0cKG{f^z-2wa?=h?x2oWNu#b3kvbha=+-)F^b5Nn|SQnF8p(_)f$ousr}pY}pb>8^sSdFO#0%Hbac*7fvw0 zI4WaPh^2(gmpS;GhwroHR>Yz8DZ633?0zZb31tpdr7*kVST0PEzWss1(0pH~LjJrU zNh|DZ^k*G#3tS{t9G^5A)`7^V(kMH=yMWaWEqdq_YfCVWx_2#qk z>2pYE69dAfgCUQ^z@s}0!fF9?zxWr#^p)?LCK>Tg`90V>I1ZE9%aW}0*vYi@f_9b- z5iqGpd&HCOr-2x?I3GBOxb>XK0j76-WLo!?U)95Z9bxKZMHlt%EDzX+XbWm!J>DK( zt$ghCH!G!@`(c)a_n;0z9RT!<9_i4Hw0lJw*(@EzO zE{((S`g}r_c_p=OtGqYeQOHkAxY67jmyMk|#URy#Hk;vZ0cJ6@McOKc>B_`e0psnr zhpgRRL3%+0n{)xzc%zPN9*#-9@x>?&Y5*s`u%pq(uCg3wqcq` zwVLF6CCi@@=?e*sw6HuN4`dc?c8ubPo!6hiZeRYaWIHMZ1K2au<~Cx@j+Kh_pHL`l zlI3B%9n3xDEHH8Pi$CxrwyC2_sqvKpBWCp$O9jn7USJ!cuaaj9t$>+|)~WnZ;a(OX z(l-uJ=*H##CFjAepV;$gi{J)$pEt%ion^XK@;F#_P|#v`l&eZ*scvTbIuVf2zVEP8 z;-T;-VFZdUKGmEBfcqvY+oE62v^cVpA<~+nFJ`5hHPLY-Nc%v8HCtq?9W`;p4Jr>P zEL{$r*8n(8wWLqwQL_{1pMJU8-krp|f$NmOD_zTHMa8+<=6&=j2rRV4N*{Mz==!cf zEC9K@yj+a3k93&#rL7w(Evl*Y8GQ77A03G=t}u$V#wP1!kI{fh`j|U^U)@z@XT#DE zkhNd)l|D^N5Q`${jf-M$Dt+W%QV*RCSZ}uo3FeOuAwBY+s%X8JXL*RN*2Fhb-syKO zXMtFGs)kKb(NWPH;iKaK;}o?P3=^c8qNUbN{(mBRGFa*p5??7R9E zqh_NhNd@Yb2i1OjM=}C$LOaBV;{zW_x^WVLi9{PIydiGlO+ghnevaW#$&q>JUNlrS zMM!qAOSNR=Em+k!ahwp7iq)FlFhHTR+C!l!&2#7qZ)(c!R+M?((Jx#2)b22Tw)5Af z)z|n$lt=XxwrMHw=Pl~q-H3YluTVW=N5(gQJ|=j2ia*_-3BNmS*>JrMQYpSAqLiGS z_UOTh$&qEB+sPx>p@cgNNmh7Y+xYJ0 z$}42XwTBmdJVFw0cjf88Z>&TsPgCj$>@o8Uo2I(Hhek%yBC_WNT#h}uM?{?JuVx5$ zz?L0{Jx{;JJmj4iEmN9mwu^Bw@=aAyePhVT+S6T-1*lG%{vp8C+4=DDpO9dH^~z@2 ztczyF(7Zf7m@+pJ(iKQUYJG8p-3BD$4lzVS405pCFDDD4d!6NA7-g z2wLtv(01Zs51yKCEf2azMN0h7P;AewJ^R-_SZ?MtzIP^W?_O#eFE$mf@D#Xx6_uFi zs|&U>th5FynUo5>t?_Wf9ZC7l<*Km*$~693O~xD0&4d_%zb(*+NU5_CQXF*Bv`n>3 z7@5JTea{C)6uKAt$2Vv)=y6V4pJN6I6}+0mEV4c?m*Hl$;Cxu_l3pzO`243Cl1aN) zgco(M&qO#ulmHp#b7a0J@c*pEvJBotJ+$IT7CK zV4Xa@=( za~;@5WDe>vYv>q1W6mZyi?jF|<_FU+f~tFe+_OVTaEq!K65OiDpu>|uU<_0KiISj) z80vGl-t-Di@x2|8Uy?PZ!qpGRe^Puq+K$r6*&ieSJ!Xd(1jwZ(ClhZm3#F*48lI1C zuYTdURdPS1Hhe0evs$}bz#O{)VhiNF2&0TMzgu|R3BLAjmROA-e0?Z^`aAJY9vW_a z{H9f+3sixw7MsJS%{GGj*!sBl8uZY!F(+o0RNcGW%h6@`KbwoviXq$Ur1(;<6}lj$ zf@_SLxBDoGeqK{sXk~p`&6B9@pX-C%>nsRxtiGa6 z3koO>0EX)vX#|L|U1KG$viEgC)6d5PD|Yq8*^!x8q&aA@gAktt->Frh4=n6jnMI-M z-I^${~mi_?o@r?K`5|m6T+jj4PR`=q* z^Q=I392dH#m6faU>K@n$eU3(Em$=6DECnt0h6SlYf9f0BF0@>Uv(5ADCArp*c<}&& zi1KIbgKg^-nM7Z0zC87!@4YJ4VoQ;#YEKAdKbpAA*Vo=)8KjkRlC1#QsyBRAXxowh z(HcgP?d~}gNnJNuC8Mm#?!X&&y6UwSaFu%~O_ErhGhuIhz_U5*t!v?CpN81J5XQXu z#u$d}LV?^fjnBynatk1(MS7@6CYRr@eB!hBHd!Ka1Vze^?=LY^-;VkkUiNtwKBzyQ z3-6~l=%>DJR;OQB<`23V7F}^0<~2cu_2fq<^)`hyt)Gh0&0FoZeqH1T=!qK-e~j#D zWtD3Nn~0Nb#mrFgG~ddAKLl*0;)ol+qK4Yh`H1p<`V~#yY~i(F)4VV64ohBD{VEAu z=7%x$S4N^ox-jOPNog2Rf&|_vKBzo;1WZx6-vq9$&5RGqgH7&~&~6>kE*!0dno^F` zU(vMJYWx6tI1hXz6DzW>@UmL@@v*-E9N+K;28FEMtD7Xni#!Y3Qk?#M75>Z2a0xWb zi>P@LF1X1>ZRB%MM~bNo3d^Q2(R?R<{RY5Dw`1s`O1OA}!XK`({k~EiV-sPPx5n4} zMVfeeY0Y9;{L%xi7{L~-@k#BsjgaA!I) zo{SuGke^C!?>AL$L5PyoXliV*c9QkW+yMPa3FgU`o&L3#`7}0Jf~GmragW+F7CNJQ zZxG_5KO6nBsA7Z1n0DJC;*4p@1sG$G?rL=3nXCdakIR;CX^3CPdblnMD>7f+l7EAq z`K7Gh?xZGcsS|~@@hyLjK^BCqyUb5|ytObXru^VZ$N56sjECHb%M9LoU)Q2GT@>d-(kyy4Sb};FR*D4hrfR2N*7^5CEHs!^6!NXZDL} zYx%m{OkNWnu;kdQ-MsAODAaFaM^(>qdo53;4!0S%lpK8RMyK*Ul-x3Ue&aHA57Cmb zd2&-=K`IVCzaY6mTDLJ3(dbXVX(vGovHq61&7}|U)nT_>tmt%-$qBMpj~yI0p_}5{ z-wfXYMEkFAChAXdwUc;{&sn~IqxEb|~gLw@NZvpP)sr-SiFNAzQnC*y=R)0)u} z0^-Fg{Dg}=uKgCZBZF&}VN0m?WrmDR5+KtWb$#wuKj(@)B}T6u6@UE1n#WMnQK9BN)cOF$spZX|_K{pI>9qaQeNj&`YH~>>^|X~;q{@JlPu0)KB_IWV zWrom)J*@o1PrL2NsH44xAoWGN zitGXlQ0^Z0#^s;B*PcX+AZ3$P+`+{apMQF^=KbkZhn@?L>M-O6h2 z@cZx!&ERaLO-Bm7uFUz~n;nGoNxW6~wE1LES8?j+Dxy0nS^~xM#%~wxXJd#(bF7+j zJ84M6U+$?de?ll77b(S9XU|lFQ0>)T!JY#m>@`!Xb*ObmvEv7FPH>2$!^){1$=Q9Aa_#Wz3KZ_8L`NARF02 zn6rB-s?Rvf3tSP}B~!=itD1^h+}4N(-upBQ*SuE$q`F<=g5If_Es`eRkjBI+NBADk zoZD)0pnh|Z=hlv~wF&z?RBokESL4%P7i!LVoe_v&nEdZr0h2veOY7IkN@Mi}=ry*` zHzbyI3GWTz4jW9Gr{4IQ-{1&6J|l16yUOQlo-CD(I+kEX#0zNnL@v%$x2CtW+~>fr zhgJF=Ev|2R*dimj!+NCmH%Ty}^qMfGg#N3P=OUv@*j*B@!JB;2KNlio1TPx~4QsCL zh8&Tx!0NkkImuD$PRVZpNdIZ#%R3NQQ%$1oEzz!A$VK3~fe110O zSDmt^6*&Q?R-jwKZS?H$G0%P_w7N_EJghPaM_RPfBb+7?^}Icv`1n7d-Wei~>o_u$ zd%^#qs4Zq9bO~!EBv^ww!`_q2mHW$d(({21zB5m#t^eaT>Wy9D^q(>1W6s@e(^|3a>b99%8$}b*#-o3buvZdpbL?e>;C{R18`D#| z8#X!GGvPRWzWJXEM3gUY&G(-$4Xa}yzk)+g5m?9HsGL-R}jaLLMNw$Ok}bM#>XjYV@o`jdi_$;HRz7UvT2&gp|~L+kX@NGHCDI?A!Mv#23lYbOcAw{ z;Ce`<9Imsx(Sr`)4L(-a7Ua!VTWWrKffALV(sT(Hv43-{eD!mPmD?6^e=i;dJ>AK0 zyHsoaT%Z&-b)SGy;vNqW&)yvnfBU#;uK16%Mmt%~*(V^hWs>wr*~24r4JV z?C`r)T+Xu_^WnJ_IS(Eu$F;%h)FI<}_mz;lJT##*s)YWw0U4^Y zhJsBGo~dl4N>S#6g3bHcw{|iQ!2WRmWRh&Pq))4d-0=*oqo8zw7t)|cX3wMxWejyV z67Z8|pB#>I(ZXt$dcEzsmzzX#9ft0B$MxSf!DqDw)29|u z))U|JC@p`hk^YnVqgq&&3QGq+ccoVxXWD2uKm%Z%!0F~>@3r;Y4l=9@*!8KkZjv`N&Mu= zLy}bX)I0PYYfXZVALdv%tI&g;V5aG;(q8Mz_<1Fe)UZ2c32suOyDHf+>0q5BmfODm z1M6HvLa8-NB<+#uNW1y=iH37GrQ-6w2SvsXP^FB4=af25cDHLhz`Ma%z6&*J)mFK> zUHX^FW42aFTL>5}So6-(H_4XpIHjaK33B${;)Wc1-RrRdr@sifT@yef26xf}JM|RFZ>7moK(1k&6!}Nu*;jopE?0&M!ttIMf?voEGa!;jtT&q%=TMHxR2x< ziz|srTcl5XyYvcm@hfz%791W^Jq>bV72_fd;70{Zb4_+;V#}@{?e=j*%t~8e<<>IT z+o3&gv5WXRqZ42#>!r+H3{ZWlUuS*@Tz#8|$~>1Tt5{s>$1lJCPOVT3lEoV9WEsu0 zV2y!cZGS~Tk`2Y|4{oQ+5SyZB74TG?QK9`e4V#lWv5m-jh!~CYtAE!({OjlJr{k~r$P%beTU6X2PY1;JiY zCMI1{X)Jaeqq3Uin~}$l{-2rd_K?#LTAfsJO4OXDcc^*p{+Y|D!vZnx`rJIGoG)McknHhlgNvotERAO-`hm_FwZ=Z!!?4{ZInA!aP1Bf zfAE7~_2Wv;i(#hj%d@@XKc5G6K3|0^RqHoNXHD~ULQr0Y$CTTq4bm#I1KH$w0?RK_ zU~wDR&CM9zpe4qdyA0g)DfNV_RL(c~_Z|!;JuDolZ-3;GW`gq3^W{Dy##^5nVA+9F zrg}~<8oJ8HZ`x6bv;0+!{x3vai%kr*`XBI|$JYJdvtM$0irvLGWv-3&H_0OGZa-}Z zjKh9W-WOW;Z=xDg-)k4&q>bVH5ZZI{eUk*AqH+@_!rc|$YvkHZ4=A=>{9f72aovW( zOwikLeJj`9-JoAl`TDv5tH+pzdowY~kJ?hyTul*w6J?0pdxSRP#{D+|UpVoFTAfH> z>fQ1x7Eiv0d_O3a?oQ9mx$ue{{!!LVLiP0sc5M8HJ;S{tnW{p>K&T*8)!5Los}&lm zsGN-Iq{KX{P1Df~f7d(GJ#)F|w(*tS*gF*Sk%Myr$3 zr?=@O&k!xOljM}W5xtXp8hx3Ab%A`HHqcAQjl&4ZM2Nqa38lsWpMIJxG3rDpt&dBB zCAo@JahP-E_F3i!q4+GtB$c<(NZ^BFt$vy+HTUNp)+P8F70eFed~O$BLf@2xguf5M1?a%`{v7KrnkC{mfeT|IqmV^;xq zbt-yRB6X?9cSO2VPeBkXIjY{(5<@)iy?3+Z(q-n+ifX-aMCU&|8;ivJ*zmD9DsZ@L z2lo^9pVB8T({~+EC*-qzajVgL?luTMxH*Ryo3l=1TAQ9;I_pAfBoW=LxFI2pW~V+N zINd9KJ~9i zpwBmbs|Nh1 zX0-%1ytzNA9$U56K2|EDgnzF5O#HV{r28tDWl<+f{*FH!^P3cdP3!ykc(bBoPL|>* z#Ap&X{{YX+OeLuu?xI&t<{!{VW1e2k@ZNEdQ$lKL9$?&%xQowuso4k26LuyscJu`O z_HB1;v;}G*^+#L+W740b^-d4lq$9=RIBjB|+ITRSr-W$}3FxdXPK<}%vC6mSVaGjy zsI-(f1@(W|Q?q_gV&ENM_Ai;jQ$yKQ+{9XcZSm40`HEm?3YS;s6$OSLYe>LwA`e+- zA?koYRFwUjjaz!eIasA*4HsC<7rJpbboFwOXfq9yT9 zmk}F?o`Gfkd*I)5rpIE*BIMuijayxn7S4R{CJ-(Xw1K~UfnM*&a%w~DIQ!+;^Bjh9 zigzHeR*ZW(@o7FI6qT~;^I0;h`sIxVVcdN#ieNSkNQvLFnOD63RT_ZNiTOLzj^frM z>dhAlkvs7*j1P4B-E5@W>LwSfh&|!7I7TF{vwIa*SZn}tG_@&o`=Y~QaIexfrKz%p z6rAqGS~9QiD|Yg3-}vDY9mY5R{#$FdTe=(!&o%CF@MZ-SZCL*s!*5<27!~jz8Z~$^ zGA@Nk{B`dYtez!k$|mQ7TtIgdA~WEwL3BV?P8+M72=$KWGJ^RgYs#C?uKW-pbzAQa zLBLqrdsPg>Zf>e|R9Vc@-%Zrp`;aRNq2qd~d{q;NyR%qQ!pr0)^)N_uFSh*j0H64Z z)P7ux<`Pjsm(60BS1+IDvl`k6!!xpBMt<0{cjoI)H`#8fM9GLeSuRL* zIs09@e@6Fod*;nZIsF;brkil_l=kZRMf4Lp@!V6~6IS_={kUhF5n-e}@9`X;0qR8A zJV{5Dr?DGT3DQhEc}_ZWhsryteWOW|`orbDnD9&Q%X8}E>A&mp{8$Zk3gf4;W_hjF zN`cF~cB`nG;xEiKU_kai*Odc`f$!oSg0syDAsI*;DRq+W`qip7zRei1C6kVtmpTyP z#nKJqg({{a_IJsa;m8^<9$2*vaj+0O|2BrrkaB1prdst2L{jUxkOt0z98=yLGU=se z{h3{I6MNd`hHRo^-7bqUek%COh)sPpo!tK%on=^)ZySdN2?+`5?iwj6jUwIM-NHmV z2M8*mbjKLd-Q9@%DQN^@zz~5kS{g>YkMB1=@PT9Oc<$%EuHWxGXT*BANC1Ms)`SMod}{+RM}1lAaLWZ(7l#)I$d)lUsM{lM_t)o>4DmQVII!N{gXyksku3 z=TkXr@VporZLB;qtDeXNZhm8QjQw>Q-1GFYw!q2tfWdRFL-K z*s^*++iK6fAMnKi(5=OTp;ei#hos6qMKnrO)`7nb^F371;*9pa*}qJh@Ahr(>rnA2 z@{+$HL1c7p=C!k~qEe5RH6`S)y%>$#{ipI}`wE|AP>9h?J`ISD`Q`n}yA1yshit3p zyf$8?>Wcto1j~+rY;$gAmKxCvUw`hPIo_4ztuxo_>)BFybn;NGZRr5IqWn!7OrC1JP| z?OEH74Nw@r1oB#F^uLyXmSX&uqy}QwG_^8(W>VdAjF}&q*Brk%?_^ROITlXLW|y1) zyBz5&mS(`VK6-qImomZ>D$d4Vft!MB#n}evUx!HrPq7E6_I@;)BC)`t#-R%Y1`KHh zENYUPMaptc>bTFHppQ!5$e%JptQZ-zq?y5Gm3y$zlhI`V=X#<+0K9|_*vHN?+;XX4 z-Mx!|-+14>9;!<}#D{kC5NYSpkh)Km6QMo61m#D;NTGz{xqk{s=_FNFQUdkN%IoMW z761G-or|sm`o-urRUHi#gN&zyK7$x4&nF1>KdZ}wvTd+i&+{vrw^($Mnjr%f44F?`6IYG?U2Ji3#2BeP3H^ z?SlTxoIE3(}5h8%Uk`SEK42TZ$oj{d}wj z@n#1=ZBvna>6gP$4_A7Eg60^(y_@!;tYiGR;%&++DO`4cd_<>w= zT`~`_{25uL79Id+mrJo5AI^NP zgePP70oW7X4%9Sx0q=KFPR39&3FmwT9sm3_6A<<0q@iZ`JU&7n)cSNna12R4S5)|U zQbJc$x6yTa$FcaFUp7LHb)vf2f91uGJ-HqKf7xi{%6 z5%Y2oM+;eD#}4%yuh#=Nnp?kUjP&oNewp5S5jrGY`>GnMs@Nqy!`p zjfqM+@88T=Kr$eT)yAmy@7NU7WeIsDWH)(f%^!Q6Eq^22EKG?30VNYW4=mE-QTJN# z@3Y4aK}1A*uUEuA<(c1~k-~U^!PX<2hnq#6vXF)eH$;{V4v5;Y;H`$m{_VWLZ>9xV zs3(pLa1aB3??IJujs7}-cG?);_%OoUVo)hT@WZ0s?cH2pB@3;0df~?Hy(am$vvp8J zpaVxx0#u75)xLWS-(jw zreMIG<#$R69c9L0GeboP)ul~&;9^9ilnswii}wpS)ZdMA!B)7fN*asZ{lYH~SD^`E z!_sSBDB!-{%p)uB9-?%>U3SAz=<~AoWCzPPW&3xg!XO)8N2(Fp#_0|Yup0)40IEk3 zVS_jU3ql>HE@%nh>Ka*Sv9DdF^lAu^^879@=>2gs#5=*kz<9c@Wx|{37ZFL)Ns<)i zMOyetFL;43NL?X0I!Z5mw|5{OEd?bzp>>Kf_+W7P>~@Eitq!#_w{(1HxAu{js(da# zC!d~&#g$8IHjFI7EjZ0t$91&=ZoWhUsS4APyWU&}5Vfm809tV6IW^(o&+|DzCpAOC zYiwE5eapx|yv>8=PpZ(PgS#v{XN|F zp8X9b2fa}-HMH?-X0sFZrw>k#Bx(A8xzH^m{BAM4=gEss?OL{%X80a9^SMFnQAP(_ zT@~aaMg^6HTr^@70&oQ>Nm#Wz#kF?C&J*2W9qxX zily)QGU`V6z4v$a>rY^Z)j8&*%tnt$rbzD-7L|ZNomiI_LVYqWMdl8A?*&_1gsUL~ z30R)RE^_0+j*fA{Dr-AklXii$Oa4SrM5y_Tc1#{B8Gu(jhbmb3Tv+w#hL}N0^o>DM ztNr_62`zWPzp5Z@yhQr4OLV1ob`kR`0siE3N?z3A-OF(Eh%xir`zXhU8c)bxJU*6d zv-y7(ot8)$OF&7nJfK80^6;++L0>iqAFW7fWjyr%FEzjYaxJ7ycM7PekQ!q;Udo~+ zUdEuaY`Gpk$HG=4z;yg+@F`z>5+loOJrRTKkX$0u_8+LC7g_nKYyc8fj)Y8dTTs$5b5(gQVSP0pDMs;&Std2GgQ&sLIm zZDRpkDPD|mBv2q570^tPm(NFYPFvi}Rot-Vmdmt4p-?A*S_Qt(G7Y{ceH|lfA<%#K zB7!A{)%3O9$ks;U8-1pB9XgA<$;K1e%btA}w_hf(@BC)Yt=V9MaJ-1irDuzJh+PCA z1oJL9cQKc+!cNr|uj7GPXn`QO2U9Pr;cTF8i9A!REHcw77>cH7yz)``|cA}205 zqrS}c*eakpqVf`u&GZ6{i+~@y6{ZyR?5B5|I`^BAU`$EcZ$Qtk^~7>j1yD;q(Kbu+Nn47x+RcGpKk=1GtGsOX$8|l$K zPG0LM-gCjt@@Ukb2j0QF^MWR=&KHTBo}giMJ4sXzCClpCazUyFaVNcsPRV?^BZ#JP zV?Wg*bNE0AkCo3w67;Im=ynM4C5?0HDohHe)JCby_Z`ZzT{}I>bS7qN+Uw8V*ds26 z(Z`U+G@OX;Zy`7Z)?Dw;Ty2=YVmp))yMw^Aw#QABbhVX-Mt73*M6eXHO@4^QE`73p z_`)(t;-}D8pVtBHYn_$%C`aErfQ6UHEblGH_=b)7p;eMuX8)b>{hL-DM+D~`jBTAJ zyEtCm<)gBsA1ylf?uUY+Hk&%M|I$kEu{WdWaIhn}>DD_ah2NVKCY8tD@#vW9e{xZ*3JxTkun=%4f$EDMC1% zlNl)Apt#H;XVL>VdHaz#MLQJszN1p^ux(z)j7mGXR_LWYtodhc(ZbWM9HBPE?IH6A z${csm*A~aYkY8BslR;9%TDXg)YTmDYFrmty=@^NNp;EJQG}u+S;y=VJdPB@J{xI(V z%cVu5${K>8G51&6g-15mk}Nw{TIh>|y-zPXlImzT<~@}>D6E7c>|gU>2;*t8I_39H zcA6D<59Fmt{gMuPUYLDqC2Mo)R~NFn{!gXcz0kldcoaG$#W5K2t6Sf{i51(!fFhas zK&?#9&ZUw*TK(^Hsm%WRO0J_auO9)fzUhI1-Xvb2b`fwuC;?6YdpQPKA z&m6qN3X8MAn#sVP$;m9Otr)B{)%)n>5UwxxengT0&4iN;`$IOek%>L0T0TIn;X0 z2yGE%q`9`2+~l~Q`dF;~?_IKr@My9a9oP95-l|o^rW2&~Ok@o8;HBsS83s{CSG!^gyrQ+M$GY z-(SdOI1UH|JqUgtF^n?r&E!f!=PWL4iqvMpUz({Eq=)AE=k+g$C&}n66;B>}&ZVE& z3b~+nks}TQHjpaSlYd8-AN*T)*C9BVH)NE%Ern{pET+|3iL!UsziNtfAr zES;^cGrhooftrIKNmm-}?`xi862uurqMJT_1Hy2i@9S@n?@OG=z4&*5ovNVCOi zhcHtK9V&JRH*Rwg?NAR8y)VnPE~fXot3I8+_WQ<6)9!6XxK;)^K6P_=7Bc;|18gbq z^>sAA+t=3Sh^zUg6{(qt%M zN^WeTZ}{I;-Hb8&^yZF_j-+I5KW4g$SnIn4Rsk|&lP;^jFw!yXL!P{`q+|mbH;TTk zCL8B?F@BQDsaXu^h0Xji{3IX|kodc+Sf|wN(PxD$KV}_{yB@*tanE2^m_q!d%=!bL z0eq~%CXc*f1UqkE`hx6Q`uhEmbBL=Y`b(&?+%GEsv1J)+2IaPbd~FCR%y7rdllE&R zw1Zn5L-m9c-J_q6ax~Od0U3=^po`zA&@Ah5ft6V&36NeY~ zIx%C@6I$8Ef`bUBicvkhSJNgq)JcwY^>I zkp$af(6nLMFA-X?G#pU~0CFOwk_8Xqf~Gn*9a9BmAE!nw;=1f9WSuiv>qr8GXc)tcEN}a&MT>b>P>i^`Sd@Jx8$s!Dt>JVqv zk@#%`1;)~2|KbovzDGns(LfoUYcb2QxZkhw*}-FGqqAtgchcqaKw7c6P%-m-6bTJi zw#p92cNgY$v;NsviTjb0ZDASrWmR; zu{{qsH6Z){?2FlNs@y=YwYBW!Qz+BzwbuJpx!rayRZp>~CUpA(S&b4!l4XpwF4fjH zp0L9wrE)GpVUVnD72DJ)&i;x=IEb&`T&y6_J?$)}_j(t4kuS%X7NNy&y>n$;^1#}* z7VpU}y%sVFUh{@EvhDH|^2_d^bZG~AfNEBq9Khqlr%C@=W#SG>ox)q1JK3dA0*XQ1 z;lLKQ62v4QW;rug_OF*zF_mjr_6I;qGgz*X!mOQV&xTii9%W%TER{oMyT$ z&%?0`cGeAago%3{?hDBjrHTz+(x^cWrB30YZ>~qN8|OdrP0=y71I*y_JmpiYX?;OX zdHmbe@Q1q`o4!+Ew7fvxXN521mG-Im&jXQ1wm3b7Q$*#i1ZTqJjhP&hG_>!i!vDLF z`pv3;XAYxqFsOpK-dJi>reEwSL?)G}2vH`xGx%hlA(puE#yIv4SfQMiKt?W12HZ2W z)_$PX@f}0J`Wt3_e^%*rRyBy#ZAZugVOR+i$=5iPK1Stp zDLgT}REmH>8Wz zwqB~BXXo`xa@?nfm-FcHYfU5QX&A>yF%b3cG=Vtecz@?aIFZNsFr+eB0&Uq>dJ|d) z2CAh22HUHlX2%9?Uay`@G)Rwp8H;Xyu~*&H+X`SMVaZ=L`txvj(dCuyeyazUhQ!;+ zp}C31sx~P@~5}U1hZXPZfwQYmpjHZ z+3`+4x%BUIp&$3Gu9ce^2SP~)Sp*i%&UC6#W7#bHH_E}YJPm{e_h^7CCzew00_4yw z;FBC-;ZoRDJyjpOjsTMuQgBWRZ|e?Vf`0k;)Qn%W4mm()04)&LwAE3=t#^utFYr_5 zN|hPYpJbaG^)Q{F8yS*}`xyRRUhCeVZBXGS+)h&iY|^l8$;WY<;8OgN>1<}$P55p; zmR9$njL32}k^0H#sPf^QzwuOY*hqJtaNt1a=AB2`GnJg3&1;79c+BklrpfNK7`piY z%s3kWd*3pbly`7wm3UU~38LLL6C<=|KWJjocjkqZ?loG_y!K)pSwMTg`Zjt5ho~-g zVGjRkhty}P|Ms?8^J^)mxfcQ@i^eqm9?LHB5ti}Fi<>V4{ z6=~61FG?^tr!P;fIP91S7s#K^bH|XUO0!W>dhy4~{evWG{e=kReja^h$s2U@I+8PE zaL05(KHXmGvE#C6Fy3zJq*)^Q^a^`{w_)JK5j(&0xr&iIe!ZJw6l{zmJOr*Z-}6|i zX?qfMQ+d7j<&j$eGygr%)@QR*YXY5Ph+KM|JRh^b63t4)@Wu?57j*hXM7X@a+G}nl zRu;aSS8r2pn(9(sV5wYtt*V%Fm;Ff^od@Qy8in~1-pZG8B=@3(jMnoZ!=XOvEa|>d z%%QNm^_vcQWkZo?IVWicXVS%HOfhF&`N+iLWGw!T-T+{2XD>>7m)r|4^o&o_RM9Z+ zX>)xuP;1rISy72U8+zG=pkOd=ogtP4<eX0P3wpPfUNhbzfEk9VN;`A>iLgSE+b8Gdu0jW*K9yfIBcqfK zxzHSIJa&misr_kpUh? z^3_F*35>Fxw(}zcs+pd*Y_iqf9~Ynho@J? zvjVG>k5rdrVb9~WhZd=OFiY0-29Z%RK+R7vDj4J}k;G8T!dTON#74xXk0;>$n&o}Y z>9NR{^1z$4{v3a$zk=QXbKe$88r+G;3AbI7vwv$mWF=O2A`0lVpCPLR z)$s{MhqLyYOD!Sy(CeFOJ?z@5vDJ1>-tCD1UIyI~GwL$W&Gtg~ z6Twq^67J_^;ppo8W;Zp5zm>{XnF3awWm+X&1}d`j!<;0|$=`{`Oo|AldRC@7yDNze zqB+7(%`ZH6A4{`@mEvmy?8~3S2@HG6v|6qCh{?KB5fGQ-VTtCD_iWgI74zP03;~}$ zjLa42E8M{mVTs5v_OEy0y@QipxUuESIXXq+`mZ`1@J<(G-*A5Lb}tfoTwr+}rU`|W!@o!*GP?s5c=gaup! z_hsQaY_Cef%h43*6Kw2HfHcs5bzWW(G=C0=8!OWv;7BFQB2&U!X5msRqxM7Ss<&qN)(& z?K!$#5srUQIgO z7ldtjakSELnzSEDmDdCtO}ycU*G5?wB-aD(j9*~4*% zWnFGUEs5jzafjpyGRH-BaM)EW>?*5NlrVbmEpa0t_wn$HHqkr&k&63*G%rcgd(1qt z!ce(}aX%MZRP~QB&3k-JuEAtC1IbNtk%c+tgflKHG$9}C??bJDl#UzLd7ppsBYvV* z*E-5Be*){OG@O;tnvc87W6yP_OYOKAo;u=*y9Js~Vdae0Eg7Fac^Y=|k&`BF)G4Eocvw+Rz{X^VY00^}CPR%MDT z5jODsFR=8-g$8R~H4(X1*b2FM`$o-*@E^|uDMi8-d3N8YgMi**sQZ| z0sW*u(mgP?&VN*?&22)v7%gBCyL9{8Ad^p zCA~HEPhmAT(V{xNTVmV8{p6UIsd_)yw@C0v>L9e6Uz z)x~3#pYWrVl&RQY$R)4)xVw_ z+@?+Y?})77B#~Bmy8h%-+wz>alaW)UXJpjbN=iM2ZA*V3^3l_fH+r1`aG{-oLSXBG ze*y>|%zT6%7J+JM8&o&g7U16!Q2KSIj(kYZL?I2R%e$+zoh8E(IslrAG<^r883+N29T1DYP@Ned?vie@hNd)7o=DsS~^Jf-sQ(e;LC-E#Z zJvu8~dS!wNyL@@?l=NkFJbYPt`9onVpWcK`_ zRUN|{gU)h9$@5gCBkoikONh0=>P5|Alu#u6-1?8pGv6k z^M3jE9a(PB#Aqa0O1d?0=M<7WAU2kIlcl2Hd?eih9F;eE|IuW5-!-GtB!&w9z%J$x z>D>)I+a_c6@IS@LBo2X6rK91DHIl(+u5Iq$G}JnzDUn1l(H3>jV1ObpITPCAD1;BA zvHqkVCyST)Nve!h_nqo(Xky>$S4QQZO;T4%lh|zWSjXz(FM{s@_j=u->@Ru}#8J1| z;xK{_(dAypft#8;YsOV|q#0L${uS^FL!`cE++Jth6FgOER7J_R%O-o1S5&OSbhqTP zUp1EP2q##V@Ou?{(}EhUApa2+5&I}6F4e-+;1JYrpL3N%VG{XyEQY3ANautQuDCp_ zdLxU&*u9fEkfhF8=_-7k3bu#xLQ}gfM>V%1K!sISA*xImd@V?zP-E54wNG}L?q@Zv zvmUM@eKe?cvsY{UfQ?ax)kt4LONc||y1d{h+%XFQ7Y&_rPhgM|d*d?cv@CCSx~d4w zc0k;<8@9D{9&n*;t^6M$&$_@re>A;fzFgM6zx$^Hq8!C>(}?~#w`0H9pd`-5)?Ca1 z9}Y-=@`jfo$2P`a$SKOdFwQ;|X=QxEdEmaxwYV76A?pD{WeR@_DC#Riq*=8Z@c2dT zaY5>Mnz~`s14l2$9!$c|O``reS$r@*dUPTD!VMBo#hk0DZz1nRkh#Hzi=pHS7uZk% z+$7^_Q?G7Z*VLny3orA8NT2Uw%>l9Ul?OuxOvt18K`xD^vo@5rb-}$((C7vG0Xnh^ z62y6QwYnQTn|zz;6hs~+8u*6}@#0GGVXIH`K}Y3h5P^jI#7DWcEao77)P~L>U*?=p z_AF7QC9eA~BoA(|@$F9{K6(L@sk3 z<%6!WlCKm`&TL}(i(dcNO9{O}l_5$Yow9c$-QQX$DJFKPjW5YY$bLCC14BgVzAwsG z;Wa)RUjgtZqf|zm#QP8Eh{j?B&iOT8-8D2X-%0VXGl>{ArtODl_T9G*rmpj@=ymd2xoUwecON0SAVi%*WoF zBgqd4107jE)bGLQF4BDw04{9-IHPaMiSGYow5RLotko`jd@)O(aJsO~NAGG-A<6~W z14KxN=1jokcV$CGIuLbsA@4dz(cP{$1)8E0?G(<|%%=w?!=77fU&VqaVx`=stK%c9 zgMib>bGa+Pb2!?+vBDy6r7UNyBC+(&R6PBxmo>GKs)K;_Ip2gBfLd@A#j&-$ZFm$MMlbZ#u!!RPu+dmdO8nmb^F&n-=MX0>f zS>}kB7LxWHHMRcLi@@#hB-L7tD$@1B0@G~k2)dkdsAhtSHL5aRC5EFW8L0MZOOMQz zD>75=H;I>RGvvo78)QoNJ+5*UR_VL{)NbSb{g;LjudTF z_;ZdN{tfJIMGf6$T6&K{0d!1nzQwumnZf<6qLje;zmi+va$~x5m$R(esKCGET>we<~z`L81FYF5h0x!1-aYv;8AvCrj}7br(`{jo|&u6pE34pdp; zs?OTX&Yka61u3xWNOeo!YkVEuap$N`Pf=rWWbB4jV1^i3lc!lK+L0UtT**BxVpC4w zp6PeF!&2SRY!j7bulZRO5_G=%vrFtU_rLrDW?~oE%@P(f1fMOQ8X5R3!ZB@VunAlj z1TN|f0;tOyEBsd_w~oF|`qPrc3qhO9)U?Z+v18LE7|gCEa_db$xES_C<4~d;zmT+y zbA{eQd`Tml_?WNVI1oFkgXBB9h8^K`oe@ddFx)&_LIQrL?V_5eOEq%A+eck*2 z09z_B^a`@`V@Dez4DBR;`4 z=qdc4N*1TVtJLW44?b|e^RJHTxT|V)?|Qo*9VrsaHb<0^^%timcgA1NT9a09bC2_t zW$M{%XAj6&*Ez;se3ntB(Xi5&6oLr5Tytr0Yy5x-?>;PvZw>6c+jX7O7q@CG;xUt( z`vGRvGVR^lTX)p{SzV9s*58U0dk|zam`-ih$^|bio@D`F)4QXC1`5brZz}On9|Ydw zO!vj)S#e`LO4GQ#KnKZ1X%90)l1>R7r;0ajC?YKmu#`QFv}Uwic;K%k+sO21k`KlU zGR{1z0L~_zc&KsLp(N}({@ZBuYw7OffWU832mY-^H-JXHZSSk6BnzYEI}49NS1u1; zfY^}It7Xg=;1$vlO`+YPiam~}_Mf4>C_F!xRlQ?J_@zH6GH#StH%pHRBo*XSS%zh; zom7N$4h983|B&B-D$OMaOD8F6;F+()V#VQQEG3M2*+NILDuh5J8DP%-2^5Z7dzMb5 zA}#5K+C3t(kqP*Xq6@$LgxZImbbC$^UuN`b1LaKX6bc6%WZpEZ2Ub1)B+>nq?wbqy z_?D6SXK*E!G@8GNUzV`!kbyb_uD=swopD(`@XS*3i*+ zVNkHi%O|tL+QhJm!cI|-ADJ^uNa%lw-BwEV*F>jPl#xxuZlbdh9Mlz8%Mg{Nmavi) zc7E@GG)neP{UYwXN)Cl{V5nQ|5rN?P>JEjcE@OY5@qIm3f(wyTMVh`7Xok;kdOZy+ z%%%M``;->r8rWw&4?G^gEjuvjS-YMLc=LVu$d72mRw(d+K(M=B&;3etcJ0R1_n*F2 z=BWF0twIb0>{`Q%27izyi%Z;t7{2fD;P^|)yh_(oysPVs4O^ZyN%oN~b4z6OD|XP% zO@pL&s}`t){JwP2`dT2XwyvqdeolPq5OfbasLNL)N%b$oPm8!G*cog+2~%!4?PzYR z{anf)SNGy$+MWHeD_^185~it9$Xzakt!LMb$3xmBnEgd5REPP8{}uhSw+o64u3<@R zKxktB_cA3tc+*^_aq5DEkL$3pH?qgHfAKp`vmc~D+Rysq^V{6HIZ)D%FgqLJ#Leq! zl_B~4!D=R_*uGeugrhdC1EhV}4_{qb?pCveUA5cn%T#%B9*KW`D$NiB%fNKlF>tDNRTr%G0^Kg{28LzM9q(WZUB1Q_WXUpho-4= zVdB-fdX`7+oZR``Vl4dtekb9n;qW!O?GTt~Tn`l^HpNA9|K=evQL(_ECv=SGfK4UgR{Z=pvi#@+cv zGQJ+q$Qzh=_V%Mh^A6$a83vS3jJp-2Se;izHr!O~&E!xPJ0p*U0#}J)kKVG;s)e2e ztzNpaw!y&Hhkt0859u(G|H&sr`t3=Y-)$bdHapPrrwVLW`~>?#Ma_Am{*gEXib$nw zjVB{Y=f|?M0i-7&0bY%~Fk@o{zwBOqsPYc$<|W*c@GDtn4Mv&0mmAF}O!AHq6%#qv zjug2UH|2EIhEhS=Vh|&W6!mOVr3sq%4sxg%E+Gfm(K;-)A9YjyT&l%A6Hf&Cs`g@; z=5>})l{t2H!Sw=h`*Fm}+4`Ty9K9dRtzSTY9+XEuoqxYyHimcRhPszWj~smt7d`Mm z&6dm_;Xd*%`?x3Jx(0TyS$|JF}?X#S9$seuWs@*An z$9^d=mzTBuu$)8}n)$p9-xPw>FprTt6cE+w9Qh2tMg(;E>NEv4-!IP*0BiTw z@_iGIONt50T3=gjADu6|H}(OuPXnE|-+mHwlcF?mk7y0sBhqKF)lynVy!k?DeM2M8 znXWlhAC`zOEB(!h^OV=Sgy&Hnla9mYAg-+Zsq9fuVq@nV{Die88wNw9oG#9BHyH3D zzhBP2d$IJw2vdhP$r(agh1C(}oS|5MxlDI;;ONd|gQ_7Pi##cD0ks z@BU-qcff`f(z(|5Ci1K6is>N>w?N3M-;{p^<2*)TtZz$ik0+$- z=yoChJE`Pz#>9Ys!**$>s%{O-3-@K#pHoFDzV=$uk8u*r*=?G_1BrCTF#P<+ly)sH zcpu76b8jbZI(jzs7JM@DYa^g!FQ0;a5vLW8&HCOr3Wuj2ZJEZHbT9;Qpl@tK*}1+C z7|ga8eyshg@R|$9-!i=QV=zDbM=L>Y@tUT~_eTEP54Q=NZ(~I2n+Mb{YZqH|U0fRZ zf=vv1c!N>}j?<|1%V}>ro`i*w;5FB>BX>JU*nR+&Ebn%6b z+VK&Ma8GRTS>w1sh-p#vMgwRBh1jJ!FS`18@!nVc&f&)JF8^e>G0mf|hcV$`!EY~Y z?6Y$0)|qo}(`<$I@R;4(bAQ~)zK6S`qj{1qZSj9(q-j|nj*>}~`N-H!;({n0ZXR~c z$P}Y_#-=sOSKgER`799iwNJuU zY740GD*b#rzc~3XtFqE$H~0yP8C9#OJYm3-D*iJjVlVe@c31KM_Y(Fn^*fxGW~Lnc z`^Bq{oXAGErA8;0cLSVTAI7TVW}Oh(b-YC>wmeXr3@e@>&bG)Z}VyP3@4Dgw&t8B_V#Gq&6L`MG) zDNFuy#r#o#AE!w{ZqMqe`;cv-C4XTzCV#4R&8Dgbv4bQnS_xX0)jCL~hoZwUgXS`V z%*yoSOBqLZ#P^28cP|%eEV@vjNdzQ2SPM+$Olqs%QL7*n^x>v-7M@--de5;6u}Nsy z%4kgr-SA#s&b$LOZ$4*m7YqlEI_{tx?-Q-vCwtC1@)~djhBp=(5v$S9V+c~#C^FVV ze5Xf50EJrcMr~-KlOqGjBIEoyG)9Cw%2H)yPf6FVMmYlja0MzzcOSspJoO6FWme9- zB%T$9ta!sjHAB~3c)L~?fv~dM=bud;iE?>Fh}r;=vRC=rHh}nxC{L|noZ9WZ3B}T% zHtCXseO>>`l&7@PHN-LOBg`y6+BrL=v_C(Ah(FmwCd@YpUoGpP|7B`z2R}W101Ick zUQ*N$m?}g7y1y@xqf*|JJt=GiZdr|MkV$3y$KwuilyA3DY1Tr}KEvs58=3;S!S9!R zLMRe_Zjge}j4tBj`&^)~4XqCk@H9w#J9P1RbtOgJ%w@I{PdII&Hp|Jv!2g%>949JCVd(s)>yyX0>OuGV z7i{B?R!fVBmQ0e{AuVCyfxt+!YkPaU9dalzT|`$xO%zS{uYq7wda5a7rFjDZgqu1* z5m1LCy!EUCsNj8G)BD8stOiEZy4rBj2L9mJcJ4l0rHwO)1+v*KApDE~0V!UJIHdqip6_UjX7dtrQ}=&TmWtAB!zyf-lTn@80H0faiSOeBs-` ziuN!Fc*AQmpf;L2u=GE9kJhB)Ej}GSN;AU|h@nt>JS*#B9hl?5q`dXeh%G17!C?C9 zHm-qEZ_Y^bDAVofpNKrYkcMj5yH6O(>JZ(quSFUGUukGNB)H{8S#WFK}Y&A~kC{?dY^QY&fI zeaP7kgK77{G_K2QlNp;1Q)}IrXZ0$V_0Dlmt4e!1?jWbmB8}shHPNPwD#z4AV^Z)W zQx)U&1gVtd+YF-S)gnr2k%c-{TAG!`wVtXOQ-bl!KlKU+-W+9{ML=FN=)uedx}}Jh zUbY695NKQFjwbJ14`=}qCyGsr=lD!HUS0HNOzryhc%22eJZ-$dTnJW*(rR0)l(R)B z=r-dqE|CWUP&qZ%9X#Q9p&rJ3FpFn5&GDYh2`aU6XQhRlP<1N_fZ8PNZgsuYNoW;j z8nf8VNOS8|tWQb!FfO{@KJHk@dmTT$G4?NPZx>ZWcs0@|I!Z#=}jo`E2EkvAY_%K*=G93yruORTX?w?wpvMc%N)AwcUNyCPtUefC&Myu=C8SmjMQ6f zYn7(XI6xGUa>AWZX34syJaPG>URhxJmeCDx9Srq9 z{chd;A@Ak_O`0ScSGCQ0NsZ*{Dd91b>Kl3#@10)6JX!RHm&{Lnb_6`B_p95p!{2Pp zOzQ;Xk)51W$;VzRdn0Z1;O+l);ZU;}hVQh_xp z;ZNKRhof)KX7=mWpZm5xxPJJC91p~|VtQ&2R-<9imMh+Uh#EjqU(12xByb9ec&~g1 zrr*HG^p(F@{5Jp5W%%?3@GbBcyr?BClK$aC&~o(&Ueh=yY@V`4jrV#;``8NOv258n zv!ibBkz}8G9HouVgxIsQ2T7XGA7sLAuhcZ_sZmjHn z_QV8p_@>FG@(IRXavUe@tNxCUOkm>O{z(n_QzB}b@?8ip{Phw2A<39{1O$19wM(m; zLN7W4X+dI6ATA>Fy*I+_2&m$Q1(gEqp?_nK5xf`AUzlMzK#Pt zT|n!ll5Ma1pF6SZJW3{|Z6~lpYa0XVF{!j}v^0tfp0{N*XrkPwrFw)|6gB@HPh#39 z8`$de!Q86rz&8`16dpwq2()|uqk5Vbl+j_h6)}59Y(5!%5iq!z-r%{#plLCC=;sqg zXEQeKc@Nl6*l8I5_0phEQ)(B*;!}LIRCayBHE^wfMdzw79)=W#6?P3sA@V{XWeH0y z3?`!`xph{!>3LzN?AnAFEvg7fEz6QWS03YoXGGDsGKI_fozS6OYT^@d-jlY-f~#YwLMa=FDFMjfx50%ka@nEx9b zvgZD^(@#&p#DH|`xM|ADvo6XnUm=&OKioBQKTdeE*DP8h1Q?Q^( zg|4`be11xA_`BORygTCQr8^=cmu`fn$MdjuDAi$;j4a_&Bh3p$I9iE*_ ztgRHw3_&zmR%2nXN)aJm`IW~|D8!bJf(GwT!mKPLgo;p@oaVnDB`%)bfB#b&<6eCB zZyqx;DW2uKUpwrzv(yX5Mhl!RS7J*Sh>o=3okHbpvRLh7dcxxD;Wn};Ap z_D8sP%3OHkQMu+ybbeRu(8RC&77c5@?H%^hV&U5Dfo&0AoT`uC4BvSW1pOeb#?q>d zf{9E}$5vitA8pzXc>swl%sMPVLUCQ3r8=yLP*{KR-GBZ*7>%{#$0JvC+|sj3e_q-S zR(S5XGjNxaeyL!4WvwAJle!=CF8Q)@vqsKpHKj~dE8q=X;&4E`G8-5oCoAvxf?n=d zeux~JA3#GKxqGnf6;1(hk+%zSx8{3XNxS78j!Fi6O72XK$X@UI9}f>beV3P=0e)Ht zsmzW1kVBM$BL%s7_SU=uobZ$s%mnibsa)6JdUrO%e!%5a(P&Z805isyzUg_K?S8o78N81 z>iCKE8Qp<;>g@(`u)QA?d0jf8VrUr;%{J0;U<1@f@F--FS8gzyS>U1W;ij%@kiO+V zW!&>OGtKq6J8#VA{^KzVE01P){q?TAUodF=%#O9rLdDp?!QzMgNjGRKevSD{8dtb0}MOKbrk5ncj_T30MK`Z-~KH>&?&7? zsm%)aVe%A@d&HOSLHl;wgj66J+sPG6ea^Kh|B(CXPaB|ALI$fzim)_lX*>;~xKi6P ze*WT=^Dzf^RUXDHR}pyBR$UTnD%4q$_eWc$0m8@3q!otaywG(EW~uMj+qn*tVu^3- zjJjFw>xs@*>f&l3+F741(Rk?bADNZJ(B7}BHlaQIl9aS1wyK}Kca5Ur~2Ey*Z7F{1QYMO#{5A%s=wFyE2#@m*yAUhj2G2etpXp#XICGaL=_d!Cu7I_op zcQ+S;p6qi1Kpm$nyUlKPTIKeOCW8qD$~3xNFB91q-jhF1J8L?g$Ug;A{D)(H&Qk>) z-^k-t_NDwzcRZzsM@(0iPm)!pa;ZJX6kx$GP!~V?ur=w(TmYN#j&19ya( z7%|4@Hqt_&*5{AGe__~uR{}8I$%%2Pp(4)?#8>o2ok)59$LAbnrhl{9i;ye)AbH>d zB3-mcshp&ig!gTyWpT7=vW5#EMEjg6?5*nVqWVB6`_Jz6w^D>7vsWAscFG7>P%cO* z9z-2Oe;8*Z0+J&KV!tU{|Ue+x*8cQPB07CBaJ5!{guqstkN~@ zhNF1;w|%w^v_KA&onZ!^m8JuhN{{7*=o1=(<(1cX6Gbbr5kzRa8 zLI?R-8~&YH>^=+@tNId@^^NRL7Vl%WIGMU+B)bG{x)<#3uSu`wO1Y>w-G_(5k>VaVtv;g9 z1j-6V-F*ZM?juAf=-30xuxuKPQFECOmu|bBQin~hU(Kee>&gg82&^L+e^oupIWF_h zU+oFQ6FiD$KDtuWkzMYD`m0gL1}4dEzuDs9YGcrDXRaA1Zy|K9AD!o-8f%cVRR{?f zm79c4qjn|=sNck_fX#h5XOSF|ERo#6hWKa(20qrl5g8IzzZi6z<5Gt{fBozKBt zIX2LbS5;GzGj1%|+-hTxo6Gv|J@N?L%)pisO~#KMz<0F#30`T2D0~TJbLa0GB7fB& zM&_E*t3P;))z5z2+cq_t^Fz`os{17^BDKA!I!WzqAvX9W(jJF|eng0L_s=7l(Zhov zU5?y)d!{Vvy}3=%UvhWwf;$(|7|4r8uB(;V40-fRcqztHSLHDdU4_w$Nlx3EXyKh} z&QjeL_E8Et+g0SvriLt=6}1Ea%~#s(X-MjXFZNI(Y#As-4NB~~T7o#j=vzRRDH3WR z^~H`c;hFWCDSv*_eL_h7dP<(JF_^`~ive;i?j7Crb##P|)@;H7fG{k3VQqNs8mmci zV=Y{#zRS;rsp-hrX+4;ZL1O2;p38g7*0MoT(v`mor-{{U1nGuMs)3SKQ@6O^)7eRq zyEV&MeR5qKA=c2AUUa{kk%|Sb`mZaU+$tII%w~b&IU0yLOBuA#H=cRo9jAuI@LD%; z$Q6!`6ku~pQ*nyw7>qeaC8Je|!p6;}~%>+*tw1WquY02#&{9ySL|PY06( z%8#MxASMwIRs?Ti^4c8nL6&)*^LZyf_pwpSqAstE8s1sUZuvKvqFlBWN6}r9N-Zhw zNjH^51u3d<))cixtDdqa}K`}H8BUxA#9$>B=1?V>V! zS^_@XB4hmu-Cf_>Z=;j*o(L2>dx%C2lF#8>eTPWW=HnmQrCEv@6Y;bY@H!^r??Q5f z6H#5|Jr)T7E_e2g!n= zwNqDnhwm-FCYGGfJDoxA1Y1rcXoq*PtM+{hKb}>3tMAi{PwD+(?|SO@Lff!j#;#6! zSO=*aFaHW}VW#|{)EzS3zSn5D@X*0wC`S@(`m4<3be;_;Vy_-E$|$bo>fF zA??p@9y>g|t9J(KkMuJ)q zGyGL7xeExE`gAPG!u?-35Zr)sL$99>rjTR#+D_`X(rR(bX{=kJXtL0@@9n#Oiy5604zT|#g-H;l@=s!ZYs?eUu0ITi-`C3l1(Ba9ZKVXzA(%+vGmVUU zP_iJC3o563A?i`zB*_TB_;$EYqpwQWHj#erZ(M=NGkgFd;>Tj0pZy!#*;;0^-@FT1 z$Wsb$@*h$@=pJxVE99Z3N5g}^=I3IC%skH&5p2;69K6<#qntCm=PhA{2r&>@>(Zbj z2;q5@35F`!2CDS}+7MZWQu>TCdOCD__Ib)(W_OzCH^(=O3H-C+V+oIJ!MjPnD%`!t zFIjKWz}iRWz_Fjw#?X+33ijYl&R*A zrfVBjU?c9Ol(!=TtPG@B#v(AJfdlr?xG&*XxrNRTKn2c(|4YxmAK>7Z$W={SDgr%E^7f?R%BQ|o-a65@AANWNwnGJRr-^0WKq7nl6`}_!o+}D^<2Z7380MSYi1dPb%TYG#=5d+Q~Vo2{G~+)g|Wqf$?)fE%yGc}Gj!SM zJodf6roat%2sz}dXMa0Slnim_2Hq~=3BRJO8m@-)5HTcP#`Z4RVM8yrj#M(T()Mm! z>I2#x*_*%?%Dnq@Hm(bikuS1d+G6)g-$&=M!PNYO*)jP?Q%}n!#^dz+G{Zw5&zOwP z(Z>Yk-^rEfuw=8;cSi56>ZB2(j~mY{uH0(R`kljD z@}QB$PSg3TJ-m}Aw$7s!FIb?U2v9~PJnP~#cEYhi^)tbqI(dDMtqCvAUFzF4p6n+} zypgIksR}b&`XP1CEKTnk82etjyi7#hR_ucJ8)wS{5m1!HF^Pr?l2cW14ilm?NH_^g zA~K{YDpc9F#LRa39JM2iN`@42jlTiOB}GPz9|aogKDL{YWOz9f);-?aLa;F>kY?BW zAyJg?da>5}YzYuJUHl)!A$Y$bIOHS6LH0amDGe-T*m4O)e12?VNb}d+6xGr~^68qH zjVAqTpLEU@3Z6#xo0&iM6v&T6i7u-ud@HhzT~&VsOGykbJrt9I$|0tfc|%?se{ zfb}hr+%8Je#xw!2aMD3ceOtr*6Hv%X@E>5)eeS#G*3dBUe_aPqadGImVta-oN#-c2 zw{Kdau9r_EA6E>C8=sZo z+4*x+>R9tuhT+>iZ4ctiMED6nGVSUbRU&AbcU!Ott7~Yy%@KBn+4O(Db9c}ke-GBV zHV+nYN{8@mbO1B_Rrjsk09b!Guyb|jD@u#%aXZz^0b&D!mVi`PY;ykesF(C(I5?7V zJ_qG!I;OPn`q&C+y&yfL;l@6Mk3~kb3Gq}k0OE_70Fx|DZ{#Ikxk-u zzb|OM1O2(QvC5kxKzef>+vMR-jLusouPov9GYI_jVSm$iio2EpWsHN77{{j;sYrs5 z`hb7+Sq*bU69~I;Bd<6PV~h4RUyL7JA#=KZE>hO@dNRGG{0X;IWfhU^isnpwev=GO zir~aF#eUYY7`;d5YYo{-xxVOm72lZ)+Fu?O?zAORwZCnb){N?DU$)1&Pa>hxsar{* z5VE8^O0q|dWI*aW2HQJ-wHjjTsq1hdv&gY$6HaUp-05)oL?c@*Y51$T9mjaw$bgQ% z^=_4c1`198Q*&`}Kf_0DH0o!ilW0K9E&L+8^i;!Iiq?gz>#icaMkS5ub`9_0@C-fs zvBWF~Xnjgkfpd}u1GT#oL18y3U$WZwuZ_LdXhO!sE<(z%?aD|KRV5P#Abo?*E+TC9 zDSr~~x}8@-blJ)y&3Q>B!_4E>C=&*`Ot!aABDw0IR6!iy4P~)gO{=Z=!xh;WGexGF zncKx*;3-F0H2%H`16VCzfUi{Tc zuZP6c6|NN1W_-+eG%8`6E2i@q)_6*6pXjp_&5Hx^uB%a=$}+l)IPbgz=goyOECCq_ zVHobY<*~!=VrMroB&uo3^H2K-Q<>mx04PQ0Xhf_yRSUOD9aE&2$qS?OQ9;2UV6`13iCc9W?r^RJa ztjK5j%b^v+;1J+81pEX#d>Nxwt}|{X*&J(roMa9iWJs{ zz=^TKG&IF0ZNU&uy5lx^C}~)gPyBqm{1R!;%#>i;I^7 z32fimRnjve7`7v6qkUsJGa@7Fg!iD@sj<-n;}ayr#viVg0k?!LxpskQnx)S?!vyHy zsR#o(`9Qsw5{?Cr8wcGBta{s5gcXb0s=6%W+{8}%%GD{NI+jhHpoBYmsUnP;!$mU!aZ=ncU0zn{u(Yy}Vp?a_!t>y0x|GVx z5IUxsz!Zb>U>DvSqv*Y?Z0h0LQ*w;Ee_QikNQ8HJ1J=4trk{sBGIL9r%W+Yo&EH(! zy^8Ed>`)jLi6~@V8%lPMB*l_CWhB^zUW!K62O5%`lIxM>m=kE7+ZjE%^OW3M%#KY9 zi6&&`91Y01of~8R-u;sZ1b-S6?0EMJAdo-L&~^jtUl03jhn@a~JQ`Nfm7ZItbyb>) z9UcA`Bw%n`x0M1>L#Qe!I{7s~YbEMT4l9&_cO=!lu)g^9}^eaCOcVl-1b;X}=vJ~Z?a5Lt## zu~mrg)1i~31S$8OI@MN6T%GP#Et7Q8Za+x5oSRLiY#Cvaa!9>&qRgOB5DuEPK=>u$ zEp^d^%=(dqOmRMruH#o*11Cz`%N}(l@w*T21zeQ*w1g1ja`%bG zysoptKOV*YGlGhNAG8F|Nqe=n-r8-9O+WQ!OtgpJb5h0!9@q+##S|scME&YL)A&-) zw*4^rtk_uQ}yg9`rbhoq(B=?3gyFZA=c5g%IfQ*HE?85a&37%2^z(vy!ENU4)yij9{bc@X#Xi zc4!4{JZH3z|sGbTf;ta*)9 zLyh`?X=xCMEQJfJz<>AHEW9+53V|l({yJC8O(`jE3zB%7;(C~Mp1f5UTLn%Zu3=oe z)))>SR$qhPqRYmO6~geIQ)IKNmpn^A8gy~Uic}NQCssji;?IqkW~Cnm-;a8|-u#5` zb-7eH<$NGMhAqTjUbfa`D)TK8$=DLz(98^yqz7x%^{khTMto`TiWS?#_Hvcw!8w)FNEUUJZJ0rQ`L9LZRGACGW0uDPa4%!b|(PD9`Y?4gN zV}ZM?z^Lu;GLnifwe=oFG)bV>t>0?Z4l>ihD~xN>7%mLS5%=-72oSW(^7~fQH6J9^ zYEdXN53cC6tSi=t>ST`>(?q!%^!Q~pRRs9>QGEL0l&hkbs5zNy%5b1W$XD|75H0Dw zL1p?n@8WRlP7cEZm_E-Ms#{uP4P#H==a83z`|3vI3X;4M%DN3p(@j+lv0?M>Mxsx7 z5wTI+^GvZ%TA2FSAY=?DfA8;Fx4l(8B^pp6a;^4^buVqfQD^xcaET8a**$}ZGLWvm zTInMa_=jIKZH-#7KJ+ZEH#7d1ov3$m>RWKpix;co>zmpKT1>ws|08NbjRS-^@zbZD z%On77hx~wPd;hu7ZDMXAp^!&fJ`Rk$ATU5Y27imon{X?XIaqb&U6SLe}QNQW|S`2{HUEa7S1!#j7Qx8Zsnww`X&hLErI(D_xp9)))ndpkx&J8b z3AMxlp&ByAJ^dUOmiN$dG~Sc`ghUW2f2q1>N=%Y?5*9DBHg9X@3sFWDCNsWnZXo;` z>Dk>0HKq<7M9>rb7jdUL1t~G#0mj;km^!+_C!I+L$3BgHoUNy@T5E7P^)Vy>JObEgL^;zhRg3%iaC`5Q(G{8WQ$M$#Kr~eCbDTiY`;5o_MIB-lWyV+N03_V%AQg2}LM0RqR#O6~PwS)FIS3unAejl--tx z+)XfH)P+~1LcuUraZ_*lqVUbB?^d2%Vq$WgKj0#j%4OXe2|Nxx1*d8c%N+jT`sV+^ z$KT=Jc!5RhZ0-VBZFzIFB^U%TZ#L?DqH2v4lEcJUR9-MlH(X0H4X|t=d*#yhW?7V; z9FHk4r~Y-eFa9_L)=N;$P8vaC2*Z;H4G-b9M( z{@yXnY~*}7yQz%Mw3ELPz6m~i`;eGQ^Oy7R$}HqdlkYV8C2mO_<U|tcQud+t-(+sEtA{!S%*qsQkg04 z%6ucyBQY%A)nY}|UK>l(P?}A;OERI*^8#u#{w!_nwGYt$9L*9BQm(a@q={s{h?#1x zA8mCur~K2z75AGl{X&#VJvM8n_@U$KQ&^~{_NPi)3s}x#C6YLMo)k3A{nT6fFM*Q@ zPD#pS&zRVRhKBTe=uhX@H#UrRonWZ|7~7+j^xplG2nh%x{PBB}AJko!D(g9w&a+j^ zd#FM`w|}ErU#8 zEwHJ@whvy_B=LSR&4MbBQmba>iIA>-+rILn&J+dPi{|2d&5SHQb|SO_U<&J8ddvMk{;-)VTF;gGS~H1| z4)USZXJF`a`exQpi2A)&=eBepyj!9mm5P-6imVa1W296;rUZu3w9~4#*>$qG#G2Df zuVNExnFba|(p=GxWKp^CKKG+GxR7`SJ}2ew91>io0Z-QkuTFO?GP!D}T-vXmH$=ZE z8@Tv+7Ly%@Fse&>ikHMP{66foI54^;w0_lYRyC$y-y_C%tO`i+KfGeyzuCIYN{YQ3KUb`{V zKC=kGxC9a#f!}2pB?X5{rfca4CykyV)4XzIWoP#_JCdNxNVs97F}3cXwu8_je2wQ~ zvl;_yKN*srSg?6EHD1UyJlO6cedV(Ip)1FyO*d6osMqMPpEX_GN(Jf37I*uB|7q-D zF)*98%N-B+;|vEaA-Vq=o<%M4!O*C^?A;%MZ{&bJQ58MP664ddPkX_{Ksd$wKVJnV zmx>dsfBRKc2i>6!X&SA3q(@Jx(y+KZ6=ZOJm-u{h8O&Ot>Kgtqxs$m6eSxL_lc%mM z$brSX5#=JS5dPw->xXPZ+-8(Zmf^YUE(qF23?$G82V)DtnWqVzR69ZkqSgQP7xfl? zRBrnRr$_3DFBdirWVSM^*>;^KW-GvZ)Lc?-`4-yb>#H`4rl^v6a54V-t{#w{{#^cG zIR4B`4Ea-zG23tVi|$gw+fLCDNKFPG-{CkpI@(9?GMhKv?z0}x8_F@ru=Dr;8O_oc z1;QW|c)U{F%KVRy_W3$swJ$5{nW@RhW@IX6|AO$6Qzy~1 zpC}D45pP)*wKYn{CGe3McwNX)U`McbCXF)y@iqDixvZe#=fnm;7 zEvjw30iFBljbgeAOhmZ;fKcW99{>ydCq~?A8z1P@{i1OQ&_Zj1JsZ?~g|@UQ7pG(0 z4!rF?I@(qu+By56Ft4`8iLe=xA^RP(X_bi)q96KVhW9*xXFF1D;DIWbtD1~EJ&tF% zVU%byVcdZF`%?S(HAil3_Sr<}eqPwG;KxqAGAZivW30JEHLgvKRwqhwmGoJCA_V3P zC5Dk#brWXj~8q?3WOyg)l=J9nHXeS4|H%8+Re*?3P|C zg_bXFocOQ5S0W1sul&?cJ#Ah#Of(?kf^Ppj&VGYZK>k!ngg^67(zc zyMZ>MwEHU!PKM2S!Dmmq5C@P}sl_Z;(4yr$bh2JIjs1LkfEm`c)0_0RI;}yd15=9X zyAB2-r7&dVDn?TV83MfcBD%A>KmAZr1a&KaF=3z7x56@$*D5Nd*xHK>ZYmWc=4HY2|(akif>UaLzc zB1sP)Z`xB8&fL2@PfpJ)R%3B@TMzwNU?&$5(L;8dQ)hPbU@?S-j*Z5ae>6CzWpl^)y4h_xsBI@dDo|Au-agingH5-Wgv|zeEvVd58cpoLv28yP7#x7V^{;!(k?U=|E4eMS=%x2D;E4QWq1n%9DNt(5scyVl9-DT3(+y2&41-*~(LUMKC%5ZgEw+70g} zylLX@07kN3h&Xt`72p?}g}wmd%(q-R1r#^@p+w*wh5p4+;pQrwfz;W zH@TQ^>D1{2%EgaN3l*@2WYooJ8U1JA3){Dn4exu^Gba@_`Uj)!aBNC?(RQ~wIO_p? ze~{N?+LUv=$eFJQu|}se?Xx;vV3z@hkJtd>60DtZ|`8o$WMPMbsMGPv*3@C|n8Z<2VWZ73JyN@Cw zTtkRTh>pf!(#<Pn+ZI@CK-Q)5gtdD_<>+w)O+hkn zJc1ZpTiA|t+jRtsAUL!X~~Izf(*%J#RC z-%97U){hJ1NkfxKIk-h^y_mG9G~ ze__`$Lw>OO{;pDvSIyU;CvNkENa%Vb{^p>~9qGSv0uNe+&$iIs?0velJoc3$o-6`M zh8_ksM4KwMfR}tnx9U2~u`CD-bK#`LB_rFDmKC8M(}58vAUBPnwg?y*|5zm&6xn*Yvl{SAtzlm0D#}b0pspsm;Ei|QxOw(e?t2ZJ?#j^f<9Q@s)vFeO6bN(3zdBepNqOVg@k{B@$!{iX zel~+MNkjbY-Q}M+Yt~1V>O$xgP*wlG!r8*!uKcCp+~= zKw>zL^|qz1;8S@t^c}5K;GWh{VRaUKNbPD~?6+!sP_pg2G2n3u&w57h()Ny+k88=$ zx`9#I;oA1$H{%IB^zq7@!Q<{SvAyB!>(`Ro$&Zj4G9rYw5 zLE>=r;v0`HH223LJ2xvEw>zZG^JTkMYKNPAFG)gL<(n~}Ii~xV9&bOIY)gbkRWVyv z+#VHye{yn4eo(RIkYZ3Oxf~rGzqZmP35z++$EpYpm>fO)8zlS&>xZWAD?H(VR96<= zNBeaW+PlInVqZj=xy!rRsbC5SptVti6c@B;a`~x2@=S&buiXNFZnw@yhVgKv6MC}} zLnrRGzEBzsH4|5$?f3>ahxt~F|)PsoGt{vPNnJ>K5Sg^rzfz!;!L0a+_WoT6q z6q>*Had!D|0uy-xmeCNo=X7L!D28j;4Yjsd;l6MQ-^!M$LPJ2oiI+Y4%5JfWHX9da zJ~(wtfvE|%-5+5xr2art_olF3CZ?dHi%{B5=W78H?z{1Ixc%v;FFF{X*SNi(KwcD} z<@}Wz;sZ@O+J#IFMa5j^a`%I&f0wHGN|$J?eXG3NsT!{%ANUij`f@&~m<^IQKk7^T7wNLD(JP^ z34Iv;Ol@_kp`xZMwm)?9N}S6GG8Z=c`ikT>y8q8XjV9Ej+Ul+k_{?{eF;Ee6qR;(y zwkhx1^C);dLX&NSJ0<5EtLP>1`JNmB6rTjyo`}cpR)Q`Q-6^kgl-Az5w z3qA%d2F*@NE{pz2)WfZ^*ZfMF?=pWyC#a!~FFr4_yyH{a4j4W3R0h;!UHTRTqyX>I zQho7l^EV5-k%bF-jCk4=1_9|AdBMpym111$Jtb4dZeiY$;)4SbFHp|R8lCIv>Y*8O z_aM5|+-xbu5ILOb@5?2{&FWP=j|m3mKvGmhbA@}88hP;i(QT2bQ81ah`?0L6kgJj1 zqNPcw)k<|X#Wwo>*qmvYVfd{aICsen5p~N9pEfF2V}gPgtYRpJSjaD@jA)@#y0OQ| z%vX}Dnm*j4rmvaaO0#kOYi^=_4qd#ZQ7>2f8U6PjfS2dp_L^nr`;)G0vRSr$oU1ei zQCO_pjasLAC;QXQH-#Cxq1(xP$fPYP(qp_6P?mAy@DtpN?usu=8G4Mp7x&-6lNc? z+%22LS@lkJCd7E?F`pf_vOIEV^|#&Vf;o$DvSki5q=`?=ww zS@o>cpRXpHMDv_<7QF@i8$Ofw-nE3}N@TR~TT#9DK<-RLSr=HxVueu2*WXm_x7TR! zzO@BuJ~L{925oG~M9`i253;TWO>A2Db*rI<4yt~GE^va!B?jm$zoX%*;drXu0rwHH z3rXpAkiU?}f*QbZZ){hh2mhN|YZlHd!;K3-$*6r;%y9!|pec5hID@MH%_?coIBAS_tbBwqPqtCv{wO95S@`O+ipAQOkIx z2?78jCFM^mn%^BVyaI$mQF`B1n3J4swI9Z~qLGyk(+KH9K*e@JskinTlLE z?n<`lc|qYkXfo9GorPIvh&Y3A)8|-F&PZ*{p7@Y(N%an#8f?FdXml;KZNpSPX9%N6 zsVzwu6@Io@(R@=q9rP2(iL}O7^6N@#Elc&8{CZtm+Id}xoQdoIgKpdrISUcztF8DD zo*f;?8S%8+Xll~1;Jaf}q>;U5JjkNw{=;VG7|E4ML(*N!o)(i-w>Y0Q=WIf^ytkti z)pP{cq9u+f(F((sE=E>>Mh()r&_YGGDLi1%uWYqQToRhylyU~TONn(_UlW|W(_Edo zSRvO$;yOXUcz@4kWil8zrbu5zA!tRg$%;#~$JL!1oeN4n3F|I0Ojk0my*kKV?d zWSgpXl+l&u=mbrsN+^FdJe`y*JV~-k!lT5#fgH1=*821p`#hlExemDmQD%ch*RRHk z#W>&i55Bwa02CFV<|P2z+idB--^euW{rB5m>nZV8yx5QZGqBECfo%+0-V*R8NxE0% z6}x=b(IkmCVpFLC0;KZ?>W_teHMoki$S7(=6OI2=M3iP5;MW<7kOm^_ZM9SKKnU z(}?=WAXJ-=MKw#L)tIN6&~~#COhObriJ3o9%33U%m{L*v=!cKq{VhpIS4_oK&Y?ZF z?$?ID-e*OpX=k4n$7G!16G2$NaBD}JW$T+VH>RrGCo@>93a+L_wPb;j-v@EsP50vu zAA(LCMHg0@cK63F9lb5d&R~sg)HhcEFj*Yp8tcTP#4iN+ApKr4Cm7bMyHAcGq;a?r zkcK^5<;D%!6YU{f29H_6tp%HST

1&-x}Hdd3m9?$u)@>NHNN!(iK6b}6h*3!JY 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ƒ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 Pi{2f@MHzwu*9Mx02n72|1}&u@FjOhIB3 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

+D`0$6 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%0D@7Iqteq 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 z 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

hO#s3n3lV4)2DP>qJ#rDDF_)S3NX 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%0AAB)}}H&%@C-98)q=NKqo{g8!0@I0-xJhmY|i6 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∾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 + + + diff --git a/images/landing/php-bugs.png b/images/landing/php-bugs.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f300431559d85be9d73aefec83cfec950a4dee GIT binary patch literal 12113 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 Hu0mjfGIthq literal 0 HcmV?d00001 diff --git a/images/language-flags/br.png b/images/language-flags/br.png new file mode 100644 index 0000000000000000000000000000000000000000..eb88391c1aadd6ddc8272e1193b7db5417c8e18a GIT binary patch literal 21238 zcmb@tb9i0Rw>FxlvDFxj)!1%q+fCy%ws+$+w$a#0V<(Mm+qRwkt^UqA&-w0s?w|L` z&cIVpjulBIO*DfO94a)6*8vXfz zZ*b?p+vlc_z>GFgfUo}=|3A(0#mEH%HaR@x(5T)jF};Sh84Ce-3P`z_?9QO{!9+ErgIq`DXqI`eFHL2LAefvuUE z?$IOO)JktXx%yW;!#dgq_E3`$14w2^*uUwcTV?mdVIdCe zi!NC)z03k+)^ps_IFZ(ej1c5*5SI#K)wYRA)?o~v;%vBl%{~ux$doUV(}(5i{N8|w zSpD$#LL=z+A_QBjZNics0i6Hnt8=vEdBX{;DNlu+xxKbv3*QKy9#n7X^)q_Ra`T%rt z`J2@G%&MB-&-S?Qp}b)-nXUlV<-=tAU#~7?_05VVu>o^sbxF)?FRmK$!0#6OZ}34U z#=}oB^zd!iaw8B`>_H37d>!scnvr*7xA4JA_&wZ)lZ7?$i1J?!?f*^lS%YS&fv3_r zq?|kB``O9HCy|DV@RCJZhN#1r4QODVe%akYOGYzK z*^N!r<+A$MrNsyi_1iAW-!uHd>5ACF_(KW3`qF6;!`uX-sjE$h53BwJr4U89PzNvQ z90T#!SJ+GFA`a{~If4G_-=RYef09FA!WWuC5Xs^gA8YL5FSDS88h9afFy?w@53^v9B> z#}J__tf=9`qCVg@f4tam%*1a@ zy$i`%J*nnHuUI0|gkk0kg;8BfjX$9Z-1C3Qzv;lZe`S=cmDFJWG>{tAep!Gksx9~S zCVch@TcSP)1(pa{+Q%A*IO9Yu2b!GE<1_V8=TR16d#Kt|g^Ma5@ML;E0>dZa2&r18 zr^oM~dS0pMrwBem7e?Hbfdr1={_WPph5(lTlHdF9YIqRCNJ^CzPKIl*#tb z5lL6D5p)8iqIO^^*N|)T0Go3OBg(V9RwZv#iM61&Y%>a%hXT+IPX;Bso*IZdWsj!wd$@C)er<3%o3>9ur*QDI zVS)I{F;x6bviM8b1XI|AhtToLlxF+e_)B;nVHNa&5$X{HY(+UUWsxuXL{QXhz_idrXktvjZh?-!{@`g=9M9IEWGV7Hvb=xyNElP-R$nQ`^3w2L z3oQ>*ejA45e$<($Z&v+N&RDso;D<@z&j;n!$r)1hOsC_Qok>d0bPQ>@y#JQ6dSU?+gl<8}jp)^0xTdCLDtz{6LIyg~D~OuDe(k`8@#Bk&?9O z;|6O)g*JoopasGP2P?x`Iswt@FFKbvg}qv0k?Hl?2JXmFP_u`e=DuhztT)T*c( zmkA)>j{lw2ic0qFystZns3wj*m>NfsS3l6D6{hpGFQeZzW%n(8A7y=BR9k_XMSl4! zg}XHz31FVk8@SP3B_{l)F9Ag2o-D^zi9Q1RM<63Brx;cH>TY!S`5QMG*XM96pM&ZO z2Xvb(8;OqCyHJ%R*ycFkibt{jRi-d}-(L*TxgIr-$t#g>ZFYaJnf8lkl>+ancVBHFl3l_2AbyA@g-~|>wh`Iw_Ko75bz7l%`^N@JlS*>KL%7^X7`WIBx zAOl{4&fR@p=S?%r1ZUo|h+%00@htRTbiY`>OMb?wDD zALaU1Yl0j8W)93?_Kq2eM8c+{OF52W*7Z$}4&3syB?O0TqVQWFR5`hMU*T5b-`pl2 zZJ?L}%R`ulr@~|#-zT%=#hNJRYBqQ*@T^Z+_p$#=*&2`wKD--+KbBc=)kalwagO7T)6;Fr=RY4YZmXh@&=;Z*o)FyrKWR;#i3v2RM z_Q;`LiOEt3s*W}Dn`bh2M(@W14AmWc{&YwXUa%6jDmdo1x@AtHZi@ZS&rJckm~st1 z3>w~O+C7v!moufg!=cndo|E4LR5slbXQcV<8EI8DaPaf{q~jOG4g|c_IaNV&12e6k zH8K484pVu&=WMmFz9yk)R>Um?@xQ-&e;n<1w|MnE6zTq(fFEsl;7m!o)}}OB>Kga^ z5EshL9uvT4s(MR~$^su@Q=>FX?RJE&$3-gqJ`4=1TDwkfg~R97jPQJ6^VJb2Zz_ax zj@m6&BxwHAiV0kcOfmXqA~loLRO7CQ1AeBi@TX8dkinu8y3tLqm z&&S#d8DayV8bDFIX&T5qvylG@;7f&Glv#AS1zi>^QB{r6!*66Sn6B7v0&yR>Xd8tn z%Wk6;W+YRVy9d~MO)cCxY_0u$mdm0!Hb|)`_3wQEV&+c6YmEG&Bhqotd+x(Hm){i^U>fM`j`~PO+*U;}8Jo z0t*sndH8NL!f7c@))NSxw_Rnk80jM9wt8Gx#2z$FQ~geGC0L%LLkw6$wEwY&4@4zM zJx9H-0M;LwX{EXoQ_r*C+gG-qZR-Pp@bZdLyFh$LPzyk8fTO}_#&%~v`?<+W0Ds?; zt?k}h#Xu-y4x@=UB>r(Yxz@(D7<-!okOqRXLO%U<2Zkaxq@wt1!SK@Wo;_a&%DU?0 zNbrZJ&XYb(ps1mY;3ZS0;A4zA$rpuOFswNX&A=dMF1_s@=RlcFR{62vZCu2FA7~ zr~D7Ly{cT1u;sdc1zp%!qXv>6MrJVj*JyK_TKKtf@cmzymphc%aiB`6=8Vho2u0fg zcj?$A61<~^kcHFtGo4qHZXLuqbdp9S_n)|pfj%l-jn{%c( zLu-8f&(VP&j|omua#tde-3Cky%%zW?ibU|?1(ivS z=jQdwkQ+K~X*v0hUWi1!Hv_)GjUigmOA83`DM5$a&3oCIGTw@y2F2KrNN7wTTHT~7 z&Q|Wr`R?Pj1}yd*s1{QYN00BZEE3|U%89`_aI*)ZrOM^A4Z@M~W=_977SKYr&R92) z298p-uAPg)9XThR58UyFYZy;kjB=KJRH!hJB;~vJz9$h}*ksGLNKOL-_yL{s@`Qzk zbovHe?4(F}&U@oI_;Dortt#SF4qF|oA2aAmM4XT@x(o5!rMoj@G%?!X?$zNc1We}o zi?Mg@Ql)zOtW~^(&2;hD8oFT_OFjEZS~~lfJbqpmg88Nm(mH5uFa^g z_!Ad?UZ(}3Qy1|nv*X1l7WNyu>hD;RXU5qhr*K+6w;^BszW(d=Mr@0p@gWJ(N6j+* zT0IetG+<5cFPyaBl(q=1tGN6^O=SxvLmxjKqA1PJ;eO@_NmGZx2yO#+R8WwHv90Yi zJC_wO4*AHm^U#gO-wit720`R{g&q?J+1noU(JM|O6Z*LciRpOup`=Y4T@U!9Z{8L? z>09;eqp-C#jIO?E9Op{}LPfvxtol;zTFajq!z)Khxt7O=T`T}}t-9x-z<-0Gx@L_Bv zc&Ve@zALmyM?A;xt{bfw`G!9qwwEfX>xGXf?fv_u$hCIAzIKDyh7Kv;Axk!!jnC|H zj~efEf6c{Qcu586mZ>7^(_ zKCg(7!TL)PATqQ+gT;S=m+}rq3kgfA^;{yIxVUcOznN9h*Z>W_z9`_9stp0-aif%~ zx2Y2YLsr_~P5`ox@cY<>;P0i#0ynkmYdUrC{w`P0;GiU> zQd{jbPGZ*)Te~^ti|Qg2DQZL(C`ef6>}}F{E}6STN!(Caf5+JRhi?}A|y=a16W^oe|>iz&PSy8W|R*j`tP<77dDnYP_k7`~&>csAH z(r-xdz{Ui~4)r1DouS^gdb%k@7Zy((bVwYihxC-cC(pb(=zAv|5u>NnEuhC-_a8wm zzTmoO$sluHz40g5_qXw&yP4hqHYf);Qj{P+w9>hHI`&9??9AcZB{i26gIQ1G zl^dUVf(vEu5Gf27OE~g4tU9FSKJNykVI% zL`F`mT@EZ9PF}+In&+zra_tWMRdf+3BnEU&#eJ9m4qUeo{a@;#<4(a*N{r~7FR#>d z+T!p_A6r4|DlX37q_&GMN6)3+wtg3Msu4f8@AnpLDwvT4R%WPEW58u2d&DWW-s(4b zJ)YWwKds)mVv2-Hw6ODY@s)3V={jCLKz6O2v*h9_uU`E_PcUP49)=n^yNKjbI$UeB zM;h_hS-5=6BfdO8PNCrEcn{ih{k46(1DlA&%_El`b37)+H)H}*B2JMoG*)~YkAo8h z;xb;3w$keN`-^zh;`}aAV^osjzccOU|v$7%Ur*#raLCIj+49eeV(r0FO;6hVexE$rJ)LP?U*lBLK z=4}4^zN@5MYL!Am9>+$o-L9>pmL~QaWByIIw*Sb*M3DoP*j=ZA@v?kc7b&ea!MSTr41MZOo^{nk0wQWgmD z(gbM)TP*k$<{-zQ2%U=*&R2 zbk$0a%$&&3k|tM4F~JY|YNm?oO?Qyhgr4l*s?G4*Nfg&_M6s$H?cTmS(2x%G4ppH^ z_+@0yg|YEvj_rrg;0rCwXWk$tk5+IGSJqI;G-n0(3xi0g2nBE^AyHO6jl*|bHX44i z&#zfOwI58D%cEYy@5~ixCo)QDnQWT7bfIBuB_n=a9J7uYvMZ5oMQ5h;nkgr8WP0G( z>x4UOq?&->&JRI+zXi}{JN{7`k6xAehOllJ`@UpNM{D+!BiZ-Ib2`1#NK1QQAJUzy z%=)6D3+=0|-;xyyFUFEWrm;teCOb?*ezHa`+V9J2UQ!mrVExx>nUw@w+#obEBeB5A z`LrD*j6{W8DrgCi;BATJcBhpb221YR-edV?BmGKDcd|3ATl<=cqgDW(-&*`*v(XVC z?VPpG!_H|x#)m!!&PTp$Mm99pmECJOZK-ovR9o&JxM9O3Zw@PdH!E)zSBeRKKvX@q~%LKD}naLVzc|y-+mE z;?cfYtub`)>YYdoZLJ&qS~;aSeraSa?>iiXs!O)whJ1@1%Bba{V zuJ55wVix6dH7wb|uyXTQ4F)735G`D8L-49Sb_)+A4vse*aO`1>UUlJAl}=`jB|Ihwr-JTvDM93vA%z9c*&= zJB9+%mDa1JP^KOnT_g06Kv%|B>DiO&#AfJa&MI=aYPmNZ!nyhSyR*gq;8Yps^-PV4 zy&8LAaGYQXZS@U0b5n=06eO-D+5hTbRhgle5tHOS7l0gm9}wvw7QxI(MxBEG^Cp_v z=-`@M9y&lYKK^Mt|L!~cF zAiNjP2PbTjcXyj5+rXHZ@pLL;Rz*&;Vw$^aK4-}%A=kuNI=)sC?Yka+zZm_P1!nJj z=i5z1`wm|#DbGC|CfnPd+O@6z4l6{jdSz?-XZ_0j4d@3W>oKceA`)y*2P95q0pX_3 zO2q!`jy&1E?$dwp(YvGxH#rK8 zEcVx0fhDdSLZZkv%w%)h`7%eNUf2FZ+K&11unccvfquQqGiTuBKmduCpwIbT7AUvC z{cyg>-(nRd9GkSafH~7PdB|vqZ?C5seQ9k<==Mc>hs;SL(9~Kri+j?3YP+stFzZ19 z9Ha@h{9?1z-fl55p6f+?*!et?$C&JO9l4IkAW)ic zKJ&b=f8mR@>OnC8i_Q@qH1@9NR9xpIJ>8_PDNsD4orXVK>e^nqHaYv-)>?^+v-so( zpB;x+exnkNm=QDe7qZX%{y5m^pRsBJpvwP*{`_+ZaY_QKXwH`CO53CD50`Z5Y4-@| z(MJ0p;d=Ylc{A?W6kvXfN3LV>k$9M~Yj1&X$TpNGKGJ7;D zB1*C1-h2dFQdxzy*OW^vG}Y=fG)wVM<^c5E#xT>kl(7c-R#_U>{Y|O6+hZ%%kHx{C zTl14IaD9?^r9d8eQxih_%F<=j?=OzvcQfn>+@zBic$Eu zQpS?i0f5d;88x#uHKy>&@+PvZGQ(3lk3ROY>|mapv^3a^Z(Ml^o5QZ#X=c%d-P~*n zhE(DA&ApZhx3%a)k-Hgw&ehVC&>V+5{0fnyJ(68+d7ByJjYUUGrSUluH7XIIpk|X> z+y3h&huOLzZ#|tqr8}$3KF3DymSdQ2${5v5J*RPzxFiKy-cr}x@;U#rFhuo!*Xy){TbVj>2h+ zz{R@Xl={KqGe#|4br(9=jYi|yHtFo<;JFtliY4>caA*EFoV1K1wI7-M$!g!zV;q&Fy{N`B{oMl z`}mK=$c3TX7#BOf4WBQ)7WnOG-i)D=*JMwY0JccIJIG%9zo^=SyyiGT?gNGX)rla^ zHX;pK(x%PZc9k5mnve-}fnmAi4>Z4@eZ2_J$XKZO*y)*= zE~Xum-GRTBM3(mCWZK69(Z0vLKacws)1s2rv3m^fNje5zW#hc=<5?$@VV05sGr3ri!4dYx95S! zZD6-NJ`l~Ohz*S|ER;)2Q;Au)>`99sK%wViKb6 zl05gaM+s9Cr@iry)2AlUO8GvvPPnb`m0=?oXCki{=>w+`zB z)pc51RO(|LLSED}H~SBpH6IlrdbwgREVz(1>f(-)#{PoK(Xw6ie{|41hqQ3i0;v$9 zO*XGt^5~XEcVs`zZ1)bWdBnrzG=n4>(bFLx&CI3KRO#ym=TD$l?^E!<>B9eoA#8FWqzMHeJRL#AQ-gpl&FQS;Fp_)iyGBX>kt_1b z^K8ldG~m!|xpwLAP@%#`VFvg{2ozq^ zveP<8eSiAJl}7+`=K=KOfToC=+~dN8$!F@(ZsH>e7qKe9lwkcLSh$@DM;QV~%fc1M z6us<4cUP#$mTG;2gIuRY2nE@2f3lNF1S51rQZ%Dpbjn}Xxjo=wE)$lPp`ad z7czJ(a)e`A=*~`^t>3nBQJbj?k<0+QH*V$6@OrV;aabo55 z~(rIg&ib3dhGA=iOAO`sVbiuQASVw1_8-K43HvIB8m@q}+vg^huM_xwB zr&`J&c`*!9GS(R39EH$hu=8?x(TrJS_-M0ZNN3(ykYqaI2Hu|-vCp;%7vNHp)yxKsOSmtk|fxWTD+ZuV-IRrm zEgj_Ri@8|FuG;E4 z&cQ&sxn(sDaCjk_=jXdVU6~QhhFBcdQ4HY)U5*jDmp9oT)0XYBknBy_ z9}Wh6Da+=RbynN2kl_G}#Ti2%f{sy)@eHQh}Pi6$ZjY2-S3$r%1FrRuk26uAvGaMdk@e{1m|o5g?c zp=|C_RuV32LN6SKN#p2VHw>emQEg9USUar( zHoueYegdAQ+ge7W>QmW!(E$ZE;AnzJ9(+W~|4 zjPU!Qi_M7BU7O_%)aM+g#k2A4?m|NlzhQv|D)LU4$VX-*Q8>J_Bt=BdH6|hfb^g$w zMzr42pCjMQd!8DCbYY>WT{|0=7CkmP+^~D2K}wv@4{4Z&pX{pUIS$}<$b*D2si+^O z#9nV#z2VLqBjugfdo)ei?gpIs+YuK;-Sv`HfviSiepWWlEKJcX(exqSBz(K+X>UFV zJKdRE?*&Yg&ULUNNwV&K?4Gz1nPQ@|E>N~{`Y^e70C>`=P?P;n>OV9x-sZn?DaIrD za@r{D1rTIQrM}DVkuF8wxGrQ0!`+ckJbA3dnHvzw=f!WC{7oGCkVy%U>ziH&BpFew zKoX#^sb(+N6UK!1KKNQ^s)KE464j07O9l?Ze&^#bcf?O+8nHwf@Wk<%Jo2#sUl{7U zwnAR4@lGJtbU{~U&z|?~VNo7=joARwg)fDo`crQ;_`3M?V&p-?iXbGUV2yywQNh}_ zw%XWXd-wcp03Pa#0NeN1-rZvvb-M!DsKLrml(WD*j}Qx}g@m8uv4nS){h!DS_l^SRBlO4wlptFZb=D6llAs)@aioI~X?JHo6%!ihR=C2iqOU zTghKc2^oEcBkEGPyPj(6u}3oZr;+3;lEmw~r%pd9tDOLKN38pTrkk4#niz&%0+~jO zjP%+x76oXVw!RlI522XQDu*F_CXIa3Vj@-&O+yx5N2v^43?IxUb)$(iPFHmM%~Xwd z{4pWPnI!Kwenf#%z#~paP7;zP$Z*nn8Qe>o%-Plq9u$@su6=QX0Drwv8qKp-X`l3& zN`u+dQ%5rys8!e@&d^Duu?)^z3g4LmvTizG&9i>ZndAYe2|shwlS}VO)EXKKe2fSk zHaH_*4LrrDo*bXcbrQfVD$`JiPBiFF7t4p-YZ5-z^2bah^uo0~JTe{^^DOH%mE8l5 z&!$0%>ihM81LW zF!>rqy`0@Sr}|wcD`dj5xP7i-6SZ4;?EH-WUjJ1l#_>BI;y`MnNeg`~zMFNk5a8Zz zxm4UzZ8;hMhYAQepQ{!r(!QAZ4G=32#1#Ps0FWME<+}QwTq3MAIqEl?)dvs`h<`=n z-K;ZYeNfxJuK6+(ksvsvK)fa(FZYSf%>2+f>3TY8|$ zZn^1+>J-)p2|(9Z7eFf7efeN)`V$dd+3)?v2td$6++Jt0iguPZ^ZoYXy8WFl&i&>9 z%j&*f;Da{NsF`6w>&tEQ+FSg-k$B)r zYx(TEx)*j?CgUpTeHpO&=hl4YAj6vWz2F+{1G#tn%j)l#e2ejo``F(zLp#*el439! zg34<>VbB3HbVfRb7qiP24;qvm8-%9Uw^0gBDNa@O)AOZb6r%z$6#-QkJ~?$%NZDL! zsdB@)k|Ft~5`a}FMKYr<2$PdYFI_W4xaA|PL_9clwV_9X`_?<;Ukxr8!X-+|rbDHI z5jzMjmc=%@KsCI`eAsWqFt> zXgLn27nqt0Nq@}5$*W6hB%kvx>9Df1ixXn-n@Y5d?b9$?w>U(Z*(MRHka~efs(*1* zuzIMs!cmv7!r3{ULsQNFogOtm{vN5&^kFf*80%HRL!Vn$SG}ZWB~znpr)&bX_01)y z2QWMj6M8quN4yQU{T58@{V>IV5|qb(}lKLo@es zzJ{jrw=1t&mYNJfBHs4}EQUTWUt=~U+_Y)2QoyJ3*j!r`g@+l_qfRg=mH5G}+GrsJ zFXbHk_1rH%IU&Z=*Sk%(-I|#q6|8KgP$r%(Z=z9AM($1$H57_|yfqe?E51LE4&g&e zxO2P+@3m!vaPO``!Tb&m=T@YdZcnL}!Ypv4d29TnrQmA3Y-8N}#VN2eSQRWBC(lQG z#`V>EE#43MN2k}A0})pq_sdv6kfL&{#ww~eomIFFj*4MLbb^xnxM%8_BjhqlG{Abf z#F;!&Z)ca%B@a`0uxpbU=Tbsz48Nw_oT(lYYZ~L*z-R`!!gw}z=7{-_H z5R+9I?o*=>Hqp%rcR&dm86CYNBJDEK#qWWmo+0vas#Edp`!TdZpT{G1KVns?*4pst zIzVgsag(0JQ2X`edZvs@5>*d?K#FUr*;uggk5k}b&(A67i$dI6RaLuC<>1fKbt#}@ z_c?WKc2s$uF5|A6IKCR$v1}Sef!u++Q^@sr)#cNKr#bleUD`W?`mRswf4Lm&W|xfg zuBID`lHOOB%iCW!nU(QHii>N5MU76gUIjzC-Cqwu%~<=YC2Zg)6hKSCbuJEd6o+=y zA2G>Z09>PLMjKa1qmp*2mccd0cdt}Y$E?v962}bH9M>2k{``jl*_Qem^M<5aG*LfC}?1M5I7 zFJDq>T~&1^0;fC}W$J`#gnN5Z0qPU8kZ-j}BWwQKdmjelHAY;z22+lbY<520(*ISF-Bvud&f?fvJ|&?) z!^qkaD!QbDVSVjIAGJ4vzw+^|8TJ_!BP0m=c0LKm%}~DnIC`xB{#VY{)(3!oJWq~7 zFh`IGHuq*ZwdCBJ-j{KDcXtZ8o(0^q#-1P-i`C!p<(U;L1^z_d_@732+OdETxbDR| ze7xRrJmdj#uT7MWw(1zfR(?;8_L6YTXs#*~Zw0a`-OOP|Bd5e8RiSiMpPrmh`CGnd z;*)qk{#^AE@)x#StIr#>bu!x*gJx+0SmKZ{6{d?*hthiIrz3Shlr{r|Wdra&s2GSr zB(@uL*ae$dxDk0&Q-qE<1kZ4G?M;dnA+1VZCuH*lTs5FeD!QLgSSJPvmh$@uyLjUm z+{9c`k>!ur3B9xheMHUh_MNVq9h#Xz$?&vY@A=sNP}`JoZr90kHQBx~x1jIym8oF_ zT_l=XvGq0d=eQ_bDj`UnnyU4ijaBqvMm}J=LXrxSxAKyHl0dr!#t`HHx-ulrquT;y z&$zB;?M`yeCV0?sN>CMcTaLVu>3b2mh8xU`)c)|Cg}jk{f1jtVv+BKZJGbIX-*hcp zv=W5os2{7?Qt(WZ`Zex~j8UljE6%1)Q;EKnucPv~dBqlEBhH5B{qyZFY(7&3(`hvi znY>5@>OJIM@q2Z95-!@Of=@eKXIhTx5}cJtM8sa_b=Q|4o;Gs?Yb<{anRuNf644th z&+Au0kh0V9V~Q?1QFor!9M*I0l$p;1A+%uvcdX*e4{dL_H*P&du1Tw+FU3*Wxl)#w z@9x{CORQXfDS6jXs`Rl}rGBzkoeb)?=>7P1`@Et;)2n{6@8Xh{Wf;6Mv>H)92;`GA z-#6K|F+~O6zuRhYqmteZr`Cfz9(VRYX^eQ+H;W4vVloe4D-H?UPl$|xCu307r*OUv zj14oIW}ZIOO>PALUFP`5>;ONh?P2nX^(wPXR3)sq?(tY!7bA7^PiqSpG4m9?4Wj=g zd;C;L${&q)UJuCju%na9eL}^@jdR|cp$i+{wvnFH2dmlSFsaL+9($K&B|eyrtZKDK zHnixQIHQMD*NY7%zP18sXm5{Mn@#`#dcSPURHhw>!!_%jkAUy2C=j~#Zif|(suv$l z=_G6uQi(o|!2{g3052K6KV{o96wRBe*c%aJAU)6Oq9jAC6MZ~g1ro`Ng9`0-A8E=O9|(j$(Af`oX0Ky(Y)FJ%SvU5m(Mn zzM?6VS0z89Hx&6NT;jeZ3Jrb?vi1^=l&-J(Las&!^uwbSV7olZOPl^!4o9#D#z+`v zv24+cixaF168(~UTp++S^l zO3loyQauPJjxbfO-LOceWoliur17d{>A|EztHWkYb70J@l{rvfzodIB1o4xDi_XXZ zcs)4-UqfYf_6BF%kXxyO({?Rk!7j$+VjP2ndz>-(<hG9uprPYUDpg6q ziHkvV&OWJS2Gg=l8+e)5%p8$n!Kj47fcei7HJ0;ajsz<}pT=*JV_!^NIF}nsm0-I8 z%q#{b=!p-l^!88_U8$dN#Q0_39wD)@&Lmw_|9SyyxH2fBJf)GcfQxPw_S<_W#0bc$ zX*2{)l*rIMEMu@Vj*+<8F}K3maY`H{m}EYz5$tg>la+0If^TmT^Io>OYWS16c--9y zue}b&X$U6xPeMrACVTPK(w?04%e#)EX`S9%ITRoKK>c8p*TeUM-p&gi1u9G)LY;4) zjhD;ocCpYyMDwP+oS^Rk+(~~qOG1rn# zx~Z?ov;t*Ro2<{!9~~yk8>u3(Kf>hrSmvEexHfJtF4ut@W6j|Be(B{!bUibps7(u8sLtZ3?@lpMdqeNf zhUrcl>(jBu82(US;->^nZx8TYnB)X>EAAzU37$t~jcL@jQ?8^58EpKYwTEeJUv8 zYOJ@ivwM2y=pR>jSfO_8>&Q$El#L zR_zNR5^~Gk9A?yX3Un6;d2c)bfp0dSOXAr4j~@yCP~|9zM$3y#WppdKeSZWVDoQG? zK=)UMEg+400t0W)@HarKzF@ydW>4(FvTT5z_l0VG`tO;HSiHTtWVDLmy4of0tspVO z9RV}!{CqpTn@Y~~e)eLWES<+m8VJzfqCQoWp1S4t&=1}#N*i~Fq6B<=NcOI4rOgiq zYMLbm9!B)3a&X~IuEIJ%Syn|&p2m{4#`5(<6)l^@?vp*ZY1P7|m8Rp*#>MexZrw@| zf5yk6^IVZmSNH{>)=aKl(YJr}k=G$bW@)yO4-4NJbhciypu08Oq8{`VdC^|Ivge4S zXN@)h#lcZr^;8G;Zt7&NA_ekWr2~25M3xT79m_obv+o8A)Xv$ID#NILLM1=k=8;9*gzFuXj+98>p8dJw!X zxU(jmX2P5dY-1Mn&^kUhZKPTu`p9`K`yW3lYz$ZBDxcN93*M}^7LH4yqI6AZ?hnnV z0HFBpSoD5!yGzu`>)G@qtJ?fXEuAT|T8H{5wPkT@?`Y4=aD}6U2`FS${FJ73!YATC z)W9A*WiFUNA$K>@@m{%3{2?gVp=ea96(rmln6KpbQ(eELX6LueB^y&@QZIt*`?*gd zIy_XJv-Wwp7b}o>QJe^q8VUWaB$XI;PtX=9;`+LQ*~wzjfw}5d@)W;Y@>1{Dp&v*j zah^40RWw?qkV2+t`A6Aj2NNFhb|(12ms4CeKB=cr`a2Z)07daKGF3daXaqNvMNgsl zz<6guB4*|q)A8a{GN-ix7QyC2bq)?`35Uh(mJl@T+ z7}_^GV+_$pFARX+XDt3`Xf}Wvk9(1``t!BheHLvm##QLYdCGT$Gn#GeMem}T{u3|M z|BDwSRNGx*xdP0bn&A#cdb6I+kYo%uY)zSIbh-9iT=4HaPtMQ8u@Hu$Mr^);rSVBt zmmGd@U6Q1`n0&KJd@xW2_6^0D?ZRPt#V91 zd8g-;vFLVwx8U0+iM%t%F2eM&Bk@l^4ZYkDTH%m|%xoFbV`@=~pj%0Lt z3cGzMg$@S$x0rmDbu;GGHs2ls*@gj$I`n4;6EOVSy1e?DS7y z;#hjkxOT{_o;S8Y^lI9u;#R{*xHQW1!>sjYUBxOy!zm5xif zfU^3Fm69!LoIQ7aeM=;#PGH}ZVZOM5s<1)N36mWvlF2vRTqP;9+P6fUhK9zSIynNN z&^h{x+Sht`0q^}MHktPE?~}R_Fe6vwVd>zd-^-d`R*zh8M)nni0l9pRLJK7TO7Kyz zag36KK~f~lF$IWZEA0hKdP%8Y?X&3lI3x9g$S21X(K0# z2L;2oVZ=@#mmfYb67Vz2(|7jXXG9`0a-+#qSx4eg-mv?dUMuI)xJ{5Aai$nq)7rTx zEZzH4;KD|x=N@=|-r4tQqX#ah-jIZezIiA^&cA6X{5+3$brI0|lD;L_x({fSz~+ZD zv~_v+S{B|S_M41kwM;4uy$gZ&m9^9iBZq%uC@8jgGu9j`V|rJh*gjWC8wu)oy#2ir ziPqg?yqH{3rDSM^9UtZu^Tnb-P~Qniu1{&_iQmx7;223e*p?^VTp z1QR&%%TZnmV)Exw)|yUnslww@C_E4DGU26j4kqT;H&eBFlQR;bjOn@LKD-%MmGyGGC34ap+jqud0;=>f}A<96wU= zC4~BIo{O%+wOW{fSJ5-Ra`jD*a@*O+$f>5PsBIv$W|4)gJso6C&ttCzIn@K3`(-7CYb7!5LLdI5Iv zJdj&qBc@;dpH9v@s;O;T;~+>84ZVZXC1MZ=NEPWNG!dj1bEKRIgkI$Uih@W7k#Z2E zOA9R_f}sdRiXuo82uKhRMWiUb=v~;J_q})SA9sw5WQ-(xXRWNc_MY=w>-(w1LCfNT zW+$URLNa(iLQkbR;gsm8TAtsv7awA_^>)52=>sL4C!AA zp!)!(3h!h?itak$i90NJw$)WQa$AXGGNhJn!}=q%WDw{DkI(F{n4BTVUEa3j+_6xmyu%-Rfmr6R?f$BNW{oeF}_sJv3HVd@5_; zG5zfgoGdX($?V+>msPeW^f+RRP5-7k#ErLMUPKH=&7W7DXHtDkoYQeL&wqbs)<>Lq z#x&{3d!!5J^c;xjA<<`1n=9QwV;3`i`nzCXe#xc#iaO%6{OxlXLE2%C$h_GZ8|YRm}0 zJd-L`>t%w0gEYq!)Sb(8^kSp|E}cE>ojy4y;;SX)RQJHGYp4+vd=Mr3iP6pE7#~mF z6*nZKqcctcvy(Uf&YaYfezv&d>~z_QfYNPHIqR-n5TempB69#7Lm0n3cTCB#y%%YB za(A{U%X_Qf=>?*D<5|WxFPO`=VCw6t!uiwwaNHhvx_HxOZ%r-seyt%l{t_%AmJOUD zz}$wboTRDG)n;7)Gm(@wJZ7ubT3x%IYZ#;C9FjTIWx+OuewIfkM;n*pAX9 z_F}>2Kurq`ezXqn+E`k*1gWh8-IX6jhJ%^BF{f>VyG#1D4}xEXT&lD z!;4)zq}7qk1a?mow8yY_aNNe(k4CKSTXyYbmLsBwtkwRopNi#0+~K8%nqIU`J-4b; zLzd3ix3NW;#zk6h3FILCT58R-Yk1DhwoLKG=xvc(>I#T^6Q;GX^9!fu>XycPWvSPxHjn}sbMjWX1wTY6CCr`QGZ+p87WX+GHG;4a)N<6cZ;tU+1Z@_7CD z>t{~2x1v_TJ_uR+;y{PT-8%z*sQt3=N(RVKFkwvTBq}&^_N5K#F@JOZfjzaVzhk_g znME5XGGLVBL7(=9>wI+~F17q&=e7OJu7_%piJ0M#iVW4Lyv?cCwx%Ox!x>f9!%ZaY z^!AB!O)>hLdptw-SHFk^FQ|G5upu{fz-*o@UQudck!XWjB;sfBnqwy_{=QAxX%&${ zetyv@C7*R}{lhcT`Dye+ZLf3En`B_#4kCzx+4?D@dj}%UMf-$52$KFTNSP2|?IrwV zu%P^q_N+l}-=$LTEJ02feH+uo5kGQWa2v&>u8Aii-fhJlK0)X4P4(m07y&kZFXZ>_ zY%6Q0jY{sV@5sZK+P;*lx>!ZM=@lg%QaJ9AWcNeHyG$%S6QLM*!ql^%63xkN-+^?8 zz4UEJIhy71hWv+m#235F4oYpuYY`d&Dx2ioGcR`A>mJYjCeJ19Qa|A*8wO%#&-z~w zYiBZEA3d!Sm8a$XdBrf;)LE$U8kUY;$7ZZ|Q1L{avfVtdwHZ5!hUNMca(zvaPepPkO16Em8UsKC*m#Z!mX%za(Ge)?$VXmRvIyy=@oiYMYN8 zIDQGSiK3eJ0b>|?<4L^JRw5xq#`yb90E7p3$`%*@o*+kEw|}b*>n0S0r=ph(e|L7K?$l zTs#jeP40nJzX4;vV&J<~R+Z1LE~0EaULZdJanPFx7klp>)A7D-*8we(U+0+Ovlx+L zsyKI=#$iMHm4e=P_Xt{{1>h9IIrM73Dr+=ojmDK*pw{AmKReMbuEmPkqvnkSE=mXI zdU7bCOY%gT*$d}Pui<(i06P17SL12GA1s;q-4LaXBUd7UDN-YNt+Z{lPE=a1_fYyX z_+TgX4P~*4rf{F$2SYs-HCK>W+gxcP7 zhBPHxSaF+Laa)^n3sx~KeURlnP7;ZCH%dKQNR$H)vg@0Lbig-6CkznAH+%JOKBvX@52-SR2V3(W}&I#P&Zr z1anCH47gQ(7Y)#(a`b@UGm&SZ>>TFb#uki-Jht&+HRJnI44XDW_#5@5KbDQ-DG*b| zo}{%8A*HSoV!vJFa?11?=!h+9iGTs+_3Q_j=3ou*7$~Y)iWaLAXzeKh)n>;cGQR%T zZS3em`WpMM8&ldXNYlZ0mU0xbf^k+k&t9rot~CzQym-T7U7AU6Pl;v(U?+UlfW`^y zoMvMk&Is{+ZYixai|Ga+AMb9F2PYQsb;4`)2nkv8|FjJzF`YH3OaIg}s%Cg$N$T19;Q?LM7Idqyk%CsoIq)Rk3m`SN8 z2iWyR`ci8X9uBABO7TF8-A#BT8lBG7)>R(uPa)Rkmz+z-6lCBxUMW#>J67Qgf?5Ppp&ymZ>52Y|JA60m@t?4H8XPj_`}b6ro=k3$*CW=g~_^0U-{qE`}1B-U)%C9 zwej7OrI7>m2gDl1-qm_j*HbC;7NR&36coJakpy$-eQ}e@Nc&U}rj#p3oL%19T>4X> zJGpzv(O0ecAXaliK&&=@hvoS#C)~BYCyC#Kt!tx-;>-2cU)$$W91PCG7dpEZ>H_{Prf(L>|LGd<3r4|A}t+|FIB%JNtjpmjC^O=)LoL_Mx9H!i-8m6Gi>Bt^Ayj ze$Gl)e4N1xg^ZMpEKEufCM{zwC9NbYqa>#&Atj{*9*y`L|8{_frxVI0_@56jm}gW4 P2TLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bX-A@C5jTxB}_B3=IFz zG5r7kKk1*>93Y=D$=lt9S&+x)6OhAR;_2(k{(_B{T~BMC)Cr*33{9Rcjv*Dd-kxRT zWMJT6Ht>$RG-a7ZQx0nw$OSO)AtZj&?YCvS@8)eMO!2=fK1qx^uu-<@jAHYa{xxPZ zSO>IBwZt`|BqgyV)hf9t6-Y4{85o)98kp%C8iyE|TbY~qpq?5TIX@eW zB1w|cz4zf{7x4c@4;q$I8p&4klSJVd97Rz*W#stgKLA2NATS|<$5&4E_zuVBFrOof z%Dwmk@O{DKd3ruy|0f9A=?<5B6KbZa(algZ8d#i}uK}0h7B+jrM%tvM!V`(CSYQrG zk|ZgTG_%ai%=`a0QbC5B#hj{9B%=Sa7|E91q`g(p1&MbfupMvreSUp%G3fCA_YbJU zo9PYoalqkX^6-Xg3;%q5ZE^$Mc=2VG&ALAw4kO{2js8rJnu19mxRYAUM0EdxzYMID&MuQ^ju310DQ&Q#QbRrH!yH8{ntxz&SF zq`ahiFGIz#vv}fIm`!;QaPipW2_si)8?Nlp~lx9;3Lx9iiAjosZ6O*CKn; z{**TRKVP5Y2K1xMnNLI~%ANI0(B`9Dux6udkmjO%aAqO~Q05^HFlHeZ5au8r@MRz- z(8Vt*4b?4$tmhuT%A{lmD3%^FDj#m>zupxW?hrtDD8nif^IpPaEo@QeT9kV=DH`vFMh{ z4GBi4RPeV&qf09J2Zf_U3i+(}ap;b6)^w1E&M0Z^7K!MJvesyliH<03EjFp>hVs^2 zl#5O%acxz}=z=oWP?n7jD0QuL>9AMsnh5h@uH>~(62My7YaC^OvC`KvO95NuuUVJ_ zrXpCIGzl!lum*7!7>Z)8@ied#$36w%ftg759Rd-o#Ilbdm|!HDeStv*8}aP(4=$L9 zXy2ZY!9q;?@P!QqqS{wCbf6d4KKbE;jVL07i8x|}g-D`=fmq@My=Wo@xp-m)wRqy4 zIpXca6z}ZO{(DFjF-WiXaK#MDYr14ngYXtDTil?#4}&gpklk0w7dxo#ohFPPL_dXM zj2|>Vccjb!B#$rP%mEaSC?U-P1dkkJ%>(I=6{O7s$&U%<%>}8C0w>M})&HJ-+Nb(y zv!6GDJCgx<;?4lMBF_PtV$TA3*BCA0zZRJ_!XS?UIj^>2kP9;8kTD*8`?$v8^UIm9 zqh%2TDt(7kA7PTqfZDH+Xp#*o%OxAseeGMDY*1A`*`TJ3vOz^TWrKRM$_CZsl?`gi sEE`mkTQ;a8yKGQJe%YXg46{K6Ic9_Lvdjjf<(Un}KK8~m7wo?Q007oxaR2}S literal 0 HcmV?d00001 diff --git a/images/language-flags/es.png b/images/language-flags/es.png new file mode 100644 index 0000000000000000000000000000000000000000..ce714320f5beb31d0b3fa4bb3035d58afb7edde9 GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8aek{yDk*1ZORskuNbVpxD28NCO+gTe~DWM4fHkPs=_sHq1itRSuAgC>cV-W>#|npCLH|k*0Aob8#5JNMC9x#c zD!C{XNHG{07@6rB80#8Xh8P-InHXCcnrRytSQ!{_w#&+*Xvob^$xN%nt)b%9(uF_` N44$rjF6*2UngAlB|9}7h literal 0 HcmV?d00001 diff --git a/images/language-flags/it.png b/images/language-flags/it.png new file mode 100644 index 0000000000000000000000000000000000000000..66568e44faeedc8581ec5f3e4ee8be8c873c79ea GIT binary patch literal 681 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8aek{yDk*1ZORskuNbVpxD28NCO+&pIujhCCpOl7mS8&JB`)5S5Q;?~>qhKvUk1Xwo6UuXpSa|hTQy=%(P0}8noxDOa*FS N@O1TaS?83{1OS?HmV5vJ literal 0 HcmV?d00001 diff --git a/images/language-flags/ja.png b/images/language-flags/ja.png new file mode 100644 index 0000000000000000000000000000000000000000..f009df369ba2f8877f2deb65cbce989340ff2076 GIT binary patch literal 3181 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 OFhe~P-8`MEcmD-;a$#ry literal 0 HcmV?d00001 diff --git a/images/language-flags/ru.png b/images/language-flags/ru.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd45a9b755b0be38ef42f2171de00037bd9a288 GIT binary patch literal 656 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 ZJ2)WjpMfeZ;aBx?Rzu4PbMZg(ofI5?$O|Pn zOq!tZu)c89N106z90R2_1=I{XJw;;nyM3{r{Qu8$`~N@xPn;zSW}N@u|0Rb30MCOf AJ^%m! literal 0 HcmV?d00001 diff --git a/images/language-flags/zh.webp b/images/language-flags/zh.webp new file mode 100644 index 0000000000000000000000000000000000000000..fb0a0d1d30ca35da1bec4a4d23ace693ead44e03 GIT binary patch literal 1960 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 ZszRfs0S2S=^M6E0^r) z`Uo>2TN1R2J|@DSou|qEWDEF61Fx}~tS2C9kTIYGAjs&$#T}Ubou*hNuQnSYWbwoT z<{8EmCb2nrTZ(+r;G2Ct0YU2fPP0&b`7;eNNw#7beQB>-kWuzQcm!jDpdTQ;%|-x> zpc&Y9+V`$JAiA)Y&EMy~m$2soN665oB!9qmr1?aNJI*hiN@f~AD4=c}|L<*DJ4;*4zm?&CC?sYHG-$BY3q zipFK5D?X=x!)H8#*r(7CV|&A|s_U=GjBm{33EWrL&A><-x@rad_Fy6&LYazHqmlvH<#VV93J<`U3-XMFgAiLaq*m3rLZw;5Is{ zO2PY002B4fdZ5Q`oBkc?5g5aX5NJ)Nf6meHrzH(J0aj|gzuRMo_w{kjsbpcc<^}-p zK!!A>3xwN!o>JQSIb-{tr?Fruet`mc!f`yUYdzp1HS-dx0I2>?b2G*zP1oE@~(QFtmbA^}=Ss-w)lz2LLjd{GjZWu7D zez;M2L&RzQJcKChpZ5TErxtkEi}qfl%G)Gq8W29u|EYtiSs*$Rn94|eU97iamQCkQ zYSV8FgPd%Jom@L}SQ=vC5EGaLq%ZNmp6#HNHZ;#D>MV{;l#4!q>3ls)iXOa|yCO}s zx%XNI5!K5(GVff;Cu-#whI#K3hFthPS{$)7w$bL1o7 zCZNLn_qGZTh>6p)q@kd%;+xckig??1~mW2}*nbKcndsr_wo@W#mBg^qVOiy9t$#rMg0 z+(5?eAyQ&OcwL0C0SI=p=~`P-SK&M^^%ih%JQ_%5cT@ZtY)*LtVA^iX;b}dXBL>hiA zq5Tfh&@-*CRZ1{3e+HuWi<{H9*Sp}JwkHqrx4Hn~MKJE|Hxpc$e;oj_I$(CmfAoIL zY;-1xc3{M(;idU*U7OUHxx?A%T|1o)3V=%e#mc^*^P^e{^j0B4T;;af8FhKdA=aX; z^38?P{KkctWf0*)iDD$-dscfO_ZL_ED_eZPNR1In5U{kXXM5d5{{$U=IKLXQ9@JnX zHQFzWRp~@2$zVDiXgYY6u&=m8lcA3zm{iuCr^}uGp$t(3U;wxTfu1i-9!}$T*vc;vHX-iK`y;xkLeRg}h0vY{zZIc9hkjTY-ak zL)WS1a-WlmUT^#RK7RE0I#0#p3x2TTjNbX^f|wLM=e?hf_}@FZTqr3h+YjjuBf60e z-^9uO>L4A^0ifxIMt;BkQJ^^`l#U4gZOZdjMNybJBf&KGw_-h7o&9)vt)V#NJg}5V zUa2d5o-Y+wdHC=v9WAZjEMpHZ4o&Y^!g}3GOY?DH9Rr9vm#t?X(x2i~&@QMt#oknX zll;3+QRHr5sn5Bk`=7kS@#<6NT_JyJ%fmTF^~A5+IgzW%Nu!on;J+BPkp=rf{F_gL=3B8kP%!W(2_jziwR_ z-_h*&@%r70+bD6xw!)V}r;WeesRtY>%F&ekOBYw}50*Q05iL=VtDY3yo|d*%uGEd5?}7<}y4{Ye z_CJDD;D?S3+#dTiJIK$w zWvNzA!Tm;Dvo#it!lB-A?yTr)iz4nHY98WItK8^S9ZrZU#{&NFAymU z2OpJ678(Kq4c)-!CqtjmF*)+dISB3aN@X*%QK@_%CH$)M{n2rR4Sm=huQT}SuZ5g0 zm;J3wFOr&j&``yY=f~S|u2rO#DJTh!UC=Bg_AXO^o2!wtQk%1xxFx~ld;e>(`m2+< z_wTgqE!AkiMNh_|vkq${Ek=Z9)Ofn)rjTQCBsr(YGzgUzofCV9zWov3?0b=x9!EBn z?qeWOxHEUo{Tu{x?mp-QSQaeOd9D1*f>cB1UC}PX(b4T|Js}e@O8MhT|Ar_buL(gQ zrfBGW#9RZ)bjJWt)oVlCngux$yn~Umh}vhP=*m}0QG(G*bJuIJ=P!a4i47;!j$(2R z4s6cM{8Am-(If}xVwb7TkQ=Y^yCK(O0r8oiHBuJ8PrGm0eEA>&0W>+I^MZv~SjiEV zwQ`Ym&p0rR#Bbg?GtoLnd|BlWc@^5v;GSys*lu3xXkL7OOYPKu{B24E0j zV`ffA;whk0k_J~l@w>KN1Uv!N1QWG3y55ncf_&x>1rl>$EZ&|GPxfyX(+Ja%9hbh? z7fe1-!5hDk(U5%mTQO_C-hOf?6EYkEtqh=CkvJ8Fg?M7qmATTwWAciq`R|57Pk_6_ zjE>#09D6uGQi-=!d|HdY)fBn%AFhusYs32!4H-A&Pn&*$2ksx)t5Zq4@iJ6s%_-Fi z?}x9?Sk_X$G%1oN=P#7OV|_9IL_&KhFX2CR&7~X!oG=1T5K40V;XX}lCirdfhu()~ z%_ql%yMp0Oz-k~_2wssY3n|zmssU7QX}s2Ikl&0Tw88K6asFVV{hbl_f9NlQ^`9w{ zv+r}NY0#Na$w0>W!3uS@gm7(V(}-8 zcYzppZt>=NBOd5zOkp9K)%#XEaC`)~r;}0!fP3MYA=2n%Z9?&u3tK3fij9CklmW#w zPugIw%Nvjm+dRjDit%t`BDVg#IdKI82Rs(hgZzGezq~W*m2!P_imb^&c5hZtzW@Ma zPfrh4M>tV)(Nb-@`$nROfWTp7?Pk`N2R860h^InQpC0A3-=+o=;4b57p`zuM36Mq6 zuZl3_@2+Bs)?9f4)X24Fmejo%0O|s&n>Qcx6;b=tn1WAm&@~0 z8IwtdfpXVQ59P_!jHSD!7w*~LgAnk-^))shhfImw zv)VH2SXZqG4JDvTga?M*njof&m?5VTBQ=zkT-JB{1xeBdF{d=_fmVRD9mGfyO7#1o zsef}o?5>HzM%wZ0JaeKmj_nOkN!?saAi>7KijuON`Q9=j&$3D%Od`YJ(1*J_)8tcm zrTX&Fa2+TmUxS8_wOo(Wh$juA)fNZPr0!6af4gZ`WytR+E7|Pl8pSO2;@8%6zhXH>G2Y7mT zpY}F&imlmhY^~WZ;WMz1uTSH;*d#Im9Pq&Y4R@`aV+Sbwv`uQ^Rq~9L8rJ>(h3xjVQ-Y@JuGZSP&~yORYy%)g zvY%BYv%m`%%aiJ=dy8AwIBrqNL;43ncl_WgNQzqOJa^|mij0rA%~hweWQ>Een1<5Q5kcv5S>ulC~Tx9$aUhd07^76#`9B&$H8)(0+5#gs(eP4~2< zGWpF3E(T_?TYQP0Z+z);=ATlA0vU{WhHuy%Y?5N;!R@LmKuM6%vmdBVkvS9!IWX(L zH=coXQ_(AM8# zcgE=+k~&caBGxpx&&lvGK_>~`ttH{FoDFhZgHn}3j3tgStQ1ji-U?|?*C+tw5)Ygx z?>YkLFI|ZdW7a=~e6Gi(-!`C+i~}k_b!kBT`m534-FC0Ic;~&4I}B&ikkjRVbx!ra zCg~0m&2qhbD6!~Pon?6aLLhQcLc*jCHiamHJnI5vam%`93bDF53!l%jcJo0oezM)7 zo;7{Ml{E2;6-S`rt8Ya{auQSNl}m=*tOYyEK6M^{2OlOwl*Zt{_ZaNKwdE z!4vrQo4`iDg9XHCFLLv!t`9q)Cq4m<&m?$jfy8uOUAvKXOVph$?50oulKe`F0Y5+g zXHWzP$E=;oZlKD-L&zV`m&q&yQv&mwc@8{=;cc(HcXfyd2a%8vFv$-orp7@5CUf5$4>hE5myQf#X@hzcMC z;{{OWCvq9pj*!D3Ez+EuCiLij+Ic$wmfRYN5*t@3Lx+c;26TMzt~_OYsLkQ zv0M3#MD!Ww12!beLO)fS9tTrLMk(ytExi8sp(gW52?>8V0&?Eo_Y4J|Ch;3NWDG&t zLy)*52##LRv_vq zcmsx}d(<%?t{8+6ER&rLmlgo0`5OHv9newfglxslzoR77{u22=5B~DnIXVhz~!zX$>=kg=l7{fJv9G))=@3za)UO(pwrHc2PZ zZTVcCc^~X2Jhj_aOrH6W%oKkAgq85-kGIh*cR%S$Iix0|eBE>wM)DLunAPBa4d=qM z3yEE=gTCe~sD5YOfqOmQH`OW!GKaR;@Npx;vVTa)f2o@f3q7(=G;u;1c9Uo`i7PHH zUf7j49Q>J7_Z*3PMPg+v=UctIq3mf4G*8z7!yZ%tnL}8qR)}vKWYCY;$dIg>=k0&TO$P7_9>Uwy$iOPbYtON6; zFimW-ZmC|K@2IEB>Kg?j^CZp)-u9Ec@^L%zcN8(;+VOFBypRo4jKwyncBTd!L|9@WdW=K~z(=&q zQzs72`8{6hl=6KNt+!gEM1b;cYh`2B8PzAhcd-5BoYeD{^`Yq z7HU9qKDAd! zU>i970Db_H1o9*0K{X(mP%-)l{WJ?SiyMCDe|qIB+x||6LG4lm+8QX3qUG~V#d!=2 z*+yQIo9Q1z=~`ye*8Dkt7JXPu+Y6jJbE}%|gR8;aizve`?v|6oD{alk?_K2faSkuM zlh_|+wSJh|GO)0ZfWX@!Yf`v>5TWEcEZ;ahE+;p~o;RfWH~9MG^?`V z;G|3T&i1F0a0@GxCicuqhz9)3W!m1V0!)27E+JuCpXnL*C=rgc6VDYEGdi8X+v$LBo+u4SANi>oCxfai~_+=;kR0iNTQ`K&Ykwhp% z5s2u+&)=6z0o;2DUWNEO=ob8+oN%t6DnNx!E3+@Dnh}3!ykvt(_ z537xjCzi%y0-gxgX|Q;t$%et;nkg!=0IU}F{UjMb63`HMIG+D{zaD9MUchGqruSt@Qfg1_tR?_$0O@JP zj?6w&{nP4By@^IJrf6t!K^l)Kl;Qrj29s8~QY-Y!SB}26ftMYDTw*Uz=uRJP^^l zA_Z~fmq4C$k%uc%ba~V25}q%*6?-57XoC;38$kG&8zaeGB-BG#h$!-gtY5iHS}h6H z?2EgOcUN-(HV?HHELc$eRf2`b)(I@0Lr_Q|>7drsD5zr!pfbeBA5{b`5+)v5qYJ=8 z3WnYnV#!sm9-~Eeb<^3#%&$f#vw6Ih%(Yz~{~bQ#WnQ4mJY*#m$y=vgrPTd)X)@xYMiQR^c?D;5IFOi6cOm*}3{cA~X;}#r=2vmUYv?2l z_wJ=YWDAt=55UG|Zf^cm3y{6G5h>;lb0iJmo~@6(>&r63d>PPIVemKj{39hwKePUP zA4zv!6TU-9Z~`e$_KLSX=4oiz*2Laz%pg&}gRbX87e6v~Y?_vc9>hM3ovIC;&%B#p zc+XynfuZZ&#P6I58}oX7pwO=RB<}B-7hD8rRa}Qh%<-rq8ibx>l^vHHAXUII2xR5v zCWNdcVhmK-r6LH(kk8G{4eDMbhAx>yx1?5`7~}N#nvW)D-YiNG;@?_wZMx&w@RZT^ z0;pH@R>s7GLQ}fwOpv2D89fAV4f9(`|M@J7@jj6_!|ew9Nk_FDXFyzk#<;w?TlW-+ zRCC0>!!yYJhzqie3kZQ5OX?-adp*vP2+b!T#t`fZpfS4YgxHBx9$-&0S`V0ng(=~* z`~=xuVUVufy?MmACqs-gb^;V$Sl@R_-I)-)wk%}x%}r-HhkwgKz5{=NrZhF%NjmAyyn>O3-(8l zA1i{>_wUsO99H<&E|^K`kYjAz;;|rZN3-vyO;Tt3?bqYe_lxl+vu#%|72JKVNHbse zql9HD{4rek3cM_&A47ftRNQziv~{yzL_{oJzMm%Y5Pj=sTJT2oY?3#d#Q7Q`WA^A( zuU(n5{SG)W9wE0BAOajmZI3HjNQOXK4mW%E;l{VB=bL)7;Qxs&>4lFg&AK;?Y6f9k zIyq9PkTtFGUZ*cph!?En>$6R67$`_4TF$qPK8Wu|0?&>%8xA!w+lJ-ne0OF=T6&iw z8fLbC3a9GWm9Oae?f?E=JNSan!^;%1bM|j;`hrQN3Y2J$BJEXg4#FoJu6{ZE_^>Ds z4=~jHTvxOFcZ%)AO{S30BfIN^cbI!Z*Ka=~a#I*Q;+4JI?7k5MX+C7oIkx84?VrBf z^J()u_tqm8eR;w+1-ag;EPG@UIXr1b6#Y886gbNJKw<#V@rc1;O>^tk z@T*uhqJSJoV64}DuLH>*toGp^7e_;+<)N0QUm*}jBkR$A;Icj+0TZa9T7jdh$#$xb2| z2BM5BDnSQIb}$KvW!vuNKyv_@v^Xg9{#U-zxf=1k%YQh?@DL~A7Zp@lz}GHh%k{c} z^$=}C9ikq;y@(q$vi&1?M%k_*^9J;UEb3We>_yiHM2JZ1v(@UKS3r70@XNg}>)db{fgYT*x8J)CV#tD<5w;pL z3PhHamn zXvHWUj|5yVOA*vQeK$0}s-?Q^2vuoFAYpM0fTcwut-c|o|Jbz5WdW@QcdK)QTJN!p z05}k-Z}6J5vW}j!(YeZfFH)yVOf^37muQ%Yfo9zN*Ov?olvmh96mU%-&TCL4LubpK zC8EHr&^54HOcoZ8f2_2!4XKpHG-)7djr`SnJFugHpN|5F3 ziXWfFcg#y(oy$~X$1DrO5(Dn)!w0@*pCb-bDY$EWuj}LfKS{-r!ZsuA4TiL5GtYU= z5=Y%WN0PsVO)@LCdzUi0*f{?V5)+@?$hup*JColgz)p%84fHqFZbqG@cB?t!8_$kVAkeD~pwbP(2rj&Q;@@fnlILO;aVlXWRs{-Kw~`3q=kH2ZKT{VZgw|l^ZK)dibUG0tEmkg zJ9RRnj{?9p4|@S2uE6;|8TJ=))4lVaO(7XY+mKO2tA}_K;pHLG^-S<`UmkT7-ek-( z($d$XJuN)&X}e@{p}S04b@Se7K=T__H#D3sg;)>HyFhCzfp>12r@;u8n}??UdJ+fS zqAlr=I$AV%tW;n#AT&q@T$O0vAZ{vuO}|PG&Il_SNx#{HF9C`?-AJX2RoQ;Vap=>g z4v3M1pf*GiZ$J!@Zxehgmxx20UBMb7H1B`m#{cp|+Dv9Y!@ar(7MMe3?psQ09w@lj ze|nDxAx#?SH6*(hsB#IvDJ44*etI)<)rwvmo2J#uf7K{Slbb^qu!|?C#k}_Z0gx=h z(lUzvmaj927eCAr>sL@vNHYY|^8yYt z55q?1#Sx)-FN@zG*Pq{>tXvq|nQQT%hwge9yi-k2pm3u@GB~H<3KBMh6f{B*f@&~B zPoD9%ZP9VzSdPEU5yE`6U|t3UPOXgaH9s08R}{DzBM%9qc(1Ssn@jVi)(*szO4j_k z*!I@&4>KTxN)d=e%Q{2NR?h~$&w$+7stVMOMYb&LhE%m%5qA(j+W zwYEO=$vnnqpFmIfpAfa`^Aps;YChN^U=H_&2-Fe`O4r%0Wvu+iH$1gLJ=KSBC`MuJV4x}QTK)LTc9zAD#*(Z4bUdV7O16a2RsSDtf zkkNX_vec4PC8S1Z?GqEWS-K!eN%Ar=$F_vO?; zF8qqyeF)SKTwwwo>@n#V;8i6Pce#*6g3W&8|EWu=O>T7iyd87lFG~aV z25_FNwN|m-Q_3`aC|yP0epPP|4GlH1UueI04RSsAcCSBqx9#mu7Nq~MN(eP|AkN*H$fU8dLB6vS{OKLTwdz+^#PW>OFh+<^6vI2%*p5HBDHG7S8A zV)k2+z`4P+B5(kI1BzD~Zizy8a|vQ-$udn;p(JqNPeRT$+VvGUb2>qN0fiY%AW=}E zc$nXo*-?lnZ=@Rx^`K6b~0ZWm(DSSl+{R>tf*oDnh_%}lQ_X#g@l@bAGa!TYwm?6ijv-h z5Y(oRL@-P%f}uN~_g;H@|IP2=L>oUXI@#dELwA%;(1l>MnW&2m|6@*A9!Bn7F6|l$ zZo{%kyE?|Hve6u%j*?UML_K$Cz^p9;6n+s<0a2P*|EX-gXuY}J>v9>coYYTHCl84w z_+i}<9OQ#zA5iBuO4ZlCA#U5VRZ99*oOmzFc~1UgLRD83!%PZ7B@p{?Z-hZ*a55cL zLN_4V1VmQ{$3%&)eT#BIkVz%0H!1ocpG40pV-Err1RJ2yM$MrTZ9cGMpnc9HGm@*! zKv1krRw=|08!@E3G?Z$dKA|k;REyJnQh1xMR+``ay&mOrMj4G(6!=gZSB5-Aq+H94 z?_KwyQiHr=ATz#~K5{xh*lANN=8dPrM>HMvO{f^pKrp<2%fP_y9^BBFD2fo2YyP<6 zMWFi6U9f$A48}#4G=$dy@^kome6yza53&Ed=Tay^cHfJu2F>^a*1V+)w9NbB8OTn4 zSw1QOwrmV8%J+clkx^0M!hzs)!;>cR6%ssC(l&VbDIUOV(QP!*UJ*U>nZ-RvAUf z4>-Lmx7zUeo*hRq?i$rS!5+L*?N>Y-rAGqV#o2vrMZkbS)RzVl@NbhoZ6+g|5dZ(R zx2i18MP$)c^g=hf|2Il+qee4d+^<#qCuVbb>0_xDWc-Cl(epZw1J?_NxIezYH(NtIU^cw|IC;)!N{a~_L0A>&da*5NKM$c9~J#fZa@UjU@h4YUoiF*CtG%fT#BnE}w<8i0!p|*hUrS zNYXNNhVL*OJOZIE0Al8@0ka9kUX#Z*^~J9L6)D^-%wA%&T5$Z2+8hF#ET2yT2q8;S ze+!^j1H)yEc+p*4fJi-mAISjP8;I?kLzSH(F?FSTd&I=Rfa-s7bOR<)y@kAM)vm6t zOWWA81?K}Xn4{$1n>cTFSTuq8LQJR9;~w?hR$kwlrCT8DNp&>-A=iHL3gxT$dce** zt*C+my;3=-m;AhF#CN_`Q}(rfhIn^;&-D@WItZKpWQrr!>+?)26UuTD+JRi#rXWhA z4$65u^3c;;jQkxk7{4%3hUZY$q`yX^Xk0HXP>gmmM2i_9Lm7??SaF}nVuk_-(w3p# zjwEAu-2v3kiLC>Bc=@~5FBt@n;dJI>x@JId0%wIuaS0peNgrKAM8qMC`oe)c-Roeh zR01DF(YOApF$D8Oms_BXU|2vlkVPL|FXO2-FHz@Pzp@|Oa)H+zSkI3 z-m5x|Ek{3~cKSG7XK%apqe`d7TI~rXR`sFLbTw+j3^yw2i<{}+sjE_!g>}kxVtWWS zW$Zf)xxix-3$u%$zyPUFD?}ut-#&PDxt3BB?^hv)62xQFXa>F4j|Zin6M6Kc$~xW3 zhJO*4Wza;78`hUb2_hyOM`pf6v{klz}+Z@n$VQ?${ zv7EOlkP8ejPzIu8c$I-Yx)O7Jz8~WO!SD7!Yz+@K3#D2y$Q4+Zuw+dVc?aD%aXI*< zc6Kyr8Ui7axNtX;g4hJWSkT);0|AIIXnOyP`3C2l90-;zvdA`zaA)AaT>}=ld$u0ye}cyrx;8>B&Ax zeJSDGGUwbPX9i|b@M@tZxYI}N6yTbR)x}>dpD;(xDW`_0&MyHaPpvbHUaUmg$6|!$-%OJ#SfWiYzxIPB zHozl>1V~rtUUiB!%y(faM)jE;iruyt*zE?aAWX4YBwN)8Iqu)P$gnJ!IrIn;1j~`!#{Zb8$f&3qt2WduOuqh0UKDABaL+)}NOai9 zpsvl!9b09L8bZyS3oIVPEtjW z$fHHv3MA9d(7p24N;r`90+#EIi+vyKsR7Lr9d>3`R>>PFnjSxw4^G+O^+GBib28_n zhj1*t)8YUVKJ!oWu0|v0Imhfa=pT>rKltE_Ul;Go^yKy1fN0xVi{5KKYi~V^ z0R_-$bT$XdB_rI)Aa+=BahWGA3MQwRvO~<4_V0=E7AuIGt?@tGC<=v)wBc*%uGp_7 zvXj$ykZEPT0H&x^PU6EioYy8Lpi5ouk<8X6$O?TE@I#GU}II;=qTx_+5*{1(>eSnK!cTn0T*} zLnpTCtvdKcPF5N&@eA$B$*0t7*x1<1VBJ$M=NKqCN|1zyEWg`&5UT+_9wOh{^0hD+ zjkmA4Z+7P~h`BV%ja*tMngq}4x#9|S@$xnJ(4)q&(wN)g$yVl}P%rqKgpsd+mWPBg z>2ajM>0t8qVHm^^!!}fmKHEFtBndVD`Nu0Bj56&W%wmxK6Z(`+TgO*xp&NXID8vAb3F2U(Ru46IMC3IqNj|)^5sjPQ ziiTbJ?G0;{54Wbi5wY##Ki~T)U2RyNY^++ymEtt^4p%&)sPEPF1(5WhMK~$_xrL+p zK+kN+TcQansr#^X4=1{RC%jY55xd?v3<6+h(YF$RY&V1F81xB{mrD{=p55;i$t`Mi(EV@y9ts zbKR2mDZdw@^&FMOBpBP9$xgmb7tSH+IkFANeOqGgRb)pw(u@`vvj1V4#<}SeB*_Wp z!?2d8u{0t}e%H+o6`f>}I%CwX4weieCWZxcdQWygeGlwHtnahG3YG$I$si!`olfSI zS!LRvp5nz966vhrIV?BEz!z<8)E#Lvtb?tC=~J$`M6lkQySNFAd-m9aZ=amc*Ywe-2@` z2p;sIq;r%eVu#iXr1u9PV-A+b07yNmk<+9%mQK=dC!Rru;&^-Jcp1nsUML{; zALHNPp*e%;owd{T&mL#MuYR1?qh_dHo>dGR$str|`(2!>^6c ztP>>{GJD91k4VH{mlc1z^Vq!RzDAyn^!N8VG|%kF6?R!jDCcwU^!zP}3M}W$dGRW7 zeUABh8@0lT`oz^jjV8vKV2o_9&+V?Ny#A?G_n_rZ#9hE6T)oc9%2HSw%!-L+8~htX zTHPj7ptT64W?>ocFF=^rO{AE0<%TiBX_HUp8(o;%jwT*|Z*;LpT$WrF4n{8QPV`R< zie@RC;D%5~lG|dc=?EX-z)gVRU zn?cWKLwMvIve0dLEtO9#)3>8H+)~sQ0>2QFVYT*Cf|M3rx)?sGJsKxN+8}QJ=UAVD z2R4rX!q@z`t{S^+q{9@y;}M1S+YQT_KsP0gb>r1h1G~YM%xjAD)Ju)Vctk6=ry}Nd;`0oR*!0*aHOH0n9!24$-}%50>RA%G zL#UkhG+#;sx7Yp|C%8@VjtOO9o#iNWJFEVt3-LH&G;4?&<#Qb@)8VKBpx7i1Kbp2# z5=l|rb!{43z5L`O;f4gA_T?X`Pc6W?UuQ&5seD_OG#` zeBg!U5!Sts*YCnY!x|Jdx5%6{jtW0ox^ZJ&y1JWwS{plyIQ72yajQWa#ge>%#@0cA zS}9k99;k`$Nap*43L9UE1;R6r}=e)!=RcO@Y)2W@0mwk^0LD2 z>+yUq{yO9Wk`~l&$w{9PHjQq?}?&|U`_+gfq2cztZ>Bf;GnZ^BhQ<-n%@fgXlLiah3D zhO1tlI!4}oOyytgoTCt&o&ZDC=vqh)``tpJ6mp~iT^y*$*`Sry&FE}-G|Xi@+oYwf zeINjo!*hC^sap?!&|Gt`FvJ0%M2zC@?1&AF4Z}u-fcNM$=(H_EY82>obL4bn} zn=Zzjq2A|B@y#dh4b+qqRd`qpmC@#J?adsr&(g(;aeIzqK89D^jZS31bndUJE+XM@LUArt_{c4n6a~f8W+) zX2v5C6X1pdZzTctM<_JQLGuozA!Q!-(H`tsN$n#;(o|WHnDO~0IJ0Pv>E=^a08oQV z^MZSn*e@Y}X1fP8D<~*Xa2G)Vssk`lNGBfwrY!rvH10_EkXtNKgaq9=mI=h)-)oQ= z-;{r%QCdwo*}}s@=n&ntT?$V#l5)1 zp#RJxqVZQNR4(22m2LIw8J_|$e%u!=(cwV+mk{9xtm5v#pFVmw821N$99kd%|Cb}xgC2rKVmoNDhSupq9;|ZO($N2Dj`J*fKdD6sq zUMG|FBhf4CYqsY*ZcRo==>}D%G4SBJ_NS_ti|&_`3vQ#s70^qVBS*+>vX95 zCl@;wU~P|#FLjX(6cZo@B-JSxj9tKkgMG$*XZAEJMa{#X)&||1L}G=#50C^UNLwUJ z3V@?UZoXVSl_OUyh#uo;ebmAhoCdew#^XGo{TebFqXNKbI1TZD7D?MU2SF}vkEBE@ z2ctQHzs^W3wMVyIk_C8>K=Jh8#Np+dsnB_C^M-4}Eht;AVVYQ@e{E(GP@4i>8-0GdrBdvPE z^6upkN*B~QkMj8r9msZAvt9_|^#-J_@|9`V-B(;OwI6~cvgJ?AkE{%04Lp{nO1D|nx9BMZ6oXvXD zJhy|?iA{8AS?i!@aC_(M4)a+*L4?#@xlaQY&KZr@-aP1Elf%D}=06WeOG1|!a&AGz z5(fgSyG|bJn6|e(X;GvROI$kieUhxq_Ew<^wT8w&w{xhQ)~s^ZjNTv(A$ePpr@qYBI#JKq^Y>Z& zkfJ!v#pBe^a6XRQz4?LaNApKxX*-+V63Xc+yZY>#W6~?HtNkioz!Q017PO-_c$)80 zfXgBr+u{xLn&VM+?ylQHd|8`Ch{G<7uv~}suA|<-)v}C0%OI_x4d>YuD2G7Y_=Hma z8qw9Eqq@pz9krz2xd3i(>t#{SP@qIzq}YvZ{fU#wt*_C&$-hqM9WR=o5fLj9-nt&v z)A)wZ;FeB7aM-W8r*iHJ1>-zg>7$}wgxasYQkSotruJW~y(y&uOEwmu!VY*RptJ)> z6(`Ry;~1_z5Uaj}R)4(t24(+bCjvnygxfnwF&4BIp8nO-Ps5k5AurD#u=o{Du|AVW z)2xspdzEU%U*Yu1Avkn#eKLF6_56IcIM4ZL3;mI)$3M#el^7ttm1PCz4m4c|zLJ&OFXE{^Z- zPwsl184Pt&fq^Hk0e(L-7NnW|*XrXs-+1KJZ^TA#vYxoz;O#t9tD?w6C&{H5a{Q-g znq=L;yZv^Wne3Y(nfhGQ&fw1ezj~X|7w9qa7NNB#-&iZnpl0C9P<@ZgjC(HBmTp9X zNDv|ahF4|aX$Hn{F$~mkEFI^-(36G2W|cA0?DvQ@a)CBa@Wx6%<9MQ4>9an?Mk7u= zux$X{8e3ps`JhFs4!6}(I2>4Tvhy`RH9o{y31q&sfg>L7fWL2N6AyPyb~W#R%O1?W zIp2h3vTJy2HL}IL{zt(V#xybZ4liiDFYYdeTdq2T4kf<;H}EQiaF&9@X%)CmC|FPs z92PPHkxiBBeei1(FcMop$>2y6fyRMCe3$$xhareCEo@*bBUr2by-u)o4;9rZ>{oz{AG|TO74O9()TaVXMC7?Ux|&s&xrOxoL^}2vsJK3AY7J{~d^h%FZ_Q&n+fiBW3OTp5TSx!z)bD`bW7UrGRx~?iC z?)bODED{A z98h_5dB(3ps45ibas3<|-rLu(^?O2s9I+BYypVD?Q#qGXzk!Vfvy3@0a6?ntwt402 zu5Jy^7p=Vfp&cn{A(?OQCifCdJL*XUT721eSFmWgsODWaQ`}g+H9x%gVhlKeZ=&pH z&PVcz_!o!Jp4~d8){vV1Pz}qtI*9(He~VV!=Os_Vlt~5?he0h03z1#)qOqNsPJ>~( zzz2S$@LGIZn(sg8x<1oNa3;w63blN|!hKluzsmRT`#9(wETAk~qU`Xsir&_yBgGc@ zI1;OS;Vtv5h# ziE1ntuje@GWAJ4RpRbpjyOS;<1&nBi8N?7-fY=V{6dsPspdu68vmi-8-oDOo-Cb1r z@0sFlHp_(=for!#{1v};6JoG$u%mmgrJUEjE5ZWZoHS?`a)IU?UFlDY(y`&fT(=ecx7V914td0a zycf5(eT@}wFM4+H0{J*L-ZaPOCe% zkb2}m7K^}Qm2ySQ@#pB?y}T9tMsho=6F|AYb_(H)0IAdbZ)l^#m-2nW~1=* zt|2KjHF6DDw?}Fgw|7|^o>gnOdZkgb=>*)k&3av30MgbCkbGqI2M>a*fqT7;;O)gQ z+HtoIaURV84`2$i2hShNf0&^K?_+5zGmzCfyGeP<7Y%6j8KG}9vwed;7aw@=zC>65 zYXf*nr`+(K-9o!~46XQUL}_W*;!*xZWzpr2)*a#)8WF8uVXcX2#n{zbE6py;q4fa8 z^CuR3W;J%U{P3gLcvZtk$5nJQHJa+#C*vpOoS}I>`g|YpT=$%pigoLy!pFaCPf8Li zs_H4!lgGdOGS<J0^$^|UQY`jnaAI}X{ikkxp6rbOr5?*|&75hw`Na)R# zG!8pTZg`6YCP>e_)n;#pn=n>m*K+Kp;T_tL?OeU?zW=EA=BrF|#juj~sSnJNH(a~z zS_oyqjFI`GgLaS=P1e&b<0)jeN%&v3T0t3?0HbN2M*)hZt<{(AeE)CvHQ*X*#^K-B zN{1L;|CW6lbQMm&iZ*!XQdt>`9nz9Y$MNz0?Qv{D419X#} zhv!-~-npN}gR!wOjdu9vGE^ZE4b)B086}f$o=YEt74QT~5EyCnL}a+J&#eB;PL`}y zpusnoZ<%B|x$H$Z!nov(5ptl1kNds&_(?I>?#@sB?I-n`Rm2plkudo`{_1gHX>wNcY9(()fwWr^-&eZP;Q6wK-#$xm? z5v);b+>_5IK0jK`(?kinwzXgyymo4@rIkys7W;Bcw50ut(RzrGz8KI4N#$o*!w^8~ z=-IjaYtN_hjPgebjgJ6<%q~m9rRF~Xx8_jUmQLDf5{Jd+ZbY@^LmXUubhOYdgMBep=3XC=9Mr;KcL6hYTRX4xpe z1X>tfSDd;l8M2+Y)3e%YET@!`JiFgd|6H;)d1hN41_yxfP#)xQlCSwKu*!{^5(S;+ zxel~EnN-6u`m3L{vnDQexV~VwMw{}kFII=UR znwhQZaf`6a{Z=ku+P(a2l@jc{zGumIJNGu6g*BPe<&Hj>)t1skPW~qE{$zcdKVR)c zyvWiulQr9W+ev*0ZMZd{lHrjUoRd<32Wd71V>?c)R;GRtB#FoR&i&hoVYf&$5qGmW zfq~E9bC|C5@!aDYDXXJfYZ7XoYNq8!$~+S0`w3_DTTWscP%+9)F4XQSJ!S6mq3##n zynqU*^r^y+0o{*d1u89yn!@d!wgzj~P>fiR^G9>#Fj7yvrv?Z&ojZrX!C1O1oZ9Mc zyA#t!cs11mk)tV9cgy#_U-qH-nste62Fw_k;#?eQJVCK)9C=Sm2Pns?IC_psUcHxj zZ4PhI#<(WEqa;-XfuIO|3Z>kM0`@x?*1o>2c_EgCk#RS%2m@Vo;!{}yH{ZKwn1{AB zu@Y*GBW>oC&GI4nPY0E4w3rB1mAy1d(y>3|x#GCo1x*Z)W~$blaBh5|xLKz6B7jMF z52OBNS;y+&fC}UjO7a$Hy}$EE3s|Q@9^>YblRwKFQM~Or@N<|QhYblnKqCSHR*sL6 zi#P%hRgAJI$rH%1qb6X}tv|1bllQzdw~oq7A7u&Jxe;Jpd#!iYPGHJahEC_zLR@T6il|vGPD{btcr)Y;Z&E8C59KwAGZeNvGdd zA(@s3xz!Rb#!$md#MrB;v4tTH$;N{hgUt0eOV?u0F{DP|+F$s>yV13x^!oD?=|D8h zB}80{%DUs#`zGjW*#tx|x=C|1G*cx|l6P(#qrFWx55=I6RqbmPH$*0vrJ! z{6l$sI8e&87|c9{HH8Hz?*V_Oaxg$SSHtuAJ3-h~qBrkPWUlRAhSw17CrV`USM@%c zyr$X~%5W9sR1Gasj`6pBelv?;i3nu%ql2OFnr)~M*1eCLb8vsB*-_55QS=;^ge}hf z&U?CPXQNq3W2cKJbK1wqW>8CyhjH)(=IQ=3m5mxoct1Btpi|)x!12O_gCvuMkj9Q~-(Kh-t zbxc8vsS|>a9rDHltz`FqaMW2w4@N|Oo?SO=<72tUxxrew;FxCBy{S#ij1{}Lx*Bm~QuBi?NoF>?tG+XSbpUG8imf-}80EXM*XXPWlPcq9d0 z&(+kwuP4GK2lhqh=z3}Oo<|kNw&O3HIBg%n6uTF7EAxD9Ap%-B3^7s=O3v%-jcIT`3AODudCj!Tzu%jD8D^8_9bIYqDbv|I@{2EygXqEp)IAo z>Y72-pI@rc_X;h__-`@6Z`mq#TRs*XE>^2sGbJUVw9r#CD|OU@-KNin8qe;?Q)^Y_iDTD=;D+;^NEeMuaV1FeJd!HclV&L*@~e`? za#Hv7^8RfjfX_ORJh!bf~0ha(jg$--3>~2mvjlz-Q8W%-Q6YKjdVzZfOPXNZ{C~HafTU? z|NHLUJ$ugC-9c%;X%5}8D*v-q(oN+0J3Kkd+7Ay6=G6XWU(Wp+Tk*yXI5DNj@f05q zrrVFF1(Z@YM*J#bTeErVsc&0KH}|rAItyXfPRvc`SfV5tJC#0t4~Q*_m&#Et-N;uY z1wVce0-vdeM;=W!s>~t``BC0}#5e!`%Ulf3w;C2_XX*8cHP1c#B=4@SgDs-__AR|5WFY z;(X>9?yO`Ycv4pS!mAeNe+7+QW;!BdVTVMM5_5L(&s%~fK&!%AEH_X?^pseTU@BdN zL{LIvFb&8XHJuv1{S(^ky)g2EWHBU+)VLplLQOqSpj>M>C%i)vX&f-cMn6kk6y?;l zvcO`LtIwb4Tj%|yis+Fsp=&|-HKmLhIW9!HL@QRe9hA+t;C=X!w8r2Om2el?uan!I zhjp^Z47*Z8V}>d}}3T=Rll&%={!56ZS${^Wm$$$?s#$|Ud}TiIJxde4T! zw@~F2{=~h2ebkI8#x<2N@NoWKMjBGyY=sB4ngg{TjtP`mZX(zP{aq5&dN*2R-#NlK z17)S0R552~CE)%ENNYgodwr@5*y=LnlJ?_Y<$U)0lyAp2 zq2nS2vIF~`{Szyqh;L#PKhp=e2Xagkas5AXXe}d_11gcM`MIm;k@GO}N%#S1v&W6m zv>TLTA@elgRs5sB_oUv7Cmvv z0$OMdhpuTe3=1?7TX}UFIp1$+XimY$oRrgs7Zm1N1+MkrL>4d8S!#|@Bg%-2dUez; z0b=^;H2ze{9R!iLEpa~SL`W&V49Oq-V}OSP(_b%u{Egx+YWUt;L$W9)_a{!l{c$7_ z3()qzyW`FC7Kj=@7<|)#;myh5cfYOL zV|8J{2s{!O5&8J-UkZ!!GCsa?vD$)-po!gV4xxjEAgB(>Eme;MAs6Q}8^-5@$ z3nZ)B89o|*c^@WFGWId>WJ@A^u28Rz0&=P!;yI{XrPM@QOG{2k>9TPB>BMPw*}B!r z0klA~*EKe-CuL+jMFFE!=ew>NFb7SxHY}WuuI~&5?(yd6#kKFLm6!8j9tZX}Pps9} zF?^%y2gc|RZ`z|&qDdrv?vJXH$55eu*pBR8A zv)WREp{v4QD4<%JX``!%2w?>d`InkHO#|$DaPPV;;Coag2Q{Uhl;YI$8rLYNiERTxGG<>ssPjdRK!;lN%yX0E4$ms>o2;=HrZ`@SC;z>1|Uw_5qJ#WwbDA z7{!}7l!3JCpR<--KqKR{ou$5!XR^Qr{lU=)WBP^^xp*G4J%!2iDdFGc1@^ahb{JD6 z_%SIXq$OX(oXo=Ks>{hIy!+GjkQNFJR=r`4?#E22q{Sq%*z=e;b@8UArv5!y#IhQ$ zPrm*~W7t2G_-K)vb`i|b$DZC8u=tEzUd;jM{qc% z;?|`I>bic7T;hs~3g_Jv6ZFnwrOSjb zA|S}z&>zDjNf;N^_Zt4vBQD_nvR@j$XF6gEfFejykN|++H9+n{olu4Kfm5JzmCCr3 z-0#7YTFCZkxyI!$%nvMadtK(#C?@cI;r_M?^l#Rl*2Hf*P#d`>5ZP4%C)BwIBXHSZek}-p zDI}WPq8gkK_Ny2b$n<^D4T~_=7B_j!U<1XTBs>@NSY5HJ}md-$SQjuH7wGqEXsxcARS?)9s&_*@j;OSx*f59gD@C@Cqk zKZjP>ft?>&Z_#7sDyp3M!9Y6SPG#`c!5CIyD&KvRE_ix8MU38(hV`s@?j?*>sOP7u zxEMsb2$Kj*Q!Xtp1Xq1%x4TY@dgFnlOkk(ub2Ci2iUjwHmXG| zpE5q;XU&<@o6pX&A5bWFtqThu#y$=9GeLuLt7tzyY{=HuRsam(Lum@R{{UJ`n(5fs z9C0u@N}7u)sb|5Q`u-JE2W(OBfg*JFgj}Sp;aWm-o9e{|NlZM!A>8ZGUD2LbMH?U- zOQtCxw^`HY*AoBXkDo+JiNUS8e}j4i7= z9{D)Y5o&z3z~L4&Ix%tjBSfU97C~k*0lRP@uv@5Xe=r~MTQ+1RBeJ$MgSlbEfr^(- zlS8KIP)&362~A{=gz!?1>6dTlAFU)_-x)w&xWew(JLRv3D^#8Hn~6yh*uuy+0RwD# z_V&VBmd9cCT{VVpb>FSa;X*WgFu)qlc<&QUh1o_akLrSeQXU!=wtCLb0i%r&{++aK zgDmz!p8Qy!B9RJpvyzluHPC~q>)Byl9d}X5Jb78~Umv}R`SbnYgqM;b9o@qdXc9sx zR^lq0GdEd`SyCnm`WY0sE$(XH7cEt!B!vy{b`9Dg_>P~Q!GwpAH;cd9w2ZQd5t%cZ zO~;wDz(EGlS6V`ugi$N0X8Wow{=w55gMlu=WL5RO4YQ+&#NWmgs-w~HN^{mZjDWyE z0&chKvQ<_X5yX~>X)P_SUA5;>1tONCa_ND4A0fOiT~mRyciFh$(U{ofSrM7nAdAGy zkEo#s2Oe2HZgI53j(KEP{E6Ss5*=07)LfQb>^uU(CcO!{t9gBDQ&ZDMNarItepijI z_3`uE5>(5FB_-_8Ws7iASrl)r?2VthWg$IZNW_)0xK(ft>^=;jTG73{5cNX%vO3?o znR7^Y^LV#P?hL-WxmQqMPvfM;xX9Elk#~|dzCBKLCtQ&y^l*P5^jtd6{rOloJ+N?E zzO$hFHbRUU%s$&qUKOL!;}2-f0lo!GgM~?;HxwNI{hK{yN{4`4r3_=I#;+$>x+ozT zf1OTVu_qDEnolqJmmVv6{e?=vp?LDCBh;BC4Qam$S3c!^&&$KC`CPghjhM6ZZ7E2c zL+q8DMCf$ouQ$**W3kLvf<{!#7cwm{?2hmwbk1vqjJ*g8{*|fI>?vO})X2{NNhHrE zszd9d^pR~z!l$T}0}9(>*K&St4hxLnnXnhHtsEE_uyL}t_xoDNeY&yXT~N^f072t+ zwc|xr(Riyb4b#qPUCEfk%BvTXAX1UFl+|NOsB>}tQka!rm@{7oQG&0aE-O-Q2B}-( zX=a>FV0hP^%oOC^d~37mNr+TbMrs^k|3O-4S7oo|&%ag*&&xxf_7e}kUrt=Vm%GQt z5^S+441Q6we2S3(LsK4?fHmeXB#pF$#P5D7+`9)s5@AtKnt2qp$yma`idfUNHuIxY ze4F8__nGUO1dU`_mv#v=DzhDn!4z?spFGOeb7LV2TCADgPXaC=ox@AQ=;9{0wwC$) z{5!Ldu9;O)z$>n}{oQ4lP0NKDfWV58%0Iih^0)y5 zGe$hGN_DZAv7_yEeuBvjSvcOt{3&HF1{sSuX`jPuon~>T(hvE6dQzf(GM}S%FnY5Q ziI+Qu`25m|Elc;TwHA9uK{$cZoy3`HRScJ}zM6=Nv;&*{=`$)QX_FiL&+f#Jk1je% z=@cA|Bj2rC%f2kQRh~@0{0aC=42D#?Rd$|m6)Bad>kGeiGh<2RKl_nJ?;o1|3QS!Nf;=?!&PX3X%m^WbSK}|?V z;y(4(9ovf#uDcSDFhlb+bnWs{fMvd~4)-L^L^G7M4;E)#`k1OSf!os}= z8U!#_MkrUsu!#!M!WEHWDmDP{h%!#eyQ_UxoB*oz7+GK!ESV;p3}?DO^GeN_=+*ql z%qdK1Tg0^)?s8Uy&8KLNs@xy!gDcF(t=}{vu#gh>`hvi-QXf51j^7VVq!+^z6J9-w zi|UNhof`<6a@=Ov;6(fmp>I1bpAVW^bk2=z$nez53WVxpKqz473UUoF&g7iwn&I>mQF{Lk%|} z25kyY{VO{YvMY1X3ILk<$Yz@MKq?cZ;k?D}X=%*8(!0s&YF{@SV<*1ABSi+aj9^qR zS$*&4GCx0P0x*Ur)*_O%Rf#ya>PWIU&n*W4aXd4*r0}6cn#@3)7XP4E9Qc)04CJMK zx`<6G*TZ(nK7b>|@TMoV@y0qA6xj&b_@<-9_;q+rzZ2LL{DtK;t~Rap&jpOcy#S$3 z|G39b`@6flsA8p(3!0I^U#m~Qz{n3_NWDd;dxVBcdZaG=`b~Rf_zu(&On1Le%Vr?? z8yZrLP29Z@UEcX#FvHC9KDeZkv<>Y*IBfQ$DpOb6HiBTHfW0TJp#W_w%t=n*tS%a0 zXDyxoZ_A+ok6(A@UL0b?^Ww|~@gx3mIaoVmL>nWa$AX6d0rd|}2b24FMCQHWd?AU4R5oMOJecoD=Pp zQB96$y~fkO(#npKhZ@h?&#)q(&N@01y3qCVpisHl&K(mnqyhzfNtq5R(wY${GAYq# zGAQcQd!{Uz)FMhjt)-$ZJO6dpwCs3%Pq}nnaN9u~bX&k)CJhkrefQKK>yTAdRmFB> zv#_y=su&+Xg;s0$6B6`!e%oa$a%pf81miVE`Zw81exDjKpVlF=N7Tt3G=JbKAZI>` z^pc?@)%X4Czwu;NZLQ0m^?sDF+1eB2H35{d`%-rS(^5o3|8|Hb9(rW@!$z{J>s8Ca zQO6Z+sYUu1zVFTHgGNj}6`vdOz6K-p1ZI-}!uQv8Go<+XV_M+vNRsBS{M$d&reI%wZH^&;)ET0MGCDv*5aypLdzS|q)l0Z9L7L{hT;L{-_ zvE<*!EqCM?(k&x{K-`zXs+DUX{dHR6cr{SG`xIIXIbu3l8+S4s=7?!P2Ynrj%X zq1EcOyg?s-%w96ORQ;4QgC005!T;F>5eK#DIyF4BzMd5HqbGGrkda)VLB-SJT90=- zD{`fNxe#E{N-~J+=p+N5H#*`%_^Sib+#*^XAW&N0YoNsiRcb z9AII8Gi1b+>5Bz5rDnK9LS#-Kt|l_&ge|V0dIYU|t0S)eh9VIv&43GyHlGpCBGt>c zF6Gyx#z(|4UrQ2wCc_^;u52J_T8(QiOxC2>gLg{Q*Ukn-B_}QM|6u(M?M!X?IhO8R z%gYNvQVeC+eWDwxV=^--;tAJyoRrHsN62p(`AXG~98=`FbZ<)?ud*eKndsy6-=5Ku zgHD19qTwLG*=$5Eoi#_0yRK-wcWoi*J4+2ygT3;_qupd7iye%{#R^A;#+I=!uyoWq z1ciaAaOxOWc17%de!Wlv@OX^rJZ27g`;>^tG$;gh=iHQF9Eg0=*dJXm%;JKN8#9w& za=j?A`-Tt|73FmR(1*Lq6Dx{H5DMWnPGk{Muvn@+gT_xO<2{&*cUzA7LZnWSf9WE+ z5BU(k#A-r_&=@orcJDC~C!K|my4zGygxK$jpXrvi(qKP#WVS)7z=>R6UxRfvtHYbw z+1!aByJ1patq7q~N8LRA)bCgOdto)FPZ@Tx!(4|U+@Y1vcCk12>ERbBAPQ9ilto=N z3Y8>lLq3XreV8Iv^1#>^XT76^$d2yG&!PcuThtz4U zhq!4Tq{yn0LI`bg`HR+k_mVGoHp3e~oP{3V=AH)OO=ruGNhANRwgf|WB)Hq-mMM4g_Yh(rmIj}9J7KI}$f z2}4aqZx@bs2{t6!+;qKap57{ial`=L4C8RXUhPq={6C=Mwh>yk{OWBz9Y~#KoEC^9 z^WVHvDiQj_Q{-v-tYK0=12D+SRfpVGY-n~1Cej>*A>i167zc2SzeJC$vwv$8KOboH zTG){=X^R!u&X=Q1cJ!^%?bkEJR&m_P1~sA8H&Q_KQ~^8#Jr}|gFi1J*b0|`F!fM#W zhXsgr(?`A1V>=erJ8t10?DAq24_rr|*-@!FE;rE6bOG6H*&VwJjjQBbQGjB3b= z`LI#3NDS3`%78x>4@U{Ut>8Lu_ioVJEwlr9U*s#4Hy;xi;pXURdG= zZJdUg*El*yTHMC~Qo9Zt-tn&wrDzo{)iBPO0TGqO#63UK>)vG%NT3_CaF(L-%F0(+ z4A}SlFu^McQadojs8k7yirGxU!m@g zAiAc`f0}*0FrjTEv$1t)>V| zuV}WT;~ovBk8FT_3n_&)lSm8AlGGYJB4X7?uEKsir#vY~iiaZ?C0lmVBBx>eb zVu?f9myw=+wx1ids}*U~{~199%$=X6#tfBhN=vGO_}6hS6Fy6R@g?b%833~MfUhyD z8}b|lea>dUY5h{xJ^*o650mFe`&41o=h^>8)pan}v&=0Pi!kLbjqP5Z1{n3B2LMrv z?#p{SKNk=J#prXQD|OYDPlEYD3hB&F^#W^=hRmuKxyxK4a4Zudw=|DON2St{LP}|U%eYH$~{qmei&t0Ezh~C zj@e9>3+N?TLnEt}Q;a=LJsg@+b@tS=_QXd92W-6T8>c;WBLJ-=B!HIC7pB|#QTh;k zYVpXA@&^trQR?LgN6#n4V_mjZu~?{69kp<2u=AVuvwh98D;7<3eFZAPyxM$-sP)+X z+2!7hCU|LB!XPe(Ts0egTJS=IsIIyjextiTOZ|BShTEDU|IAe93WmMr+;w(qh%+vkpod z&aoJH*iUJHG44tFjcjKyNM#TAas~8xA@{l@B{{@jdo0vgA_|;!=2!=yvcqRp6%(>E zRKD$-bJ1z?D!D(n*yF!*6&3CKg{b{TMSx77mY|R2XuxQr(1rN-Z*)S(>LZtKqnY^9 zy(rzDqZDK9+Tx&93zZYMuRm6kKM1{K`Z74Eg~K6UZWI!KgF=CW<2VPr6t`|9U2Q3( zhyp!*rQ(ICy_7`$_d4Y~J!2EPR2Vu}>>rEcqIyi;hg4zRB|6MNZ@FEHW2;3g-(|Q| zRk-h{rHp;qM6_1}B~5NCOX`An)daqk%z#5-$O3Ksc2EwZYE;OsL$Ci^x+RS2KjQM? zC|)ry>^>97JK65qSNG`9hp~^STje`p_;YLm>U}!Et_}6M6yJ~8tW5uyuKPUJO zO=%Z)t6998>!&q2((;XX?w5I;YB z7GktS2&C%yu*Q{IIR+tNY={tRr?1x*doTSF^0bIChoj#_KFuOJX_whUyT4!z^AK&j zT>oz+nds?|xSRW&US0k)MW7F3VbNFk3xc}S z*tFEaT>Cc}r_}u)ixOt{0CVu|XVUwbj(36DRF|$>cOv~`0Dbg+hL=qnd0bL;*+%^8 zCBa}0?D+|g(Wm$R`Jp1&ass(i>6l=`)-~ZrGS0OIb2=pc~f@8o?FQC4&0?z zM~|^8A2?f6-`LLYn(;*)xKhnWvSE3w56x;PRe{Inl*W3j@bm|!7|1N{nb&(|q{n~2 zcZRd&{lovmlFN<`olp(z95n_A@v|mx5)?v!Qm+MX(X9%@Gio+I49lJ*e?}Gh&!<}) z@%_S1UyhX(Bx-H7^TF)?DAJ>XxDwl#!#7w3UjYgG&+%uoCDjeLwXBW|mCJz&<^y_q znA_#V7%&%TG-;hZ9#j2WL@V?0kEgOJ34GHbiEa7?sKaotsj$EU= z9oZ7%FBd^W@XPbVS08+951x4TX~Mucp-Exn zYyF-ib|K!qHv9%y&TiejLtMByYj1W|khSHBxa_w44dvt}TNR4q-;%_rg__&*6fD

vvvseeV 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 Fe*ifaUbFxJ literal 0 HcmV?d00001 diff --git a/images/logos/github_invertocat_white.svg b/images/logos/github_invertocat_white.svg new file mode 100644 index 0000000000..527ba11c50 --- /dev/null +++ b/images/logos/github_invertocat_white.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/images/logos/php-foundation.svg b/images/logos/php-foundation.svg new file mode 100644 index 0000000000..cf5b3a6942 --- /dev/null +++ b/images/logos/php-foundation.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/logos/phpc-discord.png b/images/logos/phpc-discord.png new file mode 100644 index 0000000000000000000000000000000000000000..7a79320cc7bd2afd592757836b4b4d11535c9fd9 GIT binary patch literal 36820 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 literal 0 HcmV?d00001 diff --git a/images/logos/reddit.png b/images/logos/reddit.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce7ce2541a8cb622b4de56fb5075940b9d19450 GIT binary patch literal 80185 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�LT#3PGy}SLL)!A>$B48ZmL~v-`+%p_y2*1Gl$C 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 [ + 'support_label' => 'Supported', + 'features' => [ + [ + 'title' => 'URI Extension', + 'about' => 'PHP 8.5 adds a built-in URI extension to parse, normalize, and handle URLs following RFC 3986 and WHATWG URL standards.', + ], + [ + 'title' => 'Pipe Operator', + 'about' => 'The |> operator enables chaining callables left-to-right, passing values smoothly through multiple functions without intermediary variables.', + ], + [ + 'title' => 'Clone With', + 'about' => 'Clone objects and update properties with the new clone() syntax, making the "with-er" pattern simple for readonly classes.', + ], + [ + 'title' => '#[\NoDiscard] Attribute', + 'about' => 'The #[\NoDiscard] attribute warns when a return value isn’t used, helping prevent mistakes and improving overall API safety.', + ], + [ + 'title' => 'Closures and First-Class Callables in Constant Expressions', + 'about' => 'Static closures and first-class callables can now be used in constant expressions, such as attribute parameters.', + ], + [ + 'title' => 'Persistent cURL Share Handles', + 'about' => 'Handles can now be persisted across multiple PHP requests, avoiding the cost of repeated connection initialization to the same hosts.', + ], + ], + ], + '8.4' => [ + 'support_label' => 'Supported', + 'features' => [ + [ + 'title' => 'Property Hooks', + 'short' => 'Property Hooks allow intercepting properties', + ], + [ + 'title' => 'Asymmetric Property Visibility', + 'short' => 'Asymmetric Visibility for get and set', + ], + [ + 'title' => '#[Derpeciated] Attribute', + 'short' => '#[Depreciated] attribute signals removal intent', + ], + [ + 'title' => 'Additional Array Functions', + 'short' => 'New array lookup and query options', + ], + ], + ], + '8.3' => [ + 'support_label' => 'Security Support', + 'features' => [ + [ + 'title' => 'Typed Class Constants', + 'short' => 'Class constants can now be typed', + ], + [ + 'title' => 'Dynamic Class Constants', + 'about' => 'Class constants can now be accessed via dynamic calls', + ], + [ + 'title' => 'Readonly Deep Cloning', + 'short' => 'Enhanced deep cloning of readonly instances', + ], + [ + 'title' => 'Randomizer Improvements', + 'short' => 'Generate random strings from provided character sets', + ], + ], + ], + '8.2' => [ + 'support_label' => 'Security Support', + 'features' => [ + [ + 'title' => 'Readonly classes', + 'short' => 'Entire classes can now be marked Readonly', + ], + [ + 'title' => 'Disjunction Normal Form Types', + 'short' => 'Improved type support with Disjunction Normal Forms', + ], + [ + 'title' => 'Improved Standalone Types', + 'short' => 'Null, true and false are now usable as types', + ], + ], + ], +]; diff --git a/include/branches.inc b/include/branches.inc index deb1f79841..bf56899bc4 100644 --- a/include/branches.inc +++ b/include/branches.inc @@ -89,6 +89,11 @@ function format_interval($from, DateTime $to) { return $eolPeriod; } +function get_distribution_base_url(): string +{ + return 'https://www.php.net/distributions'; +} + function version_number_to_branch(string $version): ?string { $parts = explode('.', $version); if (count($parts) > 1) { @@ -138,9 +143,14 @@ function get_all_branches() { function get_active_branches($include_recent_eols = true) { $branches = []; $now = new DateTime(); + $baseUrl = get_distribution_base_url(); foreach ($GLOBALS['RELEASES'] as $major => $releases) { foreach ($releases as $version => $release) { + foreach ($release['source'] as $sourceId => $source) { + $releases[$version]['source'][$sourceId]['url'] = $baseUrl . $source['filename']; + } + $branch = version_number_to_branch($version); if ($branch) { diff --git a/include/communities.inc b/include/communities.inc new file mode 100644 index 0000000000..58eabe6c55 --- /dev/null +++ b/include/communities.inc @@ -0,0 +1,22 @@ + 'Reddit', + 'about' => 'Reddit has an active PHP community discussing the language and its ecosystem.', + 'image' => 'https://redditinc.com/hs-fs/hubfs/Reddit%20Inc/Content/Brand%20Page/Reddit_Logo.png', + 'href' => '/images/logos/reddit.png', + ], + [ + 'title' => 'PHP Community Discord', + 'about' => 'Join thousands of users on Discord talking about PHP.', + 'image' => '/images/logos/phpc-discord.png', + 'href' => 'https://discord.phpc.social/', + ], + [ + 'title' => 'Official Mailing Lists', + 'about' => 'Help and guidance, as well as proposals & discussions on the future of the language.', + 'image' => '/images/logos/new-php-logo.png', + 'href' => '/mailing-lists.php', + ], +]; diff --git a/include/development-links.inc b/include/development-links.inc new file mode 100644 index 0000000000..91f36db729 --- /dev/null +++ b/include/development-links.inc @@ -0,0 +1,46 @@ + 'PHP on Github', + 'about' => 'Browse and contribute to the source code behind the PHP engine and infrastructure.', + 'image' => '/images/logos/github_invertocat_white.svg', + 'href' => 'https://github.com/php', + 'href_label' => 'Visit GitHub', + ], + [ + 'title' => 'RFCs / Language Proposals', + 'about' => 'Requests for Comments are the mechanism PHP internals uses to propose language changes.', + 'image' => 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/500px-PHP-logo.svg.png', + 'href' => 'https://wiki.php.net/rfc', + 'href_label' => 'View Proposals', + ], + [ + 'title' => 'PHP Internals (externals.io)', + 'about' => 'Browse discussions from PHP Internals about current and future enhancements.', + 'image' => '/images/landing/externals-io.svg', + 'href' => 'https://externals.io', + 'href_label' => 'Browser Externals', + ], + [ + 'title' => 'Get Involved', + 'about' => 'Find ways to contribute to the PHP engine, documentation and more.', + 'image' => '/images/landing/contribute.png', + 'href' => '/get-involved.php', + 'href_label' => 'Get Involved', + ], + [ + 'title' => 'Submit a Bug Report', + 'about' => 'Found a bug in the PHP runtime? Help us out by submitting it to our issue tracker.', + 'image' => '/images/landing/php-bugs.png', + 'href' => 'https://github.com/php/php-src/issues', + 'href_label' => 'Browse & Submit Issues', + ], + [ + 'title' => 'Documentation Translation', + 'about' => 'Help our team translate our documentation into multiple languages.', + 'image' => '/images/landing/docs-translator.png', + 'href' => 'https://doc.php.net/guide/', + 'href_label' => 'Learn About Translation', + ] +]; diff --git a/include/footer.inc b/include/footer.inc index faa7305d68..7ddcb50a4f 100644 --- a/include/footer.inc +++ b/include/footer.inc @@ -1,4 +1,7 @@ - + + + + "; diff --git a/include/header.inc b/include/header.inc index 48722edafa..92156b4d59 100644 --- a/include/header.inc +++ b/include/header.inc @@ -62,7 +62,7 @@ if (!isset($config["languages"])) { - "> + <?php echo $title ?> @@ -106,7 +106,7 @@ if (!isset($config["languages"])) { - "> + @@ -357,6 +357,13 @@ if (!isset($config["languages"])) { + +

+ + +
@@ -366,5 +373,7 @@ if (!isset($config["languages"])) { +
+ diff --git a/include/landing-heros.inc b/include/landing-heros.inc new file mode 100644 index 0000000000..34a01d0503 --- /dev/null +++ b/include/landing-heros.inc @@ -0,0 +1,40 @@ + 'Try It Now', + 'about' => 'Begin writing PHP code immediately within a browser-based sandbox. No install required.', + 'href' => '/sandbox/sandbox.php', + 'href_label' => 'Launch Sandbox', + ], + [ + 'title' => 'Why Use PHP?', + 'about' => 'Learn why PHP powers the global web - from individual blogs to enormous enterprises.', + 'href' => 'https://web-php-pr-1172.preview.thephp.foundation/why-use-php', + 'href_label' => 'Discover Why', + ], + [ + 'title' => 'Learn', + 'about' => 'Browse the documentation, including extensive tutorials and guidance.', + 'href' => '/docs', + 'href_label' => 'Browse Docs', + ], + [ + 'title' => 'Releases', + 'about' => 'View currently supported PHP runtimes', + 'href' => '#releases', + 'href_label' => 'View Runtimes', + ], + [ + 'title' => 'Community', + 'about' => 'Get involved with the PHP Community via forums, live chat and conferences', + 'href' => '#community', + 'href_label' => 'Get Engaged', + ], + [ + 'title' => 'Language Development', + 'about' => 'See how the PHP language works to evolve, and maybe even get involved yourself!', + 'href' => '#language-development', + 'href_label' => 'Find Out More', + ], +]; diff --git a/include/layout.inc b/include/layout.inc index b9cc7c0b63..0455508881 100644 --- a/include/layout.inc +++ b/include/layout.inc @@ -495,7 +495,6 @@ META if (isset($_SERVER['BASE_PAGE']) && $shortname = get_shortname($_SERVER["BASE_PAGE"])) { $shorturl = "https://www.php.net/" . $shortname; } - require __DIR__ . "/header.inc"; } function site_footer(array $config = []): void diff --git a/include/prepend.inc b/include/prepend.inc index b2f3969f11..6409202756 100644 --- a/include/prepend.inc +++ b/include/prepend.inc @@ -121,3 +121,8 @@ function google_cse(): void { echo $cse_snippet; } + +function safe(string $html): string +{ + return htmlspecialchars($html, encoding: 'UTF-8'); +} diff --git a/index.php b/index.php index 9e24fc8c5f..c1b256794c 100644 --- a/index.php +++ b/index.php @@ -41,7 +41,7 @@ // Check if the client has the same page cached if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && - ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { + ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { header("HTTP/1.1 304 Not Modified"); exit(); } diff --git a/js/common.js b/js/common.js index 86b4862fd5..c00fc103eb 100644 --- a/js/common.js +++ b/js/common.js @@ -879,3 +879,23 @@ function applyTheme(theme) { } applyTheme(savedTheme) + +function shuffleImmutableArray(array) { + const newArray = [...array]; + for (let i = newArray.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [newArray[i], newArray[j]] = [newArray[j], newArray[i]]; + } + return newArray; +} + +function shuffleDOMChildrenWithLimit(parent, limit) { + const children = Array.from(parent.children); + const replacements = shuffleImmutableArray(children.slice(0, limit)); + + while (parent.children.length) { + parent.removeChild(parent.children[0]); + } + + replacements.forEach(n => parent.appendChild(n)); +} diff --git a/js/sandbox.js b/js/sandbox.js new file mode 100644 index 0000000000..5c9768426a --- /dev/null +++ b/js/sandbox.js @@ -0,0 +1,41 @@ +import phpBinary from "./php-web.mjs"; + +export class PHPSandbox { + constructor(templateFiles) { + this.templateFiles = templateFiles; + } + + async execute(files) { + let buffer = []; + let initializing = true; + + files = {...files, ...this.templateFiles}; + + const php = await phpBinary({ + print(data) { + if (initializing) { + return; + } + + console.log('output', data); + + buffer.push(data); + } + }); + + for (const [filename, content] of Object.entries(files)) { + const dir = filename.substring(0, filename.lastIndexOf('/')); + if (dir) { + php.FS_createPath('/', dir, true, true); + } + + php.FS.writeFile('/' + filename, content); + } + + initializing = false; + php.ccall("phpw_run", null, ["string"], ['require "boot.php";']); + + return JSON.parse(buffer.join("")); + } +} + diff --git a/landing.php b/landing.php new file mode 100644 index 0000000000..78761edb18 --- /dev/null +++ b/landing.php @@ -0,0 +1,450 @@ + '/language.operators.comparison#language.operators.comparison.ternary', + '/??' => '/language.operators.comparison#language.operators.comparison.coalesce', + '/??=' => '/language.operators.assignment#language.operators.assignment.other', + ]; + if (isset($shortcuts[$uri])) { + header("Location: {$shortcuts[$uri]}"); + exit; + } +})($_SERVER['REQUEST_URI'] ?? ''); + +// Get the modification date of this PHP file +$timestamps = [@getlastmod()]; + +/* + The date of prepend.inc represents the age of ALL + included files. Please touch it if you modify any + other include file (and the modification affects + the display of the index page). The cost of stat'ing + them all is prohibitive. +*/ +$timestamps[] = @filemtime("include/prepend.inc"); + +// These are the only dynamic parts of the frontpage +$timestamps[] = @filemtime("include/pregen-confs.inc"); +$timestamps[] = @filemtime("include/pregen-news.inc"); +$timestamps[] = @filemtime("include/version.inc"); +$timestamps[] = @filemtime("js/common.js"); + +// The latest of these modification dates is our real Last-Modified date +$timestamp = max($timestamps); + +// Note that this is not a RFC 822 date (the tz is always GMT) +$tsstring = gmdate("D, d M Y H:i:s ", $timestamp) . "GMT"; + +// Check if the client has the same page cached +if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && + ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { + header("HTTP/1.1 304 Not Modified"); + exit(); +} + +// Inform the user agent what is our last modification date +header("Last-Modified: " . $tsstring); + +$_SERVER['BASE_PAGE'] = 'index.php'; +include_once 'include/prepend.inc'; +include_once 'include/branches.inc'; +include_once 'include/pregen-confs.inc'; +include_once 'include/version.inc'; + +mirror_setcookie("LAST_NEWS", $_SERVER["REQUEST_TIME"], 60 * 60 * 24 * 365); + +$active_branches = get_active_branches(); +$active_branches_sorted = []; + +/** @var array}> $branch_descriptors */ +$branch_descriptors = require __DIR__ . '/include/branch-meta.inc'; + +krsort($active_branches); +foreach ($active_branches as $major => $releases) { + ksort($releases); + $releases = array_reverse($releases); + + foreach ($releases as $release) { + $version = $release['version']; + [$major, $minor, $_] = explode('.', $version); + $versionLabel = $major . '.' . $minor; + $branch = $branch_descriptors[$versionLabel] ?? []; + + $active_branches_sorted[] = [ + ...$release, + 'major' => $major, + 'minor' => $minor, + 'version_ex' => $major . '.'. $minor, + 'label' => $versionLabel, + 'download_url' => '/downloads.php?version=' . $versionLabel, + 'more_url' => '/releases/' . $versionLabel . '/en.php', + 'changelog_url' => '/ChangeLog-' . $major . '.php#' . $version, + 'migration_url' => '/migration' . $major . $minor, + 'security_eol' => get_branch_security_eol_date($versionLabel), + 'support_eol' => get_branch_bug_eol_date($versionLabel), + 'meta' => $branch, + 'logo' => '/images/php8/logo_php' . $major . '_' . $minor . '.svg', + 'features' => [ + ...($branch['features'] ?? []), + ] + ]; + } +} + +$latest = array_shift($active_branches_sorted); + +function buildNavCard(NavCardItem $card, array $config = []): string +{ + $config = [ + 'cn_card' => 'landing-cc-card', + 'cn_card_content' => 'landing-cc-card-content', + 'cn_card_img' => 'landing-cc-card-img', + ...$config, + ]; + + ob_start(); + ?> +
  • + +
  • + buildNavCard($card, $config), $cards)); +} + +function drawBranchInfo(array $release): void +{ + $now = new DateTime(); + $fmtDate = fn(DateTime $date) => ($date < $now) ? 'End of Life' : $date->format('Y-m-d'); + + ?> +
    +
    + · + Changelog · Upgrading +
    +
    +
    +
    + Bugfixes: + +
    +
    + Security: + +
    +
    +
    +
    + getConferences() as $event) { + $id = parse_url($event["id"], PHP_URL_FRAGMENT); + $image = $event["newsImage"]['content'] ?? null; + if ($image) { + $image = '/images/news/' . $image; + } + + $eventCards[] = new NavCardItem( + title: $event['title'], + about: $event['summary'] ?? '', + image: $image, + href: '/events', + href_label: 'Explore Event', + ); + + if (count($eventCards) > 12) { + break; + } +} + +$developmentCards = []; +foreach (require __DIR__ . '/include/development-links.inc' as $community) { + $developmentCards[] = new NavCardItem( + title: $community['title'], + about: $community['about'], + image: $community['image'], + href: $community['href'], + href_label: $community['href_label'] ?? 'Visit Community', + ); +} + +$heroCards = []; +foreach (require __DIR__ . '/include/landing-heros.inc' as $hero) { + $heroCards[] = new NavCardItem( + title: $hero['title'], + about: $hero['about'], + image: $entry["newsImage"]["content"] ?? '', + href: $hero['href'], + href_label: $hero['href_label'], + ); +} + + +ob_start(); +?> + +
    +
    +
    + +

    Powering Solo Developers, Teams, and Global Enterprise

    +
    +
    +
    +
    Fast & Modern
    +
    PHP provides blistering fast performance and a modern developer-focused experience.
    +
    + +
    +
    A Massive Ecosystem
    +
    Leverage over 300,000 existing open source packages within your projects, along with powerful tooling.
    +
    + +
    +
    An Established Community
    +
    Millions of developers and businesses already use PHP to achieve their goals every day.
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + +
    +
    +
    + php +
    + +
    + + +
    +
    +
    Major Features
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    + PHP Foundation Logo +
    +
    + The PHP Foundation is a collective of people and organizations, united in the mission to ensure the long-term prosperity of the PHP language. +

    +
    + + Learn About the PHP Foundation +  ·  + + Donate Via Open Collective +  ·  + + Donate Via GitHub +
    +
    +
    +
    + + +
    +
    +
    +
    Community
    +
    +
    +
    +
    + +
    Events & Conferences
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + PHP Foundation Logo +
    +
    + PHP has one of the largest collections of open-source libraries in the world. + +

    + Ranging from individual helpers to entire application frameworks, all packages are easily installable via the Composer + package manager. +

    +
    + + Get Composer +  ·  + Browse Package Repository +
    +
    +
    +
    + +
    +
    +
    Language Development
    +
      + 'landing-cc-card landing-cc-card-grey']) ?> +
    +
    +
    + + + + 'home', + 'headtags' => [ + '', + '', + ], + 'link' => [ + [ + "rel" => "search", + "type" => "application/opensearchdescription+xml", + "href" => $MYSITE . "phpnetimprovedsearch.src", + "title" => "Add PHP.net search", + ], + [ + "rel" => "alternate", + "type" => "application/atom+xml", + "href" => $MYSITE . "releases/feed.php", + "title" => "PHP Release feed", + ], + + ], + 'css' => ['home.css'], + 'include_section' => false, + ], +); + +echo $header; + +// Print the common footer. +site_footer([ + 'include_section' => false, + "atom" => "/feed.atom", // Add a link to the feed at the bottom +]); diff --git a/sandbox/boot.inc b/sandbox/boot.inc new file mode 100644 index 0000000000..5a17b78e52 --- /dev/null +++ b/sandbox/boot.inc @@ -0,0 +1,112 @@ + */ + public array $error_logs = []; + + public static function shared(): self + { + return self::$gs ??= new self(); + } + + public function __construct() + { + set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline) { + $this->error_logs[] = [ + 'errno' => $errno, + 'message' => $errstr, + 'file' => $errfile, + 'line' => $errline, + ]; + }); + } + + public function formatException(Throwable $e): array + { + $stack = [[ + 'file' => $e->getFile(), + 'line' => $e->getLine(), + ]]; + + foreach ($e->getTrace() as $trace) { + $where = []; + + if (isset($trace['class'])) { + $where[] = $trace['class']; + } + + if (isset($trace['function'])) { + $where[] = $trace['function']; + } + + + $stack[] = [ + 'file' => $trace['file'], + 'line' => (int)$trace['line'], + ]; + + $stack[count($stack) - 2]['where'] = implode('->', $where); + } + + /** @var array> $fileLineCache */ + $fileLineCache = []; + foreach ($stack as $idx => $item) { + if (!$item['file'] || !file_exists($item['file'])) { + $stack[$idx]['snippet'] = null; + continue; + } + + $lines = $fileLineCache[$item['file']] ??= explode("\n", file_get_contents($item['file'])); + $stack[$idx]['snippet'] = trim($lines[(int)$item['line'] - 1] ?? ''); + } + + return [ + 'message' => $e->getMessage(), + 'stack' => $stack, + 'previous' => $e->getPrevious() ? $this->formatException($e->getPrevious()) : null, + ]; + } + + public function run() + { + $result = [ + 'response_type' => 'text/plain', + ]; + + $this->error_logs = []; + $output = null; + $result = null; + $path = 'success'; + + try { + ob_start(); + require "./entry.php"; + $result['mode'] = 'success'; + $result['buffer'] = ob_get_clean(); + } catch (Throwable $e) { + $result['mode'] = 'success'; + $result['exception'] = $this->formatException($e); + $result['buffer'] = (string)$e; + ob_get_clean(); + } + + $result['errors'] = $this->error_logs; + + echo json_encode($result); + } +} + +GlobalSandbox::shared()->run(); + + + diff --git a/sandbox/example-old.txt b/sandbox/example-old.txt new file mode 100644 index 0000000000..8e1dda4cd8 --- /dev/null +++ b/sandbox/example-old.txt @@ -0,0 +1,10 @@ +headers as $header => $value) { + header($header . ': ' . $value); + } + + echo $this->body; + } +} + +function handle_request(Closure $handler) +{ + $response = $handler(new Request); + $response->send(); +} + +?> diff --git a/sandbox/sandbox.php b/sandbox/sandbox.php new file mode 100644 index 0000000000..d407f956e8 --- /dev/null +++ b/sandbox/sandbox.php @@ -0,0 +1,192 @@ + + +
    +
    PHP Sandbox
    +
    +
    +
    +
    Editor
    +
    + +
    +
    + +
    +
    +
    +
    Output
    +
    +
    +
    +
    +
    An Exception Occurred
    +
    +
    + +
    +
    Stack Trace
    +
    The stack trace shows the path the code took before it encountered the error. The last code to execute is at the top.
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    Debug
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + 'Chinese (Simplified)', ]; + public const ACTIVE_ONLINE_LANGUAGES_EX = [ + 'en' => [ + 'label_en' => 'English', + 'label_loc' => 'English', + 'icon' => '/images/language-flags/en.webp', + ], + 'de' => [ + 'label_en' => 'German', + 'label_loc' => 'Deutsch', + 'icon' => '/images/language-flags/de.png', + ], + 'es' => [ + 'label_en' => 'Spanish', + 'label_loc' => 'Español', + 'icon' => '/images/language-flags/es.png', + ], + 'fr' => [ + 'label_en' => 'French', + 'label_loc' => 'Français', + 'icon' => '/images/language-flags/fr.png', + ], + 'it' => [ + 'label_en' => 'Italian', + 'label_loc' => 'Italiano', + 'icon' => '/images/language-flags/it.png', + ], + 'ja' => [ + 'label_en' => 'Japanese', + 'label_loc' => '日本語', + 'icon' => '/images/language-flags/ja.png', + ], + 'pt_BR' => [ + 'label_en' => 'Brazilian Portuguese', + 'label_loc' => 'Português (Brasil)', + 'icon' => '/images/language-flags/br.png', + ], + 'ru' => [ + 'label_en' => 'Russian', + 'label_loc' => 'Русский', + 'icon' => '/images/language-flags/ru.png', + ], + 'tr' => [ + 'label_en' => 'Turkish', + 'label_loc' => 'Türkçe', + 'icon' => '/images/language-flags/tr.png', + ], + 'uk' => [ + 'label_en' => 'Ukrainian', + 'label_loc' => 'Українська', + 'icon' => '/images/language-flags/uk.webp', + ], + 'zh' => [ + 'label_en' => 'Chinese (Simplified)', + 'label_loc' => '简体中文', + 'icon' => '/images/language-flags/zh.webp', + ], + ]; + /** * Convert between language codes back and forth * diff --git a/src/Navigation/NavCardItem.php b/src/Navigation/NavCardItem.php new file mode 100644 index 0000000000..7a518eff1d --- /dev/null +++ b/src/Navigation/NavCardItem.php @@ -0,0 +1,15 @@ +title = $title; return $this; @@ -96,6 +98,14 @@ public function setContent(string $content): self { return $this; } + public function setSummary(string $content): self { + if (empty($content)) { + throw new \Exception('Summary must not be empty'); + } + $this->summary = $content; + return $this; + } + public function getId(): string { return $this->id; } @@ -138,6 +148,10 @@ public function save(): self { $content = self::ce($dom, "content", null, [], $item); + if ($this->summary !== '') { + self::ce($dom, "summary", $this->summary, [], $item); + } + // Slurp content into our DOM. $tdoc = new \DOMDocument("1.0", "utf-8"); $tdoc->formatOutput = true; diff --git a/styles/landing.css b/styles/landing.css new file mode 100644 index 0000000000..7953c90457 --- /dev/null +++ b/styles/landing.css @@ -0,0 +1,393 @@ +.landing-hdr { + +} +/* + * HEADER + * Contains the giant PHP and our 3x lead elements + */ + +@media (min-width: 901px) { + .landing-hdr { + display: grid; + grid-template-columns: 2fr 1fr; + gap: 1.5em; + } +} + +@media (max-width: 900px) { + .landing-hdr { + display: flex; + flex-direction: column; + gap: 1em; + } +} + +.landing-hdr-block { + padding: 1em; +} + +.landing-hdr-block + .landing-hdr-block { + border-top: 1px dashed #4a5568; +} + +.landing-hdr-title { + font-size: larger; + margin-bottom: 0.25em; +} + +.landing-hdr-tagline { + margin-bottom: 0; + font-size: 24px; +} + +.landing-hdr-content { + +} + +/* + * VCARDS + * The primary card layout used on the page; automatically collapses into a denser list on mobile. + */ + +.vgrid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); + gap: 1.5em; + margin: 0; + padding: 0; + list-style-type: none; +} + +.vgrid-card { + border-radius: 1em; + overflow: hidden; +} + +@media (max-width: 700px) { + .vgrid { + gap: 0; + overflow: hidden; + border-radius: 1em; + animation: ease; + } + + .vgrid-card { + border-radius: 0 !important; + overflow: hidden; + } + + .vgrid-card + .vgrid-card { + margin-top: 3px; + } +} + +.landing-ver-hero-card { + display: flex; + flex-direction: column; + box-sizing: border-box; +} + +.landing-ver-hero-card-inner { + display: flex; + flex-direction: column; + flex-grow: 1; + overflow: hidden; + background: #555555; + color: white; + gap: 1em; + padding: 1em; +} + +.landing-ver-hero-img { + width: 100%; + height: 60px; + object-fit: contain; + object-position: center center; + margin-top: 1em; + margin-bottom: 1em; +} + +@media (max-width: 400px) { + .landing-ver-hero-img { + height: 40px; + margin-top: 0.25em; + margin-bottom: 0.25em; + } +} + +.landing-ver-hero-featuring { + font-weight: bold; + margin-bottom: 0.25em; +} + +.landing-ver-hero-latest { + display: flex; + flex-direction: column; + gap: 0.5em; + text-align: center; +} + +.landing-ver-hero-features { + margin-bottom: 0; +} + +.landing-ver-hero-label { + display: inline-flex; + padding: 0.25em 0.75em; + border-radius: 0.5em; + font-size: 90%; +} + +.landing-ver-hero-buttons { + display: flex; + flex-direction: column; + gap: 0.25em; + width: 100%; +} + +/* + * CARD LAYOUT + */ + +.landing-cc-card { + background: #3c4053; + display: flex; + flex-direction: column; + flex-grow: 1; + gap: 1em; + overflow: hidden; +} + +.landing-cc-card-grey { + background: #444444 !important; +} + +.landing-cc-card-img { + height: 80px; + width: 80px; + object-fit: contain; + overflow: hidden; +} + +.landing-cc-card-content { + color: #eeeeee; + padding: 1em; + flex: 1 1; + display: flex; + flex-direction: column; + gap: 1em; +} + +.landing-cc-card-title { + color: white; + font-size: 125%; +} + +.landing-cc-card-body { + flex: 1 1; +} + +/* + * LAST RELEASE HERO CARD + */ + +.landing-lrv { + overflow: hidden; + position: relative; + background: #333333; + border-radius: 1em; + margin: 0 auto 2em; + width: min(1440px, 100%); + border: 1px solid #555555; +} + +.landing-lrv-inner-padding { + position: relative; +} + +@media (max-width: 900px) { + .landing-lrv-inner-padding { + padding: 1em; + } + + .landing-lrv-inner { + display: flex; + flex-direction: column; + gap: 2em; + } +} + +@media (min-width: 901px) { + .landing-lrv-inner-padding { + padding: 2em; + } + + .landing-lrv-inner { + display: grid; + gap: 2em; + align-items: center; + grid-template-columns: 1fr 1fr; + } +} + +.landing-lrv-highlights { + display: grid; + gap: 1em; + grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); +} + +.landing-lrv-highlight { + background: #44444477; + color: white; + border-radius: 0.5em; + padding: 1em; + font-size: smaller; +} + +.landing-lrv-highlight-title { + font-weight: 500; +} + +/* + * ECOSYSTEM BANNER + * Full-width banner intended to promote ecosystem components as a single element + */ + +.landing-eco-banner { + display: flex; + flex-direction: row; + gap: 2em; + align-items: center; + padding: 0 5em; +} + +@media (max-width: 700px) { + .landing-eco-banner { + flex-direction: column; + padding: 0; + gap: 1em; + text-align: center; + } +} + +.landing-eco-text { + font-size: 24px; + line-height: 1.3; +} + +/* + * SECTIONS + */ + +.landing-section { + width: min(1440px, 100%); + margin: 0 auto; + display: flex; + flex-direction: column; + gap: 2em; + padding: 5em 1em; + box-sizing: border-box; +} + +@media (max-width: 600px) { + .landing-section { + padding: 1em 1em; + } +} + +.landing-section-header { + font-size: 18px; + text-align: center; + text-decoration: none !important; + margin: 0; + padding: 0; + color: white; + line-height: 1.3; + font-weight: 500; +} + + +/* + * MICRO LABEL + * Key-Value label intended to be used for versions + */ + +.landing-ml { + font-size: smaller; + border-radius: 0.75em; + border: 1px solid #77777755; + overflow: hidden; + display: inline-flex; + align-items: center; +} + +.landing-ml-label { + padding: 0.15em 0.5em; + background: #00000044; + border-right: 1px solid #777777; +} + +.landing-ml-value { + padding: 0.15em 0.5em; +} + +/* + * CARD BUTTON + */ + +.landing-card-btn { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + box-sizing: border-box; + + /* "Chunk" styling: chunky padding and thick borders */ + padding: 14px 32px; + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + font-size: 1.1rem; + font-weight: 700; + text-decoration: none; + text-align: center; + letter-spacing: 0.5px; + cursor: pointer; + + /* Colors & Border */ + color: #111111 !important; + background-color: #ffffff; + border: 2px solid #111111; + border-radius: 0.5em; + + /* Smooth transitions for hover/active states */ + transition: all 0.2s ease-in-out; +} + +@media (max-width: 600px) { + .landing-card-btn { + padding: 4px 16px !important; + } +} + +/* Hover state */ +.landing-card-btn:hover { + color: #ffffff !important; + background-color: #111111; + /* Shifts the button slightly and expands shadow for a "lifting" effect */ + transform: translate(-2px, -2px); + box-shadow: 6px 6px 0px 0px #000000; +} + +/* Selected / Active state (when class is explicitly applied) */ +.landing-card-btn.landing-ver-hero-selected { + color: #ffffff !important; + background-color: #4f46e5; /* Modern Indigo/Blue selection color */ + border-color: #4f46e5; + /* Presses the button down */ + transform: translate(2px, 2px); + box-shadow: 0px 0px 0px 0px transparent; +} + +/* Focus state for accessibility */ +.landing-card-btn:focus-visible { + outline: 4px solid #818cf8; +} From 14eeeb5139144a76254ccf297ac97a3582ad07ba Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 20:00:16 +0100 Subject: [PATCH 02/76] Remove test files from sandbox --- index.php | 2 +- sandbox/example-old.txt | 10 ---------- sandbox/microframework.inc | 33 --------------------------------- sandbox/sandbox.php | 1 - 4 files changed, 1 insertion(+), 45 deletions(-) delete mode 100644 sandbox/example-old.txt delete mode 100644 sandbox/microframework.inc diff --git a/index.php b/index.php index c1b256794c..9e24fc8c5f 100644 --- a/index.php +++ b/index.php @@ -41,7 +41,7 @@ // Check if the client has the same page cached if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && - ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { + ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { header("HTTP/1.1 304 Not Modified"); exit(); } diff --git a/sandbox/example-old.txt b/sandbox/example-old.txt deleted file mode 100644 index 8e1dda4cd8..0000000000 --- a/sandbox/example-old.txt +++ /dev/null @@ -1,10 +0,0 @@ -headers as $header => $value) { - header($header . ': ' . $value); - } - - echo $this->body; - } -} - -function handle_request(Closure $handler) -{ - $response = $handler(new Request); - $response->send(); -} - -?> diff --git a/sandbox/sandbox.php b/sandbox/sandbox.php index d407f956e8..87d9ec0da6 100644 --- a/sandbox/sandbox.php +++ b/sandbox/sandbox.php @@ -126,7 +126,6 @@ import {PHPSandbox} from "/js/sandbox.js"; const sandbox = new PHPSandbox({ "boot.php": , - "framework.php": , }); const sourceInput = document.getElementById("code"); From 329363fc06e4760b186117e788ffaee42aa388f8 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 21:54:36 +0100 Subject: [PATCH 03/76] Clickable cards instead of buttons. --- landing.php | 21 ++++++++++++--------- styles/landing.css | 38 ++++++++++++++++++++++++++------------ 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/landing.php b/landing.php index 78761edb18..300fa97976 100644 --- a/landing.php +++ b/landing.php @@ -101,7 +101,7 @@ function buildNavCard(NavCardItem $card, array $config = []): string { $config = [ - 'cn_card' => 'landing-cc-card', + 'cn_card' => 'landing-cc-card landing-card-ovh', 'cn_card_content' => 'landing-cc-card-content', 'cn_card_img' => 'landing-cc-card-img', ...$config, @@ -109,7 +109,7 @@ function buildNavCard(NavCardItem $card, array $config = []): string ob_start(); ?> -
  • +
  • + + + +
    -
    +
    @@ -358,13 +361,13 @@ function drawBranchInfo(array $release): void
    Community
    -
    +
    Events & Conferences
    -
    +
    @@ -395,9 +398,9 @@ function drawBranchInfo(array $release): void
    Language Development
    -
      +
      'landing-cc-card landing-cc-card-grey']) ?> -
    +
    diff --git a/styles/landing.css b/styles/landing.css index 7953c90457..efd26b6548 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -150,18 +150,40 @@ */ .landing-cc-card { + all: unset; background: #3c4053; + border-radius: 1em; display: flex; - flex-direction: column; + flex-direction: row; flex-grow: 1; - gap: 1em; + gap: 0.25em; overflow: hidden; + cursor: pointer; + color: white; + outline: 3px transparent; + transition: all 0.2s ease-in-out; +} + +.landing-cc-card:hover { + outline: 3px solid #53576d; + background: #53576d; + overflow: hidden;; + transition: all 0.2s ease-in-out; +} + +.landing-cc-card:focus { + outline: 3px solid #eeeeee; } .landing-cc-card-grey { background: #444444 !important; } +.landing-cc-card-grey:hover { + background: #555555 !important; + outline: 3px solid #555555; +} + .landing-cc-card-img { height: 80px; width: 80px; @@ -369,6 +391,8 @@ } /* Hover state */ +.landing-card-ovh:hover .landing-card-btn, +.landing-card-ovh:active .landing-card-btn, .landing-card-btn:hover { color: #ffffff !important; background-color: #111111; @@ -377,16 +401,6 @@ box-shadow: 6px 6px 0px 0px #000000; } -/* Selected / Active state (when class is explicitly applied) */ -.landing-card-btn.landing-ver-hero-selected { - color: #ffffff !important; - background-color: #4f46e5; /* Modern Indigo/Blue selection color */ - border-color: #4f46e5; - /* Presses the button down */ - transform: translate(2px, 2px); - box-shadow: 0px 0px 0px 0px transparent; -} - /* Focus state for accessibility */ .landing-card-btn:focus-visible { outline: 4px solid #818cf8; From 4675cb139b52080286bd50d6bf9294addf177aa5 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 22:04:13 +0100 Subject: [PATCH 04/76] Style tweaks --- include/landing-heros.inc | 4 ++-- styles/landing.css | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/include/landing-heros.inc b/include/landing-heros.inc index 34a01d0503..9112ae9fa5 100644 --- a/include/landing-heros.inc +++ b/include/landing-heros.inc @@ -21,13 +21,13 @@ return [ ], [ 'title' => 'Releases', - 'about' => 'View currently supported PHP runtimes', + 'about' => 'View currently supported PHP runtimes including download logs and highlight features.', 'href' => '#releases', 'href_label' => 'View Runtimes', ], [ 'title' => 'Community', - 'about' => 'Get involved with the PHP Community via forums, live chat and conferences', + 'about' => 'Get involved with the PHP Community via forums, live chat and conferences.', 'href' => '#community', 'href_label' => 'Get Engaged', ], diff --git a/styles/landing.css b/styles/landing.css index efd26b6548..2d5f84cc19 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -203,6 +203,7 @@ .landing-cc-card-title { color: white; font-size: 125%; + font-weight: 500; } .landing-cc-card-body { From 1f33b1ee320186e9b8b6aa346bf437d3f2b1db6e Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 22:08:28 +0100 Subject: [PATCH 05/76] Note about todo on NewsHandler --- landing.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/landing.php b/landing.php index 300fa97976..3586e9e822 100644 --- a/landing.php +++ b/landing.php @@ -179,6 +179,8 @@ function drawBranchInfo(array $release): void } $eventCards = []; + +/* todo: Update this with proper date limits when new data is available */ foreach ((new NewsHandler())->getConferences() as $event) { $id = parse_url($event["id"], PHP_URL_FRAGMENT); $image = $event["newsImage"]['content'] ?? null; From 2ee3811df48c83b7534c98dfdf7f6b5f05fbf931 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 22:34:26 +0100 Subject: [PATCH 06/76] Provide for IDs on cards for some fancy background transition stuff later on --- include/landing-heros.inc | 6 ++++++ landing.php | 5 +++-- src/Navigation/NavCardItem.php | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/landing-heros.inc b/include/landing-heros.inc index 9112ae9fa5..ed84fb7d3c 100644 --- a/include/landing-heros.inc +++ b/include/landing-heros.inc @@ -2,36 +2,42 @@ return [ [ + 'id' => 'try-it-now', 'title' => 'Try It Now', 'about' => 'Begin writing PHP code immediately within a browser-based sandbox. No install required.', 'href' => '/sandbox/sandbox.php', 'href_label' => 'Launch Sandbox', ], [ + 'id' => 'why-use-php', 'title' => 'Why Use PHP?', 'about' => 'Learn why PHP powers the global web - from individual blogs to enormous enterprises.', 'href' => 'https://web-php-pr-1172.preview.thephp.foundation/why-use-php', 'href_label' => 'Discover Why', ], [ + 'id' => 'learn', 'title' => 'Learn', 'about' => 'Browse the documentation, including extensive tutorials and guidance.', 'href' => '/docs', 'href_label' => 'Browse Docs', ], [ + 'id' => 'releases', 'title' => 'Releases', 'about' => 'View currently supported PHP runtimes including download logs and highlight features.', 'href' => '#releases', 'href_label' => 'View Runtimes', ], [ + 'id' => 'community', 'title' => 'Community', 'about' => 'Get involved with the PHP Community via forums, live chat and conferences.', 'href' => '#community', 'href_label' => 'Get Engaged', ], [ + 'id' => 'language-development', 'title' => 'Language Development', 'about' => 'See how the PHP language works to evolve, and maybe even get involved yourself!', 'href' => '#language-development', diff --git a/landing.php b/landing.php index 3586e9e822..8955613bc8 100644 --- a/landing.php +++ b/landing.php @@ -109,7 +109,7 @@ function buildNavCard(NavCardItem $card, array $config = []): string ob_start(); ?> - + id) { ?>id="id) ?>" href="href) ?>" class="vgrid-card ">
    image) { ?>Graphic of <?= $card->title ?> @@ -220,6 +220,7 @@ function drawBranchInfo(array $release): void image: $entry["newsImage"]["content"] ?? '', href: $hero['href'], href_label: $hero['href_label'], + id: isset($hero['id']) ? ('hero-' . $hero['id']) : null, ); } @@ -227,7 +228,7 @@ function drawBranchInfo(array $release): void ob_start(); ?> -
    +
    diff --git a/src/Navigation/NavCardItem.php b/src/Navigation/NavCardItem.php index 7a518eff1d..22beef36dd 100644 --- a/src/Navigation/NavCardItem.php +++ b/src/Navigation/NavCardItem.php @@ -10,6 +10,7 @@ public function __construct( public ?string $image, public string $href, public string $href_label, + public ?string $id = null, ) { } } From 63363f7d73f040035a3de53cd9e47597033bf0b1 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 23:05:04 +0100 Subject: [PATCH 07/76] Additional prep for more fancy background loading --- landing.php | 29 +++++++++++++++++++++++++++-- styles/landing.css | 8 ++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/landing.php b/landing.php index 8955613bc8..c40e92305c 100644 --- a/landing.php +++ b/landing.php @@ -253,12 +253,37 @@ function drawBranchInfo(array $release): void
    -
    -
    +
    + +
    + + +
    + +
    diff --git a/styles/landing.css b/styles/landing.css index 2d5f84cc19..6c2342ff93 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -406,3 +406,11 @@ .landing-card-btn:focus-visible { outline: 4px solid #818cf8; } + +.hero-bg { + transition: all 0.5s ease-in-out; + position: absolute; + inset: 0; + opacity: 0; +} + From 674f150f11e502851267840f08e90a289b75eec8 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 23:13:36 +0100 Subject: [PATCH 08/76] Text tweak for ecosystem --- landing.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/landing.php b/landing.php index c40e92305c..dcc8656e44 100644 --- a/landing.php +++ b/landing.php @@ -242,7 +242,7 @@ function drawBranchInfo(array $release): void
    A Massive Ecosystem
    -
    Leverage over 300,000 existing open source packages within your projects, along with powerful tooling.
    +
    Leverage over 300,000 existing open source packages for your projects, along with powerful tooling.
    From 5135d9bd182c6ffee5272f0923652be13bbb9dd9 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 23:14:37 +0100 Subject: [PATCH 09/76] Fix reddit community link --- include/communities.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/communities.inc b/include/communities.inc index 58eabe6c55..5b1dc7d5bd 100644 --- a/include/communities.inc +++ b/include/communities.inc @@ -4,8 +4,8 @@ return [ [ 'title' => 'Reddit', 'about' => 'Reddit has an active PHP community discussing the language and its ecosystem.', - 'image' => 'https://redditinc.com/hs-fs/hubfs/Reddit%20Inc/Content/Brand%20Page/Reddit_Logo.png', - 'href' => '/images/logos/reddit.png', + 'image' => '/images/logos/reddit.png', + 'href' => 'https://www.reddit.com/r/PHP/', ], [ 'title' => 'PHP Community Discord', From 1815682f7d3bf3fd0ca0eb71ee19fef267e6e98a Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Wed, 3 Jun 2026 23:18:13 +0100 Subject: [PATCH 10/76] Shimmer mi timbers, I collided the CSS names. --- landing.php | 2 +- styles/landing.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/landing.php b/landing.php index dcc8656e44..59e237fa31 100644 --- a/landing.php +++ b/landing.php @@ -255,7 +255,7 @@ function drawBranchInfo(array $release): void
    -
    +
    diff --git a/styles/landing.css b/styles/landing.css index 6c2342ff93..0518abf863 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -407,7 +407,7 @@ outline: 4px solid #818cf8; } -.hero-bg { +.hero-cards-bg { transition: all 0.5s ease-in-out; position: absolute; inset: 0; From c91a806cabbb37aa215152c75221bc20cda917d7 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 10:01:33 +0100 Subject: [PATCH 11/76] Fix: Always enforce landing-card-ovh so don't need to repeat it --- landing.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/landing.php b/landing.php index 59e237fa31..83bc8ce240 100644 --- a/landing.php +++ b/landing.php @@ -101,7 +101,7 @@ function buildNavCard(NavCardItem $card, array $config = []): string { $config = [ - 'cn_card' => 'landing-cc-card landing-card-ovh', + 'cn_card' => 'landing-cc-card', 'cn_card_content' => 'landing-cc-card-content', 'cn_card_img' => 'landing-cc-card-img', ...$config, @@ -109,7 +109,7 @@ function buildNavCard(NavCardItem $card, array $config = []): string ob_start(); ?> - id) { ?>id="id) ?>" href="href) ?>" class="vgrid-card "> + id) { ?>id="id) ?>" href="href) ?>" class="vgrid-card landing-card-ovh ">
    image) { ?>Graphic of <?= $card->title ?> From f9f2f4811cd1c958ae34e5c3e2f3bddafe2b5d80 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 10:12:17 +0100 Subject: [PATCH 12/76] Cleanup router. --- .router.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.router.php b/.router.php index 7844b251ab..f2f788aba1 100644 --- a/.router.php +++ b/.router.php @@ -4,10 +4,6 @@ $filename = $_SERVER["PATH_INFO"] ?? $_SERVER["SCRIPT_NAME"]; -$_SERVER['HTTP_HOST'] = ''; -$_SERVER['BASE_PAGE'] = '/'; -$_SERVER['SERVER_NAME'] = 'localhost'; - if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $filename)) { require_once __DIR__ . '/error.php'; From 52bdb7709c36ab270e3d08867d03ac5bbebc4332 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 10:32:13 +0100 Subject: [PATCH 13/76] Cleanup router - But still need to fix 0.0.0.0 binding via docker. --- .router.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.router.php b/.router.php index f2f788aba1..98ce5a1773 100644 --- a/.router.php +++ b/.router.php @@ -4,6 +4,12 @@ $filename = $_SERVER["PATH_INFO"] ?? $_SERVER["SCRIPT_NAME"]; +//die(print_r($_SERVER, true)); + +//$_SERVER['HTTP_HOST'] = ''; +//$_SERVER['BASE_PAGE'] = '/'; +//$_SERVER['SERVER_NAME'] = 'localhost'; + if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $filename)) { require_once __DIR__ . '/error.php'; From b11a4ff70ae88a2b7447d5a6053a1ce8484a8529 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 10:33:53 +0100 Subject: [PATCH 14/76] Ultimate trycatch of ultimate destiny. --- landing.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/landing.php b/landing.php index 83bc8ce240..1cff587b13 100644 --- a/landing.php +++ b/landing.php @@ -3,6 +3,7 @@ use phpweb\Navigation\NavCardItem; use phpweb\News\NewsHandler; +try { (function ($uri): void { // Special redirect cases not able to be captured in error.php $shortcuts = [ @@ -124,9 +125,6 @@ function buildNavCard(NavCardItem $card, array $config = []): string
    - - -
    false, "atom" => "/feed.atom", // Add a link to the feed at the bottom ]); +} catch (Throwable $e) { + http_response_code(500); + die((string)$e); +} From b5335ba10ee068fde2b4f15902cf76359c37190c Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 10:35:23 +0100 Subject: [PATCH 15/76] Undo the ultimate trycatch of ultimate destiny. --- landing.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/landing.php b/landing.php index 1cff587b13..0b157bf025 100644 --- a/landing.php +++ b/landing.php @@ -3,7 +3,6 @@ use phpweb\Navigation\NavCardItem; use phpweb\News\NewsHandler; -try { (function ($uri): void { // Special redirect cases not able to be captured in error.php $shortcuts = [ @@ -477,7 +476,3 @@ function drawBranchInfo(array $release): void 'include_section' => false, "atom" => "/feed.atom", // Add a link to the feed at the bottom ]); -} catch (Throwable $e) { - http_response_code(500); - die((string)$e); -} From 8eaa6f07326a151f56f396783baffa6aa95c0fb3 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 13:27:55 +0100 Subject: [PATCH 16/76] Fix default 'a' border style being inherited on l anding-card-btn --- styles/landing.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/styles/landing.css b/styles/landing.css index 0518abf863..b6715e1f77 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -396,10 +396,11 @@ .landing-card-ovh:active .landing-card-btn, .landing-card-btn:hover { color: #ffffff !important; - background-color: #111111; + background-color: #222222; /* Shifts the button slightly and expands shadow for a "lifting" effect */ transform: translate(-2px, -2px); box-shadow: 6px 6px 0px 0px #000000; + border-color: transparent; } /* Focus state for accessibility */ From be6f0cc8aefcb4a27446f37f15fe2d8268ace8c3 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 14:11:35 +0100 Subject: [PATCH 17/76] Add a script to pull down the dynamically generated files directly from php.net --- bin/sync-pregen.php | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 bin/sync-pregen.php diff --git a/bin/sync-pregen.php b/bin/sync-pregen.php new file mode 100644 index 0000000000..973fd5d28c --- /dev/null +++ b/bin/sync-pregen.php @@ -0,0 +1,37 @@ + Date: Thu, 4 Jun 2026 15:10:40 +0100 Subject: [PATCH 18/76] Update conferences with teaser date checks and proper linking --- landing.php | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/landing.php b/landing.php index 0b157bf025..e763ca2d8c 100644 --- a/landing.php +++ b/landing.php @@ -176,24 +176,39 @@ function drawBranchInfo(array $release): void } $eventCards = []; +$MAX_CONFERENCE_CARDS = 9; +$now = new DateTimeImmutable(); -/* todo: Update this with proper date limits when new data is available */ -foreach ((new NewsHandler())->getConferences() as $event) { - $id = parse_url($event["id"], PHP_URL_FRAGMENT); - $image = $event["newsImage"]['content'] ?? null; +foreach ((new NewsHandler())->getConferences() as $conf) { + $finalTeaserDate = $conf['finalTeaserDate'] ?? null; + if (!$finalTeaserDate) { + continue; + } + + if (DateTimeImmutable::createFromFormat('Y-m-d', $finalTeaserDate) < $now) { + continue; + } + + $link = array_find($conf['link'], fn(array $conf) => ($conf['rel'] ?? 'alternate') === 'alternate'); + if ($link) { + $link = str_replace('https://www.php.net', '', $link['href']); + } + + $id = parse_url($conf["id"], PHP_URL_FRAGMENT); + $image = $conf["newsImage"]['content'] ?? null; if ($image) { $image = '/images/news/' . $image; } $eventCards[] = new NavCardItem( - title: $event['title'], - about: $event['summary'] ?? '', + title: $conf['title'], + about: $conf['summary'] ?? '', image: $image, - href: '/events', + href: $link ?? '/conferences/', href_label: 'Explore Event', ); - if (count($eventCards) > 12) { + if (count($eventCards) > $MAX_CONFERENCE_CARDS) { break; } } From f39a9e2ce3ae7dfbbce34767bf0d73e1905aa79b Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 15:28:52 +0100 Subject: [PATCH 19/76] Replace externals with internals --- include/development-links.inc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/development-links.inc b/include/development-links.inc index 91f36db729..21e30dc56c 100644 --- a/include/development-links.inc +++ b/include/development-links.inc @@ -16,11 +16,11 @@ return [ 'href_label' => 'View Proposals', ], [ - 'title' => 'PHP Internals (externals.io)', - 'about' => 'Browse discussions from PHP Internals about current and future enhancements.', - 'image' => '/images/landing/externals-io.svg', - 'href' => 'https://externals.io', - 'href_label' => 'Browser Externals', + 'title' => 'PHP Internals', + 'about' => 'Browse discussions from PHP Internals mailing list about current and future enhancements.', + 'image' => '/images/logos/new-php-logo.png', + 'href' => 'https://news-web.php.net/php.internals', + 'href_label' => 'Browse Mailing List', ], [ 'title' => 'Get Involved', From 3b90efd48cc0fa4037dab8fc58df05acf9282f1d Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 20:26:09 +0100 Subject: [PATCH 20/76] All sorts of tweaks I forgot to commit, but mainly colour theming. --- images/landing/elephpant.png | Bin 0 -> 100474 bytes js/landing.js | 80 +++++++++++++++++++++ landing.php | 134 ++++++++++++++++++++--------------- styles/landing.css | 109 ++++++++++++++++++++++++---- 4 files changed, 253 insertions(+), 70 deletions(-) create mode 100644 images/landing/elephpant.png create mode 100644 js/landing.js diff --git a/images/landing/elephpant.png b/images/landing/elephpant.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8d752118e93ebe64910b10fcdd487e6d9f629f GIT binary patch literal 100474 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

    vWb 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 Bv?u@o literal 0 HcmV?d00001 diff --git a/js/landing.js b/js/landing.js new file mode 100644 index 0000000000..c57dd02572 --- /dev/null +++ b/js/landing.js @@ -0,0 +1,80 @@ +function initInfiniteScroll(parentContainer, speed = 50) { + if (!parentContainer) return null; + + // 1. Extract the fixed width from the data-width attribute + const dataWidth = parentContainer.dataset.width; + if (!dataWidth) { + console.error("InfiniteScroll Error: Missing 'data-width' attribute on the container."); + return null; + } + + const widthNum = parseInt(dataWidth, 10); + const widthStr = `${widthNum}px`; + + // 2. Gather the existing child elements currently inside the parent + const elements = Array.from(parentContainer.children); + if (elements.length === 0) return null; + + // 3. Prepare the parent container styling + parentContainer.style.overflow = 'hidden'; + parentContainer.style.position = 'relative'; + parentContainer.style.width = '100%'; + + // 4. Create the scrolling track + const track = document.createElement('div'); + track.style.display = 'flex'; + track.style.width = 'max-content'; + track.style.willChange = 'transform'; + + // 5. Apply widths and move existing elements into the track + elements.forEach(el => { + el.style.width = widthStr; + el.style.flexShrink = '0'; + track.appendChild(el); // Automatically removes it from parentContainer and places it in track + }); + + // 6. Append the track to the parent container + parentContainer.appendChild(track); + + // 7. Clone elements to ensure a seamless loop with no blank gaps + const parentWidth = parentContainer.offsetWidth || window.innerWidth; + const originalTotalWidth = elements.length * widthNum; + + let currentTrackWidth = originalTotalWidth; + while (currentTrackWidth < parentWidth + originalTotalWidth) { + elements.forEach(el => { + const clone = el.cloneNode(true); + clone.style.width = widthStr; + clone.style.flexShrink = '0'; + track.appendChild(clone); + }); + currentTrackWidth += originalTotalWidth; + } + + // 8. Generate a unique CSS keyframe animation dynamically + const animationName = `infiniteScroll_${Math.random().toString(36).substr(2, 9)}`; + const styleNode = document.createElement('style'); + styleNode.textContent = ` + @keyframes ${animationName} { + 0% { transform: translateX(0); } + 100% { transform: translateX(-${originalTotalWidth}px); } + } + `; + document.head.appendChild(styleNode); + + // 9. Apply the animation (speed is pixels per second) + const duration = originalTotalWidth / speed; + track.style.animation = `${animationName} ${duration}s linear infinite`; + + // 10. Return playback and cleanup controls + return { + pause: () => track.style.animationPlayState = 'paused', + play: () => track.style.animationPlayState = 'running', + destroy: () => { + // Puts original elements back and cleans up the DOM + elements.forEach(el => parentContainer.appendChild(el)); + track.remove(); + styleNode.remove(); + } + }; +} diff --git a/landing.php b/landing.php index e763ca2d8c..f1e24a9232 100644 --- a/landing.php +++ b/landing.php @@ -236,70 +236,75 @@ function drawBranchInfo(array $release): void ); } +$foundationSponsors = [ + ['name' => 'JetBrains', 'icon' => 'https://images.opencollective.com/jetbrains/fe76f99/logo.png'], + ['name' => 'Private Packagist', 'icon' => 'https://images.opencollective.com/packagist/2ac48ff/logo.png'], + ['name' => 'Cybozu', 'icon' => 'https://images.opencollective.com/cybozu/933e46d/logo.png'], + ['name' => 'Aternos GmbH', 'icon' => 'https://images.opencollective.com/aternos/5436b31/logo.png'], + ['name' => 'Mercari Inc.', 'icon' => 'https://images.opencollective.com/mercari/454ef50/logo.png'], + ['name' => 'pixiv Inc.', 'icon' => 'https://images.opencollective.com/user-ecfec7e5/2f4c2c4/logo.png'], + ['name' => 'SPY', 'icon' => 'https://images.opencollective.com/spy/261d722/logo.png'], + ['name' => 'Symfony Corp', 'icon' => 'https://images.opencollective.com/symfony-sas/b1f53fd/logo.png'], + ['name' => 'shopware AG', 'icon' => 'https://images.opencollective.com/stefan-hamann/2865d41/logo.png'], + ['name' => 'OP.GG', 'icon' => 'https://images.opencollective.com/opgg/7e44af2/logo.png'], + ['name' => 'Passbolt', 'icon' => 'https://images.opencollective.com/passbolt/2468aab/logo.png'], + ['name' => 'Spryker', 'icon' => 'https://images.opencollective.com/spryker/a634346/logo.png'], + ['name' => 'Digital Scholar', 'icon' => 'https://images.opencollective.com/digital-scholar/logo.png'], + ['name' => 'Cambium Learning, Inc.', 'icon' => 'https://images.opencollective.com/cambium-learning-inc/30c5f1c/logo.png'], + ['name' => 'Craft CMS', 'icon' => 'https://images.opencollective.com/craftcms/1fd28bf/logo.png'], + ['name' => 'GoDaddy.com', 'icon' => 'https://images.opencollective.com/godaddy/c37e587/logo.png'], + ['name' => 'Laravel', 'icon' => 'https://images.opencollective.com/laravel/4ad04b8/logo.png'], + ['name' => 'Livesport s.r.o.', 'icon' => 'https://images.opencollective.com/livesport-s-r-o/be081c5/logo.png'], + ['name' => 'Aligent Consulting', 'icon' => 'https://images.opencollective.com/aligent-consulting/ee7abd9/logo.png'], + ['name' => 'Moodle', 'icon' => 'https://images.opencollective.com/moodle/141a57d/logo.png'], +]; + ob_start(); ?> +

    -
    -
    -
    - -

    Powering Solo Developers, Teams, and Global Enterprise

    -
    -
    -
    -
    Fast & Modern
    -
    PHP provides blistering fast performance and a modern developer-focused experience.
    -
    -
    -
    A Massive Ecosystem
    -
    Leverage over 300,000 existing open source packages for your projects, along with powerful tooling.
    +
    +
    +
    +
    + +

    + Powering Solo Developers, Teams, and Global Enterprise +

    + PHP Elephant logo
    +
    +
    +
    Fast & Modern
    +
    PHP provides blistering fast performance and a modern developer-focused experience.
    +
    -
    -
    An Established Community
    -
    Millions of developers and businesses already use PHP to achieve their goals every day.
    +
    +
    A Massive Ecosystem
    +
    Leverage over 300,000 existing open source packages for your projects, along with powerful tooling.
    +
    + +
    +
    An Established Community
    +
    Millions of developers and businesses already use PHP to achieve their goals every day.
    +
    -
    -
    - -
    - -
    - -
    -
    +
    +
    +
    'landing-cc-card landing-cc-card-alt']) ?>
    +
    +
    - -
    - + @@ -373,9 +378,9 @@ function drawBranchInfo(array $release): void
    -
    +
    -
    +
    PHP Foundation Logo
    @@ -392,31 +397,48 @@ function drawBranchInfo(array $release): void Donate Via GitHub
    + +
    +
    The PHP Foundation is grateful for our many sponsors, including:
    + + + + +
    +
    -
    +
    Community
    -
    +
    'landing-cc-card landing-cc-card-grey']); ?>
    Events & Conferences
    -
    +
    'landing-cc-card landing-cc-card-grey']) ?>
    -
    +
    - PHP Foundation Logo +
    + Composer Logo +
    PHP has one of the largest collections of open-source libraries in the world. @@ -450,7 +472,7 @@ function drawBranchInfo(array $release): void shuffleDOMChildrenWithLimit(document.querySelector('#conference-cards'), 6); }); - +
    Date: Thu, 4 Jun 2026 20:26:24 +0100 Subject: [PATCH 21/76] Docker ignore --- .dockerignore | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..e77124dc23 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +# .dockerignore +.git +.gitmodules +.gitattributes +.idea +build-deploy.sh From fdc8fafea357f5a479d39a1f2294b15f06f3125e Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 21:21:29 +0100 Subject: [PATCH 22/76] fix animate disabling --- landing.php | 30 ++++++++++++++++++++---------- styles/landing.css | 25 ++++++++++++------------- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/landing.php b/landing.php index f1e24a9232..b59d3a0e64 100644 --- a/landing.php +++ b/landing.php @@ -262,7 +262,7 @@ function drawBranchInfo(array $release): void ob_start(); ?> -
    +
    @@ -304,7 +304,7 @@ function drawBranchInfo(array $release): void
    - + @@ -402,7 +402,7 @@ function drawBranchInfo(array $release): void
    The PHP Foundation is grateful for our many sponsors, including:
    @@ -465,14 +465,24 @@ function drawBranchInfo(array $release): void
    - -
    + + + Date: Thu, 4 Jun 2026 21:35:38 +0100 Subject: [PATCH 23/76] Update previous 8.x hero pages to point to 8.5 --- include/newer-version-available.php | 5 +++++ releases/8.0/release.inc | 7 +++---- releases/8.1/release.inc | 7 +++---- releases/8.2/release.inc | 7 +++---- releases/8.3/release.inc | 7 +++---- releases/8.4/release.inc | 6 ++---- 6 files changed, 19 insertions(+), 20 deletions(-) create mode 100644 include/newer-version-available.php diff --git a/include/newer-version-available.php b/include/newer-version-available.php new file mode 100644 index 0000000000..9eaf7f3176 --- /dev/null +++ b/include/newer-version-available.php @@ -0,0 +1,5 @@ + + There's an even better version of PHP available! +
    + Click here to find out more. +
    diff --git a/releases/8.0/release.inc b/releases/8.0/release.inc index 84e5115ac7..c3dcfef158 100644 --- a/releases/8.0/release.inc +++ b/releases/8.0/release.inc @@ -31,12 +31,11 @@ $expectedText = message('this_is_expected', $lang); -
    -
    - -
    +
    + +
    diff --git a/releases/8.1/release.inc b/releases/8.1/release.inc index 2485d64995..ed12bf8d22 100644 --- a/releases/8.1/release.inc +++ b/releases/8.1/release.inc @@ -28,12 +28,11 @@ common_header(message('common_header', $lang)); -
    -
    - -
    +
    + +
    diff --git a/releases/8.2/release.inc b/releases/8.2/release.inc index 7fbacf9a4b..2fa856ec15 100644 --- a/releases/8.2/release.inc +++ b/releases/8.2/release.inc @@ -25,12 +25,11 @@ common_header(message('common_header', $lang)); -
    -
    - -
    +
    + +
    diff --git a/releases/8.3/release.inc b/releases/8.3/release.inc index 0277ce66d6..a01f06b0d7 100644 --- a/releases/8.3/release.inc +++ b/releases/8.3/release.inc @@ -25,12 +25,11 @@ common_header(message('common_header', $lang)); -
    -
    - -
    +
    + +
    diff --git a/releases/8.4/release.inc b/releases/8.4/release.inc index d83664812c..25353b3a94 100644 --- a/releases/8.4/release.inc +++ b/releases/8.4/release.inc @@ -26,12 +26,10 @@ common_header(message('common_header', $lang)); -
    -
    - -
    + +
    From ae63bc1a4dd5bac1f41eec5aefd16d4e9d46f2eb Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 21:49:45 +0100 Subject: [PATCH 24/76] Update $MYSITE to use HTTP_HOST --- include/site.inc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/site.inc b/include/site.inc index aae24537a6..61fa38005c 100644 --- a/include/site.inc +++ b/include/site.inc @@ -244,7 +244,14 @@ if (!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != "on") { $proto = "https"; } -if ($_SERVER["SERVER_PORT"] != '80' && $_SERVER["SERVER_PORT"] != 443) { +$hostHeader = $hostHeader = $_SERVER["HTTP_HOST"] ?? null; +if ($hostHeader + /* incoming hostname validation logic */ + && preg_match('/^([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)*[a-z0-9]([a-z0-9-]*[a-z0-9])?(?::\d{1,5})?$/i', $hostHeader) +) { + $MYSITE = $proto . '://' . $hostHeader . '/'; + $msite = 'https://' . $hostHeader . '/'; +} elseif ($_SERVER["SERVER_PORT"] != '80' && $_SERVER["SERVER_PORT"] != 443) { $MYSITE = $proto . '://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; $msite = 'http://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; } else { From 060d88d7277fee00e61521060df6af8806a07984 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 21:50:54 +0100 Subject: [PATCH 25/76] Remove old index --- index.php | 213 ------------------------------------------------------ 1 file changed, 213 deletions(-) delete mode 100644 index.php diff --git a/index.php b/index.php deleted file mode 100644 index 9e24fc8c5f..0000000000 --- a/index.php +++ /dev/null @@ -1,213 +0,0 @@ - '/language.operators.comparison#language.operators.comparison.ternary', - '/??' => '/language.operators.comparison#language.operators.comparison.coalesce', - '/??=' => '/language.operators.assignment#language.operators.assignment.other', - ]; - if (isset($shortcuts[$uri])) { - header("Location: {$shortcuts[$uri]}"); - exit; - } -})($_SERVER['REQUEST_URI'] ?? ''); - -// Get the modification date of this PHP file -$timestamps = [@getlastmod()]; - -/* - The date of prepend.inc represents the age of ALL - included files. Please touch it if you modify any - other include file (and the modification affects - the display of the index page). The cost of stat'ing - them all is prohibitive. -*/ -$timestamps[] = @filemtime("include/prepend.inc"); - -// These are the only dynamic parts of the frontpage -$timestamps[] = @filemtime("include/pregen-confs.inc"); -$timestamps[] = @filemtime("include/pregen-news.inc"); -$timestamps[] = @filemtime("include/version.inc"); -$timestamps[] = @filemtime("js/common.js"); - -// The latest of these modification dates is our real Last-Modified date -$timestamp = max($timestamps); - -// Note that this is not a RFC 822 date (the tz is always GMT) -$tsstring = gmdate("D, d M Y H:i:s ", $timestamp) . "GMT"; - -// Check if the client has the same page cached -if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && - ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { - header("HTTP/1.1 304 Not Modified"); - exit(); -} - -// Inform the user agent what is our last modification date -header("Last-Modified: " . $tsstring); - -$_SERVER['BASE_PAGE'] = 'index.php'; -include_once 'include/prepend.inc'; -include_once 'include/branches.inc'; -include_once 'include/pregen-confs.inc'; -include_once 'include/version.inc'; - -mirror_setcookie("LAST_NEWS", $_SERVER["REQUEST_TIME"], 60 * 60 * 24 * 365); - -$content = "
    "; -foreach ((new NewsHandler())->getFrontPageNews() as $entry) { - $link = preg_replace('~^(http://php.net/|https://www.php.net/)~', '', $entry["id"]); - $id = parse_url($entry["id"], PHP_URL_FRAGMENT); - $date = date_create($entry['updated']); - $date_human = date_format($date, 'd M Y'); - $date_w3c = date_format($date, DATE_W3C); - $content .= << -
    - -

    - {$entry["title"]} -

    -
    -
    - {$entry["content"]} -
    - -NEWSENTRY; -} -$content .= '

    Older News Entries

    '; -$content .= "
    "; - -$intro = << - -

    A popular general-purpose scripting language that is especially suited to web development.
    Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

    - -EOF; - -$intro .= "
      \n"; -$active_branches = get_active_branches(); -krsort($active_branches); -foreach ($active_branches as $major => $releases) { - krsort($releases); - foreach ((array)$releases as $release) { - $version = $release['version']; - [$major, $minor, $_] = explode('.', $version); - $intro .= " -
    • $version · Changelog · Upgrading
    • \n"; - } -} -$intro .= "
    \n"; -$intro .= << -EOF; - -site_header(NULL, - [ - 'current' => 'home', - 'headtags' => [ - '', - '', - ], - 'link' => [ - [ - "rel" => "search", - "type" => "application/opensearchdescription+xml", - "href" => $MYSITE . "phpnetimprovedsearch.src", - "title" => "Add PHP.net search", - ], - [ - "rel" => "alternate", - "type" => "application/atom+xml", - "href" => $MYSITE . "releases/feed.php", - "title" => "PHP Release feed", - ], - - ], - 'css' => ['home.css'], - 'intro' => $intro, - ], -); - -// Print body of home page. -echo $content; - -// Prepare announcements. -if (is_array($CONF_TEASER)) { - $conftype = [ - 'conference' => 'Upcoming conferences', - 'cfp' => 'Conferences calling for papers', - ]; - $announcements = ""; - foreach ($CONF_TEASER as $category => $entries) { - if ($entries) { - $announcements .= '
    '; - $announcements .= ' ' . $conftype[$category] . ''; - $announcements .= '
      '; - foreach (array_slice($entries, 0, 4) as $url => $title) { - $title = preg_replace("'([A-Za-z0-9])([\s:\-,]*?)call for(.*?)$'i", "$1", $title); - $announcements .= "
    • $title
    • "; - } - $announcements .= '
    '; - $announcements .= '
    '; - } - } -} else { - $announcements = ''; -} - -$SIDEBAR = << - The PHP Foundation -
    -

    The PHP Foundation is a collective of people and organizations, united in the mission to ensure the long-term prosperity of the PHP language. -

    Donate

    -
    -
    -$announcements -

    User Group Events

    -

    Special Thanks

    - - -SIDEBAR_DATA; - -// Print the common footer. -site_footer([ - "atom" => "/feed.atom", // Add a link to the feed at the bottom - 'elephpants' => true, - 'sidebar' => $SIDEBAR, -]); From 34db0f393db86e78a44e316f5538e2b5b356f3bd Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 21:51:09 +0100 Subject: [PATCH 26/76] Promote new index --- landing.php => index.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename landing.php => index.php (100%) diff --git a/landing.php b/index.php similarity index 100% rename from landing.php rename to index.php From ca40377dc6742b4526aa0d21f0420e87febd8c76 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 21:52:39 +0100 Subject: [PATCH 27/76] Undo docs.php changes for now --- docs.php | 70 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/docs.php b/docs.php index c531c7a159..a7003afd07 100644 --- a/docs.php +++ b/docs.php @@ -7,46 +7,54 @@ site_header("Documentation", ["current" => "docs"]); -$lang = Languages::ACTIVE_ONLINE_LANGUAGES_EX['en']; ?>

    Documentation

    -

    PHP Translates its documentation into many different languages, but the main reference is in English

    -
    - Flag of <?= htmlspecialchars($lang['label_loc'])?> -
    -
    -
    -
    +
    + +

    + The PHP Manual is available online in a selection of languages. + Please pick a language from the list below. +

    + +

    + Note, that many languages are just under translation, and + the untranslated parts are still in English. Also some translated + parts might be outdated. The translation teams are + open to contributions. +

    -
    +

    + View Online: +Available Languages

    -
    -

    - Note, that many languages are just under translation, and - the untranslated parts are still in English. Also some translated - parts might be outdated. The translation teams are - open to contributions. -

    -
    - $lang) { ?> -
    - Flag of <?= htmlspecialchars($lang['label_loc'])?> -
    -
    -
    -
    -
    - -
    -

    +// List all manual languages viewable online +$lastlang = array_key_last(Languages::ACTIVE_ONLINE_LANGUAGES); +foreach (Languages::ACTIVE_ONLINE_LANGUAGES as $langcode => $langname) { + if (!file_exists($_SERVER["DOCUMENT_ROOT"] . "/manual/{$langcode}/index.php")) { + continue; + } -
    + // Make preferred language bold + if ($langcode === $LANG) { echo ""; } + + echo '' . $langname . ''; + echo ($lastlang !== $langcode) ? ",\n" : "\n"; + + if ($langcode === $LANG) { echo ""; } +} +?> +

    -

    More Options

    +

    + The language currently being used as the default for you should be in + bold above. You can change the setting for this on the + My PHP.net customization page. +

    + +

    For downloadable formats, please visit our documentation downloads page.

    From 5b5b8923816928bce1ec44e6f2febeeb29d93a40 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 22:03:44 +0100 Subject: [PATCH 28/76] Use theming based on query param for testing --- index.php | 3 ++- styles/landing.css | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/index.php b/index.php index b59d3a0e64..07d15d1681 100644 --- a/index.php +++ b/index.php @@ -475,7 +475,8 @@ function drawBranchInfo(array $release): void (() => { const layout = document.querySelector('#landing-content'); - const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches + const isLightMode = ; + // window.matchMedia('(prefers-color-scheme: light)').matches if (isLightMode) { layout.classList.remove('landing-dark'); layout.classList.add('landing-light'); diff --git a/styles/landing.css b/styles/landing.css index ef2c50616a..dfdb3f338d 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -150,6 +150,13 @@ margin-bottom: 1em; } +.landing-light .landing-ver-hero-img { + background: #aaaaaa; + padding: 1em; + border-radius: var(--card-radius); + box-sizing: border-box; +} + @media (max-width: 400px) { .landing-ver-hero-img { height: 40px; From a3207ce8d46307b7ec2ee760b11e5c14ee1a743e Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 22:15:35 +0100 Subject: [PATCH 29/76] Moar packages! --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index 07d15d1681..b0e4b1594a 100644 --- a/index.php +++ b/index.php @@ -283,7 +283,7 @@ function drawBranchInfo(array $release): void
    A Massive Ecosystem
    -
    Leverage over 300,000 existing open source packages for your projects, along with powerful tooling.
    +
    Leverage over 450,000 existing open source packages for your projects, along with powerful tooling.
    From 4c364ed515c65234fe69c505b03bf57a1cf00ec3 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 22:20:57 +0100 Subject: [PATCH 30/76] Move the foundation sponsors into their own file. --- include/php-foundation-sponsors.inc | 24 ++++++++++++++++++++++++ index.php | 24 +----------------------- 2 files changed, 25 insertions(+), 23 deletions(-) create mode 100644 include/php-foundation-sponsors.inc diff --git a/include/php-foundation-sponsors.inc b/include/php-foundation-sponsors.inc new file mode 100644 index 0000000000..03cd5acb3b --- /dev/null +++ b/include/php-foundation-sponsors.inc @@ -0,0 +1,24 @@ + 'JetBrains', 'icon' => 'https://images.opencollective.com/jetbrains/fe76f99/logo.png'], + ['name' => 'Private Packagist', 'icon' => 'https://images.opencollective.com/packagist/2ac48ff/logo.png'], + ['name' => 'Cybozu', 'icon' => 'https://images.opencollective.com/cybozu/933e46d/logo.png'], + ['name' => 'Aternos GmbH', 'icon' => 'https://images.opencollective.com/aternos/5436b31/logo.png'], + ['name' => 'Mercari Inc.', 'icon' => 'https://images.opencollective.com/mercari/454ef50/logo.png'], + ['name' => 'pixiv Inc.', 'icon' => 'https://images.opencollective.com/user-ecfec7e5/2f4c2c4/logo.png'], + ['name' => 'SPY', 'icon' => 'https://images.opencollective.com/spy/261d722/logo.png'], + ['name' => 'Symfony Corp', 'icon' => 'https://images.opencollective.com/symfony-sas/b1f53fd/logo.png'], + ['name' => 'shopware AG', 'icon' => 'https://images.opencollective.com/stefan-hamann/2865d41/logo.png'], + ['name' => 'OP.GG', 'icon' => 'https://images.opencollective.com/opgg/7e44af2/logo.png'], + ['name' => 'Passbolt', 'icon' => 'https://images.opencollective.com/passbolt/2468aab/logo.png'], + ['name' => 'Spryker', 'icon' => 'https://images.opencollective.com/spryker/a634346/logo.png'], + ['name' => 'Digital Scholar', 'icon' => 'https://images.opencollective.com/digital-scholar/logo.png'], + ['name' => 'Cambium Learning, Inc.', 'icon' => 'https://images.opencollective.com/cambium-learning-inc/30c5f1c/logo.png'], + ['name' => 'Craft CMS', 'icon' => 'https://images.opencollective.com/craftcms/1fd28bf/logo.png'], + ['name' => 'GoDaddy.com', 'icon' => 'https://images.opencollective.com/godaddy/c37e587/logo.png'], + ['name' => 'Laravel', 'icon' => 'https://images.opencollective.com/laravel/4ad04b8/logo.png'], + ['name' => 'Livesport s.r.o.', 'icon' => 'https://images.opencollective.com/livesport-s-r-o/be081c5/logo.png'], + ['name' => 'Aligent Consulting', 'icon' => 'https://images.opencollective.com/aligent-consulting/ee7abd9/logo.png'], + ['name' => 'Moodle', 'icon' => 'https://images.opencollective.com/moodle/141a57d/logo.png'], +]; diff --git a/index.php b/index.php index b0e4b1594a..972e6b6662 100644 --- a/index.php +++ b/index.php @@ -236,29 +236,7 @@ function drawBranchInfo(array $release): void ); } -$foundationSponsors = [ - ['name' => 'JetBrains', 'icon' => 'https://images.opencollective.com/jetbrains/fe76f99/logo.png'], - ['name' => 'Private Packagist', 'icon' => 'https://images.opencollective.com/packagist/2ac48ff/logo.png'], - ['name' => 'Cybozu', 'icon' => 'https://images.opencollective.com/cybozu/933e46d/logo.png'], - ['name' => 'Aternos GmbH', 'icon' => 'https://images.opencollective.com/aternos/5436b31/logo.png'], - ['name' => 'Mercari Inc.', 'icon' => 'https://images.opencollective.com/mercari/454ef50/logo.png'], - ['name' => 'pixiv Inc.', 'icon' => 'https://images.opencollective.com/user-ecfec7e5/2f4c2c4/logo.png'], - ['name' => 'SPY', 'icon' => 'https://images.opencollective.com/spy/261d722/logo.png'], - ['name' => 'Symfony Corp', 'icon' => 'https://images.opencollective.com/symfony-sas/b1f53fd/logo.png'], - ['name' => 'shopware AG', 'icon' => 'https://images.opencollective.com/stefan-hamann/2865d41/logo.png'], - ['name' => 'OP.GG', 'icon' => 'https://images.opencollective.com/opgg/7e44af2/logo.png'], - ['name' => 'Passbolt', 'icon' => 'https://images.opencollective.com/passbolt/2468aab/logo.png'], - ['name' => 'Spryker', 'icon' => 'https://images.opencollective.com/spryker/a634346/logo.png'], - ['name' => 'Digital Scholar', 'icon' => 'https://images.opencollective.com/digital-scholar/logo.png'], - ['name' => 'Cambium Learning, Inc.', 'icon' => 'https://images.opencollective.com/cambium-learning-inc/30c5f1c/logo.png'], - ['name' => 'Craft CMS', 'icon' => 'https://images.opencollective.com/craftcms/1fd28bf/logo.png'], - ['name' => 'GoDaddy.com', 'icon' => 'https://images.opencollective.com/godaddy/c37e587/logo.png'], - ['name' => 'Laravel', 'icon' => 'https://images.opencollective.com/laravel/4ad04b8/logo.png'], - ['name' => 'Livesport s.r.o.', 'icon' => 'https://images.opencollective.com/livesport-s-r-o/be081c5/logo.png'], - ['name' => 'Aligent Consulting', 'icon' => 'https://images.opencollective.com/aligent-consulting/ee7abd9/logo.png'], - ['name' => 'Moodle', 'icon' => 'https://images.opencollective.com/moodle/141a57d/logo.png'], -]; - +$foundationSponsors = require __DIR__ . '/include/php-foundation-sponsors.inc'; ob_start(); ?> From 399df4fdfe3dc3b46f3553e21e902e5f47b5501d Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Thu, 4 Jun 2026 22:29:34 +0100 Subject: [PATCH 31/76] Comment out tagline for now --- index.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/index.php b/index.php index 972e6b6662..c8667b3204 100644 --- a/index.php +++ b/index.php @@ -246,12 +246,14 @@ function drawBranchInfo(array $release): void
    -
    - -

    - Powering Solo Developers, Teams, and Global Enterprise -

    - PHP Elephant logo +
    +
    + + PHP Elephant logo +
    + + +
    From 6cff7a4950e9cd157968d3cec1674adb49e9927d Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 10:22:54 +0100 Subject: [PATCH 32/76] Updates sync-pregen to copy into an untracked location --- bin/sync-pregen.php | 36 +- include/pregen-confs.inc | 50 +- include/pregen-news.inc | 5917 +++++++++++++++++++------------------- var/.gitignore | 2 + 4 files changed, 3008 insertions(+), 2997 deletions(-) create mode 100644 var/.gitignore diff --git a/bin/sync-pregen.php b/bin/sync-pregen.php index 973fd5d28c..a210d62688 100644 --- a/bin/sync-pregen.php +++ b/bin/sync-pregen.php @@ -1,32 +1,44 @@ $varPath . '/pregen-events.inc', + 'include/pregen-news.inc' => $varPath . '/pregen-news.inc', + 'include/pregen-confs.inc' => $varPath . '/pregen-confs.inc', ]; fwrite(STDOUT, "Copying data from production server into local directories:\n"); fwrite(STDOUT, "Do not commit these files!\n"); -foreach ($required_files as $fileName) { - $url = 'https://www.php.net/' . $fileName; +foreach ($overridePaths as $sourcePath => $saveTo) { + $url = 'https://www.php.net/' . $sourcePath; $source = @file_get_contents($url); if ($source === false) { fwrite(STDERR, "Unable to read " . $url . "\n"); exit(1); } - $saveTo = __DIR__ . '/../' . $fileName; $success = file_put_contents($saveTo, $source); if ($success === false) { fwrite(STDERR, "Unable to write to " . $saveTo . "\n"); diff --git a/include/pregen-confs.inc b/include/pregen-confs.inc index e4ba03d52b..4e2ca1019c 100644 --- a/include/pregen-confs.inc +++ b/include/pregen-confs.inc @@ -1,39 +1,25 @@ array ( - 'http://php.net/conferences/index.php#id2015-10-15-3' => 'PhpConference Brasil 2015', - 'http://php.net/conferences/index.php#id2015-10-15-1' => 'PHP Frameworks Day 2015', - 'http://php.net/conferences/index.php#id2015-10-07-1' => 'SunshinePHP 2016', - 'http://php.net/conferences/index.php#id2015-08-31-1' => 'International PHP Conference 2015', - 'http://php.net/conferences/index.php#id2015-06-29-1' => 'php[world] 2015 Schedule Announced', - 'http://php.net/conferences/index.php#id2015-06-23-1' => 'Madison PHP Conference 2015', - 'http://php.net/conferences/index.php#id2015-06-19-1' => 'ZendCon 2015', - 'http://php.net/conferences/index.php#id2015-06-01-1' => 'PHP Barcelona Conference 2015', + 'https://www.php.net/conferences/index.php#2026-06-01-1' => 'Laracon US 2026', + 'https://www.php.net/conferences/index.php#2026-05-04-1' => 'JetBrains PHPverse 2026', + 'https://www.php.net/conferences/index.php#2026-02-09-1' => 'Laravel Live Denmark 2026', + 'https://www.php.net/conferences/index.php#2025-12-17-1' => 'International PHP Conference Berlin 2026', + ), + 'cfp' => + array ( + 'https://www.php.net/conferences/index.php#2026-05-11-1' => 'Longhorn PHP 2026 - Call For Papers', ), -); +) +?> diff --git a/include/pregen-news.inc b/include/pregen-news.inc index 67c6f9fab1..33693b9417 100644 --- a/include/pregen-news.inc +++ b/include/pregen-news.inc @@ -1,28 +1,39 @@ - + array ( 'title' => 'PHP 7.4.0RC1 Released!', 'id' => 'https://www.php.net/archive/2019.php#2019-09-05-1', 'published' => '2019-09-05T08:39:13+00:00', 'updated' => '2019-09-05T08:39:13+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-09-05-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-09-05-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', @@ -35,21 +46,21 @@ which is specified in the PHP Wiki.

    - +

    Please DO NOT use this version in production, it is an early test version.

    - +

    For source downloads of PHP 7.4.0RC1 please visit the download page.

    - +

    Please carefully test this version and report any issues found in the bug reporting system.

    - +

    For more information on the new features and other changes, you can read the NEWS @@ -58,17 +69,17 @@ file for a complete list of upgrading notes. These files can also be found in the release archive.

    - +

    The next release would be 7.4.0RC2, planned for September 19th.

    - +

    The signatures for the release can be found in the manifest or on the QA site.

    - +

    Thank you for helping us make PHP better.

    ', @@ -82,35 +93,35 @@ version.

    … read full article

    ', ), - 1 => + 1 => array ( 'title' => 'PHP 7.1.32 Released', 'id' => 'https://www.php.net/archive/2019.php#2019-08-30-1', 'published' => '2019-08-30T06:42:02+00:00', 'updated' => '2019-08-30T06:42:02+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-30-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', @@ -119,9 +130,9 @@ 'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.32. This is a security release.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.32 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -131,35 +142,35 @@ 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.32. This is a security release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 2 => + 2 => array ( 'title' => 'PHP 7.2.22 Released', 'id' => 'https://www.php.net/archive/2019.php#2019-08-29-2', 'published' => '2019-08-29T20:27:22+00:00', 'updated' => '2019-08-29T20:27:22+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-29-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-29-2', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', @@ -168,9 +179,9 @@ 'content' => '

    The PHP development team announces the immediate availability of PHP 7.2.22. This is a security release which also contains several bug fixes.

    - +

    All PHP 7.2 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.2.22 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -180,35 +191,35 @@ 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.22. This is a security release which also contains several bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 3 => + 3 => array ( 'title' => 'PHP 7.3.9 Release Announcement', 'id' => 'https://www.php.net/archive/2019.php#2019-08-29-1', 'published' => '2019-08-29T11:55:58+00:00', 'updated' => '2019-08-29T11:55:58+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-29-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', @@ -217,9 +228,9 @@ 'content' => '

    The PHP development team announces the immediate availability of PHP 7.3.9. This is a security release which also contains several bug fixes.

    - +

    All PHP 7.3 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.3.9 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -229,30 +240,30 @@ 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.9. This is a security release which also contains several bug fixes.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 4 => + 4 => array ( 'title' => 'PHP 7.4.0beta4 released!', 'id' => 'https://www.php.net/archive/2019.php#2019-08-22-1', 'published' => '2019-08-22T14:51:16+00:00', 'updated' => '2019-08-22T14:51:16+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-22-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', @@ -265,21 +276,21 @@ which is specified in the PHP Wiki.

    - +

    For source downloads of PHP 7.4.0beta4 please visit the download page.

    - +

    Please carefully test this version and report any issues found in the bug reporting system.

    - +

    Please DO NOT use this version in production, it is an early test version.

    - +

    For more information on the new features and other changes, you can read the NEWS @@ -288,17 +299,17 @@ file for a complete list of upgrading notes. These files can also be found in the release archive.

    - +

    The next release would be RC 1, planned for September 5th.

    - +

    The signatures for the release can be found in the manifest or on the QA site.

    - +

    Thank you for helping us make PHP better.

    ', @@ -312,37 +323,37 @@ download page.

    … read full article

    ', ), - 5 => + 5 => array ( 'title' => 'SunshinePHP 2020 CFP Started', 'id' => 'http://php.net/archive/2019.php#id2019-08-17-1', 'published' => '2019-08-17T00:00:01+00:00', 'updated' => '2019-08-17T12:23:00+00:00', 'finalTeaserDate' => '2019-09-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-08-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://sunshinephp.com', @@ -359,21 +370,21 @@ ', 'intro' => '

    We are happy to announce the CFP for SunshinePHP 2020 has launched at https://cfp.sunshinephp.com where we will accept talk submissions until September 15th, 2019.

    SunshinePHP hit it\'s 8th year and will happen from February 6th to 8th, 2020 in sunny Miami, Florida. As one of the largest community conferences in the U.S. there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks, plus inspirational keynotes and general session talks.

    … read full article

    ', ), - 6 => + 6 => array ( 'title' => 'PHP Conference Brasil 2019', 'id' => 'https://www.php.net/archive/2019.php#2019-08-12-1', 'published' => '2019-08-12T05:21:22-03:00', 'updated' => '2019-08-12T05:21:22-03:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/conferences/index.php#id2019-08-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com.br/', 'rel' => 'via', @@ -381,15 +392,15 @@ ), ), 'finalTeaserDate' => '2019-04-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com.br/', @@ -398,26 +409,26 @@ ), 'content' => '
    PHP Conference Brasil, the Main PHP Event in Latin America, will have it\'s 14th Edition on December 5-7th in Porto Alegre, RS, Brazil. Keynotes will feature Adam Culp, Enrico Zimuel, Diana Arnos and Flavio Lisboa. On Sunday the 8th the event will hold a recreational day at Vinicola Stopassola, a Vineyard located at Serra Gaucha. Participants who opt-in will be treated to a genuine Gaucho Barbecue and a tour through the vineyard. - +
    ', 'intro' => '
    ', ), - 7 => + 7 => array ( 'title' => 'PHP Conference Japan 2019 CFP Started', 'id' => 'https://www.php.net/archive/2019.php#2019-08-08-3', 'published' => '2019-08-08T11:33:52+00:00', 'updated' => '2019-08-08T11:33:52+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/conferences/index.php#id2019-08-08-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpcon.php.gr.jp/2019/', 'rel' => 'via', @@ -425,15 +436,15 @@ ), ), 'finalTeaserDate' => '2019-09-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpcon.php.gr.jp/2019/', @@ -452,21 +463,21 @@ Sorry for the inconvenience.

    ', 'intro' => '

    PHP Conference Japan 2019

    Conference Date : 2019/12/1 in Tokyo/JAPAN

    … read full article

    ', ), - 8 => + 8 => array ( 'title' => 'PHP Conference Japan 2019', 'id' => 'https://www.php.net/archive/2019.php#2019-08-08-2', 'published' => '2019-08-08T10:29:31+00:00', 'updated' => '2019-08-08T10:29:31+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/conferences/index.php#id2019-08-08-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpcon.php.gr.jp/2019/', 'rel' => 'via', @@ -474,15 +485,15 @@ Sorry for the inconvenience.

    ), ), 'finalTeaserDate' => '2019-12-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpcon.php.gr.jp/2019/', @@ -498,30 +509,30 @@ Sorry for the inconvenience.

    ', 'intro' => '

    About PHP Conference Japan 2019

    PHP Conference Japan is the biggest PHP festival in Japan held at Tokyo, with more than 1,500 attendees for 2018. This one day festival covers all topics of PHP from introductory seminar for early beginners to dedicated topics in details for wide variety of topics like frameworks, DevOps, security, or PHP internals.

    … read full article

    ', ), - 9 => + 9 => array ( 'title' => 'PHP 7.4.0beta2 released!', 'id' => 'https://www.php.net/archive/2019.php#2019-08-08-1', 'published' => '2019-08-08T08:15:01+00:00', 'updated' => '2019-08-08T08:15:01+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-08-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', @@ -534,21 +545,21 @@ Sorry for the inconvenience.

    which is specified in the PHP Wiki.

    - +

    For source downloads of PHP 7.4.0beta2 please visit the download page.

    - +

    Please carefully test this version and report any issues found in the bug reporting system.

    - +

    Please DO NOT use this version in production, it is an early test version.

    - +

    For more information on the new features and other changes, you can read the NEWS @@ -557,17 +568,17 @@ Sorry for the inconvenience.

    file for a complete list of upgrading notes. These files can also be found in the release archive.

    - +

    The next release would be Beta 3, planned for August 22nd.

    - +

    The signatures for the release can be found in the manifest or on the QA site.

    - +

    Thank you for helping us make PHP better.

    ', @@ -581,35 +592,35 @@ Sorry for the inconvenience.

    download page.

    … read full article

    ', ), - 10 => + 10 => array ( 'title' => 'PHP 7.1.31 Released', 'id' => 'https://www.php.net/archive/2019.php#2019-08-01-3', 'published' => '2019-08-01T19:19:53+00:00', 'updated' => '2019-08-01T19:19:53+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-01-3', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', @@ -618,9 +629,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.31. This is a security release.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.31 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -630,35 +641,35 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.31. This is a security release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 11 => + 11 => array ( 'title' => 'PHP 7.2.21 Released', 'id' => 'https://www.php.net/archive/2019.php#2019-08-01-2', 'published' => '2019-08-01T08:43:45+00:00', 'updated' => '2019-08-01T08:43:45+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-01-2', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', @@ -679,35 +690,35 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.21. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 12 => + 12 => array ( 'title' => 'PHP 7.3.8 Release Announcement', 'id' => 'https://www.php.net/archive/2019.php#2019-08-01-1', 'published' => '2019-08-01T08:19:59+00:00', 'updated' => '2019-08-01T08:19:59+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-08-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-08-01-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', @@ -716,9 +727,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.3.8. This is a security release which also contains several bug fixes.

    - +

    All PHP 7.3 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.3.8 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -728,21 +739,21 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.8. This is a security release which also contains several bug fixes.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 13 => + 13 => array ( 'title' => 'PHP fwdays\'20', 'id' => 'https://www.php.net/archive/2019.php#2019-07-31-2', 'published' => '2019-07-31T16:50:41+03:00', 'updated' => '2019-07-31T16:29:41+03:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/conferences/index.php#id2019-07-31-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://fwdays.com/en/event/php-fwdays-2020', 'rel' => 'via', @@ -750,15 +761,15 @@ Sorry for the inconvenience.

    ), ), 'finalTeaserDate' => '2019-12-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://fwdays.com/en/event/php-fwdays-2020', @@ -773,21 +784,21 @@ Sorry for the inconvenience.

    ', 'intro' => '

    We are thrilled to announce the 8th edition of PHP fwdays conference — the biggest PHP conf of Eastern Europe, which will be held on May 30, 2020 in Kyiv, Ukraine.

    Three parallel tracks and community discussions are all dedicated to PHP development, tools and issues to be solved. Join more than 900 developers from all over the world to learn, discuss and solve.

    … read full article

    ', ), - 14 => + 14 => array ( 'title' => 'php Central Europe 2019', 'id' => 'https://www.php.net/archive/2019.php#2019-07-31-1', 'published' => '2019-07-31T08:29:41+02:00', 'updated' => '2019-07-31T08:29:41+02:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/conferences/index.php#id2019-07-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2019.phpce.eu/', 'rel' => 'via', @@ -795,15 +806,15 @@ Sorry for the inconvenience.

    ), ), 'finalTeaserDate' => '2019-10-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2019.phpce.eu/', @@ -818,30 +829,30 @@ Sorry for the inconvenience.

    ', 'intro' => '

    Thanks to the support of PHP Usergroup Dresden, our conference will be held in the Federal Republic of Germany. phpCE is an event addressed to a vast group of developers and PHP enthusiasts from Central Europe. We hope that you enjoy our diverse line-up and it will turn out to be so interesting that you too will want to join us. In addition, for the first time we will meet at... the cinema!

    Location and dates:
    October 4, 2019 - the Workshop Day in the Pullman Dresden Newa hotel,
    October 5-6, 2019 - Conference Days in the UFA Kristallpalast multiplex.

    … read full article

    ', ), - 15 => + 15 => array ( 'title' => 'PHP 7.4.0beta1 released!', 'id' => 'https://www.php.net/archive/2019.php#2019-07-25-1', 'published' => '2019-07-25T09:39:51+00:00', 'updated' => '2019-07-25T09:39:51+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-07-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-07-25-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', @@ -854,21 +865,21 @@ Sorry for the inconvenience.

    which is specified in the PHP Wiki.

    - +

    For source downloads of PHP 7.4.0beta1 please visit the download page.

    - +

    Please carefully test this version and report any issues found in the bug reporting system.

    - +

    Please DO NOT use this version in production, it is an early test version.

    - +

    For more information on the new features and other changes, you can read the NEWS @@ -877,17 +888,17 @@ Sorry for the inconvenience.

    file for a complete list of upgrading notes. These files can also be found in the release archive.

    - +

    The next release would be Beta 2, planned for August 8th.

    - +

    The signatures for the release can be found in the manifest or on the QA site.

    - +

    Thank you for helping us make PHP better.

    ', @@ -901,21 +912,21 @@ Sorry for the inconvenience.

    download page.

    … read full article

    ', ), - 16 => + 16 => array ( 'title' => 'php[world] 2019 — 25 years of PHP', 'id' => 'https://www.php.net/archive/2019.php#2019-07-17-1', 'published' => '2019-07-17T16:31:10+00:00', 'updated' => '2019-07-17T16:31:10+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/conferences/index.php#id2019-07-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/?utm_campaign=phpnet', 'rel' => 'via', @@ -923,15 +934,15 @@ Sorry for the inconvenience.

    ), ), 'finalTeaserDate' => '2019-10-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/?utm_campaign=phpnet', @@ -939,43 +950,43 @@ Sorry for the inconvenience.

    'content' => 'world2019-25th-400px.png', ), 'content' => '
    - +

    PHP has been around for 25 years this fall and we will be celebrating this momentous landmark at the annual php[world] conference.

    - +

    We have curated a special lineup of talks, workshops, and full-day training classes for our attendees. There will also be a couple of amazing keynotes and two panels on the past and future of PHP and frameworks.

    - +

    It will be an amazing time, with some special events to help us all celebrate. Tickets are currently available and we look forward to seeing you this fall.

    - +

    Washington, D.C. — October 23-24 — Training on October 22

    - +
    ', 'intro' => '

    PHP has been around for 25 years this fall and we will be celebrating this momentous landmark at the annual php[world] conference.

    We have curated a special lineup of talks, workshops, and full-day training classes for our attendees. There will also be a couple of amazing keynotes and two panels on the past and future of PHP and frameworks.

    … read full article

    ', ), - 17 => + 17 => array ( 'title' => 'PHP 7.4.0 alpha 3 Released', 'id' => 'https://www.php.net/archive/2019.php#2019-07-11-1', 'published' => '2019-07-11T10:15:12+00:00', 'updated' => '2019-07-11T10:15:12+00:00', - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'https://www.php.net/index.php#id2019-07-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.php.net/archive/2019.php#2019-07-11-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', @@ -988,32 +999,32 @@ Sorry for the inconvenience.

    which is specified in the PHP Wiki.

    - +

    For source downloads of PHP 7.4.0 Alpha 3 please visit the download page.

    - +

    Please carefully test this version and report any issues found in the bug reporting system.

    - +

    Please DO NOT use this version in production, it is an early test version.

    - +

    For more information on the new features and other changes, you can read the NEWS file, or the UPGRADING file for a complete list of upgrading notes. These files can also be found in the release archive.

    - +

    The next release would be Beta 1, planned for July 25th.

    - +

    The signatures for the release can be found in the manifest or on the QA site.

    - +

    Thank you for helping us make PHP better.

    ', @@ -1024,37 +1035,37 @@ Sorry for the inconvenience.

    Wiki.

    For source downloads of PHP 7.4.0 Alpha 3 please visit the download page.

    … read full article

    ', ), - 18 => + 18 => array ( 'title' => 'Lightning PHP Conference', 'id' => 'http://php.net/archive/2019.php#id2019-07-10-1', 'published' => '2019-07-10T01:27:54+00:00', 'updated' => '2019-07-10T01:27:54+00:00', 'finalTeaserDate' => '2019-10-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-07-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://lightningphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://lightningphp.org', @@ -1070,34 +1081,34 @@ Sorry for the inconvenience.

    ', 'intro' => '', ), - 19 => + 19 => array ( 'title' => 'PHP 7.2.20 Released', 'id' => 'http://php.net/archive/2019.php#id2019-07-04-2', 'published' => '2019-07-04T09:14:21+00:00', 'updated' => '2019-07-04T09:14:21+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-07-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-07-04-2', 'rel' => 'via', @@ -1119,34 +1130,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.20. This is a bugfix release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 20 => + 20 => array ( 'title' => 'PHP 7.3.7 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-07-04-1', 'published' => '2019-07-04T08:29:00+00:00', 'updated' => '2019-07-04T08:29:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-07-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-07-04-1', 'rel' => 'via', @@ -1156,9 +1167,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.3.7. This is a bug fix release.

    - +

    All PHP 7.3 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.3.7 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -1168,29 +1179,29 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.7. This is a bug fix release.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 21 => + 21 => array ( 'title' => 'PHP 7.4.0 alpha 2 Released', 'id' => 'http://php.net/archive/2019.php#id2019-06-26-1', 'published' => '2019-06-26T23:34:49+00:00', 'updated' => '2019-06-26T23:34:49+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-06-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-06-26-1', 'rel' => 'via', @@ -1203,32 +1214,32 @@ Sorry for the inconvenience.

    This continues the PHP 7.4 release cycle, the rough outline of which is specified in the PHP Wiki.

    - +

    For source downloads of PHP 7.4.0 Alpha 2 please visit the download page.

    - +

    Please carefully test this version and report any issues found in the bug reporting system.

    - +

    Please DO NOT use this version in production, it is an early test version.

    - +

    For more information on the new features and other changes, you can read the NEWS file, or the UPGRADING file for a complete list of upgrading notes. These files can also be found in the release archive.

    - +

    The next release would be Alpha 3, planned for July 11th.

    - +

    The signatures for the release can be found in the manifest or on the QA site.

    - +

    Thank you for helping us make PHP better.

    ', @@ -1238,37 +1249,37 @@ Sorry for the inconvenience.

    PHP Wiki.

    For source downloads of PHP 7.4.0 Alpha 2 please visit the download page.

    … read full article

    ', ), - 22 => + 22 => array ( 'title' => 'The 7th Annual China PHP Conference', 'id' => 'http://php.net/archive/2019.php#id2019-06-24-1', 'published' => '2019-06-24T19:01:22+08:00', 'updated' => '2019-06-24T19:01:22+08:00', 'finalTeaserDate' => '2019-08-10', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-06-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.phpconchina.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com', @@ -1287,37 +1298,37 @@ Sorry for the inconvenience.

    ', 'intro' => '

    The 7th Annual China PHP Conference – Aug 10 to 11, Shanghai

    We will be hosting a 2-day event filled with high quality, technical sessions about PHP Core, PHP High Performance, PHP Engineering, AI and Blockchain more.

    … read full article

    ', ), - 23 => + 23 => array ( 'title' => 'LaravelConf Taiwan 2019 announcement', 'id' => 'http://php.net/archive/2019.php#id2019-06-19-1', 'published' => '2019-06-19T22:46:22+08:00', 'updated' => '2019-06-19T22:46:22+08:00', 'finalTeaserDate' => '2019-07-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-06-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laravelconf.tw/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laravelconf.tw/', @@ -1347,29 +1358,29 @@ Sorry for the inconvenience.

    ', 'intro' => '

    The third Laravel conference in Taiwan awaits you at LaravelConf Taiwan 2019 at Taipei, Taiwan.

    LaravelConf Taiwan 2019 is for anyone who is passionate about building web applications, or anyone who is sharing better experiences about PHP developments.

    … read full article

    ', ), - 24 => + 24 => array ( 'title' => 'PHP 7.4.0 alpha 1 Released', 'id' => 'http://php.net/archive/2019.php#id2019-06-13-1', 'published' => '2019-06-13T11:24:11+00:00', 'updated' => '2019-06-13T11:24:11+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-06-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-06-13-1', 'rel' => 'via', @@ -1382,32 +1393,32 @@ Sorry for the inconvenience.

    This starts the PHP 7.4 release cycle, the rough outline of which is specified in the PHP Wiki.

    - +

    For source downloads of PHP 7.4.0 Alpha 1 please visit the download page.

    - +

    Please carefully test this version and report any issues found in the bug reporting system.

    - +

    Please DO NOT use this version in production, it is an early test version.

    - +

    For more information on the new features and other changes, you can read the NEWS file, or the UPGRADING file for a complete list of upgrading notes. These files can also be found in the release archive.

    - +

    The next release would be Alpha 2, planned for June 27.

    - +

    The signatures for the release can be found in the manifest or on the QA site.

    - +

    Thank you for helping us make PHP better.

    ', @@ -1417,37 +1428,37 @@ Sorry for the inconvenience.

    PHP Wiki.

    For source downloads of PHP 7.4.0 Alpha 1 please visit the download page.

    … read full article

    ', ), - 25 => + 25 => array ( 'title' => 'International PHP Conference 2019 - Fall Edition', 'id' => 'http://php.net/archive/2019.php#id2019-06-07-1', 'published' => '2019-06-07T14:37:00+02:00', 'updated' => '2019-06-07T14:37:00+02:00', 'finalTeaserDate' => '2019-10-21', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-06-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -1488,34 +1499,34 @@ Sorry for the inconvenience.

    ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the International JavaScript Conference taking place at the same time.

    … read full article

    ', ), - 26 => + 26 => array ( 'title' => 'PHP 7.1.30 Released', 'id' => 'http://php.net/archive/2019.php#id2019-05-30-3', 'published' => '2019-05-30T17:03:08+00:00', 'updated' => '2019-05-30T17:03:08+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-05-30-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-05-30-3', 'rel' => 'via', @@ -1525,9 +1536,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.30. This is a security release.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.30 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -1537,34 +1548,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.30. This is a security release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 27 => + 27 => array ( 'title' => 'PHP 7.2.19 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-05-30-2', 'published' => '2019-05-30T14:19:20+00:00', 'updated' => '2019-05-30T14:19:20+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-05-30-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-05-30-2', 'rel' => 'via', @@ -1574,9 +1585,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.2.19. This is a security release which also contains several minor bug fixes.

    - +

    All PHP 7.2 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.2.19 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -1586,34 +1597,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.19. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 28 => + 28 => array ( 'title' => 'PHP 7.3.6 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-05-30-1', 'published' => '2019-05-30T09:11:36+00:00', 'updated' => '2019-05-30T09:11:36+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-05-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-05-30-1', 'rel' => 'via', @@ -1635,37 +1646,37 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.6. This is a security release which also contains several bug fixes.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 29 => + 29 => array ( 'title' => 'CakeFest 2019 Tokyo Japan, the Official CakePHP Conference', 'id' => 'http://php.net/archive/2019.php#id2019-05-29-1', 'published' => '2019-05-29T10:26:22+00:00', 'updated' => '2019-05-29T10:26:22+00:00', 'finalTeaserDate' => '2019-11-07', - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cakefest.org', 'title' => 'CakeFest 2019', 'content' => 'cakefest-2017.png', ), - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-05-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-05-29-1', 'rel' => 'via', @@ -1693,37 +1704,37 @@ Sorry for the inconvenience.

    Check out the full schedule on CakeFest.org

    ', ), - 30 => + 30 => array ( 'title' => 'PHP fwdays 2019', 'id' => 'http://php.net/archive/2019.php#id2019-05-27-1', 'published' => '2019-05-27T23:30:01+02:00', 'updated' => '2019-05-27T23:30:01+02:00', 'finalTeaserDate' => '2019-06-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-05-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://fwdays.com/event/php-fwdays-2019', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://fwdays.com/event/php-fwdays-2019', @@ -1744,37 +1755,37 @@ Sorry for the inconvenience.

    Join more than 800 developers from all over the world to learn, discuss and solve.

    … read full article

    ', ), - 31 => + 31 => array ( 'title' => 'php[world] 2019 Call for Speakers', 'id' => 'http://php.net/archive/2019.php#id2019-05-10-1', 'published' => '2019-05-10T13:18:25+00:00', 'updated' => '2019-05-10T13:18:25+00:00', 'finalTeaserDate' => '2019-06-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-05-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/?utm_campaign=phpnetworld2019', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/?utm_campaign=phpnetworld2019', @@ -1791,37 +1802,37 @@ Sorry for the inconvenience.

    ', 'intro' => '

    We are excited to announce the Call for Speakers for php[world] 2019! Taking place this year at the Sheraton Tyson\'s Corner on October 23-24 (with full-day training options on the 22nd.)

    At it’s heart, php[world] 2019 is the Washington D.C. area conference for programmers who use the PHP programming language. We’ve been running annually since 2014.

    … read full article

    ', ), - 32 => + 32 => array ( 'title' => 'phpday 2019', 'id' => 'http://php.net/archive/2019.php#id2019-05-08-1', 'published' => '2019-05-08T09:28:01+02:00', 'updated' => '2019-05-08T09:28:01+02:00', 'finalTeaserDate' => '2019-05-11', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-05-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2019.phpday.it/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2019.phpday.it/', @@ -1836,34 +1847,34 @@ Sorry for the inconvenience.

    ', 'intro' => '

    The Italian PHP user group GrUSP is pleased to announce the 16th edition of phpday, taking place on May 10-11th, 2019 in Verona, Italy.

    It is the first historic Italian conference dedicated solely to PHP development, technologies and management. It is aimed to IT managers, developers and innovators. Each year it renews the opportunity to link to new business partners.

    … read full article

    ', ), - 33 => + 33 => array ( 'title' => 'PHP 7.1.29 Released', 'id' => 'http://php.net/archive/2019.php#id2019-05-03-1', 'published' => '2019-05-03T06:05:20+00:00', 'updated' => '2019-05-03T06:05:20+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-05-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-05-03-1', 'rel' => 'via', @@ -1873,9 +1884,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.29. This is a security release.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.29 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -1885,34 +1896,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.29. This is a security release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 34 => + 34 => array ( 'title' => 'PHP 7.2.18 Released', 'id' => 'http://php.net/archive/2019.php#id2019-05-02-2', 'published' => '2019-05-02T09:47:58+00:00', 'updated' => '2019-05-02T09:47:58+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-05-02-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-05-02-2', 'rel' => 'via', @@ -1934,34 +1945,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.18. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 35 => + 35 => array ( 'title' => 'PHP 7.3.5 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-05-02-1', 'published' => '2019-05-02T10:27:19+02:00', 'updated' => '2019-05-02T10:27:19+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-05-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-05-02-1', 'rel' => 'via', @@ -1983,37 +1994,37 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.5. This is a security release which also contains several bug fixes.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 36 => + 36 => array ( 'title' => 'CoderCruise 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-16-1', 'published' => '2019-04-16T18:59:25+00:00', 'updated' => '2019-04-16T18:59:25+00:00', 'finalTeaserDate' => '2019-08-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/', @@ -2039,37 +2050,37 @@ Sorry for the inconvenience.

    starting as low as $435 per person (including 5-day cruise, food, drink and the conference!)

    ', ), - 37 => + 37 => array ( 'title' => 'PHPConf.Asia 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-04-4', 'published' => '2019-04-04T12:51:44+08:00', 'updated' => '2019-04-04T12:51:44+08:00', 'finalTeaserDate' => '2019-06-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-04-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2019.phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2019.phpconf.asia', @@ -2086,34 +2097,34 @@ Sorry for the inconvenience.

    ', 'intro' => '

    PHPConf.Asia 2019

    Announcing PHPConf.Asia 2019 - The Pan-Asian PHP Conference - Ticket Sales are Open!

    … read full article

    ', ), - 38 => + 38 => array ( 'title' => 'PHP 7.1.28 Released', 'id' => 'http://php.net/archive/2019.php#id2019-04-04-3', 'published' => '2019-04-04T16:56:38+00:00', 'updated' => '2019-04-04T16:56:38+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-04-04-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-04-04-3', 'rel' => 'via', @@ -2123,9 +2134,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.28. This is a security release.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.28 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -2135,34 +2146,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.28. This is a security release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 39 => + 39 => array ( 'title' => 'PHP 7.2.17 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-04-04-2', 'published' => '2019-04-04T14:17:48+00:00', 'updated' => '2019-04-04T14:17:48+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-04-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-04-04-2', 'rel' => 'via', @@ -2172,9 +2183,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.2.17. This is a security release which also contains several minor bug fixes.

    - +

    All PHP 7.2 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.2.17 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -2184,34 +2195,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.17. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 40 => + 40 => array ( 'title' => 'PHP 7.3.4 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-04-04-1', 'published' => '2019-04-04T14:02:16+02:00', 'updated' => '2019-04-04T14:02:16+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-04-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-04-04-1', 'rel' => 'via', @@ -2221,9 +2232,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.3.4. This is a security release which also contains several bug fixes.

    - +

    All PHP 7.3 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.3.4 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -2233,37 +2244,37 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.4. This is a security release which also contains several bug fixes.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 41 => + 41 => array ( 'title' => 'SymfonyCon Amsterdam 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-02-6', 'published' => '2019-04-02T10:28:14+00:00', 'updated' => '2019-04-02T10:28:14+00:00', 'finalTeaserDate' => '2019-11-21', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-02-6', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://amsterdam2019.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://amsterdam2019.symfony.com/', @@ -2288,37 +2299,37 @@ Sorry for the inconvenience.

    ', 'intro' => '
    ', ), - 42 => + 42 => array ( 'title' => 'SymfonyLive Berlin 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-02-5', 'published' => '2019-04-02T10:24:43+00:00', 'updated' => '2019-04-02T10:24:43+00:00', 'finalTeaserDate' => '2019-09-26', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-02-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://berlin2019.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://berlin2019.live.symfony.com/', @@ -2328,7 +2339,7 @@ Sorry for the inconvenience.

    'content' => '

    The SymfonyLive conference is coming back to Berlin! Join the big Symfony German community and learn all about the latest Symfony features.

    - +

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops from the 24th to the 27th of September!

    @@ -2337,37 +2348,37 @@ Sorry for the inconvenience.

    German community and learn all about the latest Symfony features.

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops from the 24th to the 27th of September!

    ', ), - 43 => + 43 => array ( 'title' => 'SymfonyLive London 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-02-4', 'published' => '2019-04-02T10:23:10+00:00', 'updated' => '2019-04-02T10:23:10+00:00', 'finalTeaserDate' => '2019-09-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-02-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://london2019.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://london2019.live.symfony.com/', @@ -2378,7 +2389,7 @@ Sorry for the inconvenience.

    Join us from September 12th to 13th 2019 for SymfonyLive London 2019! We are proud to organize the 8th edition of the Symfony conference in London and to welcome the Symfony community from all over the UK.

    - +

    Come for 2 days of Symfony to share best practices, experience, knowledge, make new contacts, and hear the latest developments with the framework!

    @@ -2388,37 +2399,37 @@ Sorry for the inconvenience.

    welcome the Symfony community from all over the UK.

    Come for 2 days of Symfony to share best practices, experience, knowledge, make new contacts, and hear the latest developments with the framework!

    ', ), - 44 => + 44 => array ( 'title' => 'SymfonyLive Warszawa 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-02-3', 'published' => '2019-04-02T10:21:12+00:00', 'updated' => '2019-04-02T10:21:12+00:00', 'finalTeaserDate' => '2019-06-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-02-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://warszawa2019.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://warszawa2019.live.symfony.com/', @@ -2428,7 +2439,7 @@ Sorry for the inconvenience.

    'content' => '

    The SymfonyLive conference is coming to Warsaw (Poland) for the first time! Join the big Symfony Polish community and learn all about the latest Symfony features.

    - +

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops from the 11th to the 14th of June!

    @@ -2437,37 +2448,37 @@ Sorry for the inconvenience.

    big Symfony Polish community and learn all about the latest Symfony features.

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops from the 11th to the 14th of June!

    ', ), - 45 => + 45 => array ( 'title' => 'SymfonyLive São Paulo 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-02-2', 'published' => '2019-04-02T10:13:07+00:00', 'updated' => '2019-04-02T10:13:07+00:00', 'finalTeaserDate' => '2019-05-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-02-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://brasil2019.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://brasil2019.live.symfony.com/', @@ -2477,7 +2488,7 @@ Sorry for the inconvenience.

    'content' => '

    The SymfonyLive conference is coming to Brazil for the first time! Join the big Symfony Brazilian community and learn all about the latest Symfony features.

    - +

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops from the 14th to the 17th of May!

    @@ -2486,37 +2497,37 @@ Sorry for the inconvenience.

    big Symfony Brazilian community and learn all about the latest Symfony features.

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops from the 14th to the 17th of May!

    ', ), - 46 => + 46 => array ( 'title' => 'SymfonyLive Tunis 2019', 'id' => 'http://php.net/archive/2019.php#id2019-04-02-1', 'published' => '2019-04-02T10:03:21+00:00', 'updated' => '2019-04-02T10:03:21+00:00', 'finalTeaserDate' => '2019-04-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-04-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tunis2019.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tunis2019.live.symfony.com/', @@ -2526,47 +2537,47 @@ Sorry for the inconvenience.

    'content' => '

    The SymfonyLive conference is coming to Tunis for the first time! From the 25th to the 27th of April there will be two workshop days and a conference day.

    - +

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops!

    - +
    ', 'intro' => '

    The SymfonyLive conference is coming to Tunis for the first time! From the 25th to the 27th of April there will be two workshop days and a conference day.

    Symfony fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops!

    ', ), - 47 => + 47 => array ( 'title' => 'Mid-Atlantic Developer Conference', 'id' => 'http://php.net/archive/2019.php#id2019-03-23-1', 'published' => '2019-03-23T23:55:18+00:00', 'updated' => '2019-03-23T23:55:18+00:00', 'finalTeaserDate' => '2019-04-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.middevcon.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.middevcon.com/', @@ -2579,7 +2590,7 @@ Sorry for the inconvenience.

    It is designed to bring together programmers from the region for two full days of learning from each other and building a stronger regional community. We are currently hosting an open Call for Speakers, which will end on April 13th!

    - +

    We are looking for a broad range of submissions covering a wide range of topics that are of interest to today’s computer developers. This means not only programming topics, such as various @@ -2587,7 +2598,7 @@ Sorry for the inconvenience.

    caching, performance, scalability, APIs, etc — We also are looking for non-technical proposals that will appeal to a tech audience: open source, leadership, mentoring, health, work-life balance, management, customer service, and more!

    - +

    Given the nature of the event, extra emphasis will be placed on submissions that appeal to a larger range of developers, as well as submissions from more local/regional presenters. @@ -2606,37 +2617,37 @@ Sorry for the inconvenience.

    appeal to a tech audience: open source, leadership, mentoring, health, work-life balance, management, customer service, and more!

    … read full article

    ', ), - 48 => + 48 => array ( 'title' => 'PHPerKaigi 2019', 'id' => 'http://php.net/archive/2019.php#id2019-03-13-1', 'published' => '2019-03-13T08:01:54+00:00', 'updated' => '2019-03-13T08:01:54+00:00', 'finalTeaserDate' => '2019-03-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phperkaigi.jp/2019/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phperkaigi.jp/2019/', @@ -2645,53 +2656,53 @@ Sorry for the inconvenience.

    ), 'content' => '

    PHPerKaigi 2019, Nerima, Tokyo, Japan.

    - +

    PHPerKaigi is conference for all of the PHPer, that who using php now on, who used php in purpose, who want to use in future, and who like php. In this we sharing know-how to php and "#love" to it.

    - +

    The conference consist of talk sessions by public speakers. In addition to We have "Interactive Round Table" discuss specific themes, unconference, social gathering and so on for all of developers from all from Japan. Let\'s talking about PHP!

    - +

    Follow us on twitter @phperkaigi, #phperkaigi.

    - +

    Note:

    - +

    *Kaigi* means meeting in Japanese.

    - +

    *PHPer* means PHP lovers.

    ', 'intro' => '

    PHPerKaigi 2019, Nerima, Tokyo, Japan.

    PHPerKaigi is conference for all of the PHPer, that who using php now on, who used php in purpose, who want to use in future, and who like php. In this we sharing know-how to php and "#love" to it.

    … read full article

    ', ), - 49 => + 49 => array ( 'title' => 'Bulgaria PHP Conference 2019', 'id' => 'http://php.net/archive/2019.php#id2019-03-12-3', 'published' => '2019-03-10T10:32:05+02:00', 'updated' => '2019-03-10T10:32:05+02:00', 'finalTeaserDate' => '2019-05-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-12-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.bgphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.bgphp.org/', @@ -2724,37 +2735,37 @@ Sorry for the inconvenience.

    an unConf, a great theme, an awesome party, exquisite food and lot\'s of beer (we take fun really seriously on the Balkans).

    … read full article

    ', ), - 50 => + 50 => array ( 'title' => 'PHP Russia 2019', 'id' => 'http://php.net/archive/2019.php#id2019-03-12-2', 'published' => '2019-03-12T16:51:35+00:00', 'updated' => '2019-03-12T16:51:35+00:00', 'finalTeaserDate' => '2019-05-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-12-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phprussia.ru/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phprussia.ru/', @@ -2773,37 +2784,37 @@ Sorry for the inconvenience.

    ', 'intro' => '

    PHP Russia is the only Russian confenrence focused on PHP. It will be held in Moscow Main topics are PHP ecosytem (PHP itself, standards, frameworks, libraries and OpenSource) and major players experience in building complex projects using best practices and modern approaches.

    We expect 500+ attendees and 20+ speakers!

    … read full article

    ', ), - 51 => + 51 => array ( 'title' => 'Web Summer Camp 2019', 'id' => 'http://php.net/archive/2019.php#id2019-03-12-1', 'published' => '2019-03-12T11:48:51+00:00', 'updated' => '2019-03-12T11:48:51+00:00', 'finalTeaserDate' => '2019-08-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://websummercamp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://websummercamp.com', @@ -2824,37 +2835,37 @@ Sorry for the inconvenience.

    ', 'intro' => '', ), - 52 => + 52 => array ( 'title' => 'Laracon EU 2019 Madrid', 'id' => 'http://php.net/archive/2019.php#id2019-03-11-2', 'published' => '2019-03-11T17:28:17+00:00', 'updated' => '2019-03-11T17:28:17+00:00', 'finalTeaserDate' => '2019-05-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-11-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laracon.eu/2019/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laracon.eu/2019/', @@ -2867,37 +2878,37 @@ Sorry for the inconvenience.

    ', 'intro' => '
    ', ), - 53 => + 53 => array ( 'title' => 'Laracon EU 2019 Amsterdam', 'id' => 'http://php.net/archive/2019.php#id2019-03-11-1', 'published' => '2019-03-11T17:26:39+00:00', 'updated' => '2019-03-11T17:26:39+00:00', 'finalTeaserDate' => '2019-08-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laracon.eu/2019/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laracon.eu/2019/', @@ -2910,34 +2921,34 @@ Sorry for the inconvenience.

    ', 'intro' => '
    ', ), - 54 => + 54 => array ( 'title' => 'PHP 7.1.27 Released', 'id' => 'http://php.net/archive/2019.php#id2019-03-07-3', 'published' => '2019-03-07T11:49:58+00:00', 'updated' => '2019-03-07T11:49:58+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-03-07-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-03-07-3', 'rel' => 'via', @@ -2947,9 +2958,9 @@ Sorry for the inconvenience.

    'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.27. This is a security release which also contains several bug fixes.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.27 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -2959,34 +2970,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.27. This is a security release which also contains several bug fixes.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 55 => + 55 => array ( 'title' => 'PHP 7.2.16 Released', 'id' => 'http://php.net/archive/2019.php#id2019-03-07-2', 'published' => '2019-03-07T10:08:52+00:00', 'updated' => '2019-03-07T10:08:52+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-03-07-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-03-07-2', 'rel' => 'via', @@ -3008,34 +3019,34 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.16. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 56 => + 56 => array ( 'title' => 'PHP 7.3.3 Released', 'id' => 'http://php.net/archive/2019.php#id2019-03-07-1', 'published' => '2019-03-07T10:10:40+01:00', 'updated' => '2019-03-07T10:10:40+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-03-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-03-07-1', 'rel' => 'via', @@ -3057,37 +3068,37 @@ Sorry for the inconvenience.

    'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.3. This is a security release which also contains several bug fixes.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 57 => + 57 => array ( 'title' => 'Bulgaria PHP Conference 2019', 'id' => 'http://php.net/archive/2019.php#id2019-03-03-1', 'published' => '2019-03-03T13:37:07+02:00', 'updated' => '2019-03-03T13:37:07+02:00', 'finalTeaserDate' => '2019-11-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-03-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.bgphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.bgphp.org/', @@ -3100,9 +3111,9 @@ Sorry for the inconvenience.

    in the emblematic National Palace of Culture in the heart of Sofia, Bulgaria. The conference will consist of a training day and two conference days with two tracks, an unConf, a great theme, an awesome party, exquisite food and lot\'s of beer (we take fun really seriously on the Balkans).

    - +

    Follow us on twitter @bgphpconf, on www.bgphp.org and on our Facebook page https://www.facebook.com/Bulgaria-PHP-Conference-792916594079571 for more news!

    - +

    Our Call for Papers will start on the 8th of March, so, please, do apply and see you in November in Bulgaria!

    ', @@ -3111,37 +3122,37 @@ Sorry for the inconvenience.

    The conference will consist of a training day and two conference days with two tracks, an unConf, a great theme, an awesome party, exquisite food and lot\'s of beer (we take fun really seriously on the Balkans).

    … read full article

    ', ), - 58 => + 58 => array ( 'title' => 'Longhorn PHP 2019 Schedule', 'id' => 'http://php.net/archive/2019.php#id2019-02-14-1', 'published' => '2019-02-14T15:03:51+00:00', 'updated' => '2019-02-14T15:03:51+00:00', 'finalTeaserDate' => '2019-02-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-02-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.longhornphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.longhornphp.com/', @@ -3149,50 +3160,50 @@ Sorry for the inconvenience.

    'content' => 'longhornphp.png', ), 'content' => '
    - The Longhorn PHP Schedule has been announced - we have an amazing list of speakers this year, you won\'t want to miss it! + The Longhorn PHP Schedule has been announced - we have an amazing list of speakers this year, you won\'t want to miss it! At Longhorn PHP you\'ll get to learn from and alongside a diverse group of developers from all over the region, country, and even the globe. The conference will consist of a tutorial day with in-depth workshops, followed by two main conference days with multiple tracks of traditional 1 hour sessions, and new 30 minute sessions! Register now to take the next step toward leveling up your development career! - + Early Bird Tickets are on sale until March 15, 2019, so get yours now before the price increases! - - Dates: May 2nd-4th, 2019 + + Dates: May 2nd-4th, 2019 Website: https://www.longhornphp.com
    ', 'intro' => '
    DatesWebsite
    ', ), - 59 => + 59 => array ( 'title' => 'PHP.Barcelona 2019', 'id' => 'http://php.net/archive/2019.php#id2019-02-07-3', 'published' => '2019-02-07T15:22:17+00:00', 'updated' => '2019-02-07T15:22:17+00:00', 'finalTeaserDate' => '2019-11-12', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-02-07-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://php.barcelona/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://php.barcelona/', @@ -3206,34 +3217,34 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel ', 'intro' => '

    What an incredible 2018 and 2019 for the PHP community! Part of the PHP Core Team that was working for Zend left. Some found excellent companies and they are rocking most than ever, like Nikita at JetBrains. PHP 7.4 is about to be released, and PHP 8 has been branched. Lavarel and Symfony have healthy growth. JIT is part of the imminent future, and I/O non-blocking frameworks are getting more often adopted in production.

    We\'ve crafted the best PHP conference possible just for you. To allow you to see the future and get ready before nobody else. You\'ll gather top-notch speakers and an awesome community eager to share a lot of knowledge. All of this will take place in the very center of the gorgeous city of Barcelona in an excellent venue. What are you waiting for? Go get your tickets here!

    ', ), - 60 => + 60 => array ( 'title' => 'PHP 7.2.15 Released', 'id' => 'http://php.net/archive/2019.php#id2019-02-07-2', 'published' => '2019-02-07T11:30:07+00:00', 'updated' => '2019-02-07T11:30:07+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-02-07-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-02-07-2', 'rel' => 'via', @@ -3255,34 +3266,34 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.15. This is a bugfix release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 61 => + 61 => array ( 'title' => 'PHP 7.3.2 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-02-07-1', 'published' => '2019-02-07T12:00:19+01:00', 'updated' => '2019-02-07T12:00:19+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-02-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-02-07-1', 'rel' => 'via', @@ -3292,9 +3303,9 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel 'content' => '

    The PHP development team announces the immediate availability of PHP 7.3.2. This is a bugfix release, with several bug fixes included.

    - +

    All PHP 7.3 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.3.2 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -3304,37 +3315,37 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.2. This is a bugfix release, with several bug fixes included.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 62 => + 62 => array ( 'title' => 'Midwest PHP 2019', 'id' => 'http://php.net/archive/2019.php#id2019-02-06-1', 'published' => '2019-02-06T11:22:01+00:00', 'updated' => '2019-02-06T11:22:01+00:00', 'finalTeaserDate' => '2019-03-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-02-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2019.midwestphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2019.midwestphp.org', @@ -3348,37 +3359,37 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel ', 'intro' => '

    The Midwest PHP Conference is hosted by the Minnesota PHP User Group community through the North Foundation in Bloomington, Minnesota from March 8th - 9th, 2019. This is our seventh year and each year the conference continues to become better. Our goal is to share best practices, ideas, and techniques about building state-of-the-art software applications.

    The conference is at the Radisson Blu Mall of America in Bloomington, Minnesota. We can\'t think of a better place to connect with friends, old and new, than in a relaxed environment with entertainment at your front door, and inspiring talks from people doing amazing things.

    ', ), - 63 => + 63 => array ( 'title' => 'JestPHP Conference - February 22nd 2019, Mesa Arizona', 'id' => 'http://php.net/archive/2019.php#id2019-02-01-1', 'published' => '2019-02-01T18:59:28+00:00', 'updated' => '2019-02-01T18:59:28+00:00', 'finalTeaserDate' => '2018-12-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-02-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://jestphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://jestphp.com/', @@ -3391,37 +3402,37 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel ', 'intro' => '
    ', ), - 64 => + 64 => array ( 'title' => 'CoderCruise 2019 - Call for Speakers', 'id' => 'http://php.net/archive/2019.php#id2019-01-31-1', 'published' => '2019-01-31T22:01:27+00:00', 'updated' => '2019-01-31T22:01:27+00:00', 'finalTeaserDate' => '2019-03-03', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-01-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/', @@ -3436,37 +3447,37 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel ', 'intro' => '

    Now for the 3rd year the team behind the original php[cruise] is bringing a conference to the open seas. CoderCruise 2019 will be a premiere conference experience, giving you an exclusive connection to your fellow community members. It will set sail from Port Canaveral on August 19th for a 5 day cruise that also visits Princess Cays and Nassau!

    Just like last year we\'ve negotiated a low rate for our participants that is all inclusive, starting as low as $435 per person (including 5-day cruise, food, drink and the conference!)

    … read full article

    ', ), - 65 => + 65 => array ( 'title' => 'php[tek] 2019', 'id' => 'http://php.net/archive/2019.php#id2019-01-29-1', 'published' => '2019-01-29T17:59:31+00:00', 'updated' => '2019-01-29T17:59:31+00:00', 'finalTeaserDate' => '2019-05-21', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-01-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/', @@ -3481,42 +3492,42 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel

    Each track’s design is a series of new talks that flow together smoothly, and yet, you can drop in/out of a track throughout the day as needed. Each session is in a 1-hr timeslot. You can choose to sit in one room all day and learn a topic from beginning to end or bounce between the various tracks, putting together a unique learning experience tailored to your needs. The choice is yours.

    We hope that you choose to join us for this unique experience. Ticket sales are open with a few different price points, and the earlier you buy, the more you save.

    See you in Atlanta!

    - +
    ', 'intro' => '

    We are announcing some exciting changes to php[tek] in 2019, our 14th consecutive year for this event!

    Once again we\'ll be taking place in Atlanta in May, but this year we are moving to 3 full days of conference sessions: May 21-23

    … read full article

    ', ), - 66 => + 66 => array ( 'title' => 'Laracon Online', 'id' => 'http://php.net/archive/2019.php#id2019-01-22-1', 'published' => '2019-01-22T02:42:11+00:00', 'updated' => '2019-01-22T02:42:11+00:00', 'finalTeaserDate' => '2019-03-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-01-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laracon.net/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laracon.net/', @@ -3525,7 +3536,7 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel ), 'content' => '

    Laracon Online is the easiest and most affordable way to get the Laracon experience from anywhere in the world.

    - +

    We’ve put together a full day of talks featuring some of Laravel’s brightest minds, and streaming them directly to your home or office.

    These talks are brand new, never before presented at any Laracon and tickets are just $12 during early registration. Don\'t miss the largest Laravel event ever!

    @@ -3533,37 +3544,37 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel ', 'intro' => '

    Laracon Online is the easiest and most affordable way to get the Laracon experience from anywhere in the world.

    We’ve put together a full day of talks featuring some of Laravel’s brightest minds, and streaming them directly to your home or office.

    … read full article

    ', ), - 67 => + 67 => array ( 'title' => 'ScotlandPHP 2019', 'id' => 'http://php.net/archive/2019.php#id2019-01-15-1', 'published' => '2019-01-15T21:41:40+00:00', 'updated' => '2019-01-15T21:41:40+00:00', 'finalTeaserDate' => '2019-03-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2019-01-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://scophp.co/2019/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://scophp.co/2019/', @@ -3572,40 +3583,40 @@ At Longhorn PHP you\'ll get to learn from and alongside a diverse group of devel ), 'content' => '
    We are delighted to announce we are back in 2019 to do it all again! We will be staying put this year at the EICC in Edinburgh but the date has shifted forward a little to the 9th of November. Make sure to stick it in your diary! - + No conference is possible without speakers and we\'re happy to announce this years call for speakers is open from Febuary 1st to March 31st.
    ', 'intro' => '
    ', ), - 68 => + 68 => array ( 'title' => 'PHP 5.6.40 Released', 'id' => 'http://php.net/archive/2019.php#id2019-01-10-4', 'published' => '2019-01-10T15:01:12-08:00', 'updated' => '2019-01-10T15:01:12-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-01-10-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-01-10-4', 'rel' => 'via', @@ -3647,34 +3658,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 69 => + 69 => array ( 'title' => 'PHP 7.1.26 Release Announcement', 'id' => 'http://php.net/archive/2019.php#id2019-01-10-3', 'published' => '2019-01-10T18:52:00+00:00', 'updated' => '2019-01-10T18:52:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-01-10-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-01-10-3', 'rel' => 'via', @@ -3684,9 +3695,9 @@ the upgrade 'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.26. This is a security release which also contains several bug fixes.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.26 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -3696,34 +3707,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.26. This is a security release which also contains several bug fixes.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 70 => + 70 => array ( 'title' => 'PHP 7.3.1 Released', 'id' => 'http://php.net/archive/2019.php#id2019-01-10-2', 'published' => '2019-01-10T11:51:06+01:00', 'updated' => '2019-01-10T11:51:06+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-01-10-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-01-10-2', 'rel' => 'via', @@ -3745,34 +3756,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.1. This is a security release which also contains several bug fixes.

    All PHP 7.3 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 71 => + 71 => array ( 'title' => 'PHP 7.2.14 Released', 'id' => 'http://php.net/archive/2019.php#id2019-01-10-1', 'published' => '2019-01-10T08:30:27+00:00', 'updated' => '2019-01-10T08:30:27+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2019-01-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2019.php#id2019-01-10-1', 'rel' => 'via', @@ -3794,37 +3805,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.14. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 72 => + 72 => array ( 'title' => 'SunshinePHP 2019', 'id' => 'http://php.net/archive/2018.php#id2018-12-15-1', 'published' => '2018-12-15T00:00:01+00:00', 'updated' => '2018-12-15T12:23:00+00:00', 'finalTeaserDate' => '2019-02-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference Announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-12-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -3861,37 +3872,37 @@ the upgrade ', 'intro' => '

    In February 2019 come to Miami, Florida and escape the cold to learn more about PHP and speak with other developers, like you, to see what others are doing. The SunshinePHP 2019 speaker list has been announced, and we\'ve assembled a great line-up with the most current PHP related topics for you.

    Topics include:

    … read full article

    ', ), - 73 => + 73 => array ( 'title' => 'PHPKonf Istanbul PHP Conference 2019 - Call for Papers', 'id' => 'http://php.net/archive/2018.php#id2018-12-10-1', 'published' => '2018-12-10T09:00:00+00:00', 'updated' => '2018-12-10T09:00:00+00:00', 'finalTeaserDate' => '2019-01-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-12-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpkonf.org/', @@ -3902,42 +3913,42 @@ the upgrade

    PHPKonf 2019 is an annual PHP oriented conference in Istanbul, Turkey and will take place on Saturday, 4th of May, 2019.

    The call for papers for the PHPKonf 2019 Istanbul PHP conference is open! If you have a burning desire to hold forth about PHP, DevOps, databases, JavaScript, or any other web development topics, we want to see your proposals. Call for Papers is open only from December 10, 2018 to January 31, 2019, so hurry. An added benefit: we will cover your travel and hotel.

    - +

    You’ll have 45 minutes for the talk, with 35 minutes for your topic and 10 minutes for Q&A. We can’t wait to see your proposals! Check out the last conference to get an idea of what to expect.

    - +

    Follow us on Twitter to stay updated with news from the PHPKonf crew.

    ', 'intro' => '

    PHPKonf 2019 is an annual PHP oriented conference in Istanbul, Turkey and will take place on Saturday, 4th of May, 2019.

    The call for papers for the PHPKonf 2019 Istanbul PHP conference is open! If you have a burning desire to hold forth about PHP, DevOps, databases, JavaScript, or any other web development topics, we want to see your proposals. Call for Papers is open only from December 10, 2018 to January 31, 2019, so hurry. An added benefit: we will cover your travel and hotel.

    … read full article

    ', ), - 74 => + 74 => array ( 'title' => 'PHP 7.0.33 Released', 'id' => 'http://php.net/archive/2018.php#id2018-12-06-5', 'published' => '2018-12-06T13:00:00+01:00', 'updated' => '2018-12-06T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-12-06-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-12-06-5', 'rel' => 'via', @@ -3971,34 +3982,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 75 => + 75 => array ( 'title' => 'PHP 7.1.25 Released', 'id' => 'http://php.net/archive/2018.php#id2018-12-06-4', 'published' => '2018-12-06T16:10:25+00:00', 'updated' => '2018-12-06T16:10:25+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-12-06-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-12-06-4', 'rel' => 'via', @@ -4008,9 +4019,9 @@ the upgrade 'content' => '

    The PHP development team announces the immediate availability of PHP 7.1.25. This is a security release.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.25 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -4020,34 +4031,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.25. This is a security release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 76 => + 76 => array ( 'title' => 'PHP 7.2.13 Released', 'id' => 'http://php.net/archive/2018.php#id2018-12-06-3', 'published' => '2018-12-06T16:09:43+00:00', 'updated' => '2018-12-06T16:09:43+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-12-06-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-12-06-3', 'rel' => 'via', @@ -4057,9 +4068,9 @@ the upgrade 'content' => '

    The PHP development team announces the immediate availability of PHP 7.2.13. This is a security release.

    - +

    All PHP 7.2 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.2.13 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -4069,34 +4080,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.13. This is a security release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 77 => + 77 => array ( 'title' => 'PHP 5.6.39 Released', 'id' => 'http://php.net/archive/2018.php#id2018-12-06-2', 'published' => '2018-12-06T06:14:16-08:00', 'updated' => '2018-12-06T06:14:16-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-12-06-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-12-06-2', 'rel' => 'via', @@ -4138,34 +4149,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 78 => + 78 => array ( 'title' => 'PHP 7.3.0 Released', 'id' => 'http://php.net/archive/2018.php#id2018-12-06-1', 'published' => '2018-12-06T13:57:53+01:00', 'updated' => '2018-12-06T13:57:53+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-12-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-12-06-1', 'rel' => 'via', @@ -4201,29 +4212,29 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.3.0. This release marks the third feature update to the PHP 7 series.

    PHP 7.3.0 comes with numerous improvements and new features such as

    … read full article

    ', ), - 79 => + 79 => array ( 'title' => 'PHP 7.3.0RC6 Released', 'id' => 'http://php.net/archive/2018.php#id2018-11-22-1', 'published' => '2018-11-22T12:22:47+01:00', 'updated' => '2018-11-22T12:22:47+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-11-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-11-22-1', 'rel' => 'via', @@ -4282,37 +4293,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 80 => + 80 => array ( 'title' => 'Dutch PHP Conference 2019', 'id' => 'http://php.net/archive/2018.php#id2018-11-20-2', 'published' => '2018-11-20T14:02:37+00:00', 'updated' => '2018-11-20T14:02:37+00:00', 'finalTeaserDate' => '2019-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-11-20-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.phpconference.nl', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.phpconference.nl', @@ -4321,11 +4332,11 @@ the upgrade ), 'content' => '
    This year marks the 13th edition of the Dutch PHP Conference, once again hosted in the beautiful city of Amsterdam. Our tutorial day will be Thursday, June 6th, with the main 2-day conference following on the June 7 and 8. - + The Dutch PHP Conference is an annual web technology conference around PHP technology. Last year we’ve invited more than 50 speakers from all around the world to share their expertise and experience with the 600+ attendees in a 3-day conference in the RAI, Amsterdam. The conference is completely in English and is focused on mobile- and web development related to PHP technology. - + Conference website - +
    • Date: June 6 - 8, 2019
    • Venue: RAI Amsterdam
    • @@ -4336,37 +4347,37 @@ the upgrade
    • Venue: RAI Amsterdam
    ', ), - 81 => + 81 => array ( 'title' => 'Dutch PHP Conference - CfP is open!', 'id' => 'http://php.net/archive/2018.php#id2018-11-20-1', 'published' => '2018-11-20T14:00:23+00:00', 'updated' => '2018-11-20T14:00:23+00:00', 'finalTeaserDate' => '2019-01-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-11-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.phpconference.nl', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.phpconference.nl', @@ -4381,39 +4392,39 @@ the upgrade
  • Date: June 6 - 8, 2019
  • Venue: RAI Amsterdam
  • - + ', 'intro' => '', ), - 82 => + 82 => array ( 'title' => 'PHP 7.1.24 Released', 'id' => 'http://php.net/archive/2018.php#id2018-11-08-3', 'published' => '2018-11-08T15:28:08+00:00', 'updated' => '2018-11-08T15:28:08+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-11-08-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-11-08-3', 'rel' => 'via', @@ -4422,12 +4433,12 @@ the upgrade ), 'content' => '

    PHP 7.1.24 Release Announcement

    - +

    The PHP development team announces the immediate availability of PHP 7.1.24. This is a bugfix release.

    - +

    All PHP 7.1 users are encouraged to upgrade to this version.

    - +

    For source downloads of PHP 7.1.24 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -4437,34 +4448,34 @@ the upgrade 'intro' => '

    PHP 7.1.24 Release Announcement

    The PHP development team announces the immediate availability of PHP 7.1.24. This is a bugfix release.

    … read full article

    ', ), - 83 => + 83 => array ( 'title' => 'PHP 7.2.12 Released', 'id' => 'http://php.net/archive/2018.php#id2018-11-08-2', 'published' => '2018-11-08T10:28:15+00:00', 'updated' => '2018-11-08T10:28:15+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-11-08-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-11-08-2', 'rel' => 'via', @@ -4486,29 +4497,29 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.12. This is a bugfix release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 84 => + 84 => array ( 'title' => 'PHP 7.3.0RC5 Released', 'id' => 'http://php.net/archive/2018.php#id2018-11-08-1', 'published' => '2018-11-08T11:11:26+01:00', 'updated' => '2018-11-08T11:11:26+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-11-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-11-08-1', 'rel' => 'via', @@ -4567,29 +4578,29 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 85 => + 85 => array ( 'title' => 'PHP 7.3.0RC4 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-25-1', 'published' => '2018-10-25T11:07:32+02:00', 'updated' => '2018-10-25T11:07:32+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-25-1', 'rel' => 'via', @@ -4648,37 +4659,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 86 => + 86 => array ( 'title' => 'International PHP Conference 2019 - Spring Edition', 'id' => 'http://php.net/archive/2018.php#id2018-10-12-2', 'published' => '2018-10-12T16:20:54-04:00', 'updated' => '2018-10-12T16:20:54-04:00', 'finalTeaserDate' => '2019-06-03', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-10-12-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -4718,37 +4729,37 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale taking place at the same time.

    … read full article

    ', ), - 87 => + 87 => array ( 'title' => 'Longhorn PHP 2019 CFP is open!', 'id' => 'http://php.net/archive/2018.php#id2018-10-12-1', 'published' => '2018-10-12T18:08:06+00:00', 'updated' => '2018-10-12T18:08:06+00:00', 'finalTeaserDate' => '2018-12-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-10-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.longhornphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.longhornphp.com/', @@ -4767,34 +4778,34 @@ the upgrade ', 'intro' => '

    Longhorn PHP is back for another exciting weekend of fun and learning!

    At Longhorn PHP you\'ll get to learn from and alongside a diverse group of developers from all over the region, country, and even the globe. The conference will consist of a tutorial day with in-depth workshops, followed by two main conference days with multiple tracks of traditional 1 hour sessions, and new 30 minute sessions! Register now to take the next step toward leveling up your development career!

    … read full article

    ', ), - 88 => + 88 => array ( 'title' => 'PHP 7.1.23 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-11-3', 'published' => '2018-10-11T14:11:47+00:00', 'updated' => '2018-10-11T14:11:47+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-11-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-11-3', 'rel' => 'via', @@ -4816,34 +4827,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.23. This is a bugfix release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 89 => + 89 => array ( 'title' => 'PHP 7.2.11 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-11-2', 'published' => '2018-10-11T14:11:19+00:00', 'updated' => '2018-10-11T14:11:19+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-11-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-11-2', 'rel' => 'via', @@ -4865,29 +4876,29 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.11. This is a bugfix release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 90 => + 90 => array ( 'title' => 'PHP 7.3.0RC3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-11-1', 'published' => '2018-10-11T13:47:50+02:00', 'updated' => '2018-10-11T13:47:50+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-11-1', 'rel' => 'via', @@ -4946,29 +4957,29 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 91 => + 91 => array ( 'title' => 'PHP 7.3.0RC2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-28-1', 'published' => '2018-09-28T10:31:16+02:00', 'updated' => '2018-09-28T10:31:16+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-28-1', 'rel' => 'via', @@ -5027,34 +5038,34 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 92 => + 92 => array ( 'title' => 'PHP 5.6.38 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-5', 'published' => '2018-09-13T19:56:28+02:00', 'updated' => '2018-09-13T19:56:28+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-5', 'rel' => 'via', @@ -5083,34 +5094,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 93 => + 93 => array ( 'title' => 'PHP 7.1.22 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-4', 'published' => '2018-09-13T13:21:55+00:00', 'updated' => '2018-09-13T13:21:55+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-4', 'rel' => 'via', @@ -5140,34 +5151,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 94 => + 94 => array ( 'title' => 'PHP 7.0.32 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-3', 'published' => '2018-09-13T13:00:00+01:00', 'updated' => '2018-09-13T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-3', 'rel' => 'via', @@ -5196,29 +5207,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 95 => + 95 => array ( 'title' => 'PHP 7.3.0RC1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-2', 'published' => '2018-09-13T10:57:40+02:00', 'updated' => '2018-09-13T10:57:40+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-2', 'rel' => 'via', @@ -5277,34 +5288,34 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 96 => + 96 => array ( 'title' => 'PHP 7.2.10 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-1', 'published' => '2018-09-13T08:44:08+00:00', 'updated' => '2018-09-13T08:44:08+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-1', 'rel' => 'via', @@ -5326,37 +5337,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.10. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 97 => + 97 => array ( 'title' => 'PHP Day Curitiba 2018', 'id' => 'http://php.net/archive/2018.php#id2018-09-03-1', 'published' => '2018-09-03T21:49:30+00:00', 'updated' => '2018-09-03T21:49:30+00:00', 'finalTeaserDate' => '2018-10-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-09-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpdaycuritiba.com.br', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpdaycuritiba.com.br', @@ -5384,29 +5395,29 @@ the upgrade
  • Free Admission + Coffee-break + A lot of networking
  • … read full article

    ', ), - 98 => + 98 => array ( 'title' => 'PHP 7.3.0.beta3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-30-1', 'published' => '2018-08-30T17:37:34+02:00', 'updated' => '2018-08-30T17:37:34+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-30-1', 'rel' => 'via', @@ -5465,37 +5476,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 99 => + 99 => array ( 'title' => 'PHP UK Conference 2019 CFP is Open', 'id' => 'http://php.net/archive/2018.php#id2018-08-28-1', 'published' => '2018-08-28T19:02:06+00:00', 'updated' => '2018-08-28T19:02:06+00:00', 'finalTeaserDate' => '2018-08-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.co.uk', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.co.uk', @@ -5516,37 +5527,37 @@ the upgrade ', 'intro' => '

    Dates announced for PHP UK 2019

    We are pleased to announce that PHP UK is back in 2019 for our 14th annual conference. As always PHP UK will feature an optional workshop day followed by two days of amazing talks, plentiful networking opportunities and great social events.

    … read full article

    ', ), - 100 => + 100 => array ( 'title' => 'Cascadia PHP', 'id' => 'http://php.net/archive/2018.php#id2018-08-21-1', 'published' => '2018-08-21T22:29:36+00:00', 'updated' => '2018-08-21T22:29:36+00:00', 'finalTeaserDate' => '2018-09-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.cascadiaphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.cascadiaphp.com/', @@ -5559,34 +5570,34 @@ the upgrade ', 'intro' => '
    ', ), - 101 => + 101 => array ( 'title' => 'PHP 7.1.21 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-17-1', 'published' => '2018-08-17T14:52:00+00:00', 'updated' => '2018-08-17T14:52:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-17-1', 'rel' => 'via', @@ -5615,34 +5626,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 102 => + 102 => array ( 'title' => 'PHP 7.2.9 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-16-3', 'published' => '2018-08-16T19:14:25+00:00', 'updated' => '2018-08-16T19:14:25+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-16-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-16-2', 'rel' => 'via', @@ -5664,37 +5675,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.9. This is a bugfix release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 103 => + 103 => array ( 'title' => 'php[world] 2018', 'id' => 'http://php.net/archive/2018.php#id2018-08-16-2', 'published' => '2018-08-16T14:31:44+00:00', 'updated' => '2018-08-16T14:31:44+00:00', 'finalTeaserDate' => '2018-11-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -5714,29 +5725,29 @@ the upgrade ', 'intro' => '

    We are excited to announce the 5th annual php[world] conference, produced by the publishers of php[architect] magazine. As always, it is taking place over two days in November (14th-15th) in the Washington D.C. area.

    This year we have streamlined our event schedule to add in even more content for you! 40 sessions, 6 workshops, and 12 birds of a feather sessions are waiting for you at this year\'s php[world] conference.

    … read full article

    ', ), - 104 => + 104 => array ( 'title' => 'PHP 7.3.0.beta2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-16-1', 'published' => '2018-08-16T14:11:38+02:00', 'updated' => '2018-08-16T14:11:38+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-16-1', 'rel' => 'via', @@ -5795,37 +5806,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 105 => + 105 => array ( 'title' => 'SunshinePHP 2019 CFP Started', 'id' => 'http://php.net/archive/2018.php#id2018-08-14-1', 'published' => '2018-08-14T00:00:01+00:00', 'updated' => '2018-08-14T12:23:00+00:00', 'finalTeaserDate' => '2018-09-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -5842,37 +5853,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for SunshinePHP 2019 has launched at https://cfp.sunshinephp.com where we will accept talk submissions until September 15th, 2018.

    SunshinePHP hit it\'s 7th year and will happen from February 7th to 9th, 2019 in sunny Miami, Florida. As one of the largest community conferences in the U.S. there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 106 => + 106 => array ( 'title' => 'Northeast PHP Boston 2018', 'id' => 'http://php.net/archive/2018.php#id2018-08-09-1', 'published' => '2018-08-09T21:41:10-04:00', 'updated' => '2018-08-09T21:41:10-04:00', 'finalTeaserDate' => '2018-09-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2018.northeastphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2018.northeastphp.org/', @@ -5889,29 +5900,29 @@ the upgrade ', 'intro' => '

    Join us September 19-21 for this year\'s PHP, Web Development, and UX Conference by Northeast PHP. We\'re returning to Boston and will be hosted at Wayfair HQ in historic Copley Square.

    Our schedule has been announced and this year\'s has another great lineup of talks for the PHP community, including a security hackathon, IBM sponsored event night, keynote by PJ Hagerty, and a full day workshop covering application development using containers by Red Hat.

    … read full article

    ', ), - 107 => + 107 => array ( 'title' => 'PHP 7.3.0.beta1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-02-1', 'published' => '2018-08-02T11:44:58+02:00', 'updated' => '2018-08-02T11:44:58+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-02-1', 'rel' => 'via', @@ -5969,34 +5980,34 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 108 => + 108 => array ( 'title' => 'PHP 7.1.20 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-20-2', 'published' => '2018-07-20T08:13:03+00:00', 'updated' => '2018-07-20T08:13:03+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-20-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-20-2', 'rel' => 'via', @@ -6027,34 +6038,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 109 => + 109 => array ( 'title' => 'PHP 5.6.37 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-20-1', 'published' => '2018-07-20T04:41:46+02:00', 'updated' => '2018-07-20T04:41:46+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-20-1', 'rel' => 'via', @@ -6083,34 +6094,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 110 => + 110 => array ( 'title' => 'PHP 7.0.31 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-19-3', 'published' => '2018-07-19T13:00:00+01:00', 'updated' => '2018-07-19T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-19-2', 'rel' => 'via', @@ -6139,34 +6150,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 111 => + 111 => array ( 'title' => 'PHP 7.2.8 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-19-2', 'published' => '2018-07-19T09:42:31+00:00', 'updated' => '2018-07-19T09:42:31+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-19-2', 'rel' => 'via', @@ -6188,29 +6199,29 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.8. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 112 => + 112 => array ( 'title' => 'PHP 7.3.0alpha4 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-19-1', 'published' => '2018-07-19T11:02:21+02:00', 'updated' => '2018-07-19T11:02:21+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-19-1', 'rel' => 'via', @@ -6266,29 +6277,29 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 113 => + 113 => array ( 'title' => 'PHP 7.3.0 alpha 3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-05-1', 'published' => '2018-07-05T11:41:41+02:00', 'updated' => '2018-07-05T11:41:41+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-05-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-05-1', 'rel' => 'via', @@ -6344,37 +6355,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 114 => + 114 => array ( 'title' => 'ZendCon & OpenEnterprise 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-26-1', 'published' => '2018-06-26T08:41:29+00:00', 'updated' => '2018-06-26T08:41:29+00:00', 'finalTeaserDate' => '2018-10-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.zendcon.com', @@ -6395,37 +6406,37 @@ the upgrade business leaders, strategists, and developers will assemble to discuss case studies and best practices around the application of PHP and open source to transform business.

    ', ), - 115 => + 115 => array ( 'title' => 'SymfonyCon Lisbon 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-4', 'published' => '2018-06-25T14:46:40+02:00', 'updated' => '2018-06-25T14:46:40+02:00', 'finalTeaserDate' => '2018-12-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-25-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://lisbon2018.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://lisbon2018.symfony.com/', @@ -6454,37 +6465,37 @@ the upgrade serious work around Symfony and its environment, then sharing this very special Portuguese atmosphere... And of course, celebrate the community reunion!

    ', ), - 116 => + 116 => array ( 'title' => 'SymfonyLive Berlin 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-3', 'published' => '2018-06-25T13:29:40+02:00', 'updated' => '2018-06-25T13:29:40+02:00', 'finalTeaserDate' => '2018-10-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-25-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://berlin2018.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://berlin2018.live.symfony.com/', @@ -6503,37 +6514,37 @@ the upgrade 26th of October there will be two workshop days and a conference day with two tracks.

    Symfony German-speaking fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops!

    ', ), - 117 => + 117 => array ( 'title' => 'SymfonyLive USA 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-2', 'published' => '2018-06-25T13:17:59+02:00', 'updated' => '2018-06-25T13:17:59+02:00', 'finalTeaserDate' => '2018-10-11', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-25-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://usa2018.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://usa2018.live.symfony.com/', @@ -6557,34 +6568,34 @@ the upgrade from October 11th-12th. We are excited to return to the city by the bay and host the American Symfony community.

    … read full article

    ', ), - 118 => + 118 => array ( 'title' => 'PHP 7.1.19 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-1', 'published' => '2018-06-25T07:02:15+00:00', 'updated' => '2018-06-25T07:02:15+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-25-1', 'rel' => 'via', @@ -6613,34 +6624,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 119 => + 119 => array ( 'title' => 'PHP 7.2.7 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-21-2', 'published' => '2018-06-21T15:12:22+00:00', 'updated' => '2018-06-21T15:12:22+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-21-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-21-2', 'rel' => 'via', @@ -6662,29 +6673,29 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.7. This is a primarily a bugfix release which includes a segfault fix for opcache.

    PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 120 => + 120 => array ( 'title' => 'PHP 7.3.0 alpha 2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-21-1', 'published' => '2018-06-21T11:46:20+02:00', 'updated' => '2018-06-21T11:46:20+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-21-1', 'rel' => 'via', @@ -6740,37 +6751,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 121 => + 121 => array ( 'title' => 'SymfonyLive London 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-18-1', 'published' => '2018-06-18T10:37:31+02:00', 'updated' => '2018-06-18T10:37:31+02:00', 'finalTeaserDate' => '2018-09-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://london2018.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://london2018.live.symfony.com/', @@ -6794,37 +6805,37 @@ the upgrade professionals will meet at Westminster, for SymfonyLive London 2018.

    … read full article

    ', ), - 122 => + 122 => array ( 'title' => 'php Central Europe Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-14-1', 'published' => '2018-06-14T20:49:21+02:00', 'updated' => '2018-06-14T20:49:21+02:00', 'finalTeaserDate' => '2018-06-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpce.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpce.eu/', @@ -6855,37 +6866,37 @@ the upgrade ', 'intro' => '

    New season and new challenges! As conference organisers we understand perfectly that you can stay with peleton only when you focus on development. That is why phpCE, as an event aimed at a wide group of PHP programmers from Central Europe, leaves Poland for the first time. We are stronger than before thanks to the organisers of Brno PHP Conference and volunteers from the Pehapkaři group. Together we have been working for the success of this year’s edition and we are inviting you to Prague.

    Our Special Guest this year will be Rasmus Lerdorf, The PHP Language Creator.

    … read full article

    ', ), - 123 => + 123 => array ( 'title' => 'php[world] 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-06-13-1', 'published' => '2018-06-13T12:00:51+00:00', 'updated' => '2018-06-13T12:00:51+00:00', 'finalTeaserDate' => '2018-07-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -6929,37 +6940,37 @@ the upgrade Ideas surrounding the entire software life cycle are often big hits for our attendees. Finally, we do welcome non-technical proposals that will appeal to a developer audience.

    … read full article

    ', ), - 124 => + 124 => array ( 'title' => 'LaravelConf Taiwan 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-11-1', 'published' => '2018-06-11T11:00:00+00:00', 'updated' => '2018-06-11T11:00:00+00:00', 'finalTeaserDate' => '2018-07-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laravelconf.tw/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laravelconf.tw/', @@ -6978,29 +6989,29 @@ the upgrade ', 'intro' => '

    As the biggest PHP and Laravel community in Taiwan, we are proud to announce LaravelConf Taiwan will take place on July 8, 2018.

    Come and enjoy inspirational talks and making friends with enthusiastic developers like you!

    … read full article

    ', ), - 125 => + 125 => array ( 'title' => 'PHP 7.3.0 alpha 1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-07-1', 'published' => '2018-06-07T18:36:37+00:00', 'updated' => '2018-06-07T18:36:37+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-07-1', 'rel' => 'via', @@ -7047,37 +7058,37 @@ the upgrade PHP Wiki.

    For source downloads of PHP 7.3.0 Alpha 1 please visit the download page.

    … read full article

    ', ), - 126 => + 126 => array ( 'title' => 'PHPSC Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-06-3', 'published' => '2018-06-06T13:14:56-03:00', 'updated' => '2018-06-06T13:14:56-03:00', 'finalTeaserDate' => '2018-06-09', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-06-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conf.phpsc.com.br', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conf.phpsc.com.br', @@ -7098,37 +7109,37 @@ the upgrade ', 'intro' => '

    The Santa Catarina PHP user group (PHPSC) announce the 8th edition of the PHPSC Conference, taking place on June 8-9th, 2018 in Florianópolis, Brazil.

    This Conference aims to discuss best practices in PHP technology and related areas such as design, development techniques, database, open source, agile methodologies, design patterns, etc.

    … read full article

    ', ), - 127 => + 127 => array ( 'title' => 'Madison PHP Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-06-2', 'published' => '2018-06-06T20:10:02+00:00', 'updated' => '2018-06-06T20:10:02+00:00', 'finalTeaserDate' => '2018-06-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-06-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.MadisonPHPConference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.MadisonPHPConference.com', @@ -7143,36 +7154,36 @@ the upgrade ', 'intro' => '

    Join us on Friday, November 2nd, 2018 for a full day of tutorials followed by multiple tracks of amazing talks on Saturday, November 3rd, 2018. Now in its sixth year, Madison PHP Conference in Madison, Wisconsin, USA focuses on PHP, related web technologies, and professional development - everything you need to energize your career. This event is organized by the locally-run Madison PHP user group and is designed to offer something for attendees at all skill levels. Madison PHP Conference 2018 will be two days of networking, learning, sharing, and great fun!

    The Call for Papers will be open until May 31st, 2018. Madison PHP Conference offers reimbursement for travel and accommodations. To view the full speaker package and to submit a talk, please visit: https://cfp.MadisonPHPConference.com.

    ', ), - 128 => + 128 => array ( 'title' => 'Southeast PHP Conference', 'id' => 'http://php.net/archive/2018.php#id2018-06-06-1', 'published' => '2018-06-06T11:02:22+00:00', 'finalTeaserDate' => '2018-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://southeastphp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://southeastphp.com', @@ -7187,34 +7198,34 @@ the upgrade ', 'intro' => '

    Southeast PHP is a two-day, regional PHP conference that brings the community together to learn and grow. We\'re bringing the community conference to Nashville, TN which hasn\'t had a conference since the old PHP Community Conference back in 2011! We will have two full days of amazing talks from members of our community talking about security, framework-less php, deployment and more!

    The conference is scheduled to run August 16th - August 17th, at the beautiful Hotel Preston. We welcome developers and enthusiasts of all skill levels to come join us while we discuss the latest trends and technologies in our industry. You can use the code `SOUTHEAST` to reserve a room today!

    … read full article

    ', ), - 129 => + 129 => array ( 'title' => 'PHP 7.1.18 Released', 'id' => 'http://php.net/archive/2018.php#id2018-05-25-1', 'published' => '2018-05-25T12:43:22+00:00', 'updated' => '2018-05-25T12:43:22+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-05-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-05-25-1', 'rel' => 'via', @@ -7243,34 +7254,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 130 => + 130 => array ( 'title' => 'PHP 7.2.6 Released', 'id' => 'http://php.net/archive/2018.php#id2018-05-24-1', 'published' => '2018-05-24T21:55:35+00:00', 'updated' => '2018-05-24T21:55:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-05-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-05-24-1', 'rel' => 'via', @@ -7292,37 +7303,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.6. This is a primarily a bugfix release which includes a memory corruption fix for EXIF.

    PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 131 => + 131 => array ( 'title' => 'phpDay 2018', 'id' => 'http://php.net/archive/2018.php#id2018-05-02-1', 'published' => '2018-05-02T14:39:18+02:00', 'updated' => '2018-05-02T14:39:18+02:00', 'finalTeaserDate' => '2018-05-11', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-05-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.phpday.it/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.phpday.it/', @@ -7339,37 +7350,37 @@ the upgrade ', 'intro' => '

    The Italian PHP user group GrUSP is pleased to announce the 15th edition of phpday, taking place on May 11-12th, 2018 in Verona, Italy.

    It is the first historic Italian conference dedicated solely to PHP development, technologies and management. It is aimed to IT managers, developers and innovators. Each year it renews the opportunity to link to new business partners.

    … read full article

    ', ), - 132 => + 132 => array ( 'title' => 'ZendCon & OpenEnterprise 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-04-29-1', 'published' => '2018-04-29T08:41:29+00:00', 'updated' => '2018-04-29T08:41:29+00:00', 'finalTeaserDate' => '2018-05-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.zendcon.com', @@ -7384,34 +7395,34 @@ the upgrade ', 'intro' => '

    The Call For Papers for ZendCon & OpenEnterprise 2018 is now open!

    ZendCon & OpenEnterprise is the premier open source conference designed to teach and share practical experiences from the front lines of business critical and enterprise environments, giving you the opportunity to speak in front of technical business leaders, strategists, and developers seeking the best knowledge around the operational advantages of open source. This is your chance to tell everyone what you’ve learned and enrich our community of enterprise technology practitioners.

    … read full article

    ', ), - 133 => + 133 => array ( 'title' => 'PHP 5.6.36 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-4', 'published' => '2018-04-26T13:29:24-07:00', 'updated' => '2018-04-26T13:29:24-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-4', 'rel' => 'via', @@ -7440,34 +7451,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 134 => + 134 => array ( 'title' => 'PHP 7.1.17 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-3', 'published' => '2018-04-26T16:11:23+00:00', 'updated' => '2018-04-26T16:11:23+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-3', 'rel' => 'via', @@ -7496,34 +7507,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 135 => + 135 => array ( 'title' => 'PHP 7.0.30 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-2', 'published' => '2018-04-26T13:00:00+01:00', 'updated' => '2018-04-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-2', 'rel' => 'via', @@ -7552,34 +7563,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 136 => + 136 => array ( 'title' => 'PHP 7.2.5 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-1', 'published' => '2018-04-26T09:12:18+00:00', 'updated' => '2018-04-26T09:12:18+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-1', 'rel' => 'via', @@ -7601,37 +7612,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.5. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 137 => + 137 => array ( 'title' => 'Mid-Atlantic Developer Conference', 'id' => 'http://php.net/archive/2018.php#id2018-04-25-1', 'published' => '2018-04-25T19:31:27+00:00', 'updated' => '2018-04-25T19:31:27+00:00', 'finalTeaserDate' => '2018-07-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.middevcon.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.middevcon.com/', @@ -7650,37 +7661,37 @@ the upgrade ', 'intro' => '

    We are excited to announce the schedule for the 1st annual Mid-Atlantic Developer Conference taking place this summer on July 13-14 near Baltimore, MD.

    This is a brand new polyglot developer event designed to bring together programmers from the region for two full days of learning. We\'ve put together an electic set of sessions and workshops for you. You\'ll recognize some names from the PHP community, as well as see brand new speakers at this event. We are including sessions on Caching, Hiring, Polymer, Bots, Security, Encryption, SVG, WebAssembly, GraphQL, Accessibility, Mentorship, Augmented Reality, Testing, AWS, Docker, Troubleshooting, Gherkin, Ethereum, Health and much more!

    … read full article

    ', ), - 138 => + 138 => array ( 'title' => 'International PHP Conference 2018 - Fall Edition', 'id' => 'http://php.net/archive/2018.php#id2018-04-23-1', 'published' => '2018-04-23T09:44:54-04:00', 'updated' => '2018-04-23T09:44:54-04:00', 'finalTeaserDate' => '2018-10-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -7719,37 +7730,37 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the International JavaScript Conference taking place at the same time.

    … read full article

    ', ), - 139 => + 139 => array ( 'title' => 'CoderCruise 2018 - The Bahamas!', 'id' => 'http://php.net/archive/2018.php#id2018-04-11-1', 'published' => '2018-04-11T13:40:58+00:00', 'updated' => '2018-04-11T13:40:58+00:00', 'finalTeaserDate' => '2018-08-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/', @@ -7766,37 +7777,37 @@ the upgrade ', 'intro' => '

    The team behind the original php[cruise] is once again bringing a conference to the open seas. CoderCruise 2018 is be a premiere conference experience, giving you have an exclusive connection to your fellow community members. It is setting sail from Ft. Lauderdale on August 30th for an extended weekend 5-day cruise that also visits Half Moon Cay and Nassau!

    This year we\'ve managed to negotiate a much cheaper overall rate for our participants, starting as low as $410 per person (including the 5-day cruise, food, drink, the conference, and all taxes and fees wrapped into one package!)

    … read full article

    ', ), - 140 => + 140 => array ( 'title' => 'PHP Developer Days 2018 • Dresden, Germany', 'id' => 'http://php.net/archive/2018.php#id2018-04-09-1', 'published' => '2018-04-09T16:29:11+00:00', 'updated' => '2018-04-09T16:29:11+00:00', 'finalTeaserDate' => '2018-09-21', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.phpdd.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.phpdd.org', @@ -7812,37 +7823,37 @@ the upgrade ', 'intro' => '

    The 4th annual PHP community event – September 21st & 22nd in Dresden, Germany

    The PHP USERGROUP DRESDEN e.V. is proud to host an international 2-day event with workshops, a single track conference and awesome side events.

    … read full article

    ', ), - 141 => + 141 => array ( 'title' => 'PHPConf.Asia 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-04-08-1', 'published' => '2018-04-08T19:09:50+00:00', 'updated' => '2018-04-08T19:09:50+00:00', 'finalTeaserDate' => '2018-06-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.phpconf.asia', @@ -7858,34 +7869,34 @@ the upgrade ', 'intro' => '

    Announcing PHPConf.Asia 2018 - The Pan-Asian PHP Conference - CFP Opens Now

    The third pan-Asian PHP conference will take place between 26th to 29th September 2018 in Singapore - the Garden City of the East! This is a single track, 2 days Conference (27th to 28th September 2018). Followed by 1 day of Tutorials on 29th September 2018.

    … read full article

    ', ), - 142 => + 142 => array ( 'title' => 'PHP 7.1.16 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-30-2', 'published' => '2018-03-30T05:35:50+00:00', 'updated' => '2018-03-30T05:35:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-30-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-30-2', 'rel' => 'via', @@ -7914,37 +7925,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 143 => + 143 => array ( 'title' => 'The 6th Annual China PHP Conference', 'id' => 'http://php.net/archive/2018.php#id2018-03-30-1', 'published' => '2018-03-30T10:00:21+00:00', 'updated' => '2018-03-30T10:00:21+00:00', 'finalTeaserDate' => '2018-05-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-30-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com', @@ -7963,34 +7974,34 @@ the upgrade ', 'intro' => '

    The 6th Annual China PHP Conference – May 19 to 20, Shanghai

    We will be hosting a 2-day event filled with high quality, technical sessions about PHP Core, PHP High Performance, PHP Engineering, AI and Blockchain more.

    … read full article

    ', ), - 144 => + 144 => array ( 'title' => 'PHP 5.6.35 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-29-3', 'published' => '2018-03-29T16:26:07-07:00', 'updated' => '2018-03-29T16:26:07-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-29-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-29-3', 'rel' => 'via', @@ -8019,34 +8030,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 145 => + 145 => array ( 'title' => 'PHP 7.2.4 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-29-2', 'published' => '2018-03-29T10:58:52+00:00', 'updated' => '2018-03-29T10:58:52+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-29-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-29-2', 'rel' => 'via', @@ -8068,34 +8079,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.4. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 146 => + 146 => array ( 'title' => 'PHP 7.0.29 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-29-1', 'published' => '2018-03-29T13:00:00+01:00', 'updated' => '2018-03-29T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-29-1', 'rel' => 'via', @@ -8124,37 +8135,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 147 => + 147 => array ( 'title' => 'International PHP Conference 2018 - Call for Papers', 'id' => 'http://php.net/archive/2018.php#id2018-03-23-1', 'published' => '2018-03-23T15:44:54-04:00', 'updated' => '2018-03-23T15:44:54-04:00', 'finalTeaserDate' => '2018-04-18', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -8192,37 +8203,37 @@ the upgrade 'intro' => '

    IPC Spring will take place in June 4th to 8th in Berlin and we are looking very much forward to it!
    But at the same time we are already preparing for the fall edition of IPC 2018, that is going to take place together with the international JavaScript Conference again. The conferenceís date is October 15th to 19th and the location will be Munich again.

    The International PHP Conference is the worldís first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. Internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies.

    … read full article

    ', ), - 148 => + 148 => array ( 'title' => 'Darkmira Tour PHP 2018', 'id' => 'http://php.net/archive/2018.php#id2018-03-13-1', 'published' => '2018-03-13T11:35:08-03:00', 'updated' => '2018-03-13T11:35:08-03:00', 'finalTeaserDate' => '2018-04-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://php.darkmiratour.rocks/2018', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://php.darkmiratour.rocks/2018', @@ -8238,34 +8249,34 @@ the upgrade ', 'intro' => '

    With a lot of PHP\'s Rockstars, Darkmira Tour PHP 2018 is a conference focused on security and quality in PHP\'s ecosystems, in Brazil\'s capital in April 14-15. During the two days of Darkmira, you can interact with all the 400 participants along the coffee breaks, demonstrations and networking, and learn a lot about the PHP\'s ecosystems!

    For more information, visit https://php.darkmiratour.rocks/2018.

    ', ), - 149 => + 149 => array ( 'title' => 'PHP 7.1.15 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-02-1', 'published' => '2018-03-02T05:54:19+00:00', 'updated' => '2018-03-02T05:54:19+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-02-1', 'rel' => 'via', @@ -8294,37 +8305,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 150 => + 150 => array ( 'title' => 'PHPDetroit Conference 2018 - Call for Papers', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-5', 'published' => '2018-03-01T19:09:18+00:00', 'updated' => '2018-03-01T19:09:18+00:00', 'finalTeaserDate' => '2018-03-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-01-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpdetroit.io', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpdetroit.io', @@ -8340,37 +8351,37 @@ the upgrade ', 'intro' => '

    We\'re happy to announce that the Call for Papers has commenced for PHPDetroit 2018. We will be accepting submissions through March 22nd, 2018.

    The conference will consist of a tutorial day featuring 4 separate 3-4 hour tutorials, 2 in the morning, and 2 in the afternoon, followed by 2 days of 1 hour sessions. We\'re also having an opening keynote on the first conference day, and a closing keynote on the last day. We\'re inviting world-class PHP speakers from around the world to submit their best talks to put together an event that will forever be remembered.

    … read full article

    ', ), - 151 => + 151 => array ( 'title' => 'PHPDetroit Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-4', 'published' => '2018-03-01T18:53:16+00:00', 'updated' => '2018-03-01T18:53:16+00:00', 'finalTeaserDate' => '2018-07-26', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-01-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpdetroit.io', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpdetroit.io', @@ -8385,34 +8396,34 @@ the upgrade ', 'intro' => '

    PHPDetroit is a three-day, regional PHP conference that brings the community together to learn and grow. We\'re preceding the conference with a 2 track tutorial day that will feature 4 sessions covering various topics. We will also be running an UnCon alongside the main tracks on Friday and Saturday, where attendees can share unscheduled talks.

    The conference is scheduled to run July 26th - July 28th, at the beautiful Detroit Marriott Livonia. We welcome developers and enthusiasts of all skill levels to come join us while we discuss the latest trends and technologies in our industry.

    … read full article

    ', ), - 152 => + 152 => array ( 'title' => 'PHP 5.6.34 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-3', 'published' => '2018-03-01T15:48:47-08:00', 'updated' => '2018-03-01T15:48:47-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-01-3', 'rel' => 'via', @@ -8441,34 +8452,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 153 => + 153 => array ( 'title' => 'PHP 7.2.3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-2', 'published' => '2018-03-01T19:43:30+00:00', 'updated' => '2018-03-01T19:43:30+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-01-2', 'rel' => 'via', @@ -8490,34 +8501,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.3. This is a security release with also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 154 => + 154 => array ( 'title' => 'PHP 7.0.28 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-1', 'published' => '2018-03-01T11:45:00+01:00', 'updated' => '2018-03-01T11:45:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-01-1', 'rel' => 'via', @@ -8546,37 +8557,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 155 => + 155 => array ( 'title' => 'CakeFest 2018 Nashville, The Official CakePHP Conference', 'id' => 'http://php.net/archive/2018.php#id2018-02-26-1', 'published' => '2018-02-26T12:21:11+00:00', 'updated' => '2018-02-26T12:21:11+00:00', 'finalTeaserDate' => '2018-06-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cakefest.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cakefest.org', @@ -8620,37 +8631,37 @@ the upgrade will be an event not to miss.

    … read full article

    ', ), - 156 => + 156 => array ( 'title' => 'Northeast PHP 2018 Boston - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-02-22-1', 'published' => '2018-02-22T22:41:47-05:00', 'updated' => '2018-02-22T22:41:47-05:00', 'finalTeaserDate' => '2018-04-11', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://cfp.northeastphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://cfp.northeastphp.org/', @@ -8663,37 +8674,37 @@ the upgrade ', 'intro' => '

    The team at Northeast PHP is excited to annouce that we\'re returning to Boston, September 19-21 2018, and the Call for Speakers is now open until April 11.

    We\'re pleased to announce our conference, the 2018 Web Development and UX Conference by Northeast PHP, where community members come together to learn and share information about the latest trends and technologies in professional PHP development, User Experience design, and Web Technologies.

    … read full article

    ', ), - 157 => + 157 => array ( 'title' => 'Mid-Atlantic Developer Conference - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-02-16-1', 'published' => '2018-02-16T13:07:48+00:00', 'updated' => '2018-02-16T13:07:48+00:00', 'finalTeaserDate' => '2018-03-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.middevcon.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.middevcon.com/', @@ -8710,37 +8721,37 @@ the upgrade ', 'intro' => '

    Mid-Atlantic Dev Con is a brand new polyglot event taking place July 13th and 14th, 2018 near Baltimore, MD. It is designed to bring together programmers from the region for two full days of learning from each other and building a stronger regional community. We are currently hosting an open Call for Speakers, which will end on March 31st at Midnight UTC!

    We are looking for a broad range of submissions covering a wide range of topics that are of interest to today’s computer developers. This means not only programming topics, such as various sessions on PHP, but also broader topics related to development such as: deployment, DevOps, databases, caching, performance, scalability, APIs, etc — We also are looking for non-technical proposals that will appeal to a tech audience: open source, leadership, mentoring, health, work-life balance, management, customer service, and more!

    … read full article

    ', ), - 158 => + 158 => array ( 'title' => 'ConFoo: THE web development conference you don’t want to miss!', 'id' => 'http://php.net/archive/2018.php#id2018-02-14-1', 'published' => '2018-02-14T17:46:24+00:00', 'updated' => '2018-02-14T17:46:24+00:00', 'finalTeaserDate' => '2018-03-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yul2018', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yul2018', @@ -8768,37 +8779,37 @@ the upgrade ', 'intro' => '

    ConFoo is a multi-technology conference specifically crafted for web developers. With 150+ presentations by local and international speakers, this conference offers outstanding diversity of content to expand your knowledge, increase your productivity and boost your development skills.

    See you in Montreal on March 7-8-9!

    … read full article

    ', ), - 159 => + 159 => array ( 'title' => 'php[tek] 2018', 'id' => 'http://php.net/archive/2018.php#id2018-02-07-2', 'published' => '2018-02-07T17:27:41+00:00', 'updated' => '2018-02-07T17:27:41+00:00', 'finalTeaserDate' => '2018-05-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-07-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/', @@ -8824,37 +8835,37 @@ the upgrade ', 'intro' => '

    We are excited to announce the full schedule for the 13th annual php[tek], the premier PHP conference experience. The 2018 edition will be better than ever, now taking place in Downtown Atlanta, GA. The main conference is two days: May 31 and June 1, while we will have a workshop day on May 30, and a day of Training Classes on May 29th.

    There is an amazing list of sessions that have been put together for you, including:

    … read full article

    ', ), - 160 => + 160 => array ( 'title' => 'WavePHP 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-02-06-1', 'published' => '2018-02-06T17:20:49+00:00', 'updated' => '2018-02-06T17:20:49+00:00', 'finalTeaserDate' => '2018-02-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-02-06-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.wavephp.com/', @@ -8871,37 +8882,37 @@ the upgrade ', 'intro' => '', ), - 161 => + 161 => array ( 'title' => 'PHP Experience 2018', 'id' => 'http://php.net/archive/2018.php#id2018-02-01-3', 'published' => '2018-02-01T10:20:29-02:00', 'updated' => '2018-02-01T10:20:29-02:00', 'finalTeaserDate' => '2018-03-05', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://eventos.imasters.com.br/phpexperience/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://eventos.imasters.com.br/phpexperience/', @@ -8918,34 +8929,34 @@ the upgrade ', 'intro' => '

    With big names from PHP community, the sixth edition of PHP Experience brings together about 1200 PHP developers in São Paulo/SP - Brazil from March 05 to 06, 2018.

    In two days of content we will have: international keynotes, three tracks, in addition to several actions to exchange experiences and networking.

    … read full article

    ', ), - 162 => + 162 => array ( 'title' => 'PHP 7.1.14 Released', 'id' => 'http://php.net/archive/2018.php#id2018-02-01-2', 'published' => '2018-02-01T14:54:13+00:00', 'updated' => '2018-02-01T14:54:13+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-02-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-02-01-2', 'rel' => 'via', @@ -8968,29 +8979,29 @@ the upgrade 7.1.14. This is a bugfix release. Several bugs were fixed in this release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 163 => + 163 => array ( 'title' => 'PHP 7.2.2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-02-01-1', 'published' => '2018-02-01T09:12:34+00:00', 'updated' => '2018-02-01T09:12:34+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-02-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-02-01-1', 'rel' => 'via', @@ -9012,37 +9023,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.2. This is a bugfix release, with several bug fixes included.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 164 => + 164 => array ( 'title' => 'CoderCruise 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-01-31-1', 'published' => '2018-01-31T21:00:37+00:00', 'updated' => '2018-01-31T21:00:37+00:00', 'finalTeaserDate' => '2018-02-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-01-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/', @@ -9055,37 +9066,37 @@ the upgrade ', 'intro' => '
    ', ), - 165 => + 165 => array ( 'title' => 'Dutch PHP Conference 2018 – Call for Papers', 'id' => 'http://php.net/archive/2018.php#id2018-01-09-2', 'published' => '2018-01-09T13:35:18+00:00', 'updated' => '2018-01-09T13:35:18+00:00', 'finalTeaserDate' => '2018-01-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-01-09-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpconference.nl/', @@ -9102,37 +9113,37 @@ the upgrade ', 'intro' => '
    ', ), - 166 => + 166 => array ( 'title' => 'Dutch PHP Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-01-09-1', 'published' => '2018-01-09T13:30:36+00:00', 'updated' => '2018-01-09T13:30:36+00:00', 'finalTeaserDate' => '2018-06-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-01-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.phpconference.nl/', @@ -9151,34 +9162,34 @@ the upgrade ', 'intro' => '
    ', ), - 167 => + 167 => array ( 'title' => 'PHP 5.6.33 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-4', 'published' => '2018-01-04T12:21:10-08:00', 'updated' => '2018-01-04T12:21:10-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-4', 'rel' => 'via', @@ -9207,34 +9218,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 168 => + 168 => array ( 'title' => 'PHP 7.1.13 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-3', 'published' => '2018-01-04T15:27:53+00:00', 'updated' => '2018-01-04T15:27:53+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-3', 'rel' => 'via', @@ -9257,34 +9268,34 @@ the upgrade 7.1.13. This is a security release. Several security bugs were fixed in this release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 169 => + 169 => array ( 'title' => 'PHP 7.2.1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-2', 'published' => '2018-01-04T15:26:15+00:00', 'updated' => '2018-01-04T15:26:15+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-2', 'rel' => 'via', @@ -9308,34 +9319,34 @@ the upgrade 7.2.1. This is a security release. Several security bugs were fixed in this release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 170 => + 170 => array ( 'title' => 'PHP 7.0.27 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-1', 'published' => '2018-01-04T15:00:00+01:00', 'updated' => '2018-01-04T15:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-1', 'rel' => 'via', @@ -9373,37 +9384,37 @@ the upgrade is a good time to plan the migration to PHP 7.1 or 7.2.

    … read full article

    ', ), - 171 => + 171 => array ( 'title' => 'PHP Serbia Conference 2018', 'id' => 'http://php.net/archive/2017.php#id2017-12-23-1', 'published' => '2017-12-23T21:54:52+01:00', 'updated' => '2017-12-23T21:54:52+01:00', 'finalTeaserDate' => '2018-05-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-12-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conf2018.phpsrbija.rs', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conf2018.phpsrbija.rs', @@ -9420,34 +9431,34 @@ the upgrade ', 'intro' => '

    "PHP Srbija" is happy to announce a brand new PHP Serbia Conference 2018!

    This year\'s edition features Workshop Day prior to the main 2-day event of awesome talks on PHP and related technologies presented by best speakers from all over the globe.

    … read full article

    ', ), - 172 => + 172 => array ( 'title' => 'PHP 7.2.0 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-30-1', 'published' => '2017-11-30T10:04:21+00:00', 'updated' => '2017-11-30T10:04:21+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-30-1', 'rel' => 'via', @@ -9485,34 +9496,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.0. This release marks the second feature update to the PHP 7 series.

    PHP 7.2.0 comes with numerous improvements and new features such as

    … read full article

    ', ), - 173 => + 173 => array ( 'title' => 'PHP 7.1.12 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-24-1', 'published' => '2017-11-24T06:02:50+00:00', 'updated' => '2017-11-24T06:02:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-24-1', 'rel' => 'via', @@ -9541,34 +9552,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 174 => + 174 => array ( 'title' => 'PHP 7.0.26 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-23-2', 'published' => '2017-11-23T13:00:00+01:00', 'updated' => '2017-11-23T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-23-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-23-2', 'rel' => 'via', @@ -9597,37 +9608,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 175 => + 175 => array ( 'title' => 'PHPKonf Istanbul PHP Conference 2018 - Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-11-22-2', 'published' => '2017-11-22T09:00:00+00:00', 'updated' => '2017-11-22T09:00:00+00:00', 'finalTeaserDate' => '2018-01-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpkonf.org/', @@ -9646,37 +9657,37 @@ the upgrade ', 'intro' => '

    PHPKonf 2018 is an annual PHP oriented conference in Istanbul, Turkey and will take place on Sunday, 20th of May, 2018.

    The call for papers for the PHPKonf 2018 Istanbul PHP conference is open! If you have a burning desire to hold forth about PHP, DevOps, databases, JavaScript, or any other web development topics, we want to see your proposals. Call for Papers is open only from November 20, 2017 to January 31, 2018, so hurry. An added benefit: we will cover your travel and hotel.

    … read full article

    ', ), - 176 => + 176 => array ( 'title' => 'International PHP Conference 2018 - spring edition', 'id' => 'http://php.net/archive/2017.php#id2017-11-22-1', 'published' => '2017-11-22T09:54:24+01:00', 'updated' => '2017-11-22T09:54:24+01:00', 'finalTeaserDate' => '2018-06-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -9715,37 +9726,37 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale \'18 taking place at the same time.

    … read full article

    ', ), - 177 => + 177 => array ( 'title' => 'php[tek] 2018 : Call for Speakers', 'id' => 'http://php.net/archive/2017.php#id2017-11-20-1', 'published' => '2017-11-20T21:55:38+00:00', 'updated' => '2017-11-20T21:55:38+00:00', 'finalTeaserDate' => '2017-12-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/', @@ -9771,37 +9782,37 @@ the upgrade ', 'intro' => '', ), - 178 => + 178 => array ( 'title' => 'Longhorn PHP 2018', 'id' => 'http://php.net/archive/2017.php#id2017-11-16-1', 'published' => '2017-11-16T04:42:00+00:00', 'updated' => '2017-11-16T04:42:00+00:00', 'finalTeaserDate' => '2018-04-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.longhornphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.longhornphp.com/', @@ -9819,34 +9830,34 @@ the upgrade ', 'intro' => '

    The Austin PHP Meetup, the longest-running tech meetup in Texas’ capital, is excited to announce a brand-new PHP conference: Longhorn PHP. 2018 will be the inaugural year for Longhorn PHP, which follows in the tradition of the now-retired Lone Star PHP conference in Dallas.

    At Longhorn PHP you’ll get to learn from and alongside a diverse group of developers from all over the region, country, and even the globe. The conference will consist of one tutorial day with in-depth workshops, and two main conference days with multiple tracks of traditional 1 hour sessions. Register now to take the next step toward leveling up your development career!

    … read full article

    ', ), - 179 => + 179 => array ( 'title' => 'PHP 7.2.0RC6 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-09-1', 'published' => '2017-11-09T13:57:49+00:00', 'updated' => '2017-11-09T13:57:49+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-09-1', 'rel' => 'via', @@ -9891,37 +9902,37 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 180 => + 180 => array ( 'title' => 'SunshinePHP 2018 Conference', 'id' => 'http://php.net/archive/2017.php#id2017-11-08-1', 'published' => '2017-11-08T00:00:01+00:00', 'updated' => '2017-11-15T09:40:00+00:00', 'finalTeaserDate' => '2018-12-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -9955,37 +9966,37 @@ the upgrade ', 'intro' => '

    In February 2018 come to Miami, Florida and escape the cold to learn more about PHP and speak with other developers, like you, to see what others are doing. The SunshinePHP 2018 speaker list has been announced, and we\'ve assembled a great line-up with the most current PHP related topics for you.

    Topics include:

    … read full article

    ', ), - 181 => + 181 => array ( 'title' => 'International PHP Conference Spring Edition 2018 - Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-11-06-1', 'published' => '2017-11-06T11:44:54-04:00', 'updated' => '2017-11-06T11:44:54-04:00', 'finalTeaserDate' => '2017-11-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -10017,34 +10028,34 @@ the upgrade ', 'intro' => '
    ', ), - 182 => + 182 => array ( 'title' => 'PHP 7.1.11 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-27-1', 'published' => '2017-10-27T05:52:49+00:00', 'updated' => '2017-10-27T05:52:49+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-27-1', 'rel' => 'via', @@ -10073,34 +10084,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 183 => + 183 => array ( 'title' => 'PHP 5.6.32 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-26-3', 'published' => '2017-10-26T13:32:22-07:00', 'updated' => '2017-10-26T13:32:22-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-26-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-26-3', 'rel' => 'via', @@ -10129,34 +10140,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 184 => + 184 => array ( 'title' => 'PHP 7.2.0 Release Candidate 5 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-26-2', 'published' => '2017-10-26T16:26:36+00:00', 'updated' => '2017-10-26T16:26:36+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-26-2', 'rel' => 'via', @@ -10203,34 +10214,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 185 => + 185 => array ( 'title' => 'PHP 7.0.25 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-26-1', 'published' => '2017-10-26T13:00:00+01:00', 'updated' => '2017-10-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-26-1', 'rel' => 'via', @@ -10259,37 +10270,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 186 => + 186 => array ( 'title' => 'ScotlandPHP', 'id' => 'http://php.net/archive/2017.php#id2017-10-19-1', 'published' => '2017-10-19T17:46:40+00:00', 'updated' => '2017-10-19T17:46:40+00:00', 'finalTeaserDate' => '2017-11-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-10-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conference.scotlandphp.co.uk/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conference.scotlandphp.co.uk/', @@ -10327,29 +10338,29 @@ the upgrade ', 'intro' => '

    Scotland\'s Original and Best PHP Conference

    Saturday 4th November 2017, EICC, Edinburgh

    … read full article

    ', ), - 187 => + 187 => array ( 'title' => 'PHP 7.2.0 Release Candidate 4 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-12-1', 'published' => '2017-10-12T11:46:49+02:00', 'updated' => '2017-10-12T11:46:49+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-12-1', 'rel' => 'via', @@ -10396,34 +10407,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 188 => + 188 => array ( 'title' => 'PHP 7.1.10 Release Announcement', 'id' => 'http://php.net/archive/2017.php#id2017-09-29-1', 'published' => '2017-09-29T08:10:14+00:00', 'updated' => '2017-09-29T08:10:14+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-29-1', 'rel' => 'via', @@ -10452,29 +10463,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 189 => + 189 => array ( 'title' => 'PHP 7.2.0 Release Candidate 3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'published' => '2017-09-28T12:58:56+02:00', 'updated' => '2017-09-28T12:58:56+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-28-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'rel' => 'via', @@ -10521,34 +10532,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 190 => + 190 => array ( 'title' => 'PHP 7.0.24 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'published' => '2017-09-28T13:00:00+01:00', 'updated' => '2017-09-28T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-28-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'rel' => 'via', @@ -10577,34 +10588,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 191 => + 191 => array ( 'title' => 'PHP 7.2.0 Release Candidate 2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-14-1', 'published' => '2017-09-14T16:07:16+00:00', 'updated' => '2017-09-14T16:07:16+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-14-1', 'rel' => 'via', @@ -10651,37 +10662,37 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 192 => + 192 => array ( 'title' => 'PHP North West 2017 (PHPNW17)', 'id' => 'http://php.net/archive/2017.php#id2017-09-13-1', 'published' => '2017-09-13T19:00:00+00:00', 'updated' => '2017-09-13T19:00:00+00:00', 'finalTeaserDate' => '2017-09-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-09-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conference.phpnw.org.uk/phpnw17/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conference.phpnw.org.uk/phpnw17/', @@ -10698,34 +10709,34 @@ the upgrade ', 'intro' => '

    One of the largest and most popular PHP Conferences in Europe, PHPNW17 is a long-running community-based conference, held in Manchester, UK and run on a not-for-profit basis. It is overwhelmingly supported by industry leaders, code experts, web developers and businesses across the world. This year, we are celebrating our 10th conference year, and we aim to be bigger and better than ever before.

    The PHPNW Conference has a reputation within the PHP community as a "go to" conference due to its inspiring content, friendly atmosphere and networking opportunities. Our delegates come to our Conference because they are specifically interested in new technologies and ways to improve their skills through our tutorials and talks, as well as the awesome (unofficial) corridor track!

    … read full article

    ', ), - 193 => + 193 => array ( 'title' => 'PHP 7.1.9 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-01-1', 'published' => '2017-09-01T06:31:35+00:00', 'updated' => '2017-09-01T06:31:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-01-1', 'rel' => 'via', @@ -10754,29 +10765,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 194 => + 194 => array ( 'title' => 'PHP 7.2.0 Release Candidate 1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-31-1', 'published' => '2017-08-31T10:53:58+02:00', 'updated' => '2017-08-31T10:53:58+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-31-1', 'rel' => 'via', @@ -10823,34 +10834,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 195 => + 195 => array ( 'title' => 'PHP 7.0.23 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-31-2', 'published' => '2017-08-31T13:00:00+01:00', 'updated' => '2017-08-31T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-31-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-31-2', 'rel' => 'via', @@ -10879,29 +10890,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 196 => + 196 => array ( 'title' => 'PHP 7.2.0 Beta 3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-17-1', 'published' => '2017-08-17T10:17:44+02:00', 'updated' => '2017-08-17T10:17:44+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-17-1', 'rel' => 'via', @@ -10948,37 +10959,37 @@ the upgrade bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 197 => + 197 => array ( 'title' => 'SunshinePHP 2018 CFP Started', 'id' => 'http://php.net/archive/2017.php#id2017-08-16-1', 'published' => '2017-08-16T00:00:01+00:00', 'updated' => '2017-08-16T12:23:00+00:00', 'finalTeaserDate' => '2017-09-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-08-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -10995,37 +11006,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for SunshinePHP 2018 has launched at https://cfp.sunshinephp.com where we will accept talk submissions until September 30th, 2017.

    SunshinePHP hit it\'s 6th year and will happen from February 8th to 10th, 2018 in sunny Miami, Florida. As one of the largest community conferences in the U.S. there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 198 => + 198 => array ( 'title' => 'Midwest PHP Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-08-13-1', 'published' => '2017-08-13T19:56:28+00:00', 'updated' => '2017-08-13T19:56:28+00:00', 'finalTeaserDate' => '2017-11-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-08-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.midwestphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.midwestphp.org', @@ -11051,34 +11062,34 @@ the upgrade 'intro' => '

    The Minnesota PHP User Group is proud to announce that the Call for Papers for the Midwest PHP 2018 Conference is now open through November 20, 2017. Abstracts can be submitted to https://cfp.midwestphp.org. Whether you are a seasoned speaker or someone just looking to speak at your first conference, we want to see your submissions.

    This year\'s speaker package includes:

    … read full article

    ', ), - 199 => + 199 => array ( 'title' => 'PHP 7.1.8 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-03-3', 'published' => '2017-08-03T14:35:42+00:00', 'updated' => '2017-08-03T14:35:42+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-03-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-03-3', 'rel' => 'via', @@ -11107,34 +11118,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 200 => + 200 => array ( 'title' => 'PHP 7.2.0 Beta 2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-03-2', 'published' => '2017-08-03T12:48:35+00:00', 'updated' => '2017-08-03T12:48:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-03-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-03-2', 'rel' => 'via', @@ -11181,34 +11192,34 @@ the upgrade bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 201 => + 201 => array ( 'title' => 'PHP 7.0.22 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-03-1', 'published' => '2017-08-03T13:00:00+01:00', 'updated' => '2017-08-03T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-03-1', 'rel' => 'via', @@ -11237,37 +11248,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 202 => + 202 => array ( 'title' => 'Calling all proposals for PHPBenelux Conference 2018', 'id' => 'http://php.net/archive/2017.php#id2017-07-31-1', 'published' => '2017-07-31T11:25:07+02:00', 'updated' => '2017-07-31T11:25:07+02:00', 'finalTeaserDate' => '2017-10-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-07-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpbenelux.eu/?utm_source=php_net&utm_medium=phpbnl18_logo&utm_campaign=phpbnl18&utm_term=php%2Bconference%2Bcfp&utm_content=cfp_announcement', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpbenelux.eu/?utm_source=php_net&utm_medium=phpbnl18_logo&utm_campaign=phpbnl18&utm_term=php%2Bconference%2Bcfp&utm_content=cfp_announcement', @@ -11282,34 +11293,34 @@ the upgrade ', 'intro' => '

    PHPBenelux Conference is an annual PHP oriented conference in Antwerp, Belgium and will take place on January 26 & 27 2018. We offer two days of stellar tutorials and talks, epic social events and a lineup of the best local and international businesses involved with PHP.

    We like to invite speakers to submit their tutorials and talks at PHPBenelux CfP. Speakers have until Monday, October 2, 2017 to submit their proposals.

    … read full article

    ', ), - 203 => + 203 => array ( 'title' => 'PHP 7.2.0 Beta 1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-20-1', 'published' => '2017-07-20T12:00:00+00:00', 'updated' => '2017-07-21T02:21:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-20-1', 'rel' => 'via', @@ -11366,37 +11377,37 @@ the upgrade bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 204 => + 204 => array ( 'title' => 'php[world] 2017', 'id' => 'http://php.net/archive/2017.php#id2017-07-10-1', 'published' => '2017-07-10T17:14:04-04:00', 'updated' => '2017-07-10T17:14:04-04:00', 'finalTeaserDate' => '2017-11-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-07-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -11415,37 +11426,37 @@ the upgrade ', 'intro' => '

    From the publishers of php[architect] magazine comes the 4th annual php[world] conference! As always this November in the Washington D.C. area.

    This year a number of changes have been made based upon attendee feedback, the biggest being an over 50% a drop in cost, with tickets available now as low as $325. The conference also is now just 2 days long, running on November 15th & 16th, and includes workshops as well as regular sessions.

    … read full article

    ', ), - 205 => + 205 => array ( 'title' => 'php Central Europe Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-07-07-1', 'published' => '2017-07-07T00:04:38+02:00', 'updated' => '2017-07-07T00:04:38+02:00', 'finalTeaserDate' => '2017-07-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-07-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2017.phpce.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2017.phpce.eu/', @@ -11491,34 +11502,34 @@ the upgrade ', 'intro' => '

    phpCE is a first edition of the community conference for PHP programmers and enthusiasts. The meeting was stablished by merging two nation-wide events: PHPCon Poland and Brno PHP Conference. This edition will take place in the Ossa Congress & Spa Hotel near Rawa Mazowicka, Poland on November 3rd - 5th.

    The unique feature of the php Central Europe Conference is three-path split of agenda, according to difficulty level of talks: Relaxing, Intermediate and Geek. Submitting a talk you must point a proper level and suggest the Program Committee, which one do you prefer. In general, talks given in the Relaxing path should be done in native language of hosting country (Polish this year).

    … read full article

    ', ), - 206 => + 206 => array ( 'title' => 'PHP 5.6.31 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-4', 'published' => '2017-07-06T15:03:21-07:00', 'updated' => '2017-07-06T15:03:21-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-4', 'rel' => 'via', @@ -11547,34 +11558,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 207 => + 207 => array ( 'title' => 'PHP 7.1.7 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-3', 'published' => '2017-07-06T17:35:10+00:00', 'updated' => '2017-07-06T17:35:10+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-3', 'rel' => 'via', @@ -11603,29 +11614,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 208 => + 208 => array ( 'title' => 'PHP 7.2.0 Alpha 3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-2', 'published' => '2017-07-06T12:25:08+02:00', 'updated' => '2017-07-06T12:25:08+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-2', 'rel' => 'via', @@ -11661,34 +11672,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 209 => + 209 => array ( 'title' => 'PHP 7.0.21 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-1', 'published' => '2017-07-06T13:00:00+01:00', 'updated' => '2017-07-06T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-1', 'rel' => 'via', @@ -11717,37 +11728,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 210 => + 210 => array ( 'title' => 'PHP Developer Day 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-29-1', 'published' => '2017-06-29T17:24:31+02:00', 'updated' => '2017-06-29T17:24:31+02:00', 'finalTeaserDate' => '2017-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpug-dresden.org/en/phpdd17.html', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpug-dresden.org/en/phpdd17.html', @@ -11789,30 +11800,30 @@ the upgrade We have 6 talks covering the following topics:

    … read full article

    ', ), - 211 => + 211 => array ( 'title' => 'Forum PHP 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-23-1', 'published' => '2017-06-23T14:33:24+00:00', 'updated' => '2017-06-23T14:33:24+00:00', 'finalTeaserDate' => '2017-10-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-23-1', 'rel' => 'via', @@ -11839,34 +11850,34 @@ the upgrade pros and PHP lovers.

    … read full article

    ', ), - 212 => + 212 => array ( 'title' => 'PHP 7.2.0 Alpha 2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-22-1', 'published' => '2017-06-22T11:00:00+00:00', 'updated' => '2017-06-22T11:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-22-1', 'rel' => 'via', @@ -11902,37 +11913,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 213 => + 213 => array ( 'title' => 'LaravelConf Taiwan 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-17-1', 'published' => '2017-06-17T18:48:00+00:00', 'updated' => '2017-06-17T18:48:00+00:00', 'finalTeaserDate' => '2017-07-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laravelconf.tw/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laravelconf.tw/', @@ -11961,37 +11972,37 @@ the upgrade ', 'intro' => '

    The first Laravel conference in Taiwan awaits you at LaravelConf Taiwan 2017 at Taipei, Taiwan.

    LaravelConf Taiwan 2017 is for anyone who is passionate about building web-application, or anyone who is trying to make better experience on teamwork.

    … read full article

    ', ), - 214 => + 214 => array ( 'title' => 'ZendCon 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-14-1', 'published' => '2017-06-14T00:00:01+00:00', 'updated' => '2017-09-13T19:06:00+01:00', 'finalTeaserDate' => '2017-09-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://zendcon.com', @@ -12013,37 +12024,37 @@ the upgrade ', 'intro' => '

    With over 250 million PHP applications driven by a global community of more than 5 million active developers and all enterprises adopting open source software, ZendCon 2017 brings you a curated selection of the best experts, training, and networking opportunities to embrace this vast ecosystem.

    Take advantage of unique opportunities to attend a wide variety of in-depth technical sessions, participate in exhibit hall activities, and connect with experts. Learn about the best in enterprise PHP and open source development, focusing on the latest for PHP 7, the evolution of frameworks and tools, API excellence, and innovation on many open source technologies related to the web.

    … read full article

    ', ), - 215 => + 215 => array ( 'title' => 'International PHP Conference 2017 - fall edition', 'id' => 'http://php.net/archive/2017.php#id2017-06-09-1', 'published' => '2017-06-09T09:54:24+01:00', 'updated' => '2017-06-09T09:54:24+01:00', 'finalTeaserDate' => '2017-06-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -12082,34 +12093,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the International JavaScript Conference taking place at the same time.

    … read full article

    ', ), - 216 => + 216 => array ( 'title' => 'PHP 7.1.6 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-08-3', 'published' => '2017-06-08T19:40:06+00:00', 'updated' => '2017-06-08T19:40:06+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-08-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-08-3', 'rel' => 'via', @@ -12129,34 +12140,34 @@ the upgrade ', 'intro' => '
    ', ), - 217 => + 217 => array ( 'title' => 'PHP 7.2.0 Alpha 1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-08-2', 'published' => '2017-06-08T17:03:24+00:00', 'updated' => '2017-07-13T10:02:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-08-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-08-2', 'rel' => 'via', @@ -12192,34 +12203,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 218 => + 218 => array ( 'title' => 'PHP 7.0.20 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-08-1', 'published' => '2017-06-08T13:00:00+01:00', 'updated' => '2017-06-08T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-08-1', 'rel' => 'via', @@ -12248,37 +12259,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 219 => + 219 => array ( 'title' => 'China PHP Developer Conference', 'id' => 'http://php.net/archive/2017.php#id2017-06-06-1', 'published' => '2017-06-06T19:36:21+00:00', 'updated' => '2017-06-06T19:36:21+00:00', 'finalTeaserDate' => '2017-06-10', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-06-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://php2017.devlink.cn/', @@ -12294,37 +12305,37 @@ the upgrade ', 'intro' => '

    China PHP Developer Conference which organized by the DevLink will hold in Beijing on June 10th and 11th.

    After “The High Performance PHP”, It’s the another global developer interchange activity that DevLink hosts.

    … read full article

    ', ), - 220 => + 220 => array ( 'title' => 'The 5th Annual China PHP Conference ', 'id' => 'http://php.net/archive/2017.php#id2017-05-22-1', 'published' => '2017-05-22T11:50:21+00:00', 'updated' => '2017-05-22T11:50:21+00:00', 'finalTeaserDate' => '2017-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-05-22-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com/', @@ -12342,37 +12353,37 @@ the upgrade ', 'intro' => '

    The 5th Annual China PHP Conference – June 17 to 18, Shanghai

    We will be hosting a 2-days event filled with high quality, technical sessions about PHP Core, PHP High Performance, PHP Engineering, and MySQL 5.7/8.0 more.

    … read full article

    ', ), - 221 => + 221 => array ( 'title' => 'DevCOnf 2017', 'id' => 'http://php.net/archive/2017.php#id2017-05-18-1', 'published' => '2017-05-18T13:43:56+00:00', 'updated' => '2017-05-18T13:43:56+00:00', 'finalTeaserDate' => '2017-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://devconf.ru', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devconf.ru', @@ -12427,37 +12438,37 @@ the upgrade This year the conference will take place in Izmaylovo.

    … read full article

    ', ), - 222 => + 222 => array ( 'title' => 'php[world] 2017: Call for Speakers', 'id' => 'http://php.net/archive/2017.php#id2017-05-16-1', 'published' => '2017-05-16T18:08:03-04:00', 'updated' => '2017-05-16T18:08:03-04:00', 'finalTeaserDate' => '2017-06-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com', @@ -12486,34 +12497,34 @@ the upgrade ', 'intro' => '

    The teams at php[architect] and One for All Events are excited to announce we have opened up our Call for Speakers for the 4th annual edition of php[world].

    This year we are refactoring php[world] into a more focused PHP conference concentrating on providing our attendees deep-dive content which teach core lessons about PHP. We also want talks covering advanced topics in applications and frameworks built in PHP (such as Drupal, WordPress, Laravel, Symfony, and Magento). We encourage submissions on technologies crucial to modern Web development such as HTML5, JavaScript, and emerging technologies. Ideas surrounding the entire software life cycle are often big hits for our attendees. Finally, we do welcome non-technical proposals that will appeal to a developer audience.

    … read full article

    ', ), - 223 => + 223 => array ( 'title' => 'PHP 7.1.5 Released', 'id' => 'http://php.net/archive/2017.php#id2017-05-11-2', 'published' => '2017-05-11T17:44:29+00:00', 'updated' => '2017-05-11T12:03:00-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-05-11-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-05-11-2', 'rel' => 'via', @@ -12542,34 +12553,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 224 => + 224 => array ( 'title' => 'PHP 7.0.19 Released', 'id' => 'http://php.net/archive/2017.php#id2017-05-11-1', 'published' => '2017-05-11T13:00:00+01:00', 'updated' => '2017-05-11T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-05-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-05-11-1', 'rel' => 'via', @@ -12598,37 +12609,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 225 => + 225 => array ( 'title' => 'International PHP Conference 2017 Fall - Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-05-09-1', 'published' => '2017-05-09T15:44:54-04:00', 'updated' => '2017-05-09T15:44:54-04:00', 'finalTeaserDate' => '2017-05-09', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -12691,37 +12702,37 @@ the upgrade ', 'intro' => '
    ', ), - 226 => + 226 => array ( 'title' => 'Dutch PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-04-14-1', 'published' => '2017-04-14T13:21:13+00:00', 'updated' => '2017-04-14T13:21:13+00:00', 'finalTeaserDate' => '2017-06-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-04-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.phpconference.nl/', @@ -12769,37 +12780,37 @@ the upgrade presenters can respond to individual questions, and as a result places are limited.

    … read full article

    ', ), - 227 => + 227 => array ( 'title' => 'ConFoo Vancouver 2017 Calling for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-04-13-3', 'published' => '2017-04-13T15:58:29-04:00', 'updated' => '2017-04-13T15:58:29-04:00', 'finalTeaserDate' => '2017-05-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-04-13-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yvr2017/call-for-papers', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yvr2017/call-for-papers', @@ -12816,34 +12827,34 @@ the upgrade ', 'intro' => '

    Want to get your web development ideas in front of a live audience? The call for papers for the ConFoo Vancouver 2017 web developer conference is open! If you have a burning desire to hold forth about PHP, databases, JavaScript, or any other web development topics, we want to see your proposals. The window is open only from April 10 to May 8, 2017, so hurry. An added benefit: If your proposal is selected and you live outside of the Vancouver area, we will cover your travel and hotel.

    You’ll have 45 minutes for the talk, with 35 minutes for your topic and 10 minutes for Q&A. We can’t wait to see your proposals!

    … read full article

    ', ), - 228 => + 228 => array ( 'title' => 'PHP 7.1.4 Released', 'id' => 'http://php.net/archive/2017.php#id2017-04-13-2', 'published' => '2017-04-13T16:12:01+00:00', 'updated' => '2017-04-13T16:12:01+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-04-13-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-04-13-2', 'rel' => 'via', @@ -12872,34 +12883,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 229 => + 229 => array ( 'title' => 'PHP 7.0.18 Released', 'id' => 'http://php.net/archive/2017.php#id2017-04-13-1', 'published' => '2017-04-13T13:00:00+01:00', 'updated' => '2017-04-13T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-04-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-04-13-1', 'rel' => 'via', @@ -12928,37 +12939,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 230 => + 230 => array ( 'title' => 'PNWPHP 2017 CfP', 'id' => 'http://php.net/archive/2017.php#id2017-03-30-2', 'published' => '2017-03-30T07:49:46-04:00', 'updated' => '2017-03-30T07:49:46-04:00', 'finalTeaserDate' => '2017-05-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-30-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.pnwphp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.pnwphp.com', @@ -12975,37 +12986,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the dates for *Pacific Northwest PHP Conference (PNWPHP) 2017 are September 7-9, and will held at University of Washington in Seattle! The CFP site - http://cfp.pnwphp.com - has launched, where talk submissions will accepted through May 15th, 2017.

    The Pacific Northwest PHP Conference is a 3-day event in Seattle, Washington for PHP and Web developers. Our past conferences have included world renown speakers from the PHP community, about a wide range of topics — from APIs and CMS to unit testing and version control

    … read full article

    ', ), - 231 => + 231 => array ( 'title' => 'Northeast PHP Conference CfP', 'id' => 'http://php.net/archive/2017.php#id2017-03-30-1', 'published' => '2017-03-30T07:40:09-04:00', 'updated' => '2017-03-30T07:40:09-04:00', 'finalTeaserDate' => '2017-04-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.northeastphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2017.northeastphp.org', @@ -13029,34 +13040,34 @@ the upgrade The conference will take place August 9-11, and Early Bird Tickets are now available.

    ', ), - 232 => + 232 => array ( 'title' => 'PHP 7.1.3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-03-16-2', 'published' => '2017-03-16T15:34:44+00:00', 'updated' => '2017-03-16T15:34:44+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-03-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-03-16-2', 'rel' => 'via', @@ -13085,34 +13096,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 233 => + 233 => array ( 'title' => 'PHP 7.0.17 Released', 'id' => 'http://php.net/archive/2017.php#id2017-03-16-1', 'published' => '2017-03-16T13:00:00+01:00', 'updated' => '2017-03-16T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-03-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-03-16-1', 'rel' => 'via', @@ -13141,37 +13152,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 234 => + 234 => array ( 'title' => 'PHP Unicorn Conference (Online)', 'id' => 'http://php.net/archive/2017.php#id2017-03-15-1', 'published' => '2017-03-15T02:45:21+00:00', 'updated' => '2017-03-15T02:45:21+00:00', 'finalTeaserDate' => '2017-04-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpunicorn.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpunicorn.com', @@ -13200,37 +13211,37 @@ the upgrade It is true there are many great PHP conferences happening around the world and you should go to as many as can, but if you have a hard time getting to one or can’t spare the time, why not let the conference come to you? The PHP Unicorn Conference comes streaming right to your computer, wherever in the world you might be.

    … read full article

    ', ), - 235 => + 235 => array ( 'title' => 'ZendCon 2017 CFP Started', 'id' => 'http://php.net/archive/2017.php#id2017-03-14-1', 'published' => '2017-03-14T00:00:01+00:00', 'updated' => '2017-03-14T12:23:00+00:00', 'finalTeaserDate' => '2017-04-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://zendcon.com', @@ -13254,37 +13265,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for ZendCon 2017 has launched at https://cfp.zendcon.com where we will accept talk submissions until April 14th, 2017.

    With over 250 million PHP applications driven by a global community of more than 5 million active developers and all enterprises adopting open source software, ZendCon 2017 brings you a curated selection of the best experts, training, and networking opportunities to embrace this vast ecosystem.

    … read full article

    ', ), - 236 => + 236 => array ( 'title' => 'Conferência PHPRS 2017', 'id' => 'http://php.net/archive/2017.php#id2017-03-04-1', 'published' => '2017-03-04T16:33:51-03:00', 'updated' => '2017-03-04T16:33:51-03:00', 'finalTeaserDate' => '2017-05-12', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conf.phprs.com.br/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conf.phprs.com.br/', @@ -13302,37 +13313,37 @@ the upgrade ', 'intro' => '

    An event for the PHP Developer community of Rio Grande do Sul, focused on professional growth, exchange of experiences and networking. Strengthening language and the labor market.

    From May 12 to 13, 2017, in Porto Alegre / RS-Brazil, the first day will be held workshops and the second lectures.

    … read full article

    ', ), - 237 => + 237 => array ( 'title' => 'Madison PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-02-24-1', 'published' => '2017-02-24T16:59:19+00:00', 'updated' => '2017-02-24T16:59:19+00:00', 'finalTeaserDate' => '2017-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.madisonphpconference.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.madisonphpconference.com/', @@ -13352,37 +13363,37 @@ the upgrade ', 'intro' => '

    Join us on Friday, September 22nd, 2017 for a full day of tutorials followed by three tracks of amazing talks on Saturday, September 23rd, 2017. Now in its fifth year, Madison PHP Conference in Madison, Wisconsin, USA focuses on PHP, related web technologies, and professional development - everything you need to energize your career. This event is organized by the locally-run Madison PHP user group and is designed to offer something for attendees at all skill levels. Madison PHP Conference 2017 will be two days of networking, learning, sharing, and great fun!

    The Call for Papers will be open until April 30th, 2017. Madison PHP Conference offers reimbursement for travel and accommodations. To view the full speaker package and to submit a talk, please visit: http://cfp.madisonphpconference.com.

    … read full article

    ', ), - 238 => + 238 => array ( 'title' => 'Madison PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-02-24-1', 'published' => '2017-02-24T16:59:19+00:00', 'updated' => '2017-02-24T16:59:19+00:00', 'finalTeaserDate' => '2017-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.madisonphpconference.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.madisonphpconference.com/', @@ -13396,42 +13407,42 @@ the upgrade ', 'intro' => '

    Join us on Friday, September 22nd, 2017 for a full day of tutorials followed by three tracks of amazing talks on Saturday, September 23rd, 2017. Now in its fifth year, Madison PHP Conference in Madison, Wisconsin, USA focuses on PHP, related web technologies, and professional development - everything you need to energize your career. This event is organized by the locally-run Madison PHP user group and is designed to offer something for attendees at all skill levels. Madison PHP Conference 2017 will be two days of networking, learning, sharing, and great fun!

    ', ), - 239 => + 239 => array ( 'title' => 'CakeFest 2017 NYC, the Official CakePHP Conference', 'id' => 'http://php.net/archive/2017.php#id2017-02-21-1', 'published' => '2017-02-21T09:19:04+00:00', 'updated' => '2017-02-21T09:19:04+00:00', 'finalTeaserDate' => '2017-06-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cakefest.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cakefest.org', @@ -13472,34 +13483,34 @@ the upgrade will be an event not to miss.

    … read full article

    ', ), - 240 => + 240 => array ( 'title' => 'PHP 7.1.2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-02-17-1', 'published' => '2017-02-17T06:00:25+00:00', 'updated' => '2017-02-17T06:00:25+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-02-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-02-17-1', 'rel' => 'via', @@ -13528,34 +13539,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 241 => + 241 => array ( 'title' => 'PHP 7.0.16 Released', 'id' => 'http://php.net/archive/2017.php#id2017-02-16-1', 'published' => '2017-02-16T13:00:00+01:00', 'updated' => '2017-02-16T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-02-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-02-16-1', 'rel' => 'via', @@ -13584,37 +13595,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 242 => + 242 => array ( 'title' => 'PHP Experience 2017', 'id' => 'http://php.net/archive/2017.php#id2017-02-15-1', 'published' => '2017-02-15T02:35:13+00:00', 'updated' => '2017-02-15T02:35:13+00:00', 'finalTeaserDate' => '2017-03-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpexperience2017.imasters.com.br/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpexperience2017.imasters.com.br/?paref=phpnet&utm_campaign=phpnet', @@ -13626,37 +13637,37 @@ the upgrade ', 'intro' => '
    ', ), - 243 => + 243 => array ( 'title' => 'php[tek] 2017: Atlanta', 'id' => 'http://php.net/archive/2017.php#id2017-01-23-1', 'published' => '2017-01-23T08:25:57-05:00', 'updated' => '2017-01-23T08:25:57-05:00', 'finalTeaserDate' => '2017-05-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-01-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -13680,34 +13691,34 @@ the upgrade ', 'intro' => '
    ', ), - 244 => + 244 => array ( 'title' => 'PHP 5.6.30 Released', 'id' => 'http://php.net/archive/2017.php#id2017-01-19-3', 'published' => '2017-01-19T13:30:25-08:00', 'updated' => '2017-01-19T13:30:25-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-01-19-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-01-19-3', 'rel' => 'via', @@ -13757,34 +13768,34 @@ the upgrade

    ', ), - 245 => + 245 => array ( 'title' => 'PHP 7.0.15 Released', 'id' => 'http://php.net/archive/2017.php#id2017-01-19-2', 'published' => '2017-01-19T13:00:00+01:00', 'updated' => '2017-01-19T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-01-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-01-19-2', 'rel' => 'via', @@ -13813,34 +13824,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 246 => + 246 => array ( 'title' => 'PHP 7.1.1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-01-19-1', 'published' => '2017-01-19T09:56:45+00:00', 'updated' => '2017-01-19T09:56:45+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-01-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-01-19-1', 'rel' => 'via', @@ -13869,37 +13880,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 247 => + 247 => array ( 'title' => 'PHPKonf: Istanbul PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-12-27-1', 'published' => '2017-03-27T18:00:00+00:00', 'updated' => '2017-03-27T18:00:00+00:00', 'finalTeaserDate' => '2017-05-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-12-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpkonf.org/', @@ -13914,42 +13925,42 @@ the upgrade ', 'intro' => '

    Istanbul PHP User Group is proud to announce that the PHPKonf 2017! We\'ll host some of the best speakers, awesome talk topics, latest technologies, and up to date news in PHP. Join us on 20th of May for a multi-track conference in ancient city Istanbul! We’ve something for every level of PHP developer with 1 keynotes, 14 talks.

    http://phpkonf.org
    ', ), - 248 => + 248 => array ( 'title' => 'PHPSerbia Conference 2017', 'id' => 'http://php.net/archive/2016.php#id2016-12-20-1', 'published' => '2016-12-20T13:08:01+00:00', 'updated' => '2016-12-20T13:08:01+00:00', 'finalTeaserDate' => '2017-05-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conf2017.phpsrbija.rs/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conf2017.phpsrbija.rs', @@ -13966,34 +13977,34 @@ the upgrade ', 'intro' => '

    Conference that delivers high-value technical content about PHP and related web technologies, architecture, best practices and testing. Two days of amazing talks by some of the most prominent experts and professionals in the PHP world in a comfortable and professional setting.

    At PHPSerbia Conference, you’ll have the unique opportunity to learn about the latest development trends and innovations, as well as to network with fellow attendees and the speakers.

    … read full article

    ', ), - 249 => + 249 => array ( 'title' => 'PHP 5.6.29 Released', 'id' => 'http://php.net/archive/2016.php#id2016-12-08-2', 'published' => '2016-12-08T19:00:37-08:00', 'updated' => '2016-12-08T19:00:37-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-12-08-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-12-08-2', 'rel' => 'via', @@ -14022,34 +14033,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 250 => + 250 => array ( 'title' => 'PHP 7.0.14 Released', 'id' => 'http://php.net/archive/2016.php#id2016-12-08-1', 'published' => '2016-12-08T13:00:00+01:00', 'updated' => '2016-12-08T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-12-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-12-08-1', 'rel' => 'via', @@ -14078,37 +14089,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 251 => + 251 => array ( 'title' => 'CoderCruise', 'id' => 'http://php.net/archive/2016.php#id2016-12-07-1', 'published' => '2016-12-07T14:31:23-05:00', 'updated' => '2016-12-07T14:31:23-05:00', 'finalTeaserDate' => '2017-01-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/?paref=phpnet&utm_campaign=phpnet', @@ -14123,34 +14134,34 @@ the upgrade ', 'intro' => '

    CoderCruise is the spiritual successor to php[cruise] that was run in 2016. The PHP community had so much fun that we decided we needed to expand the idea to the greater web tech community! This will be a 7-day cruise out of the port of New Orleans that will include 3 days of conference (while at sea) and 3 days at the ports of Montego Bay, Grand Cayman, and Cozumel. Yes, you read that right. This is a conference on a cruise ship.

    We currently have our Call for Speakers open until January 6th, 2017. For CoderCruise we are looking for submissions covering a wide range of web technology topics including coding, design, content, and more. Given the scope of this conference, emphasis will be given to talks that appeal to all web technologists regardless of their programming language of choice (or lack thereof). We also welcome non-technical proposals that will appeal to a tech audience, and most importantly of all, we would love to have family-friendly sessions designed to teach kids to code or use related technologies.

    ', ), - 252 => + 252 => array ( 'title' => 'PHP 7.1.0 Released', 'id' => 'http://php.net/archive/2016.php#id2016-12-01-3', 'published' => '2016-12-01T17:55:05+00:00', 'updated' => '2016-12-01T17:55:05+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-12-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-12-01-3', 'rel' => 'via', @@ -14181,37 +14192,37 @@ the upgrade ', 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.0. This release is the first point release in the 7.x series.

    PHP 7.1.0 comes with numerous improvements and new features such as

    … read full article

    ', ), - 253 => + 253 => array ( 'title' => 'PHP South Coast 2017 - CFP opened', 'id' => 'http://php.net/archive/2016.php#id2016-12-01-2', 'published' => '2016-12-01T22:48:54+00:00', 'updated' => '2016-12-01T22:48:54+00:00', 'finalTeaserDate' => '2017-01-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2017.phpsouthcoast.co.uk/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2017.phpsouthcoast.co.uk/', @@ -14224,37 +14235,37 @@ the upgrade ', 'intro' => '', ), - 254 => + 254 => array ( 'title' => 'Web Summer Camp 2017', 'id' => 'http://php.net/archive/2016.php#id2016-12-01-1', 'published' => '2016-12-01T14:20:42+00:00', 'updated' => '2016-12-01T14:20:42+00:00', 'finalTeaserDate' => '2017-03-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.websummercamp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2017.websummercamp.com', @@ -14283,37 +14294,37 @@ the upgrade http://2016.websummercamp.com/PHP

    ', ), - 255 => + 255 => array ( 'title' => 'International PHP Conference 2017', 'id' => 'http://php.net/archive/2016.php#id2016-11-24-1', 'published' => '2016-11-24T09:54:24+01:00', 'updated' => '2016-11-24T09:54:24+01:00', 'finalTeaserDate' => '2016-12-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -14353,37 +14364,37 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale \'17 taking place at the same time.

    … read full article

    ', ), - 256 => + 256 => array ( 'title' => 'php[tek] 2017 — Call for Speakers', 'id' => 'http://php.net/archive/2016.php#id2016-11-11-1', 'published' => '2016-11-11T16:01:34-05:00', 'updated' => '2016-11-11T16:01:34-05:00', 'finalTeaserDate' => '2016-12-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -14413,34 +14424,34 @@ the upgrade ', 'intro' => '

    The 12th annual edition of php[tek], the longest running community focused PHP conference, will be taking place May 24-26, 2017 in Atlanta! We have opened up our Call for Speakers and look forward to seeing all the amazing proposals that you will submit to us.

    This year we hope for a broad range of topics to share with our attendees. Besides core PHP matters such as PHP7, Security, and Testing, we want talks on the technologies crucial to modern Web development as well such as HTML5, JavaScript, mobile development, and emerging technologies. We also welcome non-technical proposals that will appeal to a developer audience.

    … read full article

    ', ), - 257 => + 257 => array ( 'title' => 'PHP 5.6.28 Released', 'id' => 'http://php.net/archive/2016.php#id2016-11-10-3', 'published' => '2016-11-10T19:24:41+00:00', 'updated' => '2016-11-10T19:24:41+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-11-10-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-11-10-3', 'rel' => 'via', @@ -14469,34 +14480,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 258 => + 258 => array ( 'title' => 'PHP 7.1.0 Release Candidate 6 Released', 'id' => 'http://php.net/archive/2016.php#id2016-11-10-2', 'published' => '2016-11-10T17:00:00+00:00', 'updated' => '2016-11-10T17:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-11-10-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-11-10-2', 'rel' => 'via', @@ -14532,34 +14543,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 259 => + 259 => array ( 'title' => 'PHP 7.0.13 Released', 'id' => 'http://php.net/archive/2016.php#id2016-11-10-1', 'published' => '2016-11-10T13:00:00+01:00', 'updated' => '2016-11-10T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-11-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-11-10-1', 'rel' => 'via', @@ -14588,37 +14599,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 260 => + 260 => array ( 'title' => 'International PHP Conference 2017 - Call for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-11-02-1', 'published' => '2016-11-02T15:44:54-04:00', 'updated' => '2016-11-02T15:44:54-04:00', 'finalTeaserDate' => '2016-11-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -14647,37 +14658,37 @@ the upgrade ', 'intro' => '
    ', ), - 261 => + 261 => array ( 'title' => 'SunshinePHP 2017 Schedule Announced', 'id' => 'http://php.net/archive/2016.php#id2016-11-01-1', 'published' => '2016-11-01T00:00:01+00:00', 'updated' => '2016-11-01T12:23:00+00:00', 'finalTeaserDate' => '2016-11-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -14698,37 +14709,37 @@ the upgrade ', 'intro' => '

    We are pleased to announce the 2017 SunshinePHP Schedule. Our highly diverse lineup of 45 speakers will be delivering 5 keynotes, 8 in-depth 3-hour tutorials, and 40 talks 1-hour in length over this 3 day event.

    SunshinePHP hit it\'s 5th year and will happen from February 2nd to 4th, 2017 in sunny Miami, Florida. As one of the largest community conferences in the U.S. the schedule is amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 262 => + 262 => array ( 'title' => 'ConFoo Vancouver & Montreal', 'id' => 'http://php.net/archive/2016.php#id2016-10-28-1', 'published' => '2016-10-28T12:22:24-04:00', 'updated' => '2016-10-28T12:22:24-04:00', 'finalTeaserDate' => '2016-12-05', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-10-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en', @@ -14747,34 +14758,34 @@ the upgrade ', 'intro' => '

    We recently released the presentations for ConFoo Montreal. This giant conference will be held on March 8-10, 2017.

    It\'s also the last chance to get tickets for ConFoo Vancouver, held on December 5-7, 2016.

    … read full article

    ', ), - 263 => + 263 => array ( 'title' => 'PHP 7.1.0 Release Candidate 5 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-27-1', 'published' => '2016-10-27T15:00:00+00:00', 'updated' => '2016-10-27T15:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-27-1', 'rel' => 'via', @@ -14814,37 +14825,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 264 => + 264 => array ( 'title' => 'PhpConference Brasil 2016', 'id' => 'http://php.net/archive/2016.php#id2016-10-26-1', 'published' => '2016-10-26T10:22:11-02:00', 'updated' => '2016-10-26T10:22:11-02:00', 'finalTeaserDate' => '2016-12-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-10-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpconference.com.br/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconference.com.br/', @@ -14885,34 +14896,34 @@ the upgrade The 11th edition of PhpConference Brasil will happen between December 7th (Wednesday) and December 11th (Sunday).

    … read full article

    ', ), - 265 => + 265 => array ( 'title' => 'PHP 7.1.0 Release Candidate 4 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-19-1', 'published' => '2016-10-19T14:00:00+00:00', 'updated' => '2016-10-19T14:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-19-1', 'rel' => 'via', @@ -14952,37 +14963,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 266 => + 266 => array ( 'title' => 'Midwest PHP 2017 Conference Call for Papers is Open', 'id' => 'http://php.net/archive/2016.php#id2016-10-18-1', 'published' => '2016-10-18T10:46:00-06:00', 'updated' => '2016-10-18T10:46:00-06:00', 'finalTeaserDate' => '2016-11-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-10-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2017.midwestphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2017.midwestphp.org', @@ -15014,34 +15025,34 @@ the upgrade is launching into its fifth year at the Radisson Blu at Mall of America on March 17-18. With the growth of the Midwest PHP conference this is the one conference you cannot afford to miss in 2017.

    … read full article

    ', ), - 267 => + 267 => array ( 'title' => 'PHP 5.6.27 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-14-1', 'published' => '2016-10-14T21:29:35+00:00', 'updated' => '2016-10-14T21:29:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-14-1', 'rel' => 'via', @@ -15070,34 +15081,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 268 => + 268 => array ( 'title' => 'PHP 7.0.12 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-13-1', 'published' => '2016-10-13T23:00:00+01:00', 'updated' => '2016-10-13T23:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-13-1', 'rel' => 'via', @@ -15126,34 +15137,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 269 => + 269 => array ( 'title' => 'PHP 7.1.0 Release Candidate 3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-29-1', 'published' => '2016-09-29T17:46:09+00:00', 'updated' => '2016-09-29T17:46:09+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-29-1', 'rel' => 'via', @@ -15193,37 +15204,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 270 => + 270 => array ( 'title' => 'PHP UK Conference 2017 Call for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-09-22-2', 'published' => '2016-09-22T09:00:00+00:00', 'updated' => '2016-09-22T09:00:00+00:00', 'finalTeaserDate' => '2016-10-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-09-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpconference.co.uk', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpconference.co.uk', @@ -15251,34 +15262,34 @@ the upgrade Open until: October 17th 2016 6pm GMT

    The PHP UK Conference 2017 Call for Papers is now open!

    … read full article

    ', ), - 271 => + 271 => array ( 'title' => 'PHP 7.1.0 Release Candidate 2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-16-2', 'published' => '2016-09-16T23:33:30+00:00', 'updated' => '2016-09-16T23:33:30+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-16-2', 'rel' => 'via', @@ -15318,34 +15329,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 272 => + 272 => array ( 'title' => 'PHP 5.6.26 is released', 'id' => 'http://php.net/archive/2016.php#id2016-09-16-1', 'published' => '2016-09-16T06:39:08+00:00', 'updated' => '2016-09-16T06:39:08+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-16-1', 'rel' => 'via', @@ -15374,34 +15385,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 273 => + 273 => array ( 'title' => 'PHP 7.0.11 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-15-1', 'published' => '2016-09-15T13:00:00+01:00', 'updated' => '2016-09-15T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-15-1', 'rel' => 'via', @@ -15430,37 +15441,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 274 => + 274 => array ( 'title' => 'php[world] 2016', 'id' => 'http://php.net/archive/2016.php#id2016-09-09-1', 'published' => '2016-09-09T08:05:18-04:00', 'updated' => '2016-09-09T08:05:18-04:00', 'finalTeaserDate' => '2016-11-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-09-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -15487,37 +15498,37 @@ the upgrade ', 'intro' => '

    The team behind php[architect] magazine are excited to announce the full schedule for our Fall conference: php[world] 2016 coming up from November 14-18 in Washington, D.C.

    This conference will be our biggest yet, featuring 60 sessions, 10 workshops, and 5 one and two-day training classes. Not to mention 5 amazing keynotes from leaders in the PHP community, and a special keynote by developers from NPR Radio to talk about their experiences with PHP.

    … read full article

    ', ), - 275 => + 275 => array ( 'title' => 'PHPBenelux Conference 2017 CfP Opened', 'id' => 'http://php.net/archive/2016.php#id2016-09-06-1', 'published' => '2016-09-06T01:53:15+02:00', 'updated' => '2016-09-06T01:53:15+02:00', 'finalTeaserDate' => '2016-10-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-09-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpbenelux.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpbenelux.eu/', @@ -15539,34 +15550,34 @@ the upgrade We like to invite speakers to submit their tutorials and talks at PHPBenelux CFP. Follow us on Twitter or like us on Facebook to stay updated with news from the PHPBenelux crew.

    ', ), - 276 => + 276 => array ( 'title' => 'PHP 7.1.0 Release Candidate 1 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-01-1', 'published' => '2016-09-01T15:18:32+00:00', 'updated' => '2016-09-01T15:18:32+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-01-1', 'rel' => 'via', @@ -15606,37 +15617,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 277 => + 277 => array ( 'title' => 'ScotlandPHP 2016', 'id' => 'http://php.net/archive/2016.php#id2016-08-27-1', 'published' => '2016-08-27T12:14:42+00:00', 'updated' => '2016-08-29T20:00:00+01:00', 'finalTeaserDate' => '2016-10-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conference.scotlandphp.co.uk', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conference.scotlandphp.co.uk', @@ -15674,37 +15685,37 @@ the upgrade and bookended by keynotes from world class speakers: Anthony Ferrara and Jessica Rose.

    … read full article

    ', ), - 278 => + 278 => array ( 'title' => 'ConFoo Montreal 2017 Calling for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-08-22-2', 'published' => '2016-08-22T16:50:54-04:00', 'updated' => '2016-08-22T16:50:54-04:00', 'finalTeaserDate' => '2016-09-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yul2017/call-for-papers', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yul2017/call-for-papers', @@ -15719,37 +15730,37 @@ the upgrade ', 'intro' => '
    ', ), - 279 => + 279 => array ( 'title' => 'Bulgaria PHP Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-08-22-1', 'published' => '2016-08-22T18:00:00+03:00', 'updated' => '2016-08-22T18:00:00+03:00', 'finalTeaserDate' => '2016-10-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.bgphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.bgphp.org', @@ -15778,34 +15789,34 @@ the upgrade ', 'intro' => '

    Bulgaria PHP Conference is the premier PHP conference, gathering PHP and frontend developers and engineers from all around Europe. Co-organized by the Bulgaria PHP User Group and SiteGround web hosting, the conference is bringing internationally renowned experts from the PHP industry to talk about APIs, Frameworks, Security, Testing, Continuous Integration, and much more!

    Highlights:

    … read full article

    ', ), - 280 => + 280 => array ( 'title' => 'PHP 7.1.0 Beta 3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-08-18-3', 'published' => '2016-08-18T23:10:34+00:00', 'updated' => '2016-08-18T23:10:34+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-18-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-18-3', 'rel' => 'via', @@ -15845,34 +15856,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 281 => + 281 => array ( 'title' => 'PHP 5.6.25 is released', 'id' => 'http://php.net/archive/2016.php#id2016-08-18-2', 'published' => '2016-08-18T16:43:25-07:00', 'updated' => '2016-08-19T13:19:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-18-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-18-2', 'rel' => 'via', @@ -15901,34 +15912,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 282 => + 282 => array ( 'title' => 'PHP 7.0.10 Released', 'id' => 'http://php.net/archive/2016.php#id2016-08-18-1', 'published' => '2016-08-18T23:59:00+01:00', 'updated' => '2016-08-18T23:59:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-18-1', 'rel' => 'via', @@ -15957,37 +15968,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 283 => + 283 => array ( 'title' => 'SunshinePHP 2017 CFP Started', 'id' => 'http://php.net/archive/2016.php#id2016-08-16-2', 'published' => '2016-08-16T00:00:01+00:00', 'updated' => '2016-08-16T12:23:00+00:00', 'finalTeaserDate' => '2016-09-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -16004,37 +16015,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for SunshinePHP 2017 has launched at https://cfp.sunshinephp.com where we will accept talk submissions until September 30th, 2016.

    SunshinePHP hit it\'s 5th year and will happen from February 2nd to 4th, 2017 in sunny Miami, Florida. As one of the largest community conferences in the U.S. there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 284 => + 284 => array ( 'title' => 'ZendCon 2016', 'id' => 'http://php.net/archive/2016.php#id2016-08-16-1', 'published' => '2016-08-16T00:00:01+00:00', 'updated' => '2016-08-16T12:23:00+00:00', 'finalTeaserDate' => '2016-10-18', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://zendcon.com', @@ -16053,34 +16064,34 @@ the upgrade ', 'intro' => '

    With over 250 million PHP applications and websites driven by a global community of more than 5 million active developers, ZendCon 2016 brings you a curated selection of the best experts, training, and networking opportunities to help you become a PHP authority.

    In its 12th year, ZendCon offers authoritative sessions, in-depth technical tutorials, exhibit hall activities, and informal opportunities to spotlight the best in enterprise PHP development, the latest for PHP 7, and innovations on many open source technologies related to the web.

    … read full article

    ', ), - 285 => + 285 => array ( 'title' => 'PHP 7.1.0 Beta 2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-08-04-1', 'published' => '2016-08-04T09:00:07+00:00', 'updated' => '2016-08-04T09:00:07+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-04-1', 'rel' => 'via', @@ -16120,37 +16131,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 286 => + 286 => array ( 'title' => 'Early Bird Ticket Sale for PHPConf.Asia 2016', 'id' => 'http://php.net/archive/2016.php#id2016-07-24-1', 'published' => '2016-07-24T14:38:59+08:00', 'updated' => '2016-07-24T14:38:59+08:00', 'finalTeaserDate' => '2016-08-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-07-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2016.phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2016.phpconf.asia', @@ -16167,34 +16178,34 @@ the upgrade ', 'intro' => '

    PHPConf.Asia 2016 is happening in Singapore on 22-24 August 2016. Tutorial Day on 22 Aug. 2 day single track conference on 23 and 24 August.

    Keynote Speakers: Davey Shafik (@dshafik) and Samantha Quiñones (@ieatkillerbees)

    … read full article

    ', ), - 287 => + 287 => array ( 'title' => 'PHP 5.6.24 is released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-4', 'published' => '2016-07-21T19:49:46+00:00', 'updated' => '2016-07-21T19:49:46+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-4', 'rel' => 'via', @@ -16225,34 +16236,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 288 => + 288 => array ( 'title' => 'PHP 5.5.38 is released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-2', 'published' => '2016-07-21T16:01:29+00:00', 'updated' => '2016-07-21T16:01:29+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-2', 'rel' => 'via', @@ -16280,34 +16291,34 @@ the upgrade some security related bugs.

    All PHP 5.5 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 289 => + 289 => array ( 'title' => 'PHP 7.0.9 Released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-3', 'published' => '2016-07-21T13:00:00+01:00', 'updated' => '2016-07-21T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-3', 'rel' => 'via', @@ -16336,34 +16347,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 290 => + 290 => array ( 'title' => 'PHP 7.1.0 Beta 1 Released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-1', 'published' => '2016-07-21T09:32:07+00:00', 'updated' => '2016-07-21T09:32:07+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-1', 'rel' => 'via', @@ -16416,34 +16427,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 291 => + 291 => array ( 'title' => 'PHP 7.1.0 Alpha 3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-07-07-1', 'published' => '2016-07-07T19:40:54+00:00', 'updated' => '2016-07-07T19:40:54+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-07-1', 'rel' => 'via', @@ -16508,34 +16519,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 292 => + 292 => array ( 'title' => 'PHP 7.1.0 Alpha 2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-06-24-1', 'published' => '2016-06-27T16:00:00+00:00', 'updated' => '2016-06-27T16:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-24-1', 'rel' => 'via', @@ -16574,34 +16585,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 293 => + 293 => array ( 'title' => 'PHP 5.5.37 is released', 'id' => 'http://php.net/archive/2016.php#id2016-06-23-3', 'published' => '2016-06-23T18:11:22+00:00', 'updated' => '2016-06-23T18:11:22+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-23-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-23-3', 'rel' => 'via', @@ -16630,34 +16641,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 294 => + 294 => array ( 'title' => 'PHP 5.6.23 is released', 'id' => 'http://php.net/archive/2016.php#id2016-06-23-2', 'published' => '2016-06-23T17:36:17+00:00', 'updated' => '2016-06-23T17:36:17+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-23-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-23-2', 'rel' => 'via', @@ -16686,34 +16697,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 295 => + 295 => array ( 'title' => 'PHP 7.0.8 Released', 'id' => 'http://php.net/archive/2016.php#id2016-06-23-1', 'published' => '2016-06-23T13:00:00+01:00', 'updated' => '2016-06-23T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-23-1', 'rel' => 'via', @@ -16742,37 +16753,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 296 => + 296 => array ( 'title' => 'International PHP Conference 2016 - fall edition', 'id' => 'http://php.net/archive/2016.php#id2016-06-15-1', 'published' => '2016-06-15T09:54:24+01:00', 'updated' => '2016-06-15T09:54:24+01:00', 'finalTeaserDate' => '2016-10-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -16818,34 +16829,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the WebTechCon taking place at the same time.

    … read full article

    ', ), - 297 => + 297 => array ( 'title' => 'PHP 7.1.0 Alpha 1 Released', 'id' => 'http://php.net/archive/2016.php#id2016-06-09-1', 'published' => '2016-06-09T12:39:55-04:00', 'updated' => '2016-06-09T12:39:55-04:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-09-1', 'rel' => 'via', @@ -16922,37 +16933,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 298 => + 298 => array ( 'title' => 'DevConf 2016', 'id' => 'http://php.net/archive/2016.php#id2016-06-06-1', 'published' => '2016-06-06T09:10:08+00:00', 'updated' => '2016-06-06T09:10:08+00:00', 'finalTeaserDate' => '2016-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://devconf.ru', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devconf.ru', @@ -16997,37 +17008,37 @@ the upgrade This year the conference will take place in Skolkovo Moscow School of Management.

    … read full article

    ', ), - 299 => + 299 => array ( 'title' => 'Madison PHP Conference 2016 Call For Papers', 'id' => 'http://php.net/archive/2016.php#id2016-06-03-1', 'published' => '2016-06-03T21:05:00-04:00', 'updated' => '2016-06-03T21:05:00-04:00', 'finalTeaserDate' => '2016-06-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.madisonphpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.madisonphpconference.com/', @@ -17047,37 +17058,37 @@ the upgrade Join us on Friday, September 30th, 2016 for a full day of tutorials followed by a three tracks of talks on Saturday, October 1st, 2016. Madison PHP Conference in Madison, Wisconsin focuses on PHP and related web technologies. This event is organized by Madison PHP and is designed to offer something to attendees at all skill levels. It will be two days of networking, learning, sharing, and great fun!

    ', ), - 300 => + 300 => array ( 'title' => 'php[world] 2016 Call for Speakers', 'id' => 'http://php.net/archive/2016.php#id2016-06-02-1', 'published' => '2016-06-02T11:36:27-04:00', 'updated' => '2016-06-02T11:36:27-04:00', 'finalTeaserDate' => '2016-06-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -17104,37 +17115,37 @@ the upgrade

    Now in its 3rd year, php[world] is the conference designed to bring the entire world of PHP together in one place, with dedicated tracks for the biggest applications and frameworks in the PHP community such as WordPress, Drupal, Magento, Joomla!, Symfony, Zend Framework, CakePHP, and Laravel.

    … read full article

    ', ), - 301 => + 301 => array ( 'title' => 'The 4th Annual China PHP Conference', 'id' => 'http://php.net/archive/2016.php#id2016-05-30-1', 'published' => '2016-05-30T15:53:21+00:00', 'updated' => '2016-05-30T15:53:21+00:00', 'finalTeaserDate' => '2016-06-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-05-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-30-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com/', @@ -17153,34 +17164,34 @@ the upgrade ', 'intro' => '

    The 4th Annual China PHP Conference – June 25 to 26, Shanghai

    We will be hosting a 2-days event filled with high quality, technical sessions about PHP Core, PHP High Performance, PHP Engineering, and PHP more.

    … read full article

    ', ), - 302 => + 302 => array ( 'title' => 'PHP 5.6.22 is available', 'id' => 'http://php.net/archive/2016.php#id2016-05-26-3', 'published' => '2016-05-26T12:59:08-07:00', 'updated' => '2016-05-26T12:59:08-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-05-26-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-26-3', 'rel' => 'via', @@ -17211,34 +17222,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 303 => + 303 => array ( 'title' => 'PHP 5.5.36 is available', 'id' => 'http://php.net/archive/2016.php#id2016-05-26-2', 'published' => '2016-05-26T12:50:50+00:00', 'updated' => '2016-05-26T12:50:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-05-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-26-2', 'rel' => 'via', @@ -17269,34 +17280,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 304 => + 304 => array ( 'title' => 'PHP 7.0.7 Released', 'id' => 'http://php.net/archive/2016.php#id2016-05-26-1', 'published' => '2016-05-26T13:00:00+01:00', 'updated' => '2016-05-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-05-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-26-1', 'rel' => 'via', @@ -17327,37 +17338,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 305 => + 305 => array ( 'title' => 'ConFoo Vancouver 2016 Calling for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-05-12-1', 'published' => '2016-05-12T20:03:15-04:00', 'updated' => '2016-05-12T20:03:15-04:00', 'finalTeaserDate' => '2016-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-05-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yvr2016', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yvr2016', @@ -17372,42 +17383,42 @@ the upgrade ', 'intro' => '
    ', ), - 306 => + 306 => array ( 'title' => 'Announcing PHPConf.Asia 2016. CFP Opens Now!', 'id' => 'http://php.net/archive/2016.php#id2016-05-02-2', 'published' => '2016-05-02T00:28:11+08:00', 'updated' => '2016-05-02T00:28:11+08:00', 'finalTeaserDate' => '2016-08-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-05-02-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2016.phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2016.phpconf.asia', @@ -17423,34 +17434,34 @@ the upgrade ', 'intro' => '

    Announcing PHPConf.Asia 2016 - The Pan-Asian PHP Conference - CFP Opens Now

    The second pan-Asian PHP conference will take place between 22nd and 24th August 2016 in Singapore - the Garden City of the East! Monday, 22nd August 2016 will be a Tutorial day. Followed by 2 days of Conference.

    … read full article

    ', ), - 307 => + 307 => array ( 'title' => 'PHP 7.0.6 Released', 'id' => 'http://php.net/archive/2016.php#id2016-04-29-1', 'published' => '2016-04-29T02:30:00+01:00', 'updated' => '2016-04-29T02:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-04-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-04-29-1', 'rel' => 'via', @@ -17483,34 +17494,34 @@ the upgrade
  • CVE-2016-3074
  • … read full article

    ', ), - 308 => + 308 => array ( 'title' => 'PHP 5.6.21 is available', 'id' => 'http://php.net/archive/2016.php#id2016-04-28-2', 'published' => '2016-04-28T16:04:29-07:00', 'updated' => '2016-04-28T16:04:29-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-04-28-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-04-28-2', 'rel' => 'via', @@ -17536,34 +17547,34 @@ the upgrade All PHP 5.6 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 309 => + 309 => array ( 'title' => 'PHP 5.5.35 Release', 'id' => 'http://php.net/archive/2016.php#id2016-04-28-1', 'published' => '2016-04-28T19:57:38+00:00', 'updated' => '2016-04-28T19:57:38+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-04-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-04-28-1', 'rel' => 'via', @@ -17589,37 +17600,37 @@ the upgrade All PHP 5.5 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 310 => + 310 => array ( 'title' => 'phpDay 2016', 'id' => 'http://php.net/archive/2016.php#id2016-04-18-1', 'published' => '2016-04-18T10:35:47+02:00', 'updated' => '2016-04-18T10:35:47+02:00', 'finalTeaserDate' => '2016-05-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-04-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.phpday.it/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.phpday.it/', @@ -17637,37 +17648,37 @@ the upgrade ', 'intro' => '
    ', ), - 311 => + 311 => array ( 'title' => 'CakeFest 2016 - The CakePHP Conference', 'id' => 'http://php.net/archive/2016.php#id2016-04-05-1', 'published' => '2016-04-05T11:30:00+00:00', 'updated' => '2016-04-05T11:30:00+00:00', 'finalTeaserDate' => '2016-05-26', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-04-05-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://cakefest.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://cakefest.org', @@ -17710,34 +17721,34 @@ the upgrade who love code.

    That\'s why we ask you join us at CakeFest 2016 which will be running from May 26th till May 29th, and experience open source at it\'s very best! As always, CakeFest will consist of a two day workshop (At beginner and advanced levels) and a two day conference. This year we are in the beautiful city of Amsterdam, Netherlands.

    … read full article

    ', ), - 312 => + 312 => array ( 'title' => 'PHP 5.6.20 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-4', 'published' => '2016-03-31T16:28:02-07:00', 'updated' => '2016-03-31T16:28:02-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-31-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-31-4', 'rel' => 'via', @@ -17766,37 +17777,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 313 => + 313 => array ( 'title' => 'PHPSerbia Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-3', 'published' => '2016-03-31T20:00:00+02:00', 'updated' => '2016-03-31T22:00:00+02:00', 'finalTeaserDate' => '2016-05-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-31-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conf2016.phpsrbija.rs', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conf2016.phpsrbija.rs', @@ -17813,34 +17824,34 @@ the upgrade ', 'intro' => '

    Conference that delivers high-value technical content about PHP and related web technologies, architecture, best practices and testing. Two days of amazing talks by some of the most prominent experts and professionals in the PHP world in a comfortable and professional setting.

    At PHPSerbia Conference, you’ll have the unique opportunity to learn about the latest development trends and innovations, as well as to network with fellow attendees and the speakers.

    … read full article

    ', ), - 314 => + 314 => array ( 'title' => 'PHP 5.5.34 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-2', 'published' => '2016-03-31T12:58:50+00:00', 'updated' => '2016-03-31T12:58:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-31-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-31-2', 'rel' => 'via', @@ -17869,34 +17880,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 315 => + 315 => array ( 'title' => 'PHP 7.0.5 Released', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-1', 'published' => '2016-03-31T13:00:00+01:00', 'updated' => '2016-03-31T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-31-1', 'rel' => 'via', @@ -17927,37 +17938,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 316 => + 316 => array ( 'title' => 'China PHP conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-30-1', 'published' => '2016-03-30T15:53:21+00:00', 'updated' => '2016-03-30T15:53:21+00:00', 'finalTeaserDate' => '2016-05-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-30-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devlink.cn', @@ -17975,30 +17986,30 @@ the upgrade ', 'intro' => '

    DevLink is pleased to announce the China PHP Conference 2016.

    DevLink is a group dedicated to helping developers continuous improvement. China PHP Conference 2016 face to senior PHP programmers, found for better communication in China. It will be held on 5.14-5.15 2016 for a two-days in Beijing, and we have invited Rasums Lerdorf, Xinchen Hui and other best PHP experts as speakers. There\'re over 10 topics foucus on PHP performance optimization in the Alibaba double-11 events; PHP development of big data analysis; Swoole cluster development, and SOA applications programming; upgraded to PHP7 experience of enterprise application.

    … read full article

    ', ), - 317 => + 317 => array ( 'title' => 'PHPTour 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-15-1', 'published' => '2016-03-15T09:54:21+00:00', 'updated' => '2016-03-15T09:54:21+00:00', 'finalTeaserDate' => '2016-05-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-15-1', 'rel' => 'via', @@ -18021,34 +18032,34 @@ the upgrade 'intro' => '

    After Nantes, Lille, Lyon,and Luxembourg-City, this year the PHP Tour, the itinerant conference organized by the French PHP users group, goes to Clermont-Ferrand, a lovely city surrounded by volcanoes. Helped by Clermont\'ech, a local developers organization, AFUP is happy to welcome you on May 23rd and 24th at the Polydome convention centre.

    This year, part of the program will focus on performance. "The big don\'t eat the little, the fast eat the slow" (Eberhard von Kuenheim, BMW)

    … read full article

    ', ), - 318 => + 318 => array ( 'title' => 'PHP 5.6.19 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-03-3', 'published' => '2016-03-03T14:27:37-08:00', 'updated' => '2016-03-03T14:27:37-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-03-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-03-3', 'rel' => 'via', @@ -18078,34 +18089,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 319 => + 319 => array ( 'title' => 'PHP 5.5.33 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-03-2', 'published' => '2016-03-03T12:04:41+00:00', 'updated' => '2016-03-03T12:04:41+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-03-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-03-2', 'rel' => 'via', @@ -18135,34 +18146,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 320 => + 320 => array ( 'title' => 'PHP 7.0.4 Released', 'id' => 'http://php.net/archive/2016.php#id2016-03-03-1', 'published' => '2016-03-03T13:00:00+01:00', 'updated' => '2016-03-03T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-03-1', 'rel' => 'via', @@ -18193,37 +18204,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 321 => + 321 => array ( 'title' => 'PHPKonf: Istanbul PHP Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-01-1', 'published' => '2016-03-01T09:00:00+00:00', 'updated' => '2016-03-01T09:00:00+00:00', 'finalTeaserDate' => '2016-05-21', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpkonf.org/', @@ -18238,37 +18249,37 @@ the upgrade ', 'intro' => '

    Istanbul PHP User Group is proud to announce that the PHPKonf 2016! We\'ll host some of the best speakers, awesome talk topics, latest technologies, and up to date news in PHP. Join us on 21st/22nd of May for a two day, double track conference in ancient city Istanbul! We’ve something for every level of PHP developer with 2 keynotes, 28 talks and 2 panels.

    http://phpkonf.org
    ', ), - 322 => + 322 => array ( 'title' => 'php[tek] 2016', 'id' => 'http://php.net/archive/2016.php#id2016-02-18-1', 'published' => '2016-02-18T14:47:35-05:00', 'updated' => '2016-02-18T14:47:35-05:00', 'finalTeaserDate' => '2016-05-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-02-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com', @@ -18305,37 +18316,37 @@ the upgrade — running from May 23th-27th.

    This year we have moved the conference to a bigger venue, in St. Louis, in order to expand this year and for years to come.

    … read full article

    ', ), - 323 => + 323 => array ( 'title' => 'Midwest PHP 2016 Conference', 'id' => 'http://php.net/archive/2016.php#id2016-02-16-1', 'published' => '2016-02-16T10:46:00-06:00', 'updated' => '2016-02-16T10:46:00-06:00', 'finalTeaserDate' => '2016-03-05', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-02-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.midwestphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.midwestphp.org', @@ -18372,34 +18383,34 @@ the upgrade http://2016.midwestphp.org/register and we look forward to seeing you there.

    … read full article

    ', ), - 324 => + 324 => array ( 'title' => 'PHP 5.6.18 is available', 'id' => 'http://php.net/archive/2016.php#id2016-02-04-3', 'published' => '2016-02-04T12:08:37-08:00', 'updated' => '2016-02-04T12:08:37-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-02-04-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-02-04-3', 'rel' => 'via', @@ -18428,34 +18439,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 325 => + 325 => array ( 'title' => 'PHP 5.5.32 is available', 'id' => 'http://php.net/archive/2016.php#id2016-02-04-2', 'published' => '2016-02-04T10:39:10+00:00', 'updated' => '2016-02-04T10:39:10+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-02-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-02-04-2', 'rel' => 'via', @@ -18484,34 +18495,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 326 => + 326 => array ( 'title' => 'PHP 7.0.3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-02-04-1', 'published' => '2016-02-04T13:00:00+01:00', 'updated' => '2016-02-04T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-02-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-02-04-1', 'rel' => 'via', @@ -18542,37 +18553,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 327 => + 327 => array ( 'title' => 'NortheastPHP Conference CfP Opens', 'id' => 'http://php.net/archive/2016.php#id2016-01-30-1', 'published' => '2016-01-30T04:50:46-05:00', 'updated' => '2016-01-30T04:50:46-05:00', 'finalTeaserDate' => '2016-03-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-01-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.northeastphp.org/call-for-papers/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.northeastphp.org/call-for-papers/', @@ -18593,37 +18604,37 @@ the upgrade ', 'intro' => '

    The team at NortheastPHP is excited to annouce that the Call for Speakers is open for our 2016 conference.

    This 5th annual conference that is focused on community is moving to Charlottetown, Prince Edward Island! We have a number of other updates that will be announced in the coming months as well.

    … read full article

    ', ), - 328 => + 328 => array ( 'title' => 'International PHP Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-01-25-1', 'published' => '2016-01-25T09:54:24+01:00', 'updated' => '2016-01-25T09:54:24+01:00', 'finalTeaserDate' => '2016-05-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-01-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -18672,34 +18683,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale taking place at the same time.

    … read full article

    ', ), - 329 => + 329 => array ( 'title' => 'PHP 5.6.17 is available', 'id' => 'http://php.net/archive/2016.php#id2016-01-07-3', 'published' => '2016-01-07T09:44:28-08:00', 'updated' => '2016-01-07T09:44:28-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-01-07-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-01-07-3', 'rel' => 'via', @@ -18728,34 +18739,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 330 => + 330 => array ( 'title' => 'PHP 5.5.31 is available', 'id' => 'http://php.net/archive/2016.php#id2016-01-07-2', 'published' => '2016-01-07T11:59:59+00:00', 'updated' => '2016-01-07T11:59:59+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-01-07-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-01-07-2', 'rel' => 'via', @@ -18784,34 +18795,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 331 => + 331 => array ( 'title' => 'PHP 7.0.2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-01-07-1', 'published' => '2016-01-07T13:00:00+01:00', 'updated' => '2016-01-07T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-01-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-01-07-1', 'rel' => 'via', @@ -18840,34 +18851,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 332 => + 332 => array ( 'title' => 'PHP 7.0.1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-12-17-1', 'published' => '2015-12-17T15:30:00+01:00', 'updated' => '2015-12-17T15:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-12-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-12-17-1', 'rel' => 'via', @@ -18896,37 +18907,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 333 => + 333 => array ( 'title' => 'php[tek] 2016 Call for Speakers', 'id' => 'http://php.net/archive/2015.php#id2015-12-16-1', 'published' => '2015-12-16T13:33:38+00:00', 'updated' => '2015-12-16T13:33:38+00:00', 'finalTeaserDate' => '2016-01-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-12-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/', @@ -18951,34 +18962,34 @@ the upgrade ', 'intro' => '

    The team at php[architect] is excited to annouce that the Call for Speakers is open for php[tek] 2016.

    This 11th annual conference that is focused on community is this year moving to a bigger venue in Saint Louis so that we can expand and give our attendees some elbow room! We have a number of other updates that will be announced in the coming months as well.

    … read full article

    ', ), - 334 => + 334 => array ( 'title' => 'PHP 7.0.0 Released', 'id' => 'http://php.net/archive/2015.php#id2015-12-03-1', 'published' => '2015-12-03T22:30:00+01:00', 'updated' => '2015-12-03T22:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-12-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-12-03-1', 'rel' => 'via', @@ -19042,37 +19053,37 @@ the upgrade and new features such as

    … read full article

    ', ), - 335 => + 335 => array ( 'title' => 'php[cruise]', 'id' => 'http://php.net/archive/2015.php#id2015-12-01-1', 'published' => '2015-12-01T18:12:59+00:00', 'updated' => '2015-12-01T18:12:59+00:00', 'finalTeaserDate' => '2016-07-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-12-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cruise.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cruise.phparch.com/', @@ -19108,34 +19119,34 @@ the upgrade any questions don’t hesitate to contact us.

    … read full article

    ', ), - 336 => + 336 => array ( 'title' => 'PHP 5.6.16 is available', 'id' => 'http://php.net/archive/2015.php#id2015-11-26-2', 'published' => '2015-11-26T14:18:28-08:00', 'updated' => '2015-11-26T14:18:28-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-11-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-11-26-2', 'rel' => 'via', @@ -19166,34 +19177,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 337 => + 337 => array ( 'title' => 'PHP 7.0.0 RC 8 Released', 'id' => 'http://php.net/archive/2015.php#id2015-11-26-1', 'published' => '2015-11-26T13:00:00+01:00', 'updated' => '2015-11-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-11-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-11-26-1', 'rel' => 'via', @@ -19261,34 +19272,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 338 => + 338 => array ( 'title' => 'PHP 7.0.0 RC 7 Released', 'id' => 'http://php.net/archive/2015.php#id2015-11-12-1', 'published' => '2015-11-12T13:00:00+01:00', 'updated' => '2015-11-12T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-11-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-11-12-1', 'rel' => 'via', @@ -19357,34 +19368,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 339 => + 339 => array ( 'title' => 'PHP 5.6.15 is available', 'id' => 'http://php.net/archive/2015.php#id2015-10-29-2', 'published' => '2015-10-29T23:18:58-07:00', 'updated' => '2015-10-29T23:18:58-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-29-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-29-2', 'rel' => 'via', @@ -19415,34 +19426,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 340 => + 340 => array ( 'title' => 'PHP 7.0.0 RC 6 Released', 'id' => 'http://php.net/archive/2015.php#id2015-10-29-1', 'published' => '2015-10-29T13:00:00+01:00', 'updated' => '2015-10-29T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-29-1', 'rel' => 'via', @@ -19509,37 +19520,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 341 => + 341 => array ( 'title' => 'PhpConference Brasil 2015', 'id' => 'http://php.net/archive/2015.php#id2015-10-15-3', 'published' => '2015-10-15T22:00:00-03:00', 'updated' => '2015-10-15T22:00:00-03:00', 'finalTeaserDate' => '2015-12-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-10-15-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpconference.com.br', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpconference.com.br', @@ -19584,34 +19595,34 @@ the upgrade wednesday, december 2nd, and ending on december 6th - on a beach!

    … read full article

    ', ), - 342 => + 342 => array ( 'title' => 'PHP 7.0.0 RC 5 Released', 'id' => 'http://php.net/archive/2015.php#id2015-10-15-2', 'published' => '2015-10-15T13:00:00+01:00', 'updated' => '2015-10-15T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-15-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-15-2', 'rel' => 'via', @@ -19678,37 +19689,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 343 => + 343 => array ( 'title' => 'PHP Frameworks Day 2015', 'id' => 'http://php.net/archive/2015.php#id2015-10-15-1', 'published' => '2015-10-15T12:05:32-04:00', 'updated' => '2015-10-15T12:05:32-04:00', 'finalTeaserDate' => '2015-10-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-10-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://frameworksdays.com/event/php-frameworks-day-2015', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://frameworksdays.com/event/php-frameworks-day-2015', @@ -19741,37 +19752,37 @@ the upgrade ', 'intro' => '

    #fwdays invites everybody interested in PHP topic to attend PHP Frameworks Day 2015 conference on October 17.

    This is the third time PHP Frameworks Day is being held and each time it grows and becomes more interesting! Watch how we spent PHP Frameworks Day 2014.

    … read full article

    ', ), - 344 => + 344 => array ( 'title' => 'SunshinePHP 2016', 'id' => 'http://php.net/archive/2015.php#id2015-10-07-1', 'published' => '2015-10-07T12:05:32-04:00', 'updated' => '2015-10-07T12:05:32-04:00', 'finalTeaserDate' => '2016-02-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-10-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.sunshinephp.com', @@ -19794,34 +19805,34 @@ the upgrade ', 'intro' => '

    WooHoo! SunshinePHP has hit it\'s 4th year and will happen from February 4th - 6th, 2016 in sunny Miami, Florida.

    As one of the largest community conferences in the U.S. our call for papers ended with 600+ submissions, so there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 345 => + 345 => array ( 'title' => 'PHP 5.6.14 is available', 'id' => 'http://php.net/archive/2015.php#id2015-10-01-3', 'published' => '2015-10-01T16:32:14-07:00', 'updated' => '2015-10-01T16:32:14-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-01-3', 'rel' => 'via', @@ -19850,34 +19861,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 346 => + 346 => array ( 'title' => 'PHP 5.5.30 is available', 'id' => 'http://php.net/archive/2015.php#id2015-10-01-2', 'published' => '2015-10-01T15:44:13+00:00', 'updated' => '2015-10-01T15:44:13+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-01-2', 'rel' => 'via', @@ -19906,34 +19917,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 347 => + 347 => array ( 'title' => 'PHP 7.0.0 RC 4 Released', 'id' => 'http://php.net/archive/2015.php#id2015-10-01-1', 'published' => '2015-10-01T13:00:00+01:00', 'updated' => '2015-10-01T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-01-1', 'rel' => 'via', @@ -20000,42 +20011,42 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 348 => + 348 => array ( 'title' => 'PHPBenelux Conference 2016', 'id' => 'http://php.net/archive/2015.php#id2015-09-30-1', 'published' => '2015-09-30T09:56:51-04:00', 'updated' => '2015-09-30T09:56:51-04:00', 'finalTeaserDate' => '2015-10-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), - 1 => + 1 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-09-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conference.phpbenelux.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conference.phpbenelux.eu/', @@ -20082,34 +20093,34 @@ the upgrade hallway tracks between and after the sessions.

    … read full article

    ', ), - 349 => + 349 => array ( 'title' => 'PHP 7.0.0 RC 3 Released', 'id' => 'http://php.net/archive/2015.php#id2015-09-17-2', 'published' => '2015-09-17T12:30:00+01:00', 'updated' => '2015-09-17T12:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-17-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-17-2', 'rel' => 'via', @@ -20181,37 +20192,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 350 => + 350 => array ( 'title' => 'PHPConf Taiwan 2015', 'id' => 'http://php.net/archive/2015.php#id2015-09-15-1', 'published' => '2015-09-15T16:25:12+00:00', 'updated' => '2015-09-30T09:09:09+01:00', 'finalTeaserDate' => '2015-10-09', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-09-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.phpconf.tw', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.phpconf.tw', @@ -20225,37 +20236,37 @@ the upgrade ', 'intro' => '

    We are honored to announce PHPConf Taiwan 2015 will be held in Taipei, Taiwan on Oct. 9th. As the biggest PHP event in Taiwan, PHPConf attracts hundreds of developers and users in Taiwan to share their knowledge on PHP. This year, to celebrate the 20th anniversary of the invention of PHP and the release of PHP 7, Mr. Rasmus Lerdorf, creator of PHP, and Mr. Xinchen Hui, member from the PHP core developer team, are invited to be our keynote speakers. In addition, we also invited well-known developers in Taiwan to share their expertise and experience at PHPConf. The two-track agenda covers various topics, including Big Data, horizontal extension, software architecture, ORM and Async I/O… etc.

    For ticketing and other information, please visit http://2015.phpconf.tw. We look forward to seeing you in Taipei this October!

    ', ), - 351 => + 351 => array ( 'title' => 'PHPConf.Asia 2015', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-5', 'published' => '2015-09-04T11:29:00+08:00', 'updated' => '2015-09-04T11:29:00+08:00', 'finalTeaserDate' => '2015-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-09-04-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpconf.asia', @@ -20274,34 +20285,34 @@ the upgrade ', 'intro' => '

    Join us at PHPConf.Asia 2015 - The First Pan-Asian PHP Conference

    The inaugural pan-Asian PHP conference will take place on 22 & 23 September 2015 in Singapore - the Garden City of the East! Come and meet with the fastest growing PHP communities in Asia. More than 200 attendees are expected in this single track conference.

    … read full article

    ', ), - 352 => + 352 => array ( 'title' => 'PHP 5.4.45 Released', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-4', 'published' => '2015-09-04T12:37:46-07:00', 'updated' => '2015-09-04T12:37:46-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-4', 'rel' => 'via', @@ -20334,34 +20345,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 353 => + 353 => array ( 'title' => 'PHP 5.5.29 is available', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-3', 'published' => '2015-09-04T16:00:38+00:00', 'updated' => '2015-09-04T16:00:38+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-3', 'rel' => 'via', @@ -20391,34 +20402,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 354 => + 354 => array ( 'title' => 'PHP 5.6.13 is available', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-2', 'published' => '2015-09-04T08:40:46-07:00', 'updated' => '2015-09-04T08:40:46-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-2', 'rel' => 'via', @@ -20449,34 +20460,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 355 => + 355 => array ( 'title' => 'PHP 7.0.0 RC 2 Released', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-1', 'published' => '2015-09-04T11:30:00+01:00', 'updated' => '2015-09-04T11:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-1', 'rel' => 'via', @@ -20542,37 +20553,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 356 => + 356 => array ( 'title' => 'International PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-08-31-1', 'published' => '2015-08-31T11:33:03+02:00', 'updated' => '2015-08-31T11:33:03+02:00', 'finalTeaserDate' => '2015-10-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-08-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -20622,34 +20633,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world’s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born – the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the WebTechCon taking place at the same time.

    … read full article

    ', ), - 357 => + 357 => array ( 'title' => 'PHP 7.0.0 RC 1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-21-1', 'published' => '2015-08-21T10:10:00+01:00', 'updated' => '2015-08-21T10:10:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-21-1', 'rel' => 'via', @@ -20715,34 +20726,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 358 => + 358 => array ( 'title' => 'PHP 5.6.12 is available', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-4', 'published' => '2015-08-06T23:30:25-07:00', 'updated' => '2015-08-06T23:30:25-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-4', 'rel' => 'via', @@ -20771,34 +20782,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 359 => + 359 => array ( 'title' => 'PHP 5.5.28 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-3', 'published' => '2015-08-06T21:59:41-07:00', 'updated' => '2015-08-06T21:59:41-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-3', 'rel' => 'via', @@ -20836,34 +20847,34 @@ the upgrade PHP 5.5 users that need further bugfixes are encouraged to upgrade to PHP 5.6.

    … read full article

    ', ), - 360 => + 360 => array ( 'title' => 'PHP 5.4.44 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-2', 'published' => '2015-08-06T21:58:57-07:00', 'updated' => '2015-08-06T21:58:57-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-2', 'rel' => 'via', @@ -20894,34 +20905,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 361 => + 361 => array ( 'title' => 'PHP 7.0.0 Beta 3 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-1', 'published' => '2015-08-06T17:20:00+01:00', 'updated' => '2015-08-06T17:20:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-1', 'rel' => 'via', @@ -20987,34 +20998,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 362 => + 362 => array ( 'title' => 'PHP 7.0.0 Beta 2 Released', 'id' => 'http://php.net/archive/2015.php#id2015-07-24-1', 'published' => '2015-07-24T02:40:00+01:00', 'updated' => '2015-07-24T02:00:40+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-24-1', 'rel' => 'via', @@ -21080,34 +21091,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 363 => + 363 => array ( 'title' => 'PHP 7.0.0 Beta 1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-4', 'published' => '2015-07-10T23:30:00+01:00', 'updated' => '2015-07-10T23:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-10-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-10-4', 'rel' => 'via', @@ -21177,34 +21188,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 364 => + 364 => array ( 'title' => 'PHP 5.6.11 is available', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-3', 'published' => '2015-07-10T02:52:09-07:00', 'updated' => '2015-07-10T02:52:09-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-10-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-10-3', 'rel' => 'via', @@ -21232,34 +21243,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 365 => + 365 => array ( 'title' => 'PHP 5.5.27 released', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-2', 'published' => '2015-07-10T09:24:47+00:00', 'updated' => '2015-07-10T09:24:47+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-10-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-10-2', 'rel' => 'via', @@ -21297,34 +21308,34 @@ the upgrade PHP 5.5 users that need further bugfixes are encouraged to upgrade to PHP 5.6.

    … read full article

    ', ), - 366 => + 366 => array ( 'title' => 'PHP 5.4.43 Released', 'id' => 'http://php.net/archive/2015.php#id2015-07-09-1', 'published' => '2015-07-09T21:09:50-07:00', 'updated' => '2015-07-09T21:09:50-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-09-1', 'rel' => 'via', @@ -21356,37 +21367,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 367 => + 367 => array ( 'title' => 'Pacific Northwest PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-1', 'published' => '2015-07-10T02:00:00+01:00', 'updated' => '2015-07-10T02:00:00+01:00', 'finalTeaserDate' => '2015-07-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-07-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.pnwphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.pnwphp.com/', @@ -21413,37 +21424,37 @@ the upgrade For tickets and more information: http://www.pnwphp.com/.

    ', ), - 368 => + 368 => array ( 'title' => 'PHPKonf İstanbul PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-07-04-1', 'published' => '2015-07-04T10:00:00+00:00', 'updated' => '2015-07-04T10:00:00+00:00', 'finalTeaserDate' => '2015-07-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-07-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpkonf.org/', @@ -21458,37 +21469,37 @@ the upgrade ', 'intro' => '

    İstanbul PHP User Group is proud to announce that the PHPKonf 2015! We\'ll host some of the best speakers, awesome talk topics, latest technologies, and up to date news in PHP. Join us on 25/26 of July for a two day, double track conference in ancient city Istanbul! We’ve something for every level of PHP developer with 2 keynotes, 29 talks and 2 panels.

    http://phpkonf.org
    ', ), - 369 => + 369 => array ( 'title' => 'php[world] 2015 Schedule Announced', 'id' => 'http://php.net/archive/2015.php#id2015-06-29-1', 'published' => '2015-06-29T15:58:16+00:00', 'updated' => '2015-06-29T15:58:16+00:00', 'finalTeaserDate' => '2015-11-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -21510,37 +21521,37 @@ the upgrade ', 'intro' => '

    The team at php[architect] is excited to announce the schedule for php[world] 2015! As always our conference is designed to bring all the various PHP communities together in one place to learn from each other. We will have separate tracks for PHP, Drupal, WordPress, Magento, Joomla!, Zend Framework, Symfony, Laravel, and CakePHP.

    This year we are expanding the conference to 6 concurrent sessions so that we can cover even more material. Join us for this very unique event from November 16th through November 20th.

    … read full article

    ', ), - 370 => + 370 => array ( 'title' => 'AFUP ForumPHP 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-27-1', 'published' => '2015-06-27T09:03:03+00:00', 'updated' => '2015-06-27T09:03:03+00:00', 'finalTeaserDate' => '2015-08-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.afup.org/pages/forumphp2015/appel-a-conferenciers-en.php', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.afup.org/pages/forumphp2015/appel-a-conferenciers-en.php', @@ -21560,34 +21571,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Come and join us at Forum PHP 2015, our annual conference gathering all PHP and Open Source communities, pros and PHP lovers.

    This year, the event will be held at Beffroi de Montrouge, on November, 23rd and 24th.

    … read full article

    ', ), - 371 => + 371 => array ( 'title' => 'PHP 7.0.0 Alpha 2 Released', 'id' => 'http://php.net/archive/2015.php#id2015-06-25-1', 'published' => '2015-06-25T12:00:00+01:00', 'updated' => '2015-06-25T12:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-25-1', 'rel' => 'via', @@ -21654,42 +21665,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 372 => + 372 => array ( 'title' => 'Madison PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-23-1', 'published' => '2015-06-23T11:00:00+00:00', 'updated' => '2015-06-23T11:00:00+00:00', 'finalTeaserDate' => '2015-11-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.madisonphpconference.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.madisonphpconference.com/', @@ -21704,37 +21715,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Join us on Saturday, November 14th, 2015 for a one day, three track conference in Madison, Wisconsin, USA that focuses on PHP and related web technologies. This event is organized by Madison PHP and is designed to offer something to attendees at all skill levels. It will be a day of networking, learning, sharing, and great fun!

    Our Call for Papers is open until August 4th, 2015:
    http://cfp.madisonphpconference.com/

    ', ), - 373 => + 373 => array ( 'title' => 'ZendCon 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-19-1', 'published' => '2015-06-19T10:00:00+00:00', 'updated' => '2015-06-19T10:00:00+00:00', 'finalTeaserDate' => '2015-10-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.zendcon.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.zendcon.com/', @@ -21751,34 +21762,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Announcing ZendCon 2015, the global PHP conference, happening at the exciting Hard Rock Hotel & Casino in Las Vegas, Nevada. It will start with a full day of tutorials on October 19th and then continue with inspirational keynotes and breakout sessions through the 22nd.

    The conference will feature many of the top developers and speakers in the PHP space to deliver dedicated tracks centered around Zend Framework, Symfony, Laravel, WordPress, Joomla!, Drupal, and Magento. We will also host additional tracks for PHP best practices, PHP architecture, IBM i, and PHP 7.

    … read full article

    ', ), - 374 => + 374 => array ( 'title' => 'PHP 5.4.42 Released', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-4', 'published' => '2015-06-11T20:43:05-07:00', 'updated' => '2015-06-11T20:43:05-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-4', 'rel' => 'via', @@ -21809,34 +21820,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 375 => + 375 => array ( 'title' => 'PHP 7.0.0 Alpha 1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-3', 'published' => '2015-06-11T23:24:10+01:00', 'updated' => '2015-06-12T17:07:56+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-3', 'rel' => 'via', @@ -21898,34 +21909,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 376 => + 376 => array ( 'title' => 'PHP 5.6.10 is available', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-2', 'published' => '2015-06-11T11:34:42-07:00', 'updated' => '2015-06-11T11:34:42-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-2', 'rel' => 'via', @@ -21956,34 +21967,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 377 => + 377 => array ( 'title' => 'PHP 5.5.26 is available', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-1', 'published' => '2015-06-11T15:39:10+00:00', 'updated' => '2015-06-11T15:39:10+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-1', 'rel' => 'via', @@ -22014,42 +22025,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 378 => + 378 => array ( 'title' => 'PHP Barcelona Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-01-1', 'published' => '2015-06-01T23:45:28-04:00', 'updated' => '2015-06-01T23:45:28-04:00', 'finalTeaserDate' => '2015-10-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.phpconference.es/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.phpconference.es/', @@ -22064,37 +22075,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    The PHP Barcelona User Group is proud to announce that the PHP Barcelona Conference is back! This year we are preparing a bigger event in the heart of a glamorous city. 2 days, 30th - 31st October, one track with amazing and stunning talks.

    We opened the call for papers that will end on the 30th September 2015 — 2015.phpconference.es/call-for-papers. So what are you waiting for, go, submit your paper! We offer attractive packages to speakers who want to enroll! Come and join us! :)

    ', ), - 379 => + 379 => array ( 'title' => 'php[world] 2015 Call for Speakers', 'id' => 'http://php.net/archive/2015.php#id2015-05-27-3', 'published' => '2015-05-27T23:48:38-04:00', 'updated' => '2015-05-27T23:48:38-04:00', 'finalTeaserDate' => '2015-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-27-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/call-for-papers/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/call-for-papers/', @@ -22112,42 +22123,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    The team at php[architect] is once again running php[world]. The original conference designed to bring the whole world of PHP together in one place. With dedicated tracks for WordPress, Drupal, Joomla!, Magneto, Laravel, Symfony, Zend Framework, and CakePHP!

    The Call for Speakers is currently open, but only until June 6th, so get those submissions in soon! We are interested in sessions on any framework, application, or general PHP topics. We especially want to see sessions that are designed to encourage people to mingle and be exposed to other PHP communities that they don\'t interact with on a daily basis.

    … read full article

    ', ), - 380 => + 380 => array ( 'title' => 'PHP Craft Johannesburg', 'id' => 'http://php.net/archive/2015.php#id2015-05-27-2', 'published' => '2015-05-27T23:45:28-04:00', 'updated' => '2015-05-27T23:45:28-04:00', 'finalTeaserDate' => '2015-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-27-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpsouthafrica.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpsouthafrica.com/', @@ -22163,37 +22174,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Our 2nd Annual PHP Craft Conference will be hosted in Johannesburg South Africa. 2 Days of fantastic content presented by local and international speakers.

    Our Call for Papers now open and will close 17th June 2015. We hope to see some great topics covering fancy new tools and/or best Practice — www.phpsouthafrica.com

    ', ), - 381 => + 381 => array ( 'title' => 'China PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-05-27-1', 'published' => '2015-05-27T23:36:31-04:00', 'updated' => '2015-05-27T23:36:31-04:00', 'finalTeaserDate' => '2015-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpconchina.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com/', @@ -22215,37 +22226,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    China PHP Conference 2015

    3rd Annual China PHP Conference – June 6 to 7, Beijing and July 11 to 12, Shanghai

    … read full article

    ', ), - 382 => + 382 => array ( 'title' => 'DevConf 2015', 'id' => 'http://www.php.net/archive/2015.php#id2015-05-25-1', 'published' => '2015-05-25T16:57:52+00:00', 'updated' => '2015-05-25T16:57:52+00:00', 'finalTeaserDate' => '2015-06-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://devconf.ru', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devconf.ru', @@ -22285,34 +22296,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in combining several language-specific conferences under one roof.

    … read full article

    ', ), - 383 => + 383 => array ( 'title' => 'PHP 5.6.9 is available', 'id' => 'http://php.net/archive/2015.php#id2015-05-14-3', 'published' => '2015-05-14T23:20:57-07:00', 'updated' => '2015-05-14T23:20:57-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-05-14-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-05-14-3', 'rel' => 'via', @@ -22341,34 +22352,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 384 => + 384 => array ( 'title' => 'PHP 5.4.41 Released', 'id' => 'http://php.net/archive/2015.php#id2015-05-14-2', 'published' => '2015-05-14T21:35:21-07:00', 'updated' => '2015-05-14T21:35:21-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-05-14-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-05-14-2', 'rel' => 'via', @@ -22397,34 +22408,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 385 => + 385 => array ( 'title' => 'PHP 5.5.25 is available', 'id' => 'http://php.net/archive/2015.php#id2015-05-14-1', 'published' => '2015-05-14T17:06:54+00:00', 'updated' => '2015-05-14T17:06:54+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-05-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-05-14-1', 'rel' => 'via', @@ -22453,42 +22464,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 386 => + 386 => array ( 'title' => '2015 Northeast PHP Conference', 'id' => 'http://php.net/archive/2015.php#id2015-05-06-1', 'published' => '2015-05-06T00:32:35+02:00', 'updated' => '2015-07-23T21:13:00+02:00', 'finalTeaserDate' => '2015-08-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.northeastphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.northeastphp.org', @@ -22517,34 +22528,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in We’ve got all the rockstars from our industry in one place just for you! With talks ranging from starting to work in the industry to expanding your skill set as an experienced user; we have sessions for everyone!

    … read full article

    ', ), - 387 => + 387 => array ( 'title' => 'PHP 5.4.40 Released', 'id' => 'http://php.net/archive/2015.php#id2015-04-16-3', 'published' => '2015-04-16T13:43:02-07:00', 'updated' => '2015-04-16T13:43:02-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-04-16-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-04-16-3', 'rel' => 'via', @@ -22575,34 +22586,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 388 => + 388 => array ( 'title' => 'PHP 5.6.8 is available', 'id' => 'http://php.net/archive/2015.php#id2015-04-16-2', 'published' => '2015-04-16T10:50:30-07:00', 'updated' => '2015-04-16T10:50:30-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-04-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-04-16-2', 'rel' => 'via', @@ -22631,34 +22642,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 389 => + 389 => array ( 'title' => 'PHP 5.5.24 is available', 'id' => 'http://php.net/archive/2015.php#id2015-04-16-1', 'published' => '2015-04-16T15:25:09+00:00', 'updated' => '2015-04-16T15:25:09+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-04-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-04-16-1', 'rel' => 'via', @@ -22687,34 +22698,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 390 => + 390 => array ( 'title' => 'PHP 5.6.7 is available', 'id' => 'http://php.net/archive/2015.php#id2015-03-20-2', 'published' => '2015-03-20T04:21:46-07:00', 'updated' => '2015-03-20T04:21:46-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-03-20-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-03-20-2', 'rel' => 'via', @@ -22744,34 +22755,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 391 => + 391 => array ( 'title' => 'PHP 5.5.23 is available', 'id' => 'http://php.net/archive/2015.php#id2015-03-20-1', 'published' => '2015-03-20T09:11:37+00:00', 'updated' => '2015-03-20T09:11:37+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-03-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-03-20-1', 'rel' => 'via', @@ -22800,34 +22811,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 392 => + 392 => array ( 'title' => 'PHP 5.4.39 Released', 'id' => 'http://php.net/archive/2015.php#id2015-03-19-2', 'published' => '2015-03-19T23:01:55-07:00', 'updated' => '2015-03-19T23:01:55-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-03-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-03-19-2', 'rel' => 'via', @@ -22856,37 +22867,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 393 => + 393 => array ( 'title' => 'PHP Tour Luxembourg', 'id' => 'http://php.net/archive/2015.php#id2015-03-19-1', 'published' => '2015-03-19T15:33:43+00:00', 'updated' => '2015-03-19T15:33:43+00:00', 'finalTeaserDate' => '2015-05-12', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-03-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.afup.org/pages/phptourluxembourg2015/apropos-en.php', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.afup.org/pages/phptourluxembourg2015/apropos-en.php', @@ -22906,37 +22917,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    For the first time, the PHP Tour will take place outside of France: AFUP and the locale branch of Luxembourg will welcome you at the Abbey of Neumünster, a historical venue in the heart of Luxembourg City. English speakers? Come and join us, many talks will be proposed in english.

    AFUP, The French PHP usergroup, is glad to announce that the fourth edition of the PHP Tour will be held in Luxembourg City on May 12 & 13, 2015. PHP experts will share their advanced knowledge and experience with developers, decision makers and companies, during keynotes, sessions and workshops.

    … read full article

    ', ), - 394 => + 394 => array ( 'title' => 'Italian phpDay 2015', 'id' => 'http://php.net/archive/2015.php#id2015-03-18-1', 'published' => '2015-03-18T19:55:00+01:00', 'updated' => '2015-03-18T19:55:00+01:00', 'finalTeaserDate' => '2015-05-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-03-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.phpday.it/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.phpday.it/', @@ -22951,42 +22962,42 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    The Italian PHP user group GrUSP is pleased to announce the 12th edition of the Italian phpDay (http://www.phpday.it/) conference, taking place on May 15th and 16th, 2015 in Verona.

    phpDay is the first historic Italian conference dedicated solely to PHP development, technologies and management. It is aimed to IT managers, developers and innovators. Each year it renews the opportunity to link to new business partners.

    ', ), - 395 => + 395 => array ( 'title' => 'Bulgaria PHP Conference', 'id' => 'http://php.net/archive/2015.php#id2015-02-25-3', 'published' => '2015-02-25T12:53:27+01:00', 'updated' => '2015-02-25T12:53:27+01:00', 'finalTeaserDate' => '2015-03-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-02-25-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://bgphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://bgphp.org/', @@ -23003,37 +23014,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    The Bulgaria PHP Conference is an event organized by the local PHP user group: @bgphp. This is going to be our first conference but nonetheless we have attracted a number of prominent international and local speakers (http://www.bgphp.org/confirmed-speakers/). We expect 450 attendees from Bulgaria, the Balkans region, Europe, and other parts of the world. We welcome a diverse crowd of PHP developers who want to learn new things and share their passion for code.

    Bulgaria is one of the fastest growing IT regions. A lot of international companies outsource their IT departments in the country. The PHP community is large and actively travels abroad to attend international summits of all kinds. The official language of the conference is English and all talks and sessions will be in English. Attendees and sponsors will be pleasantly surprised by the affordability of all services in the country. Hotel accommodation, food and even the tickets for the event are quite affordable, given the high quality of service you’ll get in return.

    … read full article

    ', ), - 396 => + 396 => array ( 'title' => 'Lone Star PHP 2015', 'id' => 'http://php.net/archive/2015.php#id2015-02-25-2', 'published' => '2015-02-25T11:21:44+01:00', 'updated' => '2015-02-25T11:21:44+01:00', 'finalTeaserDate' => '2015-04-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-02-25-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://lonestarphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://lonestarphp.com/', @@ -23048,37 +23059,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    Welcome back to Lone Star PHP for another great year! We\'re in our fifth year and we\'re making things better all the time. This year\'s event will provide all of the great PHP speakers and content you\'ve come to expect from Lone Star PHP. This year we are introducing the Training Day. Training Day will provide a more hands-on experience for all that attend. There\'ll be plenty of time to spend with the local PHP community too through after-parties and other events.

    Thanks to the generous support of our sponsors year after year we\'re able to present this conference at minimal cost to our attendees, opening up attendance to many who could not normally justify the cost of similar events. We couldn\'t do it without their support and we hope that this year you\'ll help us share this experience with the community. With the amazing feedback we receive each year from our attendees and sponsors we continue to improve our event to keep our place as the best php community conference around.

    ', ), - 397 => + 397 => array ( 'title' => 'SOLIDay 2015', 'id' => 'http://php.net/archive/2015.php#id2015-02-25-1', 'published' => '2015-02-25T11:14:34+01:00', 'updated' => '2015-02-25T11:14:34+01:00', 'finalTeaserDate' => '2015-05-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-02-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://soliday.phpsrbija.rs/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://soliday.phpsrbija.rs/', @@ -23093,34 +23104,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    Conference about software architecture, best programming practices and design patterns.

    PHP Serbia will be organizing a big event on May 30, 2015 – SOLIDay conference. Nicely coined name, huh? It will be one of the major events in the region, on which you will have opportunity to attend presentations of world-famous PHP experts and professionals, on topic of OOP principles, design patterns, software architecture, frameworks and similar. Whether you are a novice, intermediate or advanced developer, join us on this conference and expand, improve or simply refresh your knowledge of this important topic.

    ', ), - 398 => + 398 => array ( 'title' => 'PHP 5.6.6 is available', 'id' => 'http://php.net/archive/2015.php#id2015-02-19-2', 'published' => '2015-02-19T12:43:52-08:00', 'updated' => '2015-02-19T12:43:52-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-02-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-02-19-2', 'rel' => 'via', @@ -23149,34 +23160,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 399 => + 399 => array ( 'title' => 'PHP 5.5.22 is available', 'id' => 'http://php.net/archive/2015.php#id2015-02-19-1', 'published' => '2015-02-19T12:45:19+00:00', 'updated' => '2015-02-19T12:45:19+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-02-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-02-19-1', 'rel' => 'via', @@ -23205,34 +23216,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 400 => + 400 => array ( 'title' => 'PHP 5.4.38 Released', 'id' => 'http://php.net/archive/2015.php#id2015-02-18-1', 'published' => '2015-02-18T23:56:18-08:00', 'updated' => '2015-02-18T23:56:18-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-02-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-02-18-1', 'rel' => 'via', @@ -23261,34 +23272,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 401 => + 401 => array ( 'title' => 'PHP 5.4.37 Released', 'id' => 'http://php.net/archive/2015.php#id2015-01-22-3', 'published' => '2015-01-22T20:20:52-08:00', 'updated' => '2015-01-22T20:20:52-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-01-22-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-01-22-3', 'rel' => 'via', @@ -23320,34 +23331,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 402 => + 402 => array ( 'title' => 'PHP 5.6.5 is available', 'id' => 'http://php.net/archive/2015.php#id2015-01-22-2', 'published' => '2015-01-22T12:31:59-08:00', 'updated' => '2015-01-22T12:31:59-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-01-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-01-22-2', 'rel' => 'via', @@ -23376,34 +23387,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 403 => + 403 => array ( 'title' => 'PHP 5.5.21 is released', 'id' => 'http://php.net/archive/2015.php#id2015-01-22-1', 'published' => '2015-01-22T16:04:04+00:00', 'updated' => '2015-01-22T16:04:04+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-01-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-01-22-1', 'rel' => 'via', @@ -23432,37 +23443,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 404 => + 404 => array ( 'title' => 'Dutch PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-01-16-1', 'published' => '2015-01-16T10:07:58+01:00', 'updated' => '2015-01-16T10:07:58+01:00', 'finalTeaserDate' => '2015-02-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-01-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconference.nl/', @@ -23477,37 +23488,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    We\'re back! And we are glad to announce that we’ll be organising the 9th edition of the Dutch PHP Conference, which will be held in Amsterdam from 25th to 27th June 2015. Thursday 25th will be the tutorial day and June 26th and 27th will be the main conference days.

    Speakers, the call for papers is now open! We’re looking for high-quality, technical sessions from speakers who can cover advanced topics and keep our demanding audience inspired. The call for papers is open until February 22nd. You can send in as many proposals as you like, so start submitting your talks.

    … read full article

    ', ), - 405 => + 405 => array ( 'title' => 'Midwest PHP 2015', 'id' => 'http://php.net/archive/2015.php#id2015-01-10-1', 'published' => '2015-01-10T05:09:25+01:00', 'updated' => '2015-01-10T05:09:25+01:00', 'finalTeaserDate' => '2015-03-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-01-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.midwestphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.midwestphp.org/', @@ -23520,37 +23531,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    Midwest PHP is taking over beautiful Minneapolis once again this year, bringing leading experts from around the world to talk about APIs, Frameworks, Security, Version Control, Testing, Continuous Integration, and much more! Midwest PHP welcomes developers of all levels and encourages diversity - we promise there will be something for everyone. So join us March 14-15th for great talks, great people, and of course great food! Register today at http://www.midwestphp.org

    ', ), - 406 => + 406 => array ( 'title' => 'ConFoo 2015 - Become a Master', 'id' => 'http://php.net/archive/2015.php#id2015-01-06-1', 'published' => '2015-01-06T18:15:50+00:00', 'updated' => '2015-01-06T18:15:50+00:00', 'finalTeaserDate' => '2015-02-18', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-01-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://confoo.ca', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://confoo.ca', @@ -23569,4 +23580,4 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    We want you to learn as much as possible during the three days of conference. We do that through quality and variety of both content and speakers, as well as creating a fun and friendly atmosphere.

    We have presentations for any level, from beginner to advanced. You\'ll learn about the backend and frontend, web and mobile, information systems and games, hard and soft skills, as well as many related topics.

    … read full article

    ', ), -); \ No newline at end of file +); diff --git a/var/.gitignore b/var/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/var/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From 0e9ff97f0ef4642d98e6e7956c5fb06596af3d95 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 10:50:51 +0100 Subject: [PATCH 33/76] Pause the sponsors on hover. Import scripts using the header. --- index.php | 14 +++++++------- js/landing.js | 9 +++++++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/index.php b/index.php index c8667b3204..85de267387 100644 --- a/index.php +++ b/index.php @@ -241,8 +241,6 @@ function drawBranchInfo(array $release): void ob_start(); ?>
    - -
    @@ -382,13 +380,14 @@ function drawBranchInfo(array $release): void
    The PHP Foundation is grateful for our many sponsors, including:
    - -
    @@ -492,7 +491,8 @@ function drawBranchInfo(array $release): void ], ], - 'css' => ['home.css'], + 'css' => ['home.css', 'landing.css'], + 'js_files' => ['js/landing.js'], 'include_section' => false, ], ); diff --git a/js/landing.js b/js/landing.js index c57dd02572..a50b4f7d8e 100644 --- a/js/landing.js +++ b/js/landing.js @@ -1,4 +1,4 @@ -function initInfiniteScroll(parentContainer, speed = 50) { +function initInfiniteScroll(parentContainer, speed = 50, setupArgs = {}) { if (!parentContainer) return null; // 1. Extract the fixed width from the data-width attribute @@ -67,7 +67,7 @@ function initInfiniteScroll(parentContainer, speed = 50) { track.style.animation = `${animationName} ${duration}s linear infinite`; // 10. Return playback and cleanup controls - return { + const tools = { pause: () => track.style.animationPlayState = 'paused', play: () => track.style.animationPlayState = 'running', destroy: () => { @@ -77,4 +77,9 @@ function initInfiniteScroll(parentContainer, speed = 50) { styleNode.remove(); } }; + + parentContainer.addEventListener('mouseenter', () => tools.pause()); + parentContainer.addEventListener('mouseleave', () => tools.play()); + + return tools; } From 31ebc9cde8ee06be5d9a7ae7c3044108c8490499 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 11:00:47 +0100 Subject: [PATCH 34/76] Drop back to 8.2 --- .docker/Dockerfile | 20 ++++++++++---------- Dockerfile | 5 +++++ index.php | 8 +++++++- 3 files changed, 22 insertions(+), 11 deletions(-) create mode 100644 Dockerfile diff --git a/.docker/Dockerfile b/.docker/Dockerfile index ccb97e4fe5..d7ec5ca69e 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -1,18 +1,18 @@ -FROM php:8.5-cli +FROM php:8.2-cli ARG DEBIAN_FRONTEND=noninteractive # 2. Install system dependencies and Node.js/npm # We are using Node.js 22 LTS as a reliable, modern standard -RUN apt-get update && apt-get install -y \ - curl gnupg \ - && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ - && apt-get install -y nodejs \ - && apt-get clean \ - && rm -rf /var/lib/lists/* - -# 3. Globally install TypeScript and the Socket Dev CLI -RUN npm install -g typescript socket tsx esbuild +#RUN apt-get update && apt-get install -y \ +# curl gnupg \ +# && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ +# && apt-get install -y nodejs \ +# && apt-get clean \ +# && rm -rf /var/lib/lists/* +# +## 3. Globally install TypeScript and the Socket Dev CLI +#RUN npm install -g typescript socket tsx esbuild # 4. Set up a default working directory (Optional) WORKDIR /app diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..e1cfb514fc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM php:8.2-cli + +RUN mkdir /app +WORKDIR /app +COPY . . diff --git a/index.php b/index.php index 85de267387..3487fd5ef9 100644 --- a/index.php +++ b/index.php @@ -189,7 +189,13 @@ function drawBranchInfo(array $release): void continue; } - $link = array_find($conf['link'], fn(array $conf) => ($conf['rel'] ?? 'alternate') === 'alternate'); + $link = null; + foreach ($conf['link'] ?? [] as $rel) { + if (($conf['rel'] ?? 'alternate') === 'alternate') { + $link = $rel; + } + } + if ($link) { $link = str_replace('https://www.php.net', '', $link['href']); } From 5055370356a9e8ba0f62c7b88804a0ad7b862e07 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 14:13:30 +0100 Subject: [PATCH 35/76] Major theming tweaks; break out reusable styles into their own component --- index.php | 178 ++++++++++++++++++++-------------------- styles/landing.css | 187 +++++-------------------------------------- styles/theme-gst.css | 175 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 280 insertions(+), 260 deletions(-) create mode 100644 styles/theme-gst.css diff --git a/index.php b/index.php index 3487fd5ef9..f4ff933f90 100644 --- a/index.php +++ b/index.php @@ -101,7 +101,6 @@ function buildNavCard(NavCardItem $card, array $config = []): string { $config = [ - 'cn_card' => 'landing-cc-card', 'cn_card_content' => 'landing-cc-card-content', 'cn_card_img' => 'landing-cc-card-img', ...$config, @@ -109,7 +108,7 @@ function buildNavCard(NavCardItem $card, array $config = []): string ob_start(); ?> - id) { ?>id="id) ?>" href="href) ?>" class="vgrid-card landing-card-ovh "> + id) { ?>id="id) ?>" href="href) ?>" class="gst-cgrid-card landing-card-ovh gst-navcard">
    image) { ?>Graphic of <?= $card->title ?> @@ -246,9 +245,9 @@ function drawBranchInfo(array $release): void ob_start(); ?> -
    -
    -
    +
    +
    +
    @@ -277,97 +276,95 @@ function drawBranchInfo(array $release): void
    -
    -
    -
    'landing-cc-card landing-cc-card-alt']) ?>
    -
    -
    +
    -
    -
    -
    - - - - - - - - - - - -
    -
    -
    - php -
    - -
    +
    +
    + -
    -
    -
    +
    +
    +
    PHP Foundation Logo
    -
    +
    The PHP Foundation is a collective of people and organizations, united in the mission to ensure the long-term prosperity of the PHP language.

    @@ -400,32 +397,31 @@ function drawBranchInfo(array $release): void
    - -
    -
    +
    +
    Community
    -
    'landing-cc-card landing-cc-card-grey']); ?>
    +
    Events & Conferences
    -
    'landing-cc-card landing-cc-card-grey']) ?>
    +
    -
    -
    -
    +
    +
    +
    Composer Logo
    -
    +
    PHP has one of the largest collections of open-source libraries in the world.

    @@ -442,11 +438,11 @@ function drawBranchInfo(array $release): void
    -
    -
    +
    +
    Language Development
    -
    - 'landing-cc-card landing-cc-card-grey']) ?> +
    +
    @@ -463,8 +459,8 @@ function drawBranchInfo(array $release): void const isLightMode = ; // window.matchMedia('(prefers-color-scheme: light)').matches if (isLightMode) { - layout.classList.remove('landing-dark'); - layout.classList.add('landing-light'); + layout.classList.remove('gst-dark'); + layout.classList.add('gst-light'); } })(); @@ -497,7 +493,7 @@ function drawBranchInfo(array $release): void ], ], - 'css' => ['home.css', 'landing.css'], + 'css' => ['home.css', 'theme-gst.css', 'landing.css'], 'js_files' => ['js/landing.js'], 'include_section' => false, ], diff --git a/styles/landing.css b/styles/landing.css index dfdb3f338d..302f339726 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -1,53 +1,11 @@ -.landing { - --card-radius: 0.5em; - background-image: url(/images/bg-texture-00.svg); -} - -.landing-dark { - --promotion-bg: #252525; - --promotion-color: whitesmoke; - --promotion-border: #333333; - --section-title: whitesmoke; - --leader-color: whitesmoke; - - --card1-bg: #444444; - --card1-color: whitesmoke; - - --card2-bg: #303030; - --card2-color: whitesmoke; -} - -.landing-light { - background-color: #e5e9f3; - --promotion-bg: #cccccc; - --promotion-color: #333333; - --promotion-border: #cacaca; - --section-title: #222222; - --leader-color: #222222; - - --card1-bg: #eeeeee; - --card1-color: #222222; - - --card2-bg: #b7b7b7; - --card2-color: #222222; -} - -.landing-hdr-outer { - color: var(--leader-color); -} - -.landing-hdr { - margin-bottom: 3em; -} - -.landing-hero-cards-container { - background-color: var(--promotion-bg); -} /* * HEADER * Contains the giant PHP and our 3x lead elements */ +.landing-hdr { + margin-bottom: 3em; +} @media (min-width: 901px) { .landing-hdr { @@ -88,60 +46,25 @@ } /* - * VCARDS - * The primary card layout used on the page; automatically collapses into a denser list on mobile. + * LAST RELEASE HERO CARD */ -.vgrid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); - gap: 1.5em; - margin: 0; - padding: 0; - list-style-type: none; -} - -.vgrid-card { - border-radius: var(--card-radius); - overflow: hidden; -} - -@media (max-width: 700px) { - .vgrid { - gap: 0; - overflow: hidden; - border-radius: var(--card-radius); - animation: ease; - } - - .vgrid-card { - border-radius: 0 !important; - overflow: hidden; - } - - .vgrid-card + .vgrid-card { - margin-top: 3px; - } -} - -.landing-ver-hero-card { +.landing-lrel-card { display: flex; flex-direction: column; box-sizing: border-box; } -.landing-ver-hero-card-inner { +.landing-lrel-card-inner { display: flex; flex-direction: column; flex-grow: 1; overflow: hidden; - background: var(--card1-bg); - color: var(--card1-color); gap: 1em; padding: 1em; } -.landing-ver-hero-img { +.landing-lrel-img { width: 100%; height: 60px; object-fit: contain; @@ -150,7 +73,7 @@ margin-bottom: 1em; } -.landing-light .landing-ver-hero-img { +.gst-light .landing-lrel-img { background: #aaaaaa; padding: 1em; border-radius: var(--card-radius); @@ -158,37 +81,37 @@ } @media (max-width: 400px) { - .landing-ver-hero-img { + .landing-lrel-img { height: 40px; margin-top: 0.25em; margin-bottom: 0.25em; } } -.landing-ver-hero-featuring { +.landing-lrel-featuring { font-weight: bold; margin-bottom: 0.25em; } -.landing-ver-hero-latest { +.landing-lrel-latest { display: flex; flex-direction: column; gap: 0.5em; text-align: center; } -.landing-ver-hero-features { +.landing-lrel-features { margin-bottom: 0; } -.landing-ver-hero-label { +.landing-lrel-label { display: inline-flex; padding: 0.25em 0.75em; border-radius: 0.5em; font-size: 90%; } -.landing-ver-hero-buttons { +.landing-lrel-buttons { display: flex; flex-direction: column; gap: 0.25em; @@ -199,47 +122,6 @@ * CARD LAYOUT */ -.landing-cc-card { - all: unset; - /*background: #3c4053;*/ - border-radius: var(--card-radius); - display: flex; - flex-direction: row; - flex-grow: 1; - gap: 0.25em; - overflow: hidden; - cursor: pointer; - color: white; - outline: 3px transparent; - transition: all 0.2s ease-in-out; -} - -.landing-cc-card:hover { - outline: 3px solid #53576d; - /*background: #53576d;*/ - overflow: hidden;; - transition: all 0.2s ease-in-out; -} - -.landing-cc-card:focus { - outline: 3px solid #eeeeee; -} - -.landing-cc-card-alt { - background: var(--card2-bg) !important; - color: var(--card2-color) !important; -} - -.landing-cc-card-grey { - background: var(--card1-bg) !important; - color: var(--card1-color) !important; -} - -.landing-cc-card-grey:hover { - background: var(--card1-bg) !important; - outline: 3px solid #555555; -} - .landing-cc-card-img { height: 80px; width: 80px; @@ -248,7 +130,6 @@ } .landing-cc-card-content { - /*color: #eeeeee;*/ padding: 1em; flex: 1 1; display: flex; @@ -343,24 +224,17 @@ * Full-width banner intended to promote ecosystem components as a single element */ -.landing-eco-full-container { - background: var(--promotion-bg); - border-top: 3px solid var(--promotion-border); - border-bottom: 3px solid var(--promotion-border); - color: var(--promotion-color); -} - -.landing-eco-banner { +.gst-primary-banner { display: flex; flex-direction: row; gap: 2em; align-items: center; padding: 0 5em; - color: var(--promotion-color); + color: var(--primary-container-color); } @media (max-width: 700px) { - .landing-eco-banner { + .gst-primary-banner { flex-direction: column; padding: 0; gap: 1em; @@ -368,7 +242,7 @@ } } -.landing-eco-text { +.gst-primary-text { font-size: 24px; line-height: 1.3; } @@ -377,21 +251,6 @@ * SECTIONS */ -.landing-section { - width: min(1440px, 100%); - margin: 0 auto; - display: flex; - flex-direction: column; - gap: 2em; - padding: 5em 1em; - box-sizing: border-box; -} - -@media (max-width: 600px) { - .landing-section { - padding: 1em 1em; - } -} .landing-section-header { font-size: 18px; @@ -483,16 +342,6 @@ outline: 4px solid #818cf8; } -.hero-cards-bg { - transition: all 0.5s ease-in-out; - position: absolute; - inset: 0; - opacity: 0; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} - #foundation-sponsor-carousel { mask-image: linear-gradient( to right, diff --git a/styles/theme-gst.css b/styles/theme-gst.css new file mode 100644 index 0000000000..4eb67909d4 --- /dev/null +++ b/styles/theme-gst.css @@ -0,0 +1,175 @@ +:root { + --card-radius: 0.5em; +} + +.gst-dark { + background-image: url(/images/bg-texture-00.svg); + + /* spec: main content area, solid background */ + --primary-container-bg: #252525; + --primary-container-color: whitesmoke; + --primary-container-border: #333333; + --primary-card-bg: #303030; + --primary-card-color: whitesmoke; + --primary-card-border: #222222; + + /* spec: secondary content area, allows background to show through, not for main text */ + --secondary-container-bg: transparent; + --secondary-container-color: whitesmoke; + --secondary-card-bg: #444444; + --secondary-card-color: whitesmoke; + --secondary-card-border: #222222; + + --section-title: whitesmoke; + --leader-color: whitesmoke; +} + +.gst-light { + background-color: #fafafa; + background-image: url(/images/bg-texture-light.png); + background-repeat: repeat; + + /* spec: main content area, solid background */ + --primary-container-bg: #ffffff; + --primary-container-color: #333333; + --primary-container-border: #eeeeee; + --primary-card-bg: #fcfcfc; + --primary-card-color: #222222; + --primary-card-border: #f7f7f7; + + /* spec: secondary content area, allows background to show through, not for main text */ + --secondary-card-bg: #ffffff; + --secondary-card-color: #222222; + --secondary-card-border: #eeeeee; + + --section-title: #222222; + --leader-color: #222222; +} + +/* + * Global Theming + */ + +.gst-primary { + --card-bg: var(--primary-card-bg); + --card-color: var(--primary-card-color); + --card-border: var(--primary-card-border); +} + +.gst-primary-container { + position: relative; + background: var(--primary-container-bg); + border-top: 1px solid var(--primary-container-border); + border-bottom: 1px solid var(--primary-container-border); + color: var(--primary-container-color); +} + +.gst-secondary { + --card-bg: var(--secondary-card-bg); + --card-color: var(--secondary-card-color); + --card-border: var(--secondary-card-border); +} + +.gst-secondary-container { + position: relative; +} + +.gst-content, .gst-content-p { + width: min(1440px, 100%); + margin: 0 auto; + box-sizing: border-box; +} + +.gst-content-p { + padding: 5em 1em; +} + +@media (max-width: 600px) { + .gst-content-p { + padding: 1em 1em; + } +} + +/* + * Clickable Navigation Card + */ + +.gst-navcard { + all: unset; + border-radius: var(--card-radius); + display: flex; + flex-direction: row; + flex-grow: 1; + gap: 0.25em; + overflow: hidden; + cursor: pointer; + background: var(--card-bg); + color: var(--card-color) !important; + outline: 3px transparent; + transition: all 0.2s ease-in-out; + border: 1px solid var(--card-border); +} + +.gst-navcard:hover { + outline: 3px solid #53576d; + overflow: hidden;; + transition: all 0.2s ease-in-out; +} + +.gst-navcad:focus { + outline: 3px solid #eeeeee; +} + +/* + * Basic Card + */ + +.gst-card { + border-radius: var(--card-radius); + display: flex; + flex-direction: column; + flex-grow: 1; + overflow: hidden; + background: var(--card-bg); + color: var(--card-color); + border: 1px solid var(--card-border); +} + +/* + * CGRID + * + * Displays in an auto-repeating grid, however, when the space is too small, it significantly collapses + * the gap and changes the separation from such large padding, into a vertical list + */ + +.gst-cgrid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); + gap: 1.5em; + margin: 0; + padding: 0; + list-style-type: none; +} + +.gst-cgrid-card { + border-radius: var(--card-radius); + overflow: hidden; +} + +@media (max-width: 700px) { + .gst-cgrid { + gap: 0; + overflow: hidden; + border-radius: var(--card-radius); + animation: ease; + } + + .gst-cgrid-card { + border-radius: 0 !important; + overflow: hidden; + } + + .gst-cgrid-card + .gst-cgrid-card { + margin-top: 3px; + } +} From 59c8cb8bbd6575cedb54dc81e0c7428e409a236c Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 14:15:13 +0100 Subject: [PATCH 36/76] Include light and dark images --- images/bg-texture-dark.png | Bin 0 -> 118 bytes images/bg-texture-light.png | Bin 0 -> 118 bytes styles/theme-gst.css | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 images/bg-texture-dark.png create mode 100644 images/bg-texture-light.png diff --git a/images/bg-texture-dark.png b/images/bg-texture-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..76f3b3e915d41a48f0ce556186cb537f06978310 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVg?31We{epSZZGe6x8r^ zaSYLznEdDee|u)jhEAPWp2bohn*w_)7`W{`a~uK#1?TKIxlNGaVl+!_{ie@ Date: Fri, 5 Jun 2026 14:42:02 +0100 Subject: [PATCH 37/76] slightly moar pad, slightly moar elephpant --- index.php | 2 +- styles/landing.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index f4ff933f90..f503e2f214 100644 --- a/index.php +++ b/index.php @@ -252,7 +252,7 @@ function drawBranchInfo(array $release): void
    - PHP Elephant logo + PHP Elephant logo
    diff --git a/styles/landing.css b/styles/landing.css index 302f339726..8be462ea8e 100644 --- a/styles/landing.css +++ b/styles/landing.css @@ -130,7 +130,7 @@ } .landing-cc-card-content { - padding: 1em; + padding: 1.5em; flex: 1 1; display: flex; flex-direction: column; From b8913da9f8d6c706cf8655ff5a30d62286755669 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 19:50:54 +0100 Subject: [PATCH 38/76] Prep work for structured data version pages. --- bin/build-upgrade-examples.php | 149 ++++++++++++++++++ include/releases/8.2/01-readonly-classes.txt | 39 +++++ include/releases/8.2/02-dnf-types.txt | 37 +++++ .../releases/8.2/03-allow-null-false-true.txt | 31 ++++ include/releases/8.2/04-random-extension.txt | 54 +++++++ include/releases/8.2/05-const-in-traits.txt | 29 ++++ .../8.2/06-deprecate-dynamic-properties.txt | 46 ++++++ include/releases/8.2/template | 21 +++ .../releases/8.3/01-typed-class-constants.txt | 34 ++++ .../releases/8.3/02-dynamic-class-const.txt | 29 ++++ include/releases/8.3/03-override-attr.txt | 63 ++++++++ .../releases/8.3/04-deep-cloning-readonly.txt | 59 +++++++ include/releases/8.3/05-json-validate.txt | 31 ++++ include/releases/8.3/06-randomizer-bytes.txt | 59 +++++++ include/releases/8.3/07-randomizer-float.txt | 59 +++++++ include/releases/8.3/08-cli-linter.txt | 27 ++++ include/releases/8.3/template | 21 +++ include/releases/8.4/01-property-hooks.txt | 105 ++++++++++++ .../releases/8.4/02-asymmetric-visibility.txt | 64 ++++++++ include/releases/8.4/03-depreciated.txt | 61 +++++++ include/releases/8.4/04-ext-dom-html5.txt | 56 +++++++ include/releases/8.4/05-object-api.txt | 41 +++++ include/releases/8.4/06-array-functions.txt | 37 +++++ .../releases/8.4/07-pdo-driver-subclass.txt | 47 ++++++ include/releases/8.4/08-new-priority.txt | 41 +++++ include/releases/8.4/template | 21 +++ include/releases/8.5/01-uri-extension.txt | 38 +++++ include/releases/8.5/02-pipe-operator.txt | 47 ++++++ include/releases/8.5/03-clone-with.txt | 61 +++++++ include/releases/8.5/04-nodiscard.txt | 41 +++++ .../8.5/05-closure-first-class-constants.txt | 50 ++++++ include/releases/8.5/06-array-first-last.txt | 28 ++++ .../8.5/07-persistent-curl-handles.txt | 46 ++++++ releases/8.5/release.inc | 2 + sandbox/code-upgrades.php | 68 ++++++++ 35 files changed, 1642 insertions(+) create mode 100644 bin/build-upgrade-examples.php create mode 100644 include/releases/8.2/01-readonly-classes.txt create mode 100644 include/releases/8.2/02-dnf-types.txt create mode 100644 include/releases/8.2/03-allow-null-false-true.txt create mode 100644 include/releases/8.2/04-random-extension.txt create mode 100644 include/releases/8.2/05-const-in-traits.txt create mode 100644 include/releases/8.2/06-deprecate-dynamic-properties.txt create mode 100644 include/releases/8.2/template create mode 100644 include/releases/8.3/01-typed-class-constants.txt create mode 100644 include/releases/8.3/02-dynamic-class-const.txt create mode 100644 include/releases/8.3/03-override-attr.txt create mode 100644 include/releases/8.3/04-deep-cloning-readonly.txt create mode 100644 include/releases/8.3/05-json-validate.txt create mode 100644 include/releases/8.3/06-randomizer-bytes.txt create mode 100644 include/releases/8.3/07-randomizer-float.txt create mode 100644 include/releases/8.3/08-cli-linter.txt create mode 100644 include/releases/8.3/template create mode 100644 include/releases/8.4/01-property-hooks.txt create mode 100644 include/releases/8.4/02-asymmetric-visibility.txt create mode 100644 include/releases/8.4/03-depreciated.txt create mode 100644 include/releases/8.4/04-ext-dom-html5.txt create mode 100644 include/releases/8.4/05-object-api.txt create mode 100644 include/releases/8.4/06-array-functions.txt create mode 100644 include/releases/8.4/07-pdo-driver-subclass.txt create mode 100644 include/releases/8.4/08-new-priority.txt create mode 100644 include/releases/8.4/template create mode 100644 include/releases/8.5/01-uri-extension.txt create mode 100644 include/releases/8.5/02-pipe-operator.txt create mode 100644 include/releases/8.5/03-clone-with.txt create mode 100644 include/releases/8.5/04-nodiscard.txt create mode 100644 include/releases/8.5/05-closure-first-class-constants.txt create mode 100644 include/releases/8.5/06-array-first-last.txt create mode 100644 include/releases/8.5/07-persistent-curl-handles.txt create mode 100644 sandbox/code-upgrades.php diff --git a/bin/build-upgrade-examples.php b/bin/build-upgrade-examples.php new file mode 100644 index 0000000000..510809f2a9 --- /dev/null +++ b/bin/build-upgrade-examples.php @@ -0,0 +1,149 @@ +> $headers + */ + public function __construct( + public array $headers, + public string $body, + ) { + } + + public function getSingleHeader(string $key, mixed $default = null): mixed + { + return $this->headers[$key][0] ?? $default; + } + + public function getHeader(string $key): array + { + return $this->headers[$key] ?? []; + } +} + +/** + * @return array + */ +function readSegmentedFile(string $path): array +{ + $contents = file_get_contents($path) + ?: throw new ValueError('Unable to read ' . $path); + $contents = str_replace("\r\n", "\n", $contents); + $contentSections = explode('==============================================', $contents); + $grouped = []; + + foreach($contentSections as $section) { + $blocks = explode("\n\n", trim($section), 2); + + /* like HTTP, blocks are a set of key-values, followed by a double newline, followed by */ + $headers = []; + foreach (explode("\n", $blocks[0]) as $headerLine) { + $parts = explode(":", trim($headerLine), 2); + if (count($parts) !== 2) { + continue; + } + + [$id, $value] = $parts; + $headers[$id][] = trim($value); + } + + $body = $blocks[1] ?? ''; + $grouped[$headers['type'][0] ?? '_'][] = new Segment( + headers: $headers, + body: $body, + ); + } + + return $grouped; +} + +/** + * @param array $segments + */ +function parseSegments(array $segments): array +{ + $meta = $segments['meta'][0] ?? throw new ValueError('Segment "meta" cannot be found'); + + $examples = []; + foreach ($segments['example'] ?? [] as $example) { + $label = $example->getSingleHeader('label', ''); + $target = $example->getSingleHeader('target', ''); + +// printf("%s, %s\n", var_export($label, true), var_export($target, true)); + + if ($label === '' && $target !== '') { + $targetFilters = [ + '<=' => '%s or Before', + '>=' => '%s or Later', + '<' => 'Before %s', + '>' => 'After %s', + ]; + + foreach ($targetFilters as $searchKey => $englishKey) { + if (str_starts_with($target, $searchKey)) { + $label = str_replace('%s', 'PHP ' . substr($target, strlen($searchKey)), $englishKey); + break; + } + } + } + + if ($label === '' && $target !== '') { + $label = $target . ' or Later'; + } + + if ($label === '') { + $label = 'Example'; + } + + $examples[] = [ + 'label' => $label, + 'target' => $target, + 'format' => $example->getSingleHeader('format', 'php'), + 'body' => $example->body, + ]; + } + + return [ + 'title' => $meta->getSingleHeader('title', 'Example'), + 'about' => ($segments['about'][0] ?? null)?->body, + 'rfs' => $meta->getHeader('rfc'), + 'examples' => $examples, + ]; +} + +function parseDirectory(string $path): array +{ + $examples = []; + + foreach (scandir($path) as $fileName) { + if (!str_ends_with($fileName, '.txt')) { + continue; + } + + $examples[] = parseSegments(readSegmentedFile($path . '/' . $fileName)); + } + + return $examples; +} + +$baseDir = __DIR__ . '/../include/releases'; +$releaseComparisons = []; + +foreach (scandir($baseDir) as $fileName) { + $dirName = $baseDir . '/' . $fileName; + if ($fileName[0] === '.') { + continue; + } + + $releaseComparisons[$fileName] = parseDirectory($dirName); +} + +file_put_contents( + __DIR__ . '/../include/releases-comparisons.inc', + 'title = $title; + $this->status = $status; + } +} + +============================================== +type: example +format: php +target: >=8.2 + +readonly class BlogData +{ + public string $title; + + public Status $status; + + public function __construct(string $title, Status $status) + { + $this->title = $title; + $this->status = $status; + } +} diff --git a/include/releases/8.2/02-dnf-types.txt b/include/releases/8.2/02-dnf-types.txt new file mode 100644 index 0000000000..7ac261491a --- /dev/null +++ b/include/releases/8.2/02-dnf-types.txt @@ -0,0 +1,37 @@ +type: meta +title: Disjunctive Normal Form (DNF) Types +rfc: https://wiki.php.net/rfc/dnf_types + +============================================== +type: about +format: md +lang: en + +DNF types allow us to combine union and intersection types, following a strict rule: +when combining union and intersection types, intersection types must be grouped with brackets. + +============================================== +type: example +format: php +target: <8.2 + +class Foo { + public function bar(mixed $entity) { + if ((($entity instanceof A) && ($entity instanceof B)) || ($entity === null)) { + return $entity; + } + + throw new Exception('Invalid entity'); + } +} + +============================================== +type: example +format: php +target: >=8.2 + +class Foo { + public function bar((A&B)|null $entity) { + return $entity; + } +} diff --git a/include/releases/8.2/03-allow-null-false-true.txt b/include/releases/8.2/03-allow-null-false-true.txt new file mode 100644 index 0000000000..6a57393368 --- /dev/null +++ b/include/releases/8.2/03-allow-null-false-true.txt @@ -0,0 +1,31 @@ +type: meta +title: Allow null, false, and true as stand-alone types +rfc: https://wiki.php.net/rfc/null-false-standalone-types + +============================================== +type: example +format: php +target: <8.2 + +class Falsy +{ + public function almostFalse(): bool { /* ... */ *} + + public function almostTrue(): bool { /* ... */ *} + + public function almostNull(): string|null { /* ... */ *} +} + +============================================== +type: example +format: php +target: >=8.2 + +class Falsy +{ + public function alwaysFalse(): false { /* ... */ *} + + public function alwaysTrue(): true { /* ... */ *} + + public function alwaysNull(): null { /* ... */ *} +} diff --git a/include/releases/8.2/04-random-extension.txt b/include/releases/8.2/04-random-extension.txt new file mode 100644 index 0000000000..c5d2ebdcdf --- /dev/null +++ b/include/releases/8.2/04-random-extension.txt @@ -0,0 +1,54 @@ +type: meta +title: New "Random" extension +rfc: https://wiki.php.net/rfc/rng_extension +rfc: https://wiki.php.net/rfc/random_extension_improvement + +============================================== +type: about +format: md +lang: en + +The "random" extension provides a new object-oriented API to random number generation. +Instead of relying on a globally seeded random number generator (RNG) using the Mersenne Twister +algorithm the object-oriented API provides several classes ("Engine"s) providing access to modern +algorithms that store their state within objects to allow for multiple independent seedable sequences. + +The \Random\Randomizer class provides a high-level interface to use the engine's randomness to +generate a random integer, to shuffle an array or string, to select random array keys and more. + + +============================================== +type: example +format: php +target: >=8.2 + +use Random\Engine\Xoshiro256StarStar; +use Random\Randomizer; + +$blueprintRng = new Xoshiro256StarStar( + hash('sha256', "Example seed that is converted to a 256 Bit string via SHA-256", true) +); + +$fibers = []; +for ($i = 0; $i < 8; $i++) { + $fiberRng = clone $blueprintRng; + // Xoshiro256**'s 'jump()' method moves the blueprint ahead 2**128 steps, as if calling + // 'generate()' 2**128 times, giving the Fiber 2**128 unique values without needing to reseed. + $blueprintRng->jump(); + + $fibers[] = new Fiber(function () use ($fiberRng, $i): void { + $randomizer = new Randomizer($fiberRng); + + echo "{$i}: " . $randomizer->getInt(0, 100), PHP_EOL; + }); +} + +// The randomizer will use a CSPRNG by default. +$randomizer = new Randomizer(); + +// Even though the fibers execute in a random order, they will print the same value +// each time, because each has its own unique instance of the RNG. +$fibers = $randomizer->shuffleArray($fibers); +foreach ($fibers as $fiber) { + $fiber->start(); +} diff --git a/include/releases/8.2/05-const-in-traits.txt b/include/releases/8.2/05-const-in-traits.txt new file mode 100644 index 0000000000..e51897ed1f --- /dev/null +++ b/include/releases/8.2/05-const-in-traits.txt @@ -0,0 +1,29 @@ +type: meta +title: Constants in traits +rfc: https://wiki.php.net/rfc/constants_in_traits + +============================================== +type: about +format: md +lang: en + +You cannot access the constant through the name of the trait, but, you can +access the constant through the class that uses the trait. + +============================================== +type: example +format: php +target: >=8.2 + +trait Foo +{ + public const CONSTANT = 1; +} + +class Bar +{ + use Foo; +} + +var_dump(Bar::CONSTANT); // 1 +var_dump(Foo::CONSTANT); // Error diff --git a/include/releases/8.2/06-deprecate-dynamic-properties.txt b/include/releases/8.2/06-deprecate-dynamic-properties.txt new file mode 100644 index 0000000000..5af249675d --- /dev/null +++ b/include/releases/8.2/06-deprecate-dynamic-properties.txt @@ -0,0 +1,46 @@ +type: meta +title: Deprecate dynamic properties RFC Doc +rfc: https://wiki.php.net/rfc/deprecate_dynamic_properties + +============================================== +type: about +format: md +lang: en + +The creation of dynamic properties is deprecated to help avoid mistakes and typos, +unless the class opts in by using the #[\AllowDynamicProperties] attribute. +stdClass allows dynamic properties. + +Usage of the __get/__set magic methods is not affected by this change. + +============================================== +type: example +format: php +target: >=8.2 + +class User +{ + public $name; +} + +$user = new User(); +$user->last_name = 'Doe'; + +$user = new stdClass(); +$user->last_name = 'Doe'; + +============================================== +type: example +format: php +target: 8.2 + +class User +{ + public $name; +} + +$user = new User(); +$user->last_name = 'Doe'; // Deprecated notice + +$user = new stdClass(); +$user->last_name = 'Doe'; // Still allowed diff --git a/include/releases/8.2/template b/include/releases/8.2/template new file mode 100644 index 0000000000..202904f3da --- /dev/null +++ b/include/releases/8.2/template @@ -0,0 +1,21 @@ +type: meta +title: +rfc: + +============================================== +type: about +format: md +lang: en + + +============================================== +type: example +format: php +target: <8.2 + + +============================================== +type: example +format: php +target: 8.2 + diff --git a/include/releases/8.3/01-typed-class-constants.txt b/include/releases/8.3/01-typed-class-constants.txt new file mode 100644 index 0000000000..615ca28aea --- /dev/null +++ b/include/releases/8.3/01-typed-class-constants.txt @@ -0,0 +1,34 @@ +type: meta +title: Typed class constants RFC +rfc: https://wiki.php.net/rfc/typed_class_constants + +============================================== +type: example +format: php +target: <8.3 + +interface I { + // We may naively assume that the PHP constant is always a string. + const PHP = 'PHP 8.2'; +} + +class Foo implements I { + // But implementing classes may define it as an array. + const PHP = []; +} + +============================================== +type: example +format: php +target: >=8.3 + +interface I { + const string PHP = 'PHP 8.3'; +} + +class Foo implements I { + const string PHP = []; +} + +// Fatal error: Cannot use array as value for class constant +// Foo::PHP of type string diff --git a/include/releases/8.3/02-dynamic-class-const.txt b/include/releases/8.3/02-dynamic-class-const.txt new file mode 100644 index 0000000000..bc3098f478 --- /dev/null +++ b/include/releases/8.3/02-dynamic-class-const.txt @@ -0,0 +1,29 @@ +type: meta +title: Dynamic class constant fetch +rfc: https://wiki.php.net/rfc/dynamic_class_constant_fetch + +============================================== +type: example +format: php +target: <8.3 + +class Foo { + const PHP = 'PHP 8.2'; +} + +$searchableConstant = 'PHP'; + +var_dump(constant(Foo::class . "::{$searchableConstant}")); + +============================================== +type: example +format: php +target: >=8.3 + +class Foo { + const PHP = 'PHP 8.2'; +} + +$searchableConstant = 'PHP'; + +var_dump(constant(Foo::class . "::{$searchableConstant}")); diff --git a/include/releases/8.3/03-override-attr.txt b/include/releases/8.3/03-override-attr.txt new file mode 100644 index 0000000000..aca006d8c3 --- /dev/null +++ b/include/releases/8.3/03-override-attr.txt @@ -0,0 +1,63 @@ +type: meta +title: New #[\Override] attribute +rfc: https://wiki.php.net/rfc/marking_overriden_methods + +============================================== +type: about +format: md +lang: en + +By adding the #[\Override] attribute to a method, PHP will ensure that a +method with the same name exists in a parent class or in an implemented interface. + +Adding the attribute makes it clear that overriding a parent method is intentional +and simplifies refactoring, because the removal of an overridden parent method will +be detected. + + +============================================== +type: example +format: php +target: <8.3 + +use PHPUnit\Framework\TestCase; + +final class MyTest extends TestCase { + protected $logFile; + + protected function setUp(): void { + $this->logFile = fopen('/tmp/logfile', 'w'); + } + + protected function taerDown(): void { + fclose($this->logFile); + unlink('/tmp/logfile'); + } +} + +// The log file will never be removed, because the +// method name was mistyped (taerDown vs tearDown). + +============================================== +type: example +format: php +target: >=8.3 + +use PHPUnit\Framework\TestCase; + +final class MyTest extends TestCase { + protected $logFile; + + protected function setUp(): void { + $this->logFile = fopen('/tmp/logfile', 'w'); + } + + #[\Override] + protected function taerDown(): void { + fclose($this->logFile); + unlink('/tmp/logfile'); + } +} + +// Fatal error: MyTest::taerDown() has #[\Override] attribute, +// but no matching parent method exists diff --git a/include/releases/8.3/04-deep-cloning-readonly.txt b/include/releases/8.3/04-deep-cloning-readonly.txt new file mode 100644 index 0000000000..7d800289ca --- /dev/null +++ b/include/releases/8.3/04-deep-cloning-readonly.txt @@ -0,0 +1,59 @@ +type: meta +title: Deep-cloning of readonly properties +rfc: https://wiki.php.net/rfc/readonly_amendments + +============================================== +type: about +format: md +lang: en + +readonly properties may now be modified once within the magic __clone +method to enable deep-cloning of readonly properties. + +============================================== +type: example +format: php +target: <8.3 + +class PHP { + public string $version = '8.2'; +} + +readonly class Foo { + public function __construct( + public PHP $php + ) {} + + public function __clone(): void { + $this->php = clone $this->php; + } +} + +$instance = new Foo(new PHP()); +$cloned = clone $instance; + +// Fatal error: Cannot modify readonly property Foo::$php + +============================================== +type: example +format: php +target: >=8.3 + +class PHP { + public string $version = '8.2'; +} + +readonly class Foo { + public function __construct( + public PHP $php + ) {} + + public function __clone(): void { + $this->php = clone $this->php; + } +} + +$instance = new Foo(new PHP()); +$cloned = clone $instance; + +$cloned->php->version = '8.3'; diff --git a/include/releases/8.3/05-json-validate.txt b/include/releases/8.3/05-json-validate.txt new file mode 100644 index 0000000000..b7440b3fd7 --- /dev/null +++ b/include/releases/8.3/05-json-validate.txt @@ -0,0 +1,31 @@ +type: meta +title: New json_validate() function +rfc: https://wiki.php.net/rfc/json_validate + +============================================== +type: about +format: md +lang: en + +`json_validate()` allows to check if a string is syntactically valid JSON, +while being more efficient than `json_decode()`. + +============================================== +type: example +format: php +target: <8.3 + +function json_validate(string $string): bool { + json_decode($string); + + return json_last_error() === JSON_ERROR_NONE; +} + +var_dump(json_validate('{ "test": { "foo": "bar" } }')); // true + +============================================== +type: example +format: php +target: >=8.3 + +var_dump(json_validate('{ "test": { "foo": "bar" } }')); // true diff --git a/include/releases/8.3/06-randomizer-bytes.txt b/include/releases/8.3/06-randomizer-bytes.txt new file mode 100644 index 0000000000..794c3096f5 --- /dev/null +++ b/include/releases/8.3/06-randomizer-bytes.txt @@ -0,0 +1,59 @@ +type: meta +title: New Randomizer::getBytesFromString() method +rfc: https://wiki.php.net/rfc/randomizer_additions#getbytesfromstring + +============================================== +type: about +format: md +lang: en + +The Random Extension that was added in PHP 8.2 was extended by a new method to generate random +strings consisting of specific bytes only. This method allows the developer to easily generate random +identifiers, such as domain names, and numeric strings of arbitrary length. + +============================================== +type: example +format: php +target: <8.3 + +// This function needs to be manually implemented. +function getBytesFromString(string $string, int $length) { + $stringLength = strlen($string); + + $result = ''; + for ($i = 0; $i < $length; $i++) { + // random_int is not seedable for testing, but secure. + $result .= $string[random_int(0, $stringLength - 1)]; + } + + return $result; +} + +$randomDomain = sprintf( + "%s.example.com", + getBytesFromString( + 'abcdefghijklmnopqrstuvwxyz0123456789', + 16, + ), +); + +echo $randomDomain; + +============================================== +type: example +format: php +target: >=8.3 + +// A \Random\Engine may be passed for seeding, +// the default is the secure engine. +$randomizer = new \Random\Randomizer(); + +$randomDomain = sprintf( + "%s.example.com", + $randomizer->getBytesFromString( + 'abcdefghijklmnopqrstuvwxyz0123456789', + 16, + ), +); + +echo $randomDomain; diff --git a/include/releases/8.3/07-randomizer-float.txt b/include/releases/8.3/07-randomizer-float.txt new file mode 100644 index 0000000000..1112e21065 --- /dev/null +++ b/include/releases/8.3/07-randomizer-float.txt @@ -0,0 +1,59 @@ +type: meta +title: New Randomizer::getFloat() and Randomizer::nextFloat() methods +rfc: https://wiki.php.net/rfc/randomizer_additions#getfloat + +============================================== +type: about +format: md +lang: en + +Due to the limited precision and implicit rounding of floating point numbers, +generating an unbiased float lying within a specific interval is non-trivial +and the commonly used userland solutions may generate biased results or numbers +outside the requested range. + +The Randomizer was also extended with two methods to generate random floats in an +unbiased fashion. The Randomizer::getFloat() method uses the γ-section algorithm +that was published in Drawing Random Floating-Point Numbers from an Interval. +Frédéric Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022. + +============================================== +type: example +format: plain +target: <8.3 + +// Returns a random float between $min and $max, both including. +function getFloat(float $min, float $max) { + // This algorithm is biased for specific inputs and may + // return values outside the given range. This is impossible + // to work around in userland. + $offset = random_int(0, PHP_INT_MAX) / PHP_INT_MAX; + + return $offset * ($max - $min) + $min; +} + +$temperature = getFloat(-89.2, 56.7); + +$chanceForTrue = 0.1; +// getFloat(0, 1) might return the upper bound, i.e. 1, +// introducing a small bias. +$myBoolean = getFloat(0, 1) < $chanceForTrue; + +============================================== +type: example +format: php +target: >=8.3 + +$randomizer = new \Random\Randomizer(); + +$temperature = $randomizer->getFloat( + -89.2, + 56.7, + \Random\IntervalBoundary::ClosedClosed, +); + +$chanceForTrue = 0.1; +// Randomizer::nextFloat() is equivalent to +// Randomizer::getFloat(0, 1, \Random\IntervalBoundary::ClosedOpen). +// The upper bound, i.e. 1, will not be returned. +$myBoolean = $randomizer->nextFloat() < $chanceForTrue; diff --git a/include/releases/8.3/08-cli-linter.txt b/include/releases/8.3/08-cli-linter.txt new file mode 100644 index 0000000000..0bf386a7da --- /dev/null +++ b/include/releases/8.3/08-cli-linter.txt @@ -0,0 +1,27 @@ +type: meta +title: Command line linter supports multiple files +rfc: https://github.com/php/php-src/issues/10024 + +============================================== +type: about +format: md +lang: en + +The command line linter now accepts variadic input for filenames to lint + +============================================== +type: example +format: plain +target: <8.3 + +php -l foo.php bar.php +No syntax errors detected in foo.php + +============================================== +type: example +format: plain +target: >=8.3 + +php -l foo.php bar.php +No syntax errors detected in foo.php +No syntax errors detected in bar.php diff --git a/include/releases/8.3/template b/include/releases/8.3/template new file mode 100644 index 0000000000..ad57c7a413 --- /dev/null +++ b/include/releases/8.3/template @@ -0,0 +1,21 @@ +type: meta +title: +rfc: + +============================================== +type: about +format: md +lang: en + + +============================================== +type: example +format: php +target: <8.3 + + +============================================== +type: example +format: php +target: 8.3 + diff --git a/include/releases/8.4/01-property-hooks.txt b/include/releases/8.4/01-property-hooks.txt new file mode 100644 index 0000000000..026cbb1c94 --- /dev/null +++ b/include/releases/8.4/01-property-hooks.txt @@ -0,0 +1,105 @@ +type: meta +title: Property Hooks +rfc: https://wiki.php.net/rfc/property-hooks + +============================================== +type: about +format: md +lang: en + +Property hooks provide support for computed properties that can natively be understood by IDEs +and static analysis tools, without needing to write docblock comments that might go out of sync. + +Furthermore, they allow reliable pre- or post-processing of values, without needing to check +whether a matching getter or setter exists in the class. + + +============================================== +type: example +format: php +target: <8.4 + +class Locale +{ + private string $languageCode; + private string $countryCode; + + public function __construct(string $languageCode, string $countryCode) + { + $this->setLanguageCode($languageCode); + $this->setCountryCode($countryCode); + } + + public function getLanguageCode(): string + { + return $this->languageCode; + } + + public function setLanguageCode(string $languageCode): void + { + $this->languageCode = $languageCode; + } + + public function getCountryCode(): string + { + return $this->countryCode; + } + + public function setCountryCode(string $countryCode): void + { + $this->countryCode = strtoupper($countryCode); + } + + public function setCombinedCode(string $combinedCode): void + { + [$languageCode, $countryCode] = explode('_', $combinedCode, 2); + + $this->setLanguageCode($languageCode); + $this->setCountryCode($countryCode); + } + + public function getCombinedCode(): string + { + return \sprintf("%s_%s", $this->languageCode, $this->countryCode); + } +} + +$brazilianPortuguese = new Locale('pt', 'br'); +var_dump($brazilianPortuguese->getCountryCode()); // BR +var_dump($brazilianPortuguese->getCombinedCode()); // pt_BR + +============================================== +type: example +format: php +target: >=8.4 + +PHP 8.4 +class Locale +{ + public string $languageCode; + + public string $countryCode + { + set (string $countryCode) { + $this->countryCode = strtoupper($countryCode); + } + } + + public string $combinedCode + { + get => \sprintf("%s_%s", $this->languageCode, $this->countryCode); + set (string $value) { + [$this->languageCode, $this->countryCode] = explode('_', $value, 2); + } + } + + public function __construct(string $languageCode, string $countryCode) + { + $this->languageCode = $languageCode; + $this->countryCode = $countryCode; + } +} + +$brazilianPortuguese = new Locale('pt', 'br'); +var_dump($brazilianPortuguese->countryCode); // BR +var_dump($brazilianPortuguese->combinedCode); // pt_BR diff --git a/include/releases/8.4/02-asymmetric-visibility.txt b/include/releases/8.4/02-asymmetric-visibility.txt new file mode 100644 index 0000000000..f8aa1fdc34 --- /dev/null +++ b/include/releases/8.4/02-asymmetric-visibility.txt @@ -0,0 +1,64 @@ +type: meta +title: Asymmetric Visibility +rfc: https://wiki.php.net/rfc/asymmetric-visibility-v2 + +============================================== +type: about +format: md +lang: en + +The scope to write to a property may now be controlled independently +of the scope to read the property, reducing the need for boilerplate +getter methods to expose a property’s value without allowing modification +from the outside of a class. + +============================================== +type: example +format: php +target: <8.4 + +class PhpVersion +{ + /** + * @deprecated 8.3 use PhpVersion::getVersion() instead + */ + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return '8.3'; + } +} + +$phpVersion = new PhpVersion(); +// No indication that the method is deprecated. +echo $phpVersion->getPhpVersion(); + +============================================== +type: example +format: php +target: >=8.4 + +class PhpVersion +{ + #[\Deprecated( + message: "use PhpVersion::getVersion() instead", + since: "8.4", + )] + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return '8.4'; + } +} + +$phpVersion = new PhpVersion(); +// Deprecated: Method PhpVersion::getPhpVersion() is deprecated since 8.4, use PhpVersion::getVersion() instead +echo $phpVersion->getPhpVersion(); diff --git a/include/releases/8.4/03-depreciated.txt b/include/releases/8.4/03-depreciated.txt new file mode 100644 index 0000000000..b93e596a15 --- /dev/null +++ b/include/releases/8.4/03-depreciated.txt @@ -0,0 +1,61 @@ +type: meta +title: #[\Depreciated] Attribute + +============================================== +type: about +format: md +lang: en + +The new `#[\Deprecated]` attribute makes PHP’s existing deprecation mechanism available to +user-defined functions, methods, and class constants. + +============================================== +type: example +format: php +target: <8.4 + +class PhpVersion +{ + /** + * @deprecated 8.3 use PhpVersion::getVersion() instead + */ + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return '8.3'; + } +} + +$phpVersion = new PhpVersion(); +// No indication that the method is deprecated. +echo $phpVersion->getPhpVersion(); + +============================================== +type: example +format: php +target: >=8.4 + +class PhpVersion +{ + #[\Deprecated( + message: "use PhpVersion::getVersion() instead", + since: "8.4", + )] + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return '8.4'; + } +} + +$phpVersion = new PhpVersion(); +// Deprecated: Method PhpVersion::getPhpVersion() is deprecated since 8.4, use PhpVersion::getVersion() instead +echo $phpVersion->getPhpVersion(); diff --git a/include/releases/8.4/04-ext-dom-html5.txt b/include/releases/8.4/04-ext-dom-html5.txt new file mode 100644 index 0000000000..5895d9d27d --- /dev/null +++ b/include/releases/8.4/04-ext-dom-html5.txt @@ -0,0 +1,56 @@ +type: meta +title: New ext-dom features and HTML5 support +rfc: https://wiki.php.net/rfc/dom_additions_84 +rfc: https://wiki.php.net/rfc/domdocument_html5_parser + +============================================== +type: about +format: md +lang: en + +New DOM API that includes standards-compliant support for parsing HTML5 documents, +fixes several long-standing compliance bugs in the behavior of the DOM functionality, +and adds several functions to make working with documents more convenient. + +The new DOM API is available within the Dom namespace. Documents using the new DOM API +can be created using the Dom\HTMLDocument and Dom\XMLDocument classes. + + +============================================== +type: example +format: php +target: <8.4 + +$dom = new DOMDocument(); +$dom->loadHTML( + <<<'HTML' +
    +
    PHP 8.4 is a feature-rich release!
    + +
    + HTML, + LIBXML_NOERROR, +); + +$xpath = new DOMXPath($dom); +$node = $xpath->query(".//main/article[not(following-sibling::*)]")[0]; +$classes = explode(" ", $node->className); // Simplified +var_dump(in_array("featured", $classes)); // bool(true) + +============================================== +type: example +format: php +target: >=8.4 + +$dom = Dom\HTMLDocument::createFromString( + <<<'HTML' +
    +
    PHP 8.4 is a feature-rich release!
    + +
    + HTML, + LIBXML_NOERROR, +); + +$node = $dom->querySelector('main > article:last-child'); +var_dump($node->classList->contains("featured")); // bool(true) diff --git a/include/releases/8.4/05-object-api.txt b/include/releases/8.4/05-object-api.txt new file mode 100644 index 0000000000..b62a7420fd --- /dev/null +++ b/include/releases/8.4/05-object-api.txt @@ -0,0 +1,41 @@ +type: meta +title: Object API for BCMath +rfc: https://wiki.php.net/rfc/support_object_type_in_bcmath + +============================================== +type: about +format: md +lang: en + +New BcMath\Number object enables object-oriented usage and standard +mathematical operators when working with arbitrary precision numbers. + +These objects are immutable and implement the Stringable interface, +so they can be used in string contexts like echo $num. + +============================================== +type: example +format: php +target: <8.4 + +$num1 = '0.12345'; +$num2 = '2'; +$result = bcadd($num1, $num2, 5); + +echo $result; // '2.12345' +var_dump(bccomp($num1, $num2) > 0); // false + + +============================================== +type: example +format: php +target: >=8.4 + +use BcMath\Number; + +$num1 = new Number('0.12345'); +$num2 = new Number('2'); +$result = $num1 + $num2; + +echo $result; // '2.12345' +var_dump($num1 > $num2); // false diff --git a/include/releases/8.4/06-array-functions.txt b/include/releases/8.4/06-array-functions.txt new file mode 100644 index 0000000000..86d49b4290 --- /dev/null +++ b/include/releases/8.4/06-array-functions.txt @@ -0,0 +1,37 @@ +type: meta +title: New array_*() functions +rfc: https://wiki.php.net/rfc/array_find + +============================================== +type: about +format: md +lang: en + +New functions `array_find()`, `array_find_key()`, `array_any()`, and `array_all()` are available. + +============================================== +type: example +format: php +target: <8.4 + +$animal = null; +foreach (['dog', 'cat', 'cow', 'duck', 'goose'] as $value) { + if (str_starts_with($value, 'c')) { + $animal = $value; + break; + } +} + +var_dump($animal); // string(3) "cat" + +============================================== +type: example +format: php +target: >=8.4 + +$animal = array_find( + ['dog', 'cat', 'cow', 'duck', 'goose'], + static fn(string $value): bool => str_starts_with($value, 'c'), +); + +var_dump($animal); // string(3) "cat" diff --git a/include/releases/8.4/07-pdo-driver-subclass.txt b/include/releases/8.4/07-pdo-driver-subclass.txt new file mode 100644 index 0000000000..931907d328 --- /dev/null +++ b/include/releases/8.4/07-pdo-driver-subclass.txt @@ -0,0 +1,47 @@ +type: meta +title: PDO driver specific subclasses +rfc: https://wiki.php.net/rfc/pdo_driver_specific_subclasses + +============================================== +type: about +format: md +lang: en + +New subclasses `Pdo\Dblib`, `Pdo\Firebird`, `Pdo\MySql`, `Pdo\Odbc`, +`Pdo\Pgsql`, and `Pdo\Sqlite` of PDO are available. + +============================================== +type: example +format: php +target: <8.4 + +$connection = new PDO( + 'sqlite:foo.db', + $username, + $password, +); // object(PDO) + +$connection->sqliteCreateFunction( + 'prepend_php', + static fn($string) => "PHP {$string}", +); + +$connection->query('SELECT prepend_php(version) FROM php'); + +============================================== +type: example +format: php +target: >=8.4 + +$connection = PDO::connect( + 'sqlite:foo.db', + $username, + $password, +); // object(Pdo\Sqlite) + +$connection->createFunction( + 'prepend_php', + static fn($string) => "PHP {$string}", +); // Does not exist on a mismatching driver. + +$connection->query('SELECT prepend_php(version) FROM php'); diff --git a/include/releases/8.4/08-new-priority.txt b/include/releases/8.4/08-new-priority.txt new file mode 100644 index 0000000000..a453a75727 --- /dev/null +++ b/include/releases/8.4/08-new-priority.txt @@ -0,0 +1,41 @@ +type: meta +title: new MyClass()->method() without parentheses +rfc: https://wiki.php.net/rfc/new_without_parentheses + +============================================== +type: about +format: md +lang: en + +Properties and methods of a newly instantiated object can now be accessed without +wrapping the new expression in parentheses. + +============================================== +type: example +format: php +target: >=8.4 + +class PhpVersion +{ + public function getVersion(): string + { + return 'PHP 8.3'; + } +} + +var_dump((new PhpVersion())->getVersion()); + +============================================== +type: example +format: php +target: 8.4 + +class PhpVersion +{ + public function getVersion(): string + { + return 'PHP 8.4'; + } +} + +var_dump(new PhpVersion()->getVersion()); diff --git a/include/releases/8.4/template b/include/releases/8.4/template new file mode 100644 index 0000000000..24686af3a0 --- /dev/null +++ b/include/releases/8.4/template @@ -0,0 +1,21 @@ +type: meta +title: +rfc: + +============================================== +type: about +format: md +lang: en + + +============================================== +type: example +format: php +target: <8.4 + + +============================================== +type: example +format: php +target: 8.4 + diff --git a/include/releases/8.5/01-uri-extension.txt b/include/releases/8.5/01-uri-extension.txt new file mode 100644 index 0000000000..e090072adb --- /dev/null +++ b/include/releases/8.5/01-uri-extension.txt @@ -0,0 +1,38 @@ +type: meta +title: URI Extension + +============================================== +type: about +format: md +lang: en + +The new always-available URI extension provides APIs to securely parse and modify +URIs and URLs according to the RFC 3986 and the WHATWG URL standards. + +Powered by the uriparser (RFC 3986) and Lexbor (WHATWG URL) libraries. + +Learn more about the backstory of this feature in The PHP Foundation’s blog. + + +============================================== +type: example +format: php +target: <8.4 + +$components = parse_url('https://php.net/releases/8.4/en.php'); + +var_dump($components['host']); +// string(7) "php.net" + + +============================================== +type: example +format: php +target: >=8.5 + +use Uri\Rfc3986\Uri; + +$uri = new Uri('https://php.net/releases/8.5/en.php'); + +var_dump($uri->getHost()); +// string(7) "php.net" diff --git a/include/releases/8.5/02-pipe-operator.txt b/include/releases/8.5/02-pipe-operator.txt new file mode 100644 index 0000000000..add5bf5c1d --- /dev/null +++ b/include/releases/8.5/02-pipe-operator.txt @@ -0,0 +1,47 @@ +type: meta +title: Pipe Operator + +============================================== +type: about +format: md +lang: en + +The pipe operator allows chaining function calls together without dealing with intermediary variables. +This enables replacing many "nested calls" with a chain that can be read forwards, rather than inside-out. + +Learn more about the backstory of this feature in The PHP Foundation’s blog. + +============================================== +type: example +format: php +target: 8.4 + +$title = ' PHP 8.5 Released '; + +$slug = strtolower( + str_replace('.', '', + str_replace(' ', '-', + trim($title) + ) + ) +); + +var_dump($slug); +// string(15) "php-85-released" + + +============================================== +type: example +format: php +target: >=8.5 + +$title = ' PHP 8.5 Released '; + +$slug = $title + |> trim(...) + |> (fn($str) => str_replace(' ', '-', $str)) + |> (fn($str) => str_replace('.', '', $str)) + |> strtolower(...); + +var_dump($slug); +// string(15) "php-85-released" diff --git a/include/releases/8.5/03-clone-with.txt b/include/releases/8.5/03-clone-with.txt new file mode 100644 index 0000000000..99026506aa --- /dev/null +++ b/include/releases/8.5/03-clone-with.txt @@ -0,0 +1,61 @@ +type: meta +title: Clone With +rfc: https://wiki.php.net/rfc/clone_with_v2 + +============================================== +type: about +format: md +lang: en + +It is now possible to update properties during object cloning by passing an associative array to the `clone()` function. +This enables straightforward support of the "with-er" pattern for `readonly` classes. + +============================================== +type: example +format: php + +readonly class Color +{ + public function __construct( + public int $red, + public int $green, + public int $blue, + public int $alpha = 255, + ) {} + + public function withAlpha(int $alpha): self + { + $values = get_object_vars($this); + $values['alpha'] = $alpha; + + return new self(...$values); + } +} + +$blue = new Color(79, 91, 147); +$transparentBlue = $blue->withAlpha(128); + +============================================== +type: example +format: php +target: >=8.5 + +readonly class Color +{ + public function __construct( + public int $red, + public int $green, + public int $blue, + public int $alpha = 255, + ) {} + + public function withAlpha(int $alpha): self + { + return clone($this, [ + 'alpha' => $alpha, + ]); + } +} + +$blue = new Color(79, 91, 147); +$transparentBlue = $blue->withAlpha(128); diff --git a/include/releases/8.5/04-nodiscard.txt b/include/releases/8.5/04-nodiscard.txt new file mode 100644 index 0000000000..165686d2a8 --- /dev/null +++ b/include/releases/8.5/04-nodiscard.txt @@ -0,0 +1,41 @@ +type: meta +title: #[\NoDiscard] Attribute +rfc: https://wiki.php.net/rfc/marking_return_value_as_important + +============================================== +type: about +format: md +lang: en + +By adding the #[\NoDiscard] attribute to a function, PHP will check whether the returned value +is consumed and emit a warning if it is not. This allows improving the safety of APIs where +the returned value is important, but it's easy to forget using the return value by accident. + +The associated (void) cast can be used to indicate that a value is intentionally unused. + +============================================== +type: example +format: php +target: <8.5 + +function getPhpVersion(): string +{ + return 'PHP 8.4'; +} + +getPhpVersion(); // No warning + +============================================== +type: example +format: php +target: >=8.5 + +#[\NoDiscard] +function getPhpVersion(): string +{ + return 'PHP 8.5'; +} + +getPhpVersion(); +// Warning: The return value of function getPhpVersion() should +// either be used or intentionally ignored by casting it as (void) diff --git a/include/releases/8.5/05-closure-first-class-constants.txt b/include/releases/8.5/05-closure-first-class-constants.txt new file mode 100644 index 0000000000..d124bacc0b --- /dev/null +++ b/include/releases/8.5/05-closure-first-class-constants.txt @@ -0,0 +1,50 @@ +type: meta +title: Closures and First-Class Callables in Constant Expressions +rfc: https://wiki.php.net/rfc/closures_in_const_expr +rfc: https://wiki.php.net/rfc/fcc_in_const_expr + +============================================== +type: about +format: md +lang: en + +Static closures and first-class callables can now be used in constant expressions. +This includes attribute parameters, default values of properties and parameters, and constants. + +============================================== +type: example +format: php +target: <8.5 + +final class PostsController +{ + #[AccessControl( + new Expression('request.user === post.getAuthor()'), + )] + public function update( + Request $request, + Post $post, + ): Response { + // ... + } +} +============================================== +type: example +format: php +target: >=8.5 + +final class PostsController +{ + #[AccessControl(static function ( + Request $request, + Post $post, + ): bool { + return $request->user === $post->getAuthor(); + })] + public function update( + Request $request, + Post $post, + ): Response { + // ... + } +} diff --git a/include/releases/8.5/06-array-first-last.txt b/include/releases/8.5/06-array-first-last.txt new file mode 100644 index 0000000000..b68b83d38e --- /dev/null +++ b/include/releases/8.5/06-array-first-last.txt @@ -0,0 +1,28 @@ +type: meta +title: Array First / Last Functions + +============================================== +type: about +format: md +lang: en + +The `array_first()` and `array_last()` functions return the first or last value of an array, respectively. +If the array is empty, null is returned (making it easy to compose with the ?? operator). + + +============================================== +type: example +format: php +target: <8.5 + +$lastEvent = $events === [] + ? null + : $events[array_key_last($events)]; + + +============================================== +type: example +format: php +target: >=8.5 + +$lastEvent = array_last($events); diff --git a/include/releases/8.5/07-persistent-curl-handles.txt b/include/releases/8.5/07-persistent-curl-handles.txt new file mode 100644 index 0000000000..0788884f91 --- /dev/null +++ b/include/releases/8.5/07-persistent-curl-handles.txt @@ -0,0 +1,46 @@ +type: meta +title: Persistent cURL Share Handles +rfc: https://wiki.php.net/rfc/curl_share_persistence +rfc: https://wiki.php.net/rfc/curl_share_persistence_improvement + +============================================== +type: about +format: md +lang: en + +By adding the #[\NoDiscard] attribute to a function, PHP will check whether the returned value +is consumed and emit a warning if it is not. This allows improving the safety of APIs where +the returned value is important, but it's easy to forget using the return value by accident. + +The associated (void) cast can be used to indicate that a value is intentionally unused. + +============================================== +type: example +format: php +target: <8.5 + + +$sh = curl_share_init(); +curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS); +curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT); + +$ch = curl_init('https://php.net/'); +curl_setopt($ch, CURLOPT_SHARE, $sh); + +curl_exec($ch); + +============================================== +type: example +format: php +target: >=8.5 + +$sh = curl_share_init_persistent([ + CURL_LOCK_DATA_DNS, + CURL_LOCK_DATA_CONNECT, +]); + +$ch = curl_init('https://php.net/'); +curl_setopt($ch, CURLOPT_SHARE, $sh); + +// This may now reuse the connection from an earlier SAPI request +curl_exec($ch); diff --git a/releases/8.5/release.inc b/releases/8.5/release.inc index 650ad6d05e..6cdd72eca6 100644 --- a/releases/8.5/release.inc +++ b/releases/8.5/release.inc @@ -14,6 +14,8 @@ $_SERVER['BASE_PAGE'] = 'releases/8.5/' . $lang . '.php'; include_once __DIR__ . '/common.php'; +$examples = (require __DIR__ . '/../../include/releases-comparisons.inc')['8.5'] ?? []; + common_header(message('common_header', $lang)); ?> diff --git a/sandbox/code-upgrades.php b/sandbox/code-upgrades.php new file mode 100644 index 0000000000..1d93082205 --- /dev/null +++ b/sandbox/code-upgrades.php @@ -0,0 +1,68 @@ + ['theme-gst.css'], 'include_section' => false]); + +?> + +
    +
    + $releaseExample) { ?> +

    +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    + +
    + +
    +
    + false]); From 5451bb93ce1c57952fc6c2b8ca8eed635efe21f8 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 20:01:50 +0100 Subject: [PATCH 39/76] Restore DO NOT MODIFY file warning to files I ... modified --- include/pregen-confs.inc | 8 ++++++++ include/pregen-news.inc | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/include/pregen-confs.inc b/include/pregen-confs.inc index 4e2ca1019c..8053db7297 100644 --- a/include/pregen-confs.inc +++ b/include/pregen-confs.inc @@ -1,5 +1,13 @@ Date: Fri, 5 Jun 2026 20:02:45 +0100 Subject: [PATCH 40/76] Prebuilt release comparison file. --- include/releases-comparisons.inc | 1452 ++++++++++++++++++++++++++++++ 1 file changed, 1452 insertions(+) create mode 100644 include/releases-comparisons.inc diff --git a/include/releases-comparisons.inc b/include/releases-comparisons.inc new file mode 100644 index 0000000000..ecd8f0f6dc --- /dev/null +++ b/include/releases-comparisons.inc @@ -0,0 +1,1452 @@ + + array ( + 0 => + array ( + 'title' => 'Readonly Classes', + 'about' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/readonly_classes', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.2', + 'target' => '<8.2', + 'format' => 'php', + 'body' => 'class BlogData +{ + public readonly string $title; + + public readonly Status $status; + + public function __construct(string $title, Status $status) + { + $this->title = $title; + $this->status = $status; + } +}', + ), + 1 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'readonly class BlogData +{ + public string $title; + + public Status $status; + + public function __construct(string $title, Status $status) + { + $this->title = $title; + $this->status = $status; + } +}', + ), + ), + ), + 1 => + array ( + 'title' => 'Disjunctive Normal Form (DNF) Types', + 'about' => 'DNF types allow us to combine union and intersection types, following a strict rule: +when combining union and intersection types, intersection types must be grouped with brackets.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/dnf_types', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.2', + 'target' => '<8.2', + 'format' => 'php', + 'body' => 'class Foo { + public function bar(mixed $entity) { + if ((($entity instanceof A) && ($entity instanceof B)) || ($entity === null)) { + return $entity; + } + + throw new Exception(\'Invalid entity\'); + } +}', + ), + 1 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'class Foo { + public function bar((A&B)|null $entity) { + return $entity; + } +}', + ), + ), + ), + 2 => + array ( + 'title' => 'Allow null, false, and true as stand-alone types', + 'about' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/null-false-standalone-types', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.2', + 'target' => '<8.2', + 'format' => 'php', + 'body' => 'class Falsy +{ + public function almostFalse(): bool { /* ... */ *} + + public function almostTrue(): bool { /* ... */ *} + + public function almostNull(): string|null { /* ... */ *} +}', + ), + 1 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'class Falsy +{ + public function alwaysFalse(): false { /* ... */ *} + + public function alwaysTrue(): true { /* ... */ *} + + public function alwaysNull(): null { /* ... */ *} +}', + ), + ), + ), + 3 => + array ( + 'title' => 'New "Random" extension', + 'about' => 'The "random" extension provides a new object-oriented API to random number generation. +Instead of relying on a globally seeded random number generator (RNG) using the Mersenne Twister +algorithm the object-oriented API provides several classes ("Engine"s) providing access to modern +algorithms that store their state within objects to allow for multiple independent seedable sequences. + +The \\Random\\Randomizer class provides a high-level interface to use the engine\'s randomness to +generate a random integer, to shuffle an array or string, to select random array keys and more.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/rng_extension', + 1 => 'https://wiki.php.net/rfc/random_extension_improvement', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'use Random\\Engine\\Xoshiro256StarStar; +use Random\\Randomizer; + +$blueprintRng = new Xoshiro256StarStar( + hash(\'sha256\', "Example seed that is converted to a 256 Bit string via SHA-256", true) +); + +$fibers = []; +for ($i = 0; $i < 8; $i++) { + $fiberRng = clone $blueprintRng; + // Xoshiro256**\'s \'jump()\' method moves the blueprint ahead 2**128 steps, as if calling + // \'generate()\' 2**128 times, giving the Fiber 2**128 unique values without needing to reseed. + $blueprintRng->jump(); + + $fibers[] = new Fiber(function () use ($fiberRng, $i): void { + $randomizer = new Randomizer($fiberRng); + + echo "{$i}: " . $randomizer->getInt(0, 100), PHP_EOL; + }); +} + +// The randomizer will use a CSPRNG by default. +$randomizer = new Randomizer(); + +// Even though the fibers execute in a random order, they will print the same value +// each time, because each has its own unique instance of the RNG. +$fibers = $randomizer->shuffleArray($fibers); +foreach ($fibers as $fiber) { + $fiber->start(); +}', + ), + ), + ), + 4 => + array ( + 'title' => 'Constants in traits', + 'about' => 'You cannot access the constant through the name of the trait, but, you can +access the constant through the class that uses the trait.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/constants_in_traits', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'trait Foo +{ + public const CONSTANT = 1; +} + +class Bar +{ + use Foo; +} + +var_dump(Bar::CONSTANT); // 1 +var_dump(Foo::CONSTANT); // Error', + ), + ), + ), + 5 => + array ( + 'title' => 'Deprecate dynamic properties RFC Doc', + 'about' => 'The creation of dynamic properties is deprecated to help avoid mistakes and typos, +unless the class opts in by using the #[\\AllowDynamicProperties] attribute. +stdClass allows dynamic properties. + +Usage of the __get/__set magic methods is not affected by this change.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/deprecate_dynamic_properties', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'class User +{ + public $name; +} + +$user = new User(); +$user->last_name = \'Doe\'; + +$user = new stdClass(); +$user->last_name = \'Doe\';', + ), + 1 => + array ( + 'label' => '8.2 or Later', + 'target' => '8.2', + 'format' => 'php', + 'body' => 'class User +{ + public $name; +} + +$user = new User(); +$user->last_name = \'Doe\'; // Deprecated notice + +$user = new stdClass(); +$user->last_name = \'Doe\'; // Still allowed', + ), + ), + ), + ), + '8.3' => + array ( + 0 => + array ( + 'title' => 'Typed class constants RFC', + 'about' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/typed_class_constants', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'interface I { + // We may naively assume that the PHP constant is always a string. + const PHP = \'PHP 8.2\'; +} + +class Foo implements I { + // But implementing classes may define it as an array. + const PHP = []; +}', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'interface I { + const string PHP = \'PHP 8.3\'; +} + +class Foo implements I { + const string PHP = []; +} + +// Fatal error: Cannot use array as value for class constant +// Foo::PHP of type string', + ), + ), + ), + 1 => + array ( + 'title' => 'Dynamic class constant fetch', + 'about' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/dynamic_class_constant_fetch', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'class Foo { + const PHP = \'PHP 8.2\'; +} + +$searchableConstant = \'PHP\'; + +var_dump(constant(Foo::class . "::{$searchableConstant}"));', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'class Foo { + const PHP = \'PHP 8.2\'; +} + +$searchableConstant = \'PHP\'; + +var_dump(constant(Foo::class . "::{$searchableConstant}"));', + ), + ), + ), + 2 => + array ( + 'title' => 'New #[\\Override] attribute', + 'about' => 'By adding the #[\\Override] attribute to a method, PHP will ensure that a +method with the same name exists in a parent class or in an implemented interface. + +Adding the attribute makes it clear that overriding a parent method is intentional +and simplifies refactoring, because the removal of an overridden parent method will +be detected.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/marking_overriden_methods', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'use PHPUnit\\Framework\\TestCase; + +final class MyTest extends TestCase { + protected $logFile; + + protected function setUp(): void { + $this->logFile = fopen(\'/tmp/logfile\', \'w\'); + } + + protected function taerDown(): void { + fclose($this->logFile); + unlink(\'/tmp/logfile\'); + } +} + +// The log file will never be removed, because the +// method name was mistyped (taerDown vs tearDown).', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'use PHPUnit\\Framework\\TestCase; + +final class MyTest extends TestCase { + protected $logFile; + + protected function setUp(): void { + $this->logFile = fopen(\'/tmp/logfile\', \'w\'); + } + + #[\\Override] + protected function taerDown(): void { + fclose($this->logFile); + unlink(\'/tmp/logfile\'); + } +} + +// Fatal error: MyTest::taerDown() has #[\\Override] attribute, +// but no matching parent method exists', + ), + ), + ), + 3 => + array ( + 'title' => 'Deep-cloning of readonly properties', + 'about' => 'readonly properties may now be modified once within the magic __clone +method to enable deep-cloning of readonly properties.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/readonly_amendments', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'class PHP { + public string $version = \'8.2\'; +} + +readonly class Foo { + public function __construct( + public PHP $php + ) {} + + public function __clone(): void { + $this->php = clone $this->php; + } +} + +$instance = new Foo(new PHP()); +$cloned = clone $instance; + +// Fatal error: Cannot modify readonly property Foo::$php', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'class PHP { + public string $version = \'8.2\'; +} + +readonly class Foo { + public function __construct( + public PHP $php + ) {} + + public function __clone(): void { + $this->php = clone $this->php; + } +} + +$instance = new Foo(new PHP()); +$cloned = clone $instance; + +$cloned->php->version = \'8.3\';', + ), + ), + ), + 4 => + array ( + 'title' => 'New json_validate() function', + 'about' => '`json_validate()` allows to check if a string is syntactically valid JSON, +while being more efficient than `json_decode()`.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/json_validate', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'function json_validate(string $string): bool { + json_decode($string); + + return json_last_error() === JSON_ERROR_NONE; +} + +var_dump(json_validate(\'{ "test": { "foo": "bar" } }\')); // true', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'var_dump(json_validate(\'{ "test": { "foo": "bar" } }\')); // true', + ), + ), + ), + 5 => + array ( + 'title' => 'New Randomizer::getBytesFromString() method', + 'about' => 'The Random Extension that was added in PHP 8.2 was extended by a new method to generate random +strings consisting of specific bytes only. This method allows the developer to easily generate random +identifiers, such as domain names, and numeric strings of arbitrary length.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/randomizer_additions#getbytesfromstring', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => '// This function needs to be manually implemented. +function getBytesFromString(string $string, int $length) { + $stringLength = strlen($string); + + $result = \'\'; + for ($i = 0; $i < $length; $i++) { + // random_int is not seedable for testing, but secure. + $result .= $string[random_int(0, $stringLength - 1)]; + } + + return $result; +} + +$randomDomain = sprintf( + "%s.example.com", + getBytesFromString( + \'abcdefghijklmnopqrstuvwxyz0123456789\', + 16, + ), +); + +echo $randomDomain;', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => '// A \\Random\\Engine may be passed for seeding, +// the default is the secure engine. +$randomizer = new \\Random\\Randomizer(); + +$randomDomain = sprintf( + "%s.example.com", + $randomizer->getBytesFromString( + \'abcdefghijklmnopqrstuvwxyz0123456789\', + 16, + ), +); + +echo $randomDomain;', + ), + ), + ), + 6 => + array ( + 'title' => 'New Randomizer::getFloat() and Randomizer::nextFloat() methods', + 'about' => 'Due to the limited precision and implicit rounding of floating point numbers, +generating an unbiased float lying within a specific interval is non-trivial +and the commonly used userland solutions may generate biased results or numbers +outside the requested range. + +The Randomizer was also extended with two methods to generate random floats in an +unbiased fashion. The Randomizer::getFloat() method uses the γ-section algorithm +that was published in Drawing Random Floating-Point Numbers from an Interval. +Frédéric Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/randomizer_additions#getfloat', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'plain', + 'body' => '// Returns a random float between $min and $max, both including. +function getFloat(float $min, float $max) { + // This algorithm is biased for specific inputs and may + // return values outside the given range. This is impossible + // to work around in userland. + $offset = random_int(0, PHP_INT_MAX) / PHP_INT_MAX; + + return $offset * ($max - $min) + $min; +} + +$temperature = getFloat(-89.2, 56.7); + +$chanceForTrue = 0.1; +// getFloat(0, 1) might return the upper bound, i.e. 1, +// introducing a small bias. +$myBoolean = getFloat(0, 1) < $chanceForTrue;', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => '$randomizer = new \\Random\\Randomizer(); + +$temperature = $randomizer->getFloat( + -89.2, + 56.7, + \\Random\\IntervalBoundary::ClosedClosed, +); + +$chanceForTrue = 0.1; +// Randomizer::nextFloat() is equivalent to +// Randomizer::getFloat(0, 1, \\Random\\IntervalBoundary::ClosedOpen). +// The upper bound, i.e. 1, will not be returned. +$myBoolean = $randomizer->nextFloat() < $chanceForTrue;', + ), + ), + ), + 7 => + array ( + 'title' => 'Command line linter supports multiple files', + 'about' => 'The command line linter now accepts variadic input for filenames to lint', + 'rfs' => + array ( + 0 => 'https://github.com/php/php-src/issues/10024', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'plain', + 'body' => 'php -l foo.php bar.php +No syntax errors detected in foo.php', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'plain', + 'body' => 'php -l foo.php bar.php +No syntax errors detected in foo.php +No syntax errors detected in bar.php', + ), + ), + ), + ), + '8.4' => + array ( + 0 => + array ( + 'title' => 'Property Hooks', + 'about' => 'Property hooks provide support for computed properties that can natively be understood by IDEs +and static analysis tools, without needing to write docblock comments that might go out of sync. + +Furthermore, they allow reliable pre- or post-processing of values, without needing to check +whether a matching getter or setter exists in the class.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/property-hooks', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => 'class Locale +{ + private string $languageCode; + private string $countryCode; + + public function __construct(string $languageCode, string $countryCode) + { + $this->setLanguageCode($languageCode); + $this->setCountryCode($countryCode); + } + + public function getLanguageCode(): string + { + return $this->languageCode; + } + + public function setLanguageCode(string $languageCode): void + { + $this->languageCode = $languageCode; + } + + public function getCountryCode(): string + { + return $this->countryCode; + } + + public function setCountryCode(string $countryCode): void + { + $this->countryCode = strtoupper($countryCode); + } + + public function setCombinedCode(string $combinedCode): void + { + [$languageCode, $countryCode] = explode(\'_\', $combinedCode, 2); + + $this->setLanguageCode($languageCode); + $this->setCountryCode($countryCode); + } + + public function getCombinedCode(): string + { + return \\sprintf("%s_%s", $this->languageCode, $this->countryCode); + } +} + +$brazilianPortuguese = new Locale(\'pt\', \'br\'); +var_dump($brazilianPortuguese->getCountryCode()); // BR +var_dump($brazilianPortuguese->getCombinedCode()); // pt_BR', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'PHP 8.4 +class Locale +{ + public string $languageCode; + + public string $countryCode + { + set (string $countryCode) { + $this->countryCode = strtoupper($countryCode); + } + } + + public string $combinedCode + { + get => \\sprintf("%s_%s", $this->languageCode, $this->countryCode); + set (string $value) { + [$this->languageCode, $this->countryCode] = explode(\'_\', $value, 2); + } + } + + public function __construct(string $languageCode, string $countryCode) + { + $this->languageCode = $languageCode; + $this->countryCode = $countryCode; + } +} + +$brazilianPortuguese = new Locale(\'pt\', \'br\'); +var_dump($brazilianPortuguese->countryCode); // BR +var_dump($brazilianPortuguese->combinedCode); // pt_BR', + ), + ), + ), + 1 => + array ( + 'title' => 'Asymmetric Visibility', + 'about' => 'The scope to write to a property may now be controlled independently +of the scope to read the property, reducing the need for boilerplate +getter methods to expose a property’s value without allowing modification +from the outside of a class.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/asymmetric-visibility-v2', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + /** + * @deprecated 8.3 use PhpVersion::getVersion() instead + */ + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.3\'; + } +} + +$phpVersion = new PhpVersion(); +// No indication that the method is deprecated. +echo $phpVersion->getPhpVersion();', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + #[\\Deprecated( + message: "use PhpVersion::getVersion() instead", + since: "8.4", + )] + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.4\'; + } +} + +$phpVersion = new PhpVersion(); +// Deprecated: Method PhpVersion::getPhpVersion() is deprecated since 8.4, use PhpVersion::getVersion() instead +echo $phpVersion->getPhpVersion();', + ), + ), + ), + 2 => + array ( + 'title' => '#[\\Depreciated] Attribute', + 'about' => 'The new `#[\\Deprecated]` attribute makes PHP’s existing deprecation mechanism available to +user-defined functions, methods, and class constants.', + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + /** + * @deprecated 8.3 use PhpVersion::getVersion() instead + */ + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.3\'; + } +} + +$phpVersion = new PhpVersion(); +// No indication that the method is deprecated. +echo $phpVersion->getPhpVersion();', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + #[\\Deprecated( + message: "use PhpVersion::getVersion() instead", + since: "8.4", + )] + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.4\'; + } +} + +$phpVersion = new PhpVersion(); +// Deprecated: Method PhpVersion::getPhpVersion() is deprecated since 8.4, use PhpVersion::getVersion() instead +echo $phpVersion->getPhpVersion();', + ), + ), + ), + 3 => + array ( + 'title' => 'New ext-dom features and HTML5 support', + 'about' => 'New DOM API that includes standards-compliant support for parsing HTML5 documents, +fixes several long-standing compliance bugs in the behavior of the DOM functionality, +and adds several functions to make working with documents more convenient. + +The new DOM API is available within the Dom namespace. Documents using the new DOM API +can be created using the Dom\\HTMLDocument and Dom\\XMLDocument classes.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/dom_additions_84', + 1 => 'https://wiki.php.net/rfc/domdocument_html5_parser', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$dom = new DOMDocument(); +$dom->loadHTML( + <<<\'HTML\' +
    +
    PHP 8.4 is a feature-rich release!
    + +
    + HTML, + LIBXML_NOERROR, +); + +$xpath = new DOMXPath($dom); +$node = $xpath->query(".//main/article[not(following-sibling::*)]")[0]; +$classes = explode(" ", $node->className); // Simplified +var_dump(in_array("featured", $classes)); // bool(true)', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => '$dom = Dom\\HTMLDocument::createFromString( + <<<\'HTML\' +
    +
    PHP 8.4 is a feature-rich release!
    + +
    + HTML, + LIBXML_NOERROR, +); + +$node = $dom->querySelector(\'main > article:last-child\'); +var_dump($node->classList->contains("featured")); // bool(true)', + ), + ), + ), + 4 => + array ( + 'title' => 'Object API for BCMath', + 'about' => 'New BcMath\\Number object enables object-oriented usage and standard +mathematical operators when working with arbitrary precision numbers. + +These objects are immutable and implement the Stringable interface, +so they can be used in string contexts like echo $num.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/support_object_type_in_bcmath', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$num1 = \'0.12345\'; +$num2 = \'2\'; +$result = bcadd($num1, $num2, 5); + +echo $result; // \'2.12345\' +var_dump(bccomp($num1, $num2) > 0); // false', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'use BcMath\\Number; + +$num1 = new Number(\'0.12345\'); +$num2 = new Number(\'2\'); +$result = $num1 + $num2; + +echo $result; // \'2.12345\' +var_dump($num1 > $num2); // false', + ), + ), + ), + 5 => + array ( + 'title' => 'New array_*() functions', + 'about' => 'New functions `array_find()`, `array_find_key()`, `array_any()`, and `array_all()` are available.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/array_find', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$animal = null; +foreach ([\'dog\', \'cat\', \'cow\', \'duck\', \'goose\'] as $value) { + if (str_starts_with($value, \'c\')) { + $animal = $value; + break; + } +} + +var_dump($animal); // string(3) "cat"', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => '$animal = array_find( + [\'dog\', \'cat\', \'cow\', \'duck\', \'goose\'], + static fn(string $value): bool => str_starts_with($value, \'c\'), +); + +var_dump($animal); // string(3) "cat"', + ), + ), + ), + 6 => + array ( + 'title' => 'PDO driver specific subclasses', + 'about' => 'New subclasses `Pdo\\Dblib`, `Pdo\\Firebird`, `Pdo\\MySql`, `Pdo\\Odbc`, +`Pdo\\Pgsql`, and `Pdo\\Sqlite` of PDO are available.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/pdo_driver_specific_subclasses', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$connection = new PDO( + \'sqlite:foo.db\', + $username, + $password, +); // object(PDO) + +$connection->sqliteCreateFunction( + \'prepend_php\', + static fn($string) => "PHP {$string}", +); + +$connection->query(\'SELECT prepend_php(version) FROM php\');', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => '$connection = PDO::connect( + \'sqlite:foo.db\', + $username, + $password, +); // object(Pdo\\Sqlite) + +$connection->createFunction( + \'prepend_php\', + static fn($string) => "PHP {$string}", +); // Does not exist on a mismatching driver. + +$connection->query(\'SELECT prepend_php(version) FROM php\');', + ), + ), + ), + 7 => + array ( + 'title' => 'new MyClass()->method() without parentheses', + 'about' => 'Properties and methods of a newly instantiated object can now be accessed without +wrapping the new expression in parentheses.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/new_without_parentheses', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + public function getVersion(): string + { + return \'PHP 8.3\'; + } +} + +var_dump((new PhpVersion())->getVersion());', + ), + 1 => + array ( + 'label' => '8.4 or Later', + 'target' => '8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + public function getVersion(): string + { + return \'PHP 8.4\'; + } +} + +var_dump(new PhpVersion()->getVersion());', + ), + ), + ), + ), + '8.5' => + array ( + 0 => + array ( + 'title' => 'URI Extension', + 'about' => 'The new always-available URI extension provides APIs to securely parse and modify +URIs and URLs according to the RFC 3986 and the WHATWG URL standards. + +Powered by the uriparser (RFC 3986) and Lexbor (WHATWG URL) libraries. + +Learn more about the backstory of this feature in The PHP Foundation’s blog.', + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$components = parse_url(\'https://php.net/releases/8.4/en.php\'); + +var_dump($components[\'host\']); +// string(7) "php.net"', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => 'use Uri\\Rfc3986\\Uri; + +$uri = new Uri(\'https://php.net/releases/8.5/en.php\'); + +var_dump($uri->getHost()); +// string(7) "php.net"', + ), + ), + ), + 1 => + array ( + 'title' => 'Pipe Operator', + 'about' => 'The pipe operator allows chaining function calls together without dealing with intermediary variables. +This enables replacing many "nested calls" with a chain that can be read forwards, rather than inside-out. + +Learn more about the backstory of this feature in The PHP Foundation’s blog.', + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => '8.4 or Later', + 'target' => '8.4', + 'format' => 'php', + 'body' => '$title = \' PHP 8.5 Released \'; + +$slug = strtolower( + str_replace(\'.\', \'\', + str_replace(\' \', \'-\', + trim($title) + ) + ) +); + +var_dump($slug); +// string(15) "php-85-released"', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '$title = \' PHP 8.5 Released \'; + +$slug = $title + |> trim(...) + |> (fn($str) => str_replace(\' \', \'-\', $str)) + |> (fn($str) => str_replace(\'.\', \'\', $str)) + |> strtolower(...); + +var_dump($slug); +// string(15) "php-85-released"', + ), + ), + ), + 2 => + array ( + 'title' => 'Clone With', + 'about' => 'It is now possible to update properties during object cloning by passing an associative array to the `clone()` function. +This enables straightforward support of the "with-er" pattern for `readonly` classes.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/clone_with_v2', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Example', + 'target' => '', + 'format' => 'php', + 'body' => 'readonly class Color +{ + public function __construct( + public int $red, + public int $green, + public int $blue, + public int $alpha = 255, + ) {} + + public function withAlpha(int $alpha): self + { + $values = get_object_vars($this); + $values[\'alpha\'] = $alpha; + + return new self(...$values); + } +} + +$blue = new Color(79, 91, 147); +$transparentBlue = $blue->withAlpha(128);', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => 'readonly class Color +{ + public function __construct( + public int $red, + public int $green, + public int $blue, + public int $alpha = 255, + ) {} + + public function withAlpha(int $alpha): self + { + return clone($this, [ + \'alpha\' => $alpha, + ]); + } +} + +$blue = new Color(79, 91, 147); +$transparentBlue = $blue->withAlpha(128);', + ), + ), + ), + 3 => + array ( + 'title' => '#[\\NoDiscard] Attribute', + 'about' => 'By adding the #[\\NoDiscard] attribute to a function, PHP will check whether the returned value +is consumed and emit a warning if it is not. This allows improving the safety of APIs where +the returned value is important, but it\'s easy to forget using the return value by accident. + +The associated (void) cast can be used to indicate that a value is intentionally unused.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/marking_return_value_as_important', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => 'function getPhpVersion(): string +{ + return \'PHP 8.4\'; +} + +getPhpVersion(); // No warning', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '#[\\NoDiscard] +function getPhpVersion(): string +{ + return \'PHP 8.5\'; +} + +getPhpVersion(); +// Warning: The return value of function getPhpVersion() should +// either be used or intentionally ignored by casting it as (void)', + ), + ), + ), + 4 => + array ( + 'title' => 'Closures and First-Class Callables in Constant Expressions', + 'about' => 'Static closures and first-class callables can now be used in constant expressions. +This includes attribute parameters, default values of properties and parameters, and constants.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/closures_in_const_expr', + 1 => 'https://wiki.php.net/rfc/fcc_in_const_expr', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => 'final class PostsController +{ + #[AccessControl( + new Expression(\'request.user === post.getAuthor()\'), + )] + public function update( + Request $request, + Post $post, + ): Response { + // ... + } +}', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => 'final class PostsController +{ + #[AccessControl(static function ( + Request $request, + Post $post, + ): bool { + return $request->user === $post->getAuthor(); + })] + public function update( + Request $request, + Post $post, + ): Response { + // ... + } +}', + ), + ), + ), + 5 => + array ( + 'title' => 'Array First / Last Functions', + 'about' => 'The `array_first()` and `array_last()` functions return the first or last value of an array, respectively. +If the array is empty, null is returned (making it easy to compose with the ?? operator).', + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => '$lastEvent = $events === [] + ? null + : $events[array_key_last($events)];', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '$lastEvent = array_last($events);', + ), + ), + ), + 6 => + array ( + 'title' => 'Persistent cURL Share Handles', + 'about' => 'By adding the #[\\NoDiscard] attribute to a function, PHP will check whether the returned value +is consumed and emit a warning if it is not. This allows improving the safety of APIs where +the returned value is important, but it\'s easy to forget using the return value by accident. + +The associated (void) cast can be used to indicate that a value is intentionally unused.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/curl_share_persistence', + 1 => 'https://wiki.php.net/rfc/curl_share_persistence_improvement', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => ' +$sh = curl_share_init(); +curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS); +curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT); + +$ch = curl_init(\'https://php.net/\'); +curl_setopt($ch, CURLOPT_SHARE, $sh); + +curl_exec($ch);', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '$sh = curl_share_init_persistent([ + CURL_LOCK_DATA_DNS, + CURL_LOCK_DATA_CONNECT, +]); + +$ch = curl_init(\'https://php.net/\'); +curl_setopt($ch, CURLOPT_SHARE, $sh); + +// This may now reuse the connection from an earlier SAPI request +curl_exec($ch);', + ), + ), + ), + ), +); \ No newline at end of file From e9845f3776ee0b5170a2181247252151cd025690 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Fri, 5 Jun 2026 21:05:37 +0100 Subject: [PATCH 41/76] Add "PHP Developers" community. --- .../logos/community-phpdevelopers-discord.webp | Bin 0 -> 3792 bytes include/communities.inc | 8 +++++++- include/newer-version-available.php | 14 +++++++++----- js/common.js | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 images/logos/community-phpdevelopers-discord.webp diff --git a/images/logos/community-phpdevelopers-discord.webp b/images/logos/community-phpdevelopers-discord.webp new file mode 100644 index 0000000000000000000000000000000000000000..057318a64ffb11a6c00c92f39d1ae06435aac1f5 GIT binary patch literal 3792 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 'https://www.reddit.com/r/PHP/', ], [ - 'title' => 'PHP Community Discord', + 'title' => '"PHP Community" Discord', 'about' => 'Join thousands of users on Discord talking about PHP.', 'image' => '/images/logos/phpc-discord.png', 'href' => 'https://discord.phpc.social/', @@ -19,4 +19,10 @@ return [ 'image' => '/images/logos/new-php-logo.png', 'href' => '/mailing-lists.php', ], + [ + 'title' => '"PHP Developers" Discord', + 'about' => 'Born in 2018, it is the first community on Discord dedicated to PHP developers. Open for both experts and apprentices.', + 'image' => '/images/logos/community-phpdevelopers-discord.webp', + 'href' => 'https://discord.gg/php-developers-484326318851358720', + ] ]; diff --git a/include/newer-version-available.php b/include/newer-version-available.php index 9eaf7f3176..e4ca32ec2c 100644 --- a/include/newer-version-available.php +++ b/include/newer-version-available.php @@ -1,5 +1,9 @@ - - There's an even better version of PHP available! -
    - Click here to find out more. -
    +
    +
    +
    This version is great, but...
    +
    An even better version of PHP is now available!
    + +
    +
    diff --git a/js/common.js b/js/common.js index c00fc103eb..33c9925b9f 100644 --- a/js/common.js +++ b/js/common.js @@ -891,7 +891,7 @@ function shuffleImmutableArray(array) { function shuffleDOMChildrenWithLimit(parent, limit) { const children = Array.from(parent.children); - const replacements = shuffleImmutableArray(children.slice(0, limit)); + const replacements = shuffleImmutableArray(children).slice(0, limit); while (parent.children.length) { parent.removeChild(parent.children[0]); From fcc9f6961e451a543bdbf288bacdba76f78813a4 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Sat, 6 Jun 2026 21:43:10 +0100 Subject: [PATCH 42/76] don't need flags for now --- images/language-flags/br.png | Bin 21238 -> 0 bytes images/language-flags/de.png | Bin 401 -> 0 bytes images/language-flags/en.webp | Bin 1230 -> 0 bytes images/language-flags/es.png | Bin 648 -> 0 bytes images/language-flags/fr.png | Bin 677 -> 0 bytes images/language-flags/it.png | Bin 681 -> 0 bytes images/language-flags/ja.png | Bin 3181 -> 0 bytes images/language-flags/ru.png | Bin 656 -> 0 bytes images/language-flags/tr.png | Bin 4149 -> 0 bytes images/language-flags/uk.webp | Bin 98 -> 0 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/language-flags/br.png delete mode 100644 images/language-flags/de.png delete mode 100644 images/language-flags/en.webp delete mode 100644 images/language-flags/es.png delete mode 100644 images/language-flags/fr.png delete mode 100644 images/language-flags/it.png delete mode 100644 images/language-flags/ja.png delete mode 100644 images/language-flags/ru.png delete mode 100644 images/language-flags/tr.png delete mode 100644 images/language-flags/uk.webp diff --git a/images/language-flags/br.png b/images/language-flags/br.png deleted file mode 100644 index eb88391c1aadd6ddc8272e1193b7db5417c8e18a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21238 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 diff --git a/images/language-flags/es.png b/images/language-flags/es.png deleted file mode 100644 index ce714320f5beb31d0b3fa4bb3035d58afb7edde9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8aek{yDk*1ZORskuNbVpxD28NCO+gTe~DWM4fHkPs=_sHq1itRSuAgC>cV-W>#|npCLH|k*0Aob8#5JNMC9x#c zD!C{XNHG{07@6rB80#8Xh8P-InHXCcnrRytSQ!{_w#&+*Xvob^$xN%nt)b%9(uF_` N44$rjF6*2UngAlB|9}7h diff --git a/images/language-flags/it.png b/images/language-flags/it.png deleted file mode 100644 index 66568e44faeedc8581ec5f3e4ee8be8c873c79ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8aek{yDk*1ZORskuNbVpxD28NCO+&pIujhCCpOl7mS8&JB`)5S5Q;?~>qhKvUk1Xwo6UuXpSa|hTQy=%(P0}8noxDOa*FS N@O1TaS?83{1OS?HmV5vJ diff --git a/images/language-flags/ja.png b/images/language-flags/ja.png deleted file mode 100644 index f009df369ba2f8877f2deb65cbce989340ff2076..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3181 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 OFhe~P-8`MEcmD-;a$#ry diff --git a/images/language-flags/ru.png b/images/language-flags/ru.png deleted file mode 100644 index fdd45a9b755b0be38ef42f2171de00037bd9a288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 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 ZJ2)WjpMfeZ;aBx?Rzu4PbMZg(ofI5?$O|Pn zOq!tZu)c89N106z90R2_1=I{XJw;;nyM3{r{Qu8$`~N@xPn;zSW}N@u|0Rb30MCOf AJ^%m! From ed0f7e9c44a4391e1e371132e2235f36d68a6b0f Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Sat, 6 Jun 2026 21:43:35 +0100 Subject: [PATCH 43/76] update initial samples with short names --- include/releases/8.5/01-uri-extension.txt | 7 +++++++ include/releases/8.5/02-pipe-operator.txt | 7 +++++++ include/releases/8.5/03-clone-with.txt | 6 +++--- include/releases/8.5/04-nodiscard.txt | 8 ++++++++ .../8.5/05-closure-first-class-constants.txt | 6 ++++++ include/releases/8.5/06-array-first-last.txt | 6 ++++++ .../releases/8.5/07-persistent-curl-handles.txt | 14 +++++++++----- 7 files changed, 46 insertions(+), 8 deletions(-) diff --git a/include/releases/8.5/01-uri-extension.txt b/include/releases/8.5/01-uri-extension.txt index e090072adb..011ffc58b4 100644 --- a/include/releases/8.5/01-uri-extension.txt +++ b/include/releases/8.5/01-uri-extension.txt @@ -1,6 +1,13 @@ type: meta title: URI Extension +============================================== +type: short +lang: en + +PHP 8.5 adds a built-in URI extension to parse, normalize, and handle URLs +following _RFC 3986_ and _WHATWG URL_ standards. + ============================================== type: about format: md diff --git a/include/releases/8.5/02-pipe-operator.txt b/include/releases/8.5/02-pipe-operator.txt index add5bf5c1d..5f607bb673 100644 --- a/include/releases/8.5/02-pipe-operator.txt +++ b/include/releases/8.5/02-pipe-operator.txt @@ -1,6 +1,13 @@ type: meta title: Pipe Operator +============================================== +type: short +lang: en + +The `|>` operator enables chaining callables left-to-right, passing values smoothly through +multiple functions without intermediary variables. + ============================================== type: about format: md diff --git a/include/releases/8.5/03-clone-with.txt b/include/releases/8.5/03-clone-with.txt index 99026506aa..45b2980c29 100644 --- a/include/releases/8.5/03-clone-with.txt +++ b/include/releases/8.5/03-clone-with.txt @@ -3,12 +3,12 @@ title: Clone With rfc: https://wiki.php.net/rfc/clone_with_v2 ============================================== -type: about +type: short format: md lang: en -It is now possible to update properties during object cloning by passing an associative array to the `clone()` function. -This enables straightforward support of the "with-er" pattern for `readonly` classes. +Clone objects and update properties with the new `clone()` syntax, making the "with-er" pattern simple for `readonly` +classes. ============================================== type: example diff --git a/include/releases/8.5/04-nodiscard.txt b/include/releases/8.5/04-nodiscard.txt index 165686d2a8..11afcac315 100644 --- a/include/releases/8.5/04-nodiscard.txt +++ b/include/releases/8.5/04-nodiscard.txt @@ -2,6 +2,14 @@ type: meta title: #[\NoDiscard] Attribute rfc: https://wiki.php.net/rfc/marking_return_value_as_important +============================================== +type: short +format: md +lang: en + +The #[\NoDiscard] attribute warns when a return value isn't used, helping prevent mistakes and improving +overall API safety. + ============================================== type: about format: md diff --git a/include/releases/8.5/05-closure-first-class-constants.txt b/include/releases/8.5/05-closure-first-class-constants.txt index d124bacc0b..f2603fa896 100644 --- a/include/releases/8.5/05-closure-first-class-constants.txt +++ b/include/releases/8.5/05-closure-first-class-constants.txt @@ -3,6 +3,12 @@ title: Closures and First-Class Callables in Constant Expressions rfc: https://wiki.php.net/rfc/closures_in_const_expr rfc: https://wiki.php.net/rfc/fcc_in_const_expr +============================================== +type: short +lang: en + +Static closures can now be used in constant expressions, especially useful in attributes. + ============================================== type: about format: md diff --git a/include/releases/8.5/06-array-first-last.txt b/include/releases/8.5/06-array-first-last.txt index b68b83d38e..4f66d23e7f 100644 --- a/include/releases/8.5/06-array-first-last.txt +++ b/include/releases/8.5/06-array-first-last.txt @@ -1,6 +1,12 @@ type: meta title: Array First / Last Functions +============================================== +type: short +lang: en + +New array helper functions are available for common functionality + ============================================== type: about format: md diff --git a/include/releases/8.5/07-persistent-curl-handles.txt b/include/releases/8.5/07-persistent-curl-handles.txt index 0788884f91..002b5f3b65 100644 --- a/include/releases/8.5/07-persistent-curl-handles.txt +++ b/include/releases/8.5/07-persistent-curl-handles.txt @@ -3,16 +3,20 @@ title: Persistent cURL Share Handles rfc: https://wiki.php.net/rfc/curl_share_persistence rfc: https://wiki.php.net/rfc/curl_share_persistence_improvement +============================================== +type: short +lang: en + +Handles can now be persisted across multiple PHP requests, avoiding the cost of repeated +connection initialization to the same hosts. + ============================================== type: about format: md lang: en -By adding the #[\NoDiscard] attribute to a function, PHP will check whether the returned value -is consumed and emit a warning if it is not. This allows improving the safety of APIs where -the returned value is important, but it's easy to forget using the return value by accident. - -The associated (void) cast can be used to indicate that a value is intentionally unused. +Handles can now be persisted across multiple PHP requests, avoiding the cost of repeated +connection initialization to the same hosts. ============================================== type: example From 8ee47027813cecb4b1cc0a160974cfd1e078d219 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Sat, 6 Jun 2026 21:45:48 +0100 Subject: [PATCH 44/76] Cache get_all_branches --- include/branches.inc | 7 +- include/releases/8.2/changelist.inc | 15412 +++++++++++++++++++++++++ include/releases/8.3/changelist.inc | 15900 ++++++++++++++++++++++++++ include/releases/8.4/changelist.inc | 14925 ++++++++++++++++++++++++ include/releases/8.5/changelist.inc | 7399 ++++++++++++ 5 files changed, 53642 insertions(+), 1 deletion(-) create mode 100644 include/releases/8.2/changelist.inc create mode 100644 include/releases/8.3/changelist.inc create mode 100644 include/releases/8.4/changelist.inc create mode 100644 include/releases/8.5/changelist.inc diff --git a/include/branches.inc b/include/branches.inc index bf56899bc4..45a3cf28ca 100644 --- a/include/branches.inc +++ b/include/branches.inc @@ -104,6 +104,11 @@ function version_number_to_branch(string $version): ?string { } function get_all_branches() { + static $cache = null; + if ($cache) { + return $cache; + } + $branches = []; foreach ($GLOBALS['OLDRELEASES'] as $major => $releases) { @@ -137,7 +142,7 @@ function get_all_branches() { krsort($branch); } - return $branches; + return $cache = $branches; } function get_active_branches($include_recent_eols = true) { diff --git a/include/releases/8.2/changelist.inc b/include/releases/8.2/changelist.inc new file mode 100644 index 0000000000..735b394508 --- /dev/null +++ b/include/releases/8.2/changelist.inc @@ -0,0 +1,15412 @@ + + array ( + 'date' => NULL, + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Shivam Mathur', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6735', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'vi3tL0u1s', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7259', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility issues with OpenSSL 4.0.', + 'raw' => 'Fix compatibility issues with OpenSSL 4.0. (jordikroon, Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jordikroon', + 1 => 'Remi', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14179', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6722', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7261', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7262', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'TimWolla', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7568', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7258', + ), + ), + ), + ), + ), + ), + '8.2.30' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix curl build and test failures with version 8.16.', + 'raw' => 'Fix curl build and test failures with version 8.16. (nielsdos, ilutov, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ilutov', + 2 => 'Jakub Zelenka', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Reset global pointers to prevent use-after-free in zend_jit_status().', + 'raw' => 'Reset global pointers to prevent use-after-free in zend_jit_status(). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14180', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14178', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14177', + ), + ), + ), + ), + ), + ), + '8.2.29' => + array ( + 'date' => '03 Jul 2025', + 'modules' => + array ( + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735)', + 'raw' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1735', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP Extension via Large XML Namespace Prefix). (CVE-2025-6491)', + 'raw' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP Extension via Large XML Namespace Prefix). (CVE-2025-6491) (Lekssays, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Lekssays', + 1 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2025-6491', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220)', + 'raw' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1220', + ), + ), + ), + ), + ), + ), + '8.2.28' => + array ( + 'date' => '13 Mar 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()).', + 'raw' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '17211', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714).', + 'raw' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219)', + 'raw' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1219', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)', + 'raw' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1736', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)', + 'raw' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1861', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)', + 'raw' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1734', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)', + 'raw' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1217', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed phpize for Windows 11 (24H2).', + 'raw' => 'Fixed phpize for Windows 11 (24H2). (bwoebi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'bwoebi', + ), + ), + ), + ), + ), + ), + '8.2.27' => + array ( + 'date' => '19 Dec 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jdtogregorian overflow.', + 'raw' => 'Fixed jdtogregorian overflow. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed cal_to_jd julian_days argument overflow.', + 'raw' => 'Fixed cal_to_jd julian_days argument overflow. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).', + 'raw' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16991', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fail early in *nix configuration build script.', + 'raw' => 'Fail early in *nix configuration build script. (hakre)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'hakre', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)).', + 'raw' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16727', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469).', + 'raw' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16799', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs).', + 'raw' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16630', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix is_zend_ptr() huge block comparison.', + 'raw' => 'Fix is_zend_ptr() huge block comparison. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed potential OOB read in zend_dirname() on Windows.', + 'raw' => 'Fixed potential OOB read in zend_dirname() on Windows. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix various memory leaks in curl mime handling.', + 'raw' => 'Fix various memory leaks in curl mime handling. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status).', + 'raw' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16776 (imagecreatefromstring overflow).', + 'raw' => 'Fixed GH-16776 (imagecreatefromstring overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Revert gmp_pow() overly restrictive overflow checks.', + 'raw' => 'Revert gmp_pow() overly restrictive overflow checks. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16711: Segfault in mhash().', + 'raw' => 'Fixed GH-16711: Segfault in mhash(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF).', + 'raw' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF). (nielsdos, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '16770', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).', + 'raw' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads). (dktapps)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dktapps', + ), + 'bugs' => + array ( + 0 => '16851', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64).', + 'raw' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16902', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Prevent unexpected array entry conversion when reading key.', + 'raw' => 'Prevent unexpected array entry conversion when reading key. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix various memory leaks related to openssl exports.', + 'raw' => 'Fix various memory leaks related to openssl exports. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix memory leak in php_openssl_pkey_from_zval().', + 'raw' => 'Fix memory leak in php_openssl_pkey_from_zval(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak of `setFetchMode()`.', + 'raw' => 'Fixed memory leak of `setFetchMode()`. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks).', + 'raw' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks). (nielsdos, Hans Krentel)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Hans Krentel', + ), + 'bugs' => + array ( + 0 => '16695', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).', + 'raw' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15208', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867).', + 'raw' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16998', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input).', + 'raw' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16808', + ), + ), + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16959 (snmget modifies the object_id array).', + 'raw' => 'Fixed bug GH-16959 (snmget modifies the object_id array). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16959', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties).', + 'raw' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16905', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed network connect poll interuption handling.', + 'raw' => 'Fixed network connect poll interuption handling. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16849 (Error dialog causes process to hang).', + 'raw' => 'Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16849', + ), + ), + ), + ), + ), + ), + '8.2.26' => + array ( + 'date' => '21 Nov 2024', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang).', + 'raw' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16373', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface).', + 'raw' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed out of bound writes to SafeArray data.', + 'raw' => 'Fixed out of bound writes to SafeArray data. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15).', + 'raw' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16168', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646).', + 'raw' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16371', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline).', + 'raw' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16515', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error).', + 'raw' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16509', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes).', + 'raw' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16508', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16648 (Use-after-free during array sorting).', + 'raw' => 'Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16648', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-15915 (overflow with a high value for precision INI).', + 'raw' => 'Fixed bug GH-15915 (overflow with a high value for precision INI). (David Carlier / cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier / cmb', + ), + 'bugs' => + array ( + 0 => '15915', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails).', + 'raw' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '16302', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset).', + 'raw' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16454', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16037 (Assertion failure in ext/date/php_date.c).', + 'raw' => 'Fixed bug GH-16037 (Assertion failure in ext/date/php_date.c). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '16037', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values).', + 'raw' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '14732', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams).', + 'raw' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16390', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly).', + 'raw' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16316', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong).', + 'raw' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16473', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element).', + 'raw' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16533', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16535 (UAF when using document as a child).', + 'raw' => 'Fixed bug GH-16535 (UAF when using document as a child). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16535', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild).', + 'raw' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16593', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode).', + 'raw' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16595', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file).', + 'raw' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16409', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object).', + 'raw' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16397', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen).', + 'raw' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16523', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement).', + 'raw' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16628', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements).', + 'raw' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16334', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16427 (Unchecked libavif return values).', + 'raw' => 'Fixed bug GH-16427 (Unchecked libavif return values). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16427', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007).', + 'raw' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16559', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16411 (gmp_export() can cause overflow).', + 'raw' => 'Fixed bug GH-16411 (gmp_export() can cause overflow). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16411', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow).', + 'raw' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16501', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed segfaults and other issues related to operator overloading with GMP objects.', + 'raw' => 'Fixed segfaults and other issues related to operator overloading with GMP objects. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932)', + 'raw' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8932', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments).', + 'raw' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16361', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929)', + 'raw' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8929', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays).', + 'raw' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16357', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow).', + 'raw' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16433', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix various memory leaks on error conditions in openssl_x509_parse().', + 'raw' => 'Fix various memory leaks on error conditions in openssl_x509_parse(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11236', + ), + ), + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11236', + ), + ), + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values).', + 'raw' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16450', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808).', + 'raw' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16406', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev).', + 'raw' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16174', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors).', + 'raw' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16601', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params).', + 'raw' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16385', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value).', + 'raw' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16290', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient).', + 'raw' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16429', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with overflow socket_recvfrom $length argument.', + 'raw' => 'Fixed bug with overflow socket_recvfrom $length argument. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16337 (Use-after-free in SplHeap).', + 'raw' => 'Fixed bug GH-16337 (Use-after-free in SplHeap). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16337', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()).', + 'raw' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16464', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()).', + 'raw' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16479', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()).', + 'raw' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16478', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16588 (UAF in Observer->serialize).', + 'raw' => 'Fixed bug GH-16588 (UAF in Observer->serialize). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16588', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor).', + 'raw' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()).', + 'raw' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16589', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance).', + 'raw' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14687', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors).', + 'raw' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16604', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()).', + 'raw' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16646', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled).', + 'raw' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16293', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234)', + 'raw' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11234', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233)', + 'raw' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11233', + ), + ), + ), + ), + 'sysvmsg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized).', + 'raw' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized). (David Carlier / cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier / cmb', + ), + 'bugs' => + array ( + 0 => '16592', + ), + ), + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16591 (Assertion error in shm_put_var).', + 'raw' => 'Fixed bug GH-16591 (Assertion error in shm_put_var). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16591', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c).', + 'raw' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16292', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.)', + 'raw' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.) (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16326', + ), + ), + ), + ), + ), + ), + '8.2.25' => + array ( + 'date' => '24 Oct 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16240: jdtounix overflow on argument value.', + 'raw' => 'Fixed GH-16240: jdtounix overflow on argument value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument.', + 'raw' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-16263: jddayofweek overflow.', + 'raw' => 'Fixed GH-16263: jddayofweek overflow. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-16234: jewishtojd overflow.', + 'raw' => 'Fixed GH-16234: jewishtojd overflow. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client.', + 'raw' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16137', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15712: zend_strtod overflow with precision INI set on large value.', + 'raw' => 'Fixed bug GH-15712: zend_strtod overflow with precision INI set on large value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '15712', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER).', + 'raw' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15905', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception).', + 'raw' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15907', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame).', + 'raw' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15851', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c).', + 'raw' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15866', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16188', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline).', + 'raw' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16233', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15582: Crash when not calling parent constructor of DateTimeZone.', + 'raw' => 'Fixed bug GH-15582: Crash when not calling parent constructor of DateTimeZone. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '15582', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed regression where signs after the first one were ignored while parsing a signed integer, with the DateTimeInterface::modify() function.', + 'raw' => 'Fixed regression where signs after the first one were ignored while parsing a signed integer, with the DateTimeInterface::modify() function. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16039', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16151', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16232', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value)', + 'raw' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value) (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '12264', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16274', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()).', + 'raw' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '16032', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list).', + 'raw' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '16101', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.).', + 'raw' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary).', + 'raw' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()).', + 'raw' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16261', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed stub for openssl_csr_new.', + 'raw' => 'Fixed stub for openssl_csr_new. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16189 (underflow on offset argument).', + 'raw' => 'Fixed bug GH-16189 (underflow on offset argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16189', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c).', + 'raw' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16184', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs).', + 'raw' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15901', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error).', + 'raw' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16181', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '16187', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request).', + 'raw' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request). (Jakub Zelenka, David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '15395', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c).', + 'raw' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15837', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument).', + 'raw' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16267', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62900 (Wrong namespace on xsd import error message).', + 'raw' => 'Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '62900', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer).', + 'raw' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16237', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix Soap leaking http_msg on error.', + 'raw' => 'Fix Soap leaking http_msg on error. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460).', + 'raw' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16256', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails).', + 'raw' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16259', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15613 (overflow on unpack call hex string repeater).', + 'raw' => 'Fixed bug GH-15613 (overflow on unpack call hex string repeater). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '15613', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15937 (overflow on stream timeout option value).', + 'raw' => 'Fixed bug GH-15937 (overflow on stream timeout option value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '15937', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c).', + 'raw' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16053', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c).', + 'raw' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c).', + 'raw' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15980', + ), + ), + ), + ), + 'tsrm' => + array ( + 0 => + array ( + 'message' => 'Prevent closing of unrelated handles.', + 'raw' => 'Prevent closing of unrelated handles. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15868 (Assertion failure in xml_parse_into_struct after exception).', + 'raw' => 'Fixed bug GH-15868 (Assertion failure in xml_parse_into_struct after exception). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15868', + ), + ), + ), + ), + ), + ), + '8.2.24' => + array ( + 'date' => '26 Sep 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926)', + 'raw' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8926', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927)', + 'raw' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8927', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer).', + 'raw' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer). (zeriyoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'zeriyoshi', + ), + 'bugs' => + array ( + 0 => '15408', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15515 (Configure error grep illegal option q).', + 'raw' => 'Fixed bug GH-15515 (Configure error grep illegal option q). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '15515', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error).', + 'raw' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '15514', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found).', + 'raw' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15565', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit).', + 'raw' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit). (Bernd Kuhls, Thomas Petazzoni)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bernd Kuhls', + 1 => 'Thomas Petazzoni', + ), + 'bugs' => + array ( + 0 => '15587', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15330 (Do not scan generator frames more than once).', + 'raw' => 'Fixed bug GH-15330 (Do not scan generator frames more than once). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15330', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed uninitialized lineno in constant AST of internal enums.', + 'raw' => 'Fixed uninitialized lineno in constant AST of internal enums. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument).', + 'raw' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h).', + 'raw' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15551', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument).', + 'raw' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '15752', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026)', + 'raw' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-9026', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15432 (Heap corruption when querying a vector).', + 'raw' => 'Fixed bug GH-15432 (Heap corruption when querying a vector). (cmb, Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'Kamil Tekiela', + ), + 'bugs' => + array ( + 0 => '15432', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c).', + 'raw' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15661', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h).', + 'raw' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15658', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925)', + 'raw' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925) (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8925', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form).', + 'raw' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '73182', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c).', + 'raw' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15552', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated).', + 'raw' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15628', + ), + ), + ), + ), + ), + ), + '8.2.23' => + array ( + 'date' => '29 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c).', + 'raw' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15020', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c).', + 'raw' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15023', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally).', + 'raw' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '13330', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix uninitialized memory in network.c.', + 'raw' => 'Fix uninitialized memory in network.c. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown).', + 'raw' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15108', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate).', + 'raw' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15275', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed case when curl_error returns an empty string.', + 'raw' => 'Fixed case when curl_error returns an empty string. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix UAF when removing doctype and using foreach iteration.', + 'raw' => 'Fix UAF when removing doctype and using foreach iteration. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak).', + 'raw' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak). (nielsdos, dstogov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'dstogov', + ), + 'bugs' => + array ( + 0 => '14286', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash when converting array data for array in shm in xxh3.', + 'raw' => 'Fix crash when converting array data for array in shm in xxh3. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional).', + 'raw' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15087', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4).', + 'raw' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '13817', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement).', + 'raw' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement). (Arnaud, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13775', + ), + ), + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re).', + 'raw' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15179', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix bogus fallthrough path in firebird_handle_get_attribute().', + 'raw' => 'Fix bogus fallthrough path in firebird_handle_get_attribute(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline).', + 'raw' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '13199', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)).', + 'raw' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15268', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations.', + 'raw' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15210', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris.', + 'raw' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55639 (Digest autentication dont work).', + 'raw' => 'Fixed bug #55639 (Digest autentication dont work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '55639', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix SoapFault property destruction.', + 'raw' => 'Fix SoapFault property destruction. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option).', + 'raw' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15252', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix passing non-finite timeout values in stream functions.', + 'raw' => 'Fix passing non-finite timeout values in stream functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-14780 p(f)sockopen timeout overflow.', + 'raw' => 'Fixed GH-14780 p(f)sockopen timeout overflow. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-15653 overflow on fgetcsv length parameter.', + 'raw' => 'Fixed GH-15653 overflow on fgetcsv length parameter. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c).', + 'raw' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15028', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB).', + 'raw' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15034', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/tidy basedir restriction code.', + 'raw' => 'Fix memory leaks in ext/tidy basedir restriction code. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.2.22' => + array ( + 'date' => '01 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1).', + 'raw' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '13922', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks).', + 'raw' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '14626', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt.', + 'raw' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14590', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #69765.', + 'raw' => 'Fixed OSS-Fuzz #69765. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h).', + 'raw' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14741', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()).', + 'raw' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14969', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error).', + 'raw' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14961', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash).', + 'raw' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14702', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support.', + 'raw' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support. (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + ), + ), + 1 => + array ( + 'message' => 'restored warning instead of fata error.', + 'raw' => 'restored warning instead of fata error. (dryabov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dryabov', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0).', + 'raw' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14563', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled).', + 'raw' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14550', + ), + ), + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer).', + 'raw' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14808', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14712 (Crash with PDORow access to null property).', + 'raw' => 'Fixed bug GH-14712 (Crash with PDORow access to null property). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14712', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14603 (null string from zip entry).', + 'raw' => 'Fixed bug GH-14603 (null string from zip entry). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14603', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1).', + 'raw' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14596', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte).', + 'raw' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14553', + ), + ), + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process).', + 'raw' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14537', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14638 (null dereference after XML parsing failure).', + 'raw' => 'Fixed bug GH-14638 (null dereference after XML parsing failure). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14638', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c).', + 'raw' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14639', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix 32-bit wordwrap test failures.', + 'raw' => 'Fix 32-bit wordwrap test failures. (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14774 (time_sleep_until overflow).', + 'raw' => 'Fixed bug GH-14774 (time_sleep_until overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14774', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy_repair_file().', + 'raw' => 'Fix memory leak in tidy_repair_file(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility with libxml2 2.13.2.', + 'raw' => 'Fix compatibility with libxml2 2.13.2. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Move away from to-be-deprecated libxml fields.', + 'raw' => 'Move away from to-be-deprecated libxml fields. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used).', + 'raw' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14834', + ), + ), + ), + ), + ), + ), + '8.2.21' => + array ( + 'date' => '04 Jul 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14315 (Incompatible pointer type warnings).', + 'raw' => 'Fixed bug GH-14315 (Incompatible pointer type warnings). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '14315', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon).', + 'raw' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon). (Manuel Kress)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Manuel Kress', + ), + 'bugs' => + array ( + 0 => '12814', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()).', + 'raw' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '14387', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor).', + 'raw' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '14456', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose).', + 'raw' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose). (Ryan Carsten Schmidt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ryan Carsten Schmidt', + ), + 'bugs' => + array ( + 0 => '14549', + ), + ), + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0).', + 'raw' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0).', + 'raw' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14307', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14343 (Memory leak in xml and dom).', + 'raw' => 'Fixed bug GH-14343 (Memory leak in xml and dom). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14343', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool).', + 'raw' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool). (Wilhansen Li, Pierrick Charron)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Wilhansen Li', + 1 => 'Pierrick Charron', + ), + 'bugs' => + array ( + 0 => '14037', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix parameter numbers for imagecolorset().', + 'raw' => 'Fix parameter numbers for imagecolorset(). (Giovanni Giacobbi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Giovanni Giacobbi', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference handling in SpoofChecker.', + 'raw' => 'Fix reference handling in SpoofChecker. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection).', + 'raw' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime).', + 'raw' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14267', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed TLS access in JIT on FreeBSD/amd64.', + 'raw' => 'Fixed TLS access in JIT on FreeBSD/amd64. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64).', + 'raw' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11188', + ), + ), + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC).', + 'raw' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC). (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + 'bugs' => + array ( + 0 => '14367', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure).', + 'raw' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '13681', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47925 (PHPClient can\'t decompress response).', + 'raw' => 'Fixed bug #47925 (PHPClient can\'t decompress response). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '47925', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix missing error restore code.', + 'raw' => 'Fix missing error restore code. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setObject() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setObject() twice. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setClass() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setClass() twice. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix reading zlib ini settings in ext-soap.', + 'raw' => 'Fix reading zlib ini settings in ext-soap. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix memory leaks with string function name lookups.', + 'raw' => 'Fix memory leaks with string function name lookups. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name).', + 'raw' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '69280', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon).', + 'raw' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '76232', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed memory leaks when calling SoapFault::__construct() twice.', + 'raw' => 'Fixed memory leaks when calling SoapFault::__construct() twice. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/sodium on failure of some functions.', + 'raw' => 'Fix memory leaks in ext/sodium on failure of some functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl).', + 'raw' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14290', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets).', + 'raw' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '14483', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors).', + 'raw' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11078', + ), + ), + ), + ), + ), + ), + '8.2.20' => + array ( + 'date' => '06 Jun 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed buffer limit on Windows, replacing read call usage by _read.', + 'raw' => 'Fixed buffer limit on Windows, replacing read call usage by _read. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577)', + 'raw' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-4577', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.).', + 'raw' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14189', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions).', + 'raw' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '13970', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14140 (Floating point bug in range operation on Apple Silicon hardware).', + 'raw' => 'Fixed bug GH-14140 (Floating point bug in range operation on Apple Silicon hardware). (Derick, Saki)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + 1 => 'Saki', + ), + 'bugs' => + array ( + 0 => '14140', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when entity declaration is removed while still having entity references.', + 'raw' => 'Fix crashes when entity declaration is removed while still having entity references. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix references not handled correctly in C14N.', + 'raw' => 'Fix references not handled correctly in C14N. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix crash when calling childNodes next() when iterator is exhausted.', + 'raw' => 'Fix crash when calling childNodes next() when iterator is exhausted. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes.', + 'raw' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14215 (Cannot use FFI::load on CRLF header file with apache2handler).', + 'raw' => 'Fixed bug GH-14215 (Cannot use FFI::load on CRLF header file with apache2handler). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14215', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458)', + 'raw' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-5458', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status).', + 'raw' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status). (Benjamin Cremer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Benjamin Cremer', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__`', + 'raw' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__` (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build regression on systems without C++17 compilers.', + 'raw' => 'Fixed build regression on systems without C++17 compilers. (Calvin Buckley, Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + 1 => 'Peter Kokot', + ), + ), + ), + ), + 'ini' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14100 (Corrected spelling mistake in php.ini files).', + 'raw' => 'Fixed bug GH-14100 (Corrected spelling mistake in php.ini files). (Marcus Xavier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Marcus Xavier', + ), + 'bugs' => + array ( + 0 => '14100', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query).', + 'raw' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query). (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm).', + 'raw' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14109', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable.', + 'raw' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. (CVE-2024-2408)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'CVE-2024-2408', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585)', + 'raw' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-5585', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit).', + 'raw' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14124', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden).', + 'raw' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14183', + ), + ), + ), + ), + ), + ), + '8.2.19' => + array ( + 'date' => '09 May 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled).', + 'raw' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '13772', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c).', + 'raw' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13931', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations).', + 'raw' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations). (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + 'bugs' => + array ( + 0 => '13942', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters).', + 'raw' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14003', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure).', + 'raw' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '14013', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly).', + 'raw' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly). (ranvis)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ranvis', + ), + 'bugs' => + array ( + 0 => '10232', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-13727 (Missing void keyword).', + 'raw' => 'Fixed bug GH-13727 (Missing void keyword). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '13727', + ), + ), + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).', + 'raw' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13903', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails).', + 'raw' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '13563', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build for icu 74 and onwards.', + 'raw' => 'Fixed build for icu 74 and onwards. (dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dunglas', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix shift out of bounds on 32-bit non-fast-path platforms.', + 'raw' => 'Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect assumptions across compilation units for static calls.', + 'raw' => 'Fixed incorrect assumptions across compilation units for static calls. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely).', + 'raw' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '10495', + ), + ), + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13984 (Buffer size is now checked before memcmp).', + 'raw' => 'Fix GH-13984 (Buffer size is now checked before memcmp). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly).', + 'raw' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference).', + 'raw' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13836', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c).', + 'raw' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13833', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix potential NULL pointer dereference before calling EVP_SignInit.', + 'raw' => 'Fix potential NULL pointer dereference before calling EVP_SignInit. (icy17)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'icy17', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame).', + 'raw' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13827', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fix usage of reentrant functions in ext/posix.', + 'raw' => 'Fix usage of reentrant functions in ext/posix. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c).', + 'raw' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13856', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts).', + 'raw' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts). (nielsdos, kamil-tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'kamil-tekiela', + ), + 'bugs' => + array ( + 0 => '13891', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed buffer _read/_write size limit on windows for the file mode.', + 'raw' => 'Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument".', + 'raw' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument". (Damian Wójcik)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Damian Wójcik', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure).', + 'raw' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '13264', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket).', + 'raw' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13860', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64).', + 'raw' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '11678', + ), + ), + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix gcc-14 Wcalloc-transposed-args warnings.', + 'raw' => 'Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Cristian Rodríguez', + ), + ), + ), + ), + ), + ), + '8.2.18' => + array ( + 'date' => '11 Apr 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references).', + 'raw' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13612', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure).', + 'raw' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '13784', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor).', + 'raw' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '13670', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Add some missing ZPP checks.', + 'raw' => 'Add some missing ZPP checks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix potential memory leak in XPath evaluation results.', + 'raw' => 'Fix potential memory leak in XPath evaluation results. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix phpdoc for DOMDocument load methods.', + 'raw' => 'Fix phpdoc for DOMDocument load methods. (VincentLanglet)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'VincentLanglet', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed incorrect check in fpm_shm_free().', + 'raw' => 'Fixed incorrect check in fpm_shm_free(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests).', + 'raw' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '12019', + ), + ), + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL.', + 'raw' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]).', + 'raw' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix incorrect charset length in check_mb_eucjpms().', + 'raw' => 'Fix incorrect charset length in check_mb_eucjpms(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).', + 'raw' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null). (Arnaud, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'Dmitry', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded).', + 'raw' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix various PDORow bugs.', + 'raw' => 'Fix various PDORow bugs. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes).', + 'raw' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '13544', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used).', + 'raw' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '13690', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error).', + 'raw' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13680', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13604 (socket_getsockname returns random characters in the end of the socket name).', + 'raw' => 'Fixed bug GH-13604 (socket_getsockname returns random characters in the end of the socket name). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '13604', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15).', + 'raw' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13531', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h).', + 'raw' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13685', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11808 (Live filesystem modified by tests).', + 'raw' => 'Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11808', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()).', + 'raw' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).', + 'raw' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows). (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + 'bugs' => + array ( + 0 => '13203', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874)', + 'raw' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-1874', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756)', + 'raw' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-2756', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096)', + 'raw' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-3096', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat).', + 'raw' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13517', + ), + ), + ), + ), + ), + ), + '8.2.17' => + array ( + 'date' => '14 Mar 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix ZTS persistent resource crashes on shutdown.', + 'raw' => 'Fix ZTS persistent resource crashes on shutdown. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix failing tests due to string changes in libcurl 8.6.0.', + 'raw' => 'Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap.', + 'raw' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport).', + 'raw' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13344', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER).', + 'raw' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '75712', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (detection of image formats in system gd library).', + 'raw' => 'Fixed bug GH-12019 (detection of image formats in system gd library). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '12019', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set).', + 'raw' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '11950', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference).', + 'raw' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference). (George Barbarosie)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'George Barbarosie', + ), + 'bugs' => + array ( + 0 => '13354', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now).', + 'raw' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now). (A. Slepykh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'A. Slepykh', + ), + ), + ), + ), + ), + ), + '8.2.16' => + array ( + 'date' => '15 Feb 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed timer leak in zend-max-execution-timers builds.', + 'raw' => 'Fixed timer leak in zend-max-execution-timers builds. (withinboredom)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'withinboredom', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12349 (linking failure on ARM with mold).', + 'raw' => 'Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jan Palus', + ), + 'bugs' => + array ( + 0 => '12349', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception).', + 'raw' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13097', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13215 (GCC 14 build failure).', + 'raw' => 'Fixed bug GH-13215 (GCC 14 build failure). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '13215', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix missing error check in curl_multi_init().', + 'raw' => 'Fix missing error check in curl_multi_init(). (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path).', + 'raw' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '12996', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path).', + 'raw' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10344', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90).', + 'raw' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10614', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes).', + 'raw' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12107', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on).', + 'raw' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13232', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. .', + 'raw' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. (David Carlier).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format).', + 'raw' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed).', + 'raw' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '71465', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file).', + 'raw' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13037', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines).', + 'raw' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '13138', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader).', + 'raw' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12504', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail).', + 'raw' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13071', + ), + ), + ), + ), + ), + ), + '8.2.15' => + array ( + 'date' => '18 Jan 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements).', + 'raw' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12953', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings).', + 'raw' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '12966', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13727 (missing void keyword for C generate code for feature test).', + 'raw' => 'Fixed bug GH-13727 (missing void keyword for C generate code for feature test). (Peter Kokot/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot/David Carlier', + ), + 'bugs' => + array ( + 0 => '13727', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time.', + 'raw' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData).', + 'raw' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9698', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers).', + 'raw' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12905', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*.', + 'raw' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale).', + 'raw' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB).', + 'raw' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12936', + ), + ), + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix crash on Apache shutdown with persistent connections.', + 'raw' => 'Fix crash on Apache shutdown with persistent connections. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result).', + 'raw' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258.', + 'raw' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error).', + 'raw' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '12987', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES).', + 'raw' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()).', + 'raw' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '12767', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed auto_reset_persistent handling and allow_persistent type.', + 'raw' => 'Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()).', + 'raw' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12974', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77432 (Segmentation fault on including phar file).', + 'raw' => 'Fixed bug #77432 (Segmentation fault on including phar file). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '77432', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c).', + 'raw' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12962', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash.', + 'raw' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes).', + 'raw' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12980', + ), + ), + ), + ), + ), + ), + '8.2.14' => + array ( + 'date' => '21 Dec 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler).', + 'raw' => 'Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed oss-fuzz #64209 (In-place modification of filename in php_message_handler_for_zend).', + 'raw' => 'Fixed oss-fuzz #64209 (In-place modification of filename in php_message_handler_for_zend). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC).', + 'raw' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + 'bugs' => + array ( + 0 => '12758', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix various missing NULL checks.', + 'raw' => 'Fix various missing NULL checks. (nielsdos, dstogov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'dstogov', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call).', + 'raw' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '12835', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed improbably integer overflow while parsing really large (or small) Unix timestamps.', + 'raw' => 'Fixed improbably integer overflow while parsing really large (or small) Unix timestamps. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix).', + 'raw' => 'Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12616', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval).', + 'raw' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). (Patrick Prasse)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Patrick Prasse', + ), + 'bugs' => + array ( + 0 => '12705', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9348 (FTP & SSL session reuse).', + 'raw' => 'Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '9348', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1).', + 'raw' => 'Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12635', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12702 (libxml2 2.12.0 issue building from src).', + 'raw' => 'Fixed bug GH-12702 (libxml2 2.12.0 issue building from src). (nono303)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nono303', + ), + 'bugs' => + array ( + 0 => '12702', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed test failures for libxml2 2.12.0.', + 'raw' => 'Fixed test failures for libxml2 2.12.0. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Avoid using uninitialised struct.', + 'raw' => 'Avoid using uninitialised struct. (mikhainin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mikhainin', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code).', + 'raw' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12791', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error).', + 'raw' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown).', + 'raw' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs).', + 'raw' => 'Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '50713', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux).', + 'raw' => 'Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12628', + ), + ), + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify()', + 'raw' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12763 wrong argument type for pg_untrace.', + 'raw' => 'Fixed bug GH-12763 wrong argument type for pg_untrace. (degtyarov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'degtyarov', + ), + 'bugs' => + array ( + 0 => '12763', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c).', + 'raw' => 'Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12675', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted).', + 'raw' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12838', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12721 (SplFileInfo::getFilename() segfault in combination with GlobIterator and no directory separator).', + 'raw' => 'Fixed bug GH-12721 (SplFileInfo::getFilename() segfault in combination with GlobIterator and no directory separator). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12721', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0).', + 'raw' => 'Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '12633', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in syslog device handling.', + 'raw' => 'Fix memory leak in syslog device handling. (danog)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danog', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12621 (browscap segmentation fault when configured in the vhost).', + 'raw' => 'Fixed bug GH-12621 (browscap segmentation fault when configured in the vhost). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12621', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12655 (proc_open() does not take into account references in the descriptor array).', + 'raw' => 'Fixed bug GH-12655 (proc_open() does not take into account references in the descriptor array). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12655', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault).', + 'raw' => 'Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '79945', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option Behavior).', + 'raw' => 'Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option Behavior). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '12661', + ), + ), + ), + ), + ), + ), + '8.2.13' => + array ( + 'date' => '23 Nov 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed double-free of non-interned enum case name.', + 'raw' => 'Fixed double-free of non-interned enum case name. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12457 (Incorrect result of stripos with single character needle).', + 'raw' => 'Fixed bug GH-12457 (Incorrect result of stripos with single character needle). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '12457', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12468 (Double-free of doc_comment when overriding static property via trait).', + 'raw' => 'Fixed bug GH-12468 (Double-free of doc_comment when overriding static property via trait). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '12468', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed segfault caused by weak references to FFI objects.', + 'raw' => 'Fixed segfault caused by weak references to FFI objects. (sj-i)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'sj-i', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed max_execution_time: don\'t delete an unitialized timer.', + 'raw' => 'Fixed max_execution_time: don\'t delete an unitialized timer. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-12558 (Arginfo soft-breaks with namespaced class return type if the class name starts with N).', + 'raw' => 'Fixed bug GH-12558 (Arginfo soft-breaks with namespaced class return type if the class name starts with N). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '12558', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix registerNodeClass with abstract class crashing.', + 'raw' => 'Fix registerNodeClass with abstract class crashing. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'icy17', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix validation logic of php:function() callbacks.', + 'raw' => 'Fix validation logic of php:function() callbacks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fiber' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11121 (ReflectionFiber segfault).', + 'raw' => 'Fixed bug GH-11121 (ReflectionFiber segfault). (danog, trowski, bwoebi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danog', + 1 => 'trowski', + 2 => 'bwoebi', + ), + 'bugs' => + array ( + 0 => '11121', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9921 (Loading ext in FPM config does not register module handlers).', + 'raw' => 'Fixed bug GH-9921 (Loading ext in FPM config does not register module handlers). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9921', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12232 (FPM: segfault dynamically loading extension without opcache).', + 'raw' => 'Fixed bug GH-12232 (FPM: segfault dynamically loading extension without opcache). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '12232', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #76922 (FastCGI terminates conn after FCGI_GET_VALUES).', + 'raw' => 'Fixed bug #76922 (FastCGI terminates conn after FCGI_GET_VALUES). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '76922', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale.', + 'raw' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added warning when JIT cannot be enabled.', + 'raw' => 'Added warning when JIT cannot be enabled. (danog)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danog', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since upgrading to 8.1.3 due to corrupt on-disk file cache).', + 'raw' => 'Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since upgrading to 8.1.3 due to corrupt on-disk file cache). (turchanov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'turchanov', + ), + 'bugs' => + array ( + 0 => '8143', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify).', + 'raw' => 'Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '12489', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11374 (Backport upstream fix, Different preg_match result with -d pcre.jit=0).', + 'raw' => 'Fixed bug GH-11374 (Backport upstream fix, Different preg_match result with -d pcre.jit=0). (mvorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mvorisek', + ), + 'bugs' => + array ( + 0 => '11374', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes).', + 'raw' => 'Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12392', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation Fault).', + 'raw' => 'Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation Fault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '66150', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC).', + 'raw' => 'Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '67617', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix incorrect uri check in SOAP caching.', + 'raw' => 'Fix incorrect uri check in SOAP caching. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix segfault and assertion failure with refcounted props and arrays.', + 'raw' => 'Fix segfault and assertion failure with refcounted props and arrays. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix potential crash with an edge case of persistent encoders.', + 'raw' => 'Fix potential crash with an edge case of persistent encoders. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug #75306 (Memleak in SoapClient).', + 'raw' => 'Fixed bug #75306 (Memleak in SoapClient). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '75306', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers).', + 'raw' => 'Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '75708', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'icy17', + ), + ), + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'icy17', + ), + ), + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Add missing module dependency.', + 'raw' => 'Add missing module dependency. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix validation logic of php:function() callbacks.', + 'raw' => 'Fix validation logic of php:function() callbacks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.2.12' => + array ( + 'date' => '26 Oct 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12207 (memory leak when class using trait with doc block).', + 'raw' => 'Fixed bug GH-12207 (memory leak when class using trait with doc block). (rioderelfte)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'rioderelfte', + ), + 'bugs' => + array ( + 0 => '12207', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12215 (Module entry being overwritten causes type errors in ext/dom).', + 'raw' => 'Fixed bug GH-12215 (Module entry being overwritten causes type errors in ext/dom). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12215', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12273 (__builtin_cpu_init check).', + 'raw' => 'Fixed bug GH-12273 (__builtin_cpu_init check). (Freaky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Freaky', + ), + 'bugs' => + array ( + 0 => '12273', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug #80092 (ZTS + preload = segfault on shutdown).', + 'raw' => 'Fixed bug #80092 (ZTS + preload = segfault on shutdown). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '80092', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Ensure a single Date header is present.', + 'raw' => 'Ensure a single Date header is present. (coppolafab)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'coppolafab', + ), + ), + ), + ), + 'ctype' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater).', + 'raw' => 'Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11997', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Restore old namespace reconciliation behaviour.', + 'raw' => 'Restore old namespace reconciliation behaviour. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1).', + 'raw' => 'Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8996', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11891 (fileinfo returns text/xml for some svg files).', + 'raw' => 'Fixed bug GH-11891 (fileinfo returns text/xml for some svg files). (usarise)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'usarise', + ), + 'bugs' => + array ( + 0 => '11891', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK', + 'raw' => 'Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext).', + 'raw' => 'Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext). (MaxSem)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'MaxSem', + ), + 'bugs' => + array ( + 0 => '12186', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12243 (segfault on IntlDateFormatter::construct).', + 'raw' => 'Fixed bug GH-12243 (segfault on IntlDateFormatter::construct). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '12243', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception on an invalid locale).', + 'raw' => 'Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception on an invalid locale). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '12282', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) \'mysqlnd.so\' in Unknown on line).', + 'raw' => 'Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) \'mysqlnd.so\' in Unknown on line). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12297', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed opcache_invalidate() on deleted file.', + 'raw' => 'Fixed opcache_invalidate() on deleted file. (mikhainin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mikhainin', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12380 (JIT+private array property access inside closure accesses private property in child class).', + 'raw' => 'Fixed bug GH-12380 (JIT+private array property access inside closure accesses private property in child class). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12380', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result).', + 'raw' => 'Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11956', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12170 (Can\'t use xpath with comments in SimpleXML).', + 'raw' => 'Fixed bug GH-12170 (Can\'t use xpath with comments in SimpleXML). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12170', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12223 (Entity reference produces infinite loop in var_dump/print_r).', + 'raw' => 'Fixed bug GH-12223 (Entity reference produces infinite loop in var_dump/print_r). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12223', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12167 (Unable to get processing instruction contents in SimpleXML).', + 'raw' => 'Fixed bug GH-12167 (Unable to get processing instruction contents in SimpleXML). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12167', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12169 (Unable to get comment contents in SimpleXML).', + 'raw' => 'Fixed bug GH-12169 (Unable to get comment contents in SimpleXML). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12169', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12190 (binding ipv4 address with both address and port at 0).', + 'raw' => 'Fixed bug GH-12190 (binding ipv4 address with both address and port at 0). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '12190', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fix return type of stub of xml_parse_into_struct().', + 'raw' => 'Fix return type of stub of xml_parse_into_struct(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when calling xml_parse_into_struct() twice.', + 'raw' => 'Fix memory leak when calling xml_parse_into_struct() twice. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML.', + 'raw' => 'Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.2.11' => + array ( + 'date' => '28 Sep 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11937 (Constant ASTs containing objects).', + 'raw' => 'Fixed bug GH-11937 (Constant ASTs containing objects). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '11937', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11790 (On riscv64 require libatomic if actually needed).', + 'raw' => 'Fixed bug GH-11790 (On riscv64 require libatomic if actually needed). (Jeremie Courreges-Anglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jeremie Courreges-Anglas', + ), + 'bugs' => + array ( + 0 => '11790', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11876: ini_parse_quantity() accepts invalid quantities.', + 'raw' => 'Fixed bug GH-11876: ini_parse_quantity() accepts invalid quantities. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '11876', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12073 (Segfault when freeing incompletely initialized closures).', + 'raw' => 'Fixed bug GH-12073 (Segfault when freeing incompletely initialized closures). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '12073', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-12060 (Internal iterator rewind handler is called twice).', + 'raw' => 'Fixed bug GH-12060 (Internal iterator rewind handler is called twice). (ju1ius)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ju1ius', + ), + 'bugs' => + array ( + 0 => '12060', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-12102 (Incorrect compile error when using array access on TMP value in function call).', + 'raw' => 'Fixed bug GH-12102 (Incorrect compile error when using array access on TMP value in function call). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '12102', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when setting an invalid DOMDocument encoding.', + 'raw' => 'Fix memory leak when setting an invalid DOMDocument encoding. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed build for NetBSD which still uses the old iconv signature.', + 'raw' => 'Fixed build for NetBSD which still uses the old iconv signature. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12020 (intl_get_error_message() broken after MessageFormatter::formatMessage() fails).', + 'raw' => 'Fixed bug GH-12020 (intl_get_error_message() broken after MessageFormatter::formatMessage() fails). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '12020', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10270 (Invalid error message when connection via SSL fails: "trying to connect via (null)").', + 'raw' => 'Fixed bug GH-10270 (Invalid error message when connection via SSL fails: "trying to connect via (null)"). (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + 'bugs' => + array ( + 0 => '10270', + ), + ), + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak with failed SQLPrepare.', + 'raw' => 'Fixed memory leak with failed SQLPrepare. (NattyNarwhal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'NattyNarwhal', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed persistent procedural ODBC connections not getting closed.', + 'raw' => 'Fixed persistent procedural ODBC connections not getting closed. (NattyNarwhal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'NattyNarwhal', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52751 (XPath processing-instruction() function is not supported).', + 'raw' => 'Fixed bug #52751 (XPath processing-instruction() function is not supported). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '52751', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18).', + 'raw' => 'Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11972', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with a callable array).', + 'raw' => 'Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with a callable array). (nielsdos, arnaud-lb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'arnaud-lb', + ), + 'bugs' => + array ( + 0 => '11878', + ), + ), + ), + ), + ), + ), + '8.2.10' => + array ( + 'date' => '31 Aug 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1).', + 'raw' => 'Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11716', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10964 (Improve man page about the built-in server).', + 'raw' => 'Fixed bug GH-10964 (Improve man page about the built-in server). (Alexandre Daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alexandre Daubois', + ), + 'bugs' => + array ( + 0 => '10964', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11416 (Crash with DatePeriod when uninitialised objects are passed in).', + 'raw' => 'Fixed bug GH-11416 (Crash with DatePeriod when uninitialised objects are passed in). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '11416', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed strerror_r detection at configuration time.', + 'raw' => 'Fixed strerror_r detection at configuration time. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed trait typed properties using a DNF type not being correctly bound.', + 'raw' => 'Fixed trait typed properties using a DNF type not being correctly bound. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed trait property types not being arena allocated if copied from an internal trait.', + 'raw' => 'Fixed trait property types not being arena allocated if copied from an internal trait. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed deep copy of property DNF type during lazy class load.', + 'raw' => 'Fixed deep copy of property DNF type during lazy class load. (Girgias, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + 1 => 'ilutov', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed memory freeing of DNF types for non arena allocated types.', + 'raw' => 'Fixed memory freeing of DNF types for non arena allocated types. (Girgias, ju1ius)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + 1 => 'ju1ius', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix DOMEntity field getter bugs.', + 'raw' => 'Fix DOMEntity field getter bugs. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS.', + 'raw' => 'Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix DOMCharacterData::replaceWith() with itself.', + 'raw' => 'Fix DOMCharacterData::replaceWith() with itself. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix empty argument cases for DOMParentNode methods.', + 'raw' => 'Fix empty argument cases for DOMParentNode methods. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone).', + 'raw' => 'Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11791', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix json_encode result on DOMDocument.', + 'raw' => 'Fix json_encode result on DOMDocument. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Fix manually calling __construct() on DOM classes.', + 'raw' => 'Fix manually calling __construct() on DOM classes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-11830 (ParentNode methods should perform their checks upfront).', + 'raw' => 'Fixed bug GH-11830 (ParentNode methods should perform their checks upfront). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11830', + ), + ), + ), + 8 => + array ( + 'message' => 'Fix viable next sibling search for replaceWith.', + 'raw' => 'Fix viable next sibling search for replaceWith. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix segfault when DOMParentNode::prepend() is called when the child disappears.', + 'raw' => 'Fix segfault when DOMParentNode::prepend() is called when the child disappears. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fix leaking definitions when using FFI::cdef()->new(...).', + 'raw' => 'Fix leaking definitions when using FFI::cdef()->new(...). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options parameter in signature.', + 'raw' => 'Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options parameter in signature. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL).', + 'raw' => 'Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11440', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters).', + 'raw' => 'Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters). (nielsdos, Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Kamil Tekiela', + ), + 'bugs' => + array ( + 0 => '11438', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault).', + 'raw' => 'Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault). (Yurunsoft)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yurunsoft', + ), + 'bugs' => + array ( + 0 => '11550', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed invalid error message "Malformed packet" when connection is dropped.', + 'raw' => 'Fixed invalid error message "Malformed packet" when connection is dropped. (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong).', + 'raw' => 'Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11715', + ), + ), + ), + 1 => + array ( + 'message' => 'Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress.', + 'raw' => 'Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress. (mikhainin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mikhainin', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22.', + 'raw' => 'Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free).', + 'raw' => 'Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '81992', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Prevent int overflow on $decimals in number_format.', + 'raw' => 'Prevent int overflow on $decimals in number_format. (Marc Bennewitz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Marc Bennewitz', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix)', + 'raw' => 'Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) (athos-ribeiro)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'athos-ribeiro', + ), + 'bugs' => + array ( + 0 => '11870', + ), + ), + ), + ), + ), + ), + '8.2.9' => + array ( + 'date' => '03 Aug 2023', + 'modules' => + array ( + 'build' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11522 (PHP version check fails with \'-\' separator).', + 'raw' => 'Fixed bug GH-11522 (PHP version check fails with \'-\' separator). (SVGAnimate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SVGAnimate', + ), + 'bugs' => + array ( + 0 => '11522', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix interrupted CLI output causing the process to exit.', + 'raw' => 'Fix interrupted CLI output causing the process to exit. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator).', + 'raw' => 'Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed line number of JMP instruction over else block.', + 'raw' => 'Fixed line number of JMP instruction over else block. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed use-of-uninitialized-value with ??= on assert.', + 'raw' => 'Fixed use-of-uninitialized-value with ??= on assert. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions).', + 'raw' => 'Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed build for FreeBSD before the 11.0 releases.', + 'raw' => 'Fixed build for FreeBSD before the 11.0 releases. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION.', + 'raw' => 'Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11368 (Date modify returns invalid datetime).', + 'raw' => 'Fixed bug GH-11368 (Date modify returns invalid datetime). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '11368', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11600 (Can\'t parse time strings which include (narrow) non-breaking space characters).', + 'raw' => 'Fixed bug GH-11600 (Can\'t parse time strings which include (narrow) non-breaking space characters). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '11600', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11854 (DateTime:createFromFormat stopped parsing datetime with extra space).', + 'raw' => 'Fixed bug GH-11854 (DateTime:createFromFormat stopped parsing datetime with extra space). (nielsdos, Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Derick', + ), + 'bugs' => + array ( + 0 => '11854', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11625 (DOMElement::replaceWith() doesn\'t replace node with DOMDocumentFragment but just deletes node or causes wrapping <> depending on libxml2 version).', + 'raw' => 'Fixed bug GH-11625 (DOMElement::replaceWith() doesn\'t replace node with DOMDocumentFragment but just deletes node or causes wrapping <> depending on libxml2 version). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11625', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11298 (finfo returns wrong mime type for xz files).', + 'raw' => 'Fixed bug GH-11298 (finfo returns wrong mime type for xz files). (Anatol)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Anatol', + ), + 'bugs' => + array ( + 0 => '11298', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix context option check for "overwrite".', + 'raw' => 'Fix context option check for "overwrite". (JonasQuinten)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'JonasQuinten', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10562 (Memory leak and invalid state with consecutive ftp_nb_fget).', + 'raw' => 'Fixed bug GH-10562 (Memory leak and invalid state with consecutive ftp_nb_fget). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10562', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix most of the external libgd test failures.', + 'raw' => 'Fix most of the external libgd test failures. (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in MessageFormatter::format() on failure.', + 'raw' => 'Fix memory leak in MessageFormatter::format() on failure. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823)', + 'raw' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823) (nielsdos, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2023-3823', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11300 (license issue: restricted unicode license headers).', + 'raw' => 'Fix GH-11300 (license issue: restricted unicode license headers). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10914 (OPCache with Enum and Callback functions results in segmentation fault).', + 'raw' => 'Fixed bug GH-10914 (OPCache with Enum and Callback functions results in segmentation fault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10914', + ), + ), + ), + 1 => + array ( + 'message' => 'Prevent potential deadlock if accelerated globals cannot be allocated.', + 'raw' => 'Prevent potential deadlock if accelerated globals cannot be allocated. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open).', + 'raw' => 'Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11498', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer filled).', + 'raw' => 'Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer filled). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt).', + 'raw' => 'Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt). (KapitanOczywisty, CViniciusSDias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'KapitanOczywisty', + 1 => 'CViniciusSDias', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Add missing check on EVP_VerifyUpdate() in phar util.', + 'raw' => 'Add missing check on EVP_VerifyUpdate() in phar util. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824)', + 'raw' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2023-3824', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9669 (phpdbg -h options doesn\'t list the -z option).', + 'raw' => 'Fixed bug GH-9669 (phpdbg -h options doesn\'t list the -z option). (adsr)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'adsr', + ), + 'bugs' => + array ( + 0 => '9669', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Removed broken url support for transferring session ID.', + 'raw' => 'Removed broken url support for transferring session ID. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix serialization of RC1 objects appearing in object graph twice.', + 'raw' => 'Fix serialization of RC1 objects appearing in object graph twice. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11735 (Use-after-free when unregistering user stream wrapper from itself).', + 'raw' => 'Fixed bug GH-11735 (Use-after-free when unregistering user stream wrapper from itself). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '11735', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fix replaced error handling in SQLite3Stmt::__construct.', + 'raw' => 'Fix replaced error handling in SQLite3Stmt::__construct. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11548 (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active).', + 'raw' => 'Fix GH-11548 (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + ), + ), + ), + ), + ), + '8.2.8' => + array ( + 'date' => '06 Jul 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS).', + 'raw' => 'Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS). (James Lucas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'James Lucas', + ), + 'bugs' => + array ( + 0 => '11246', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed build for the riscv64 architecture/GCC 12.', + 'raw' => 'Fixed build for the riscv64 architecture/GCC 12. (Daniil Gentili)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniil Gentili', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL).', + 'raw' => 'Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11433', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11455 (Segmentation fault with custom object date properties).', + 'raw' => 'Fixed bug GH-11455 (Segmentation fault with custom object date properties). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11455', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions and segfaults with replaceWith).', + 'raw' => 'Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions and segfaults with replaceWith). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty attribute value).', + 'raw' => 'Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty attribute value). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10234', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix return value in stub file for DOMNodeList::item.', + 'raw' => 'Fix return value in stub file for DOMNodeList::item. (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix spec compliance error with \'*\' namespace for DOMDocument::getElementsByTagNameNS.', + 'raw' => 'Fix spec compliance error with \'*\' namespace for DOMDocument::getElementsByTagNameNS. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix DOMElement::append() and DOMElement::prepend() hierarchy checks.', + 'raw' => 'Fix DOMElement::append() and DOMElement::prepend() hierarchy checks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-11347 (Memory leak when calling a static method inside an xpath query).', + 'raw' => 'Fixed bug GH-11347 (Memory leak when calling a static method inside an xpath query). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11347', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces).', + 'raw' => 'Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '67440', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself).', + 'raw' => 'Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '81642', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug #77686 (Removed elements are still returned by getElementById).', + 'raw' => 'Fixed bug #77686 (Removed elements are still returned by getElementById). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '77686', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()).', + 'raw' => 'Fixed bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '70359', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug #78577 (Crash in DOMNameSpace debug info handlers).', + 'raw' => 'Fixed bug #78577 (Crash in DOMNameSpace debug info handlers). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '78577', + ), + ), + ), + 11 => + array ( + 'message' => 'Fix lifetime issue with getAttributeNodeNS().', + 'raw' => 'Fix lifetime issue with getAttributeNodeNS(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 12 => + array ( + 'message' => 'Fix "invalid state error" with cloned namespace declarations.', + 'raw' => 'Fix "invalid state error" with cloned namespace declarations. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 13 => + array ( + 'message' => 'Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation issues).', + 'raw' => 'Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation issues). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '55294', + ), + ), + ), + 14 => + array ( + 'message' => 'Fixed bug #80332 (Completely broken array access functionality with DOMNamedNodeMap).', + 'raw' => 'Fixed bug #80332 (Completely broken array access functionality with DOMNamedNodeMap). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '80332', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix allocation loop in zend_shared_alloc_startup().', + 'raw' => 'Fix allocation loop in zend_shared_alloc_startup(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Access violation on smm_shared_globals with ALLOC_FALLBACK.', + 'raw' => 'Access violation on smm_shared_globals with ALLOC_FALLBACK. (KoudelkaB)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'KoudelkaB', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked).', + 'raw' => 'Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11336', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in subjectAltNames .', + 'raw' => 'Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in subjectAltNames (James Lucas, Jakub Zelenka).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'James Lucas', + 1 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9356', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fix preg_replace_callback_array() pattern validation.', + 'raw' => 'Fix preg_replace_callback_array() pattern validation. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed intermittent segfault with pg_trace.', + 'raw' => 'Fixed intermittent segfault with pg_trace. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix cross-compilation check in phar generation for FreeBSD.', + 'raw' => 'Fix cross-compilation check in phar generation for FreeBSD. (peter279k)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'peter279k', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one slash).', + 'raw' => 'Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one slash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11338', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix access on NULL pointer in array_merge_recursive().', + 'raw' => 'Fix access on NULL pointer in array_merge_recursive(). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix exception handling in array_multisort().', + 'raw' => 'Fix exception handling in array_multisort(). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11451 (Invalid associative array containing duplicate keys).', + 'raw' => 'Fixed bug GH-11451 (Invalid associative array containing duplicate keys). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11451', + ), + ), + ), + ), + ), + ), + '8.2.7' => + array ( + 'date' => '08 Jun 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11152 (Unable to alias namespaces containing reserved class names).', + 'raw' => 'Fixed bug GH-11152 (Unable to alias namespaces containing reserved class names). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '11152', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9068 (Conditional jump or move depends on uninitialised value(s)).', + 'raw' => 'Fixed bug GH-9068 (Conditional jump or move depends on uninitialised value(s)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '9068', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state).', + 'raw' => 'Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '11189', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11063 (Compilation error on old GCC versions).', + 'raw' => 'Fixed bug GH-11063 (Compilation error on old GCC versions). (ingamedeo)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ingamedeo', + ), + 'bugs' => + array ( + 0 => '11063', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash).', + 'raw' => 'Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '11222', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in offset).', + 'raw' => 'Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in offset). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11281', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper chunk sizes).', + 'raw' => 'Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper chunk sizes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10834', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of child->ev_std(out|err)).', + 'raw' => 'Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of child->ev_std(out|err)). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '10461', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #64539 (FPM status page: query_string not properly JSON encoded).', + 'raw' => 'Fixed bug #64539 (FPM status page: query_string not properly JSON encoded). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '64539', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed memory leak for invalid primary script file handle.', + 'raw' => 'Fixed memory leak for invalid primary script file handle. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments).', + 'raw' => 'Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11180', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0).', + 'raw' => 'Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11160', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-11217 (Segfault in mb_strrpos / mb_strripos when using negative offset and ASCII encoding).', + 'raw' => 'Fix bug GH-11217 (Segfault in mb_strrpos / mb_strripos when using negative offset and ASCII encoding). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11134 (Incorrect match default branch optimization).', + 'raw' => 'Fixed bug GH-11134 (Incorrect match default branch optimization). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '11134', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed too wide OR and AND range inference.', + 'raw' => 'Fixed too wide OR and AND range inference. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed missing class redeclaration error with OPcache enabled.', + 'raw' => 'Fixed missing class redeclaration error with OPcache enabled. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11245 (In some specific cases SWITCH with one default statement will cause segfault).', + 'raw' => 'Fixed bug GH-11245 (In some specific cases SWITCH with one default statement will cause segfault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11245', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed maximum argument count of pcntl_forkx().', + 'raw' => 'Fixed maximum argument count of pcntl_forkx(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed parameter parsing of pg_lo_export().', + 'raw' => 'Fixed parameter parsing of pg_lo_export(). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11099 (Generating phar.php during cross-compile can\'t be done).', + 'raw' => 'Fixed bug GH-11099 (Generating phar.php during cross-compile can\'t be done). (peter279k)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'peter279k', + ), + 'bugs' => + array ( + 0 => '11099', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247)', + 'raw' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247) (nielsdos, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'timwolla', + ), + 'cves' => + array ( + 0 => 'CVE-2023-3247', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8426 (make test fail while soap extension build).', + 'raw' => 'Fixed bug GH-8426 (make test fail while soap extension build). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8426', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)).', + 'raw' => 'Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11178', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for source file).', + 'raw' => 'Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for source file). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '11138', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 redirect).', + 'raw' => 'Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 redirect). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11274', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data).', + 'raw' => 'Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10031', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11175 (Stream Socket Timeout).', + 'raw' => 'Fixed bug GH-11175 (Stream Socket Timeout). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11175', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream_socket_accept/stream_socket_client).', + 'raw' => 'Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream_socket_accept/stream_socket_client). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11177', + ), + ), + ), + ), + ), + ), + '8.2.6' => + array ( + 'date' => '11 May 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix inconsistent float negation in constant expressions.', + 'raw' => 'Fix inconsistent float negation in constant expressions. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8841 (php-cli core dump calling a badly formed function).', + 'raw' => 'Fixed bug GH-8841 (php-cli core dump calling a badly formed function). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8841', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c).', + 'raw' => 'Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c). (nielsdos, ElliotNB)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ElliotNB', + ), + 'bugs' => + array ( + 0 => '10737', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.).', + 'raw' => 'Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11028', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=).', + 'raw' => 'Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '11108', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug where the diff() method would not return the right result around DST changeover for date/times associated with a timezone identifier.', + 'raw' => 'Fixed bug where the diff() method would not return the right result around DST changeover for date/times associated with a timezone identifier. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed out-of-range bug when converting to/from around the LONG_MIN unix timestamp.', + 'raw' => 'Fixed out-of-range bug when converting to/from around the LONG_MIN unix timestamp. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80602 (Segfault when using DOMChildNode::before()).', + 'raw' => 'Fixed bug #80602 (Segfault when using DOMChildNode::before()). (Nathan Freeman)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Nathan Freeman', + ), + 'bugs' => + array ( + 0 => '80602', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed incorrect error handling in dom_zvals_to_fragment().', + 'raw' => 'Fixed incorrect error handling in dom_zvals_to_fragment(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index).', + 'raw' => 'Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '9397', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11071 (TZData version not displayed anymore).', + 'raw' => 'Fixed bug GH-11071 (TZData version not displayed anymore). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '11071', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10968 (Segfault in preg_replace_callback_array()).', + 'raw' => 'Fixed bug GH-10968 (Segfault in preg_replace_callback_array()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '10968', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10983 (State-dependant segfault in ReflectionObject::getProperties).', + 'raw' => 'Fixed bug GH-10983 (State-dependant segfault in ReflectionObject::getProperties). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10983', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Handle indirect zvals and use up-to-date properties in SplFixedArray::__serialize.', + 'raw' => 'Handle indirect zvals and use up-to-date properties in SplFixedArray::__serialize. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10990 (mail() throws TypeError after iterating over $additional_headers array by reference).', + 'raw' => 'Fixed bug GH-10990 (mail() throws TypeError after iterating over $additional_headers array by reference). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10990', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9775 (Duplicates returned by array_unique when using enums).', + 'raw' => 'Fixed bug GH-9775 (Duplicates returned by array_unique when using enums). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '9775', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10406 (feof() behavior change for UNIX based socket resources).', + 'raw' => 'Fixed bug GH-10406 (feof() behavior change for UNIX based socket resources). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '10406', + ), + ), + ), + ), + ), + ), + '8.2.5' => + array ( + 'date' => '13 Apr 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added optional support for max_execution_time in ZTS/Linux builds', + 'raw' => 'Added optional support for max_execution_time in ZTS/Linux builds (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed use-after-free in recursive AST evaluation.', + 'raw' => 'Fixed use-after-free in recursive AST evaluation. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8646 (Memory leak PHP FPM 8.1).', + 'raw' => 'Fixed bug GH-8646 (Memory leak PHP FPM 8.1). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8646', + ), + ), + ), + 3 => + array ( + 'message' => 'Re-add some CTE functions that were removed from being CTE by a mistake.', + 'raw' => 'Re-add some CTE functions that were removed from being CTE by a mistake. (mvorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mvorisek', + ), + ), + ), + 4 => + array ( + 'message' => 'Remove CTE flag from array_diff_ukey(), which was added by mistake.', + 'raw' => 'Remove CTE flag from array_diff_ukey(), which was added by mistake. (mvorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mvorisek', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-10801 (Named arguments in CTE functions cause a segfault).', + 'raw' => 'Fixed bug GH-10801 (Named arguments in CTE functions cause a segfault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10801', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer crashes on apache).', + 'raw' => 'Fixed bug GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer crashes on apache). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8789', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-10015 (zend_signal_handler_defer crashes on apache shutdown).', + 'raw' => 'Fixed bug GH-10015 (zend_signal_handler_defer crashes on apache shutdown). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10015', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-10810 (Fix NUL byte terminating Exception::__toString()).', + 'raw' => 'Fixed bug GH-10810 (Fix NUL byte terminating Exception::__toString()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '10810', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix potential memory corruption when mixing __callStatic() and FFI.', + 'raw' => 'Fix potential memory corruption when mixing __callStatic() and FFI. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10747 (Private and protected properties in serialized Date* objects throw).', + 'raw' => 'Fixed bug GH-10747 (Private and protected properties in serialized Date* objects throw). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '10747', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10611 (fpm_env_init_main leaks environ).', + 'raw' => 'Fixed bug GH-10611 (fpm_env_init_main leaks environ). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10611', + ), + ), + ), + 1 => + array ( + 'message' => 'Destroy file_handle in fpm_main.', + 'raw' => 'Destroy file_handle in fpm_main. (Jakub Zelenka, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #74129 (Incorrect SCRIPT_NAME with apache ProxyPassMatch when spaces are in path).', + 'raw' => 'Fixed bug #74129 (Incorrect SCRIPT_NAME with apache ProxyPassMatch when spaces are in path). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '74129', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Propagate success status of ftp_close().', + 'raw' => 'Propagate success status of ftp_close(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10521 (ftp_get/ftp_nb_get resumepos offset is maximum 10GB).', + 'raw' => 'Fixed bug GH-10521 (ftp_get/ftp_nb_get resumepos offset is maximum 10GB). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10521', + ), + ), + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fix build failure with Clang 16.', + 'raw' => 'Fix build failure with Clang 16. (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8979 (Possible Memory Leak with SSL-enabled MySQL connections).', + 'raw' => 'Fixed bug GH-8979 (Possible Memory Leak with SSL-enabled MySQL connections). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8979', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed build for macOS to cater with pkg-config settings.', + 'raw' => 'Fixed build for macOS to cater with pkg-config settings. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8065 (opcache.consistency_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context).', + 'raw' => 'Fixed bug GH-8065 (opcache.consistency_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8065', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Add missing error checks on file writing functions.', + 'raw' => 'Add missing error checks on file writing functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10908 (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland).', + 'raw' => 'Fixed bug GH-10908 (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10908', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10766 (PharData archive created with Phar::Zip format does not keep files metadata (datetime)).', + 'raw' => 'Fixed bug GH-10766 (PharData archive created with Phar::Zip format does not keep files metadata (datetime)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10766', + ), + ), + ), + 1 => + array ( + 'message' => 'Add missing error checks on EVP_MD_CTX_create() and EVP_VerifyInit().', + 'raw' => 'Add missing error checks on EVP_MD_CTX_create() and EVP_VerifyInit(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed missing and inconsistent error checks on SQLAllocHandle.', + 'raw' => 'Fixed missing and inconsistent error checks on SQLAllocHandle. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed typo in the array returned from pg_meta_data (extended mode).', + 'raw' => 'Fixed typo in the array returned from pg_meta_data (extended mode). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10519 (Array Data Address Reference Issue).', + 'raw' => 'Fixed bug GH-10519 (Array Data Address Reference Issue). (Nathan Freeman)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Nathan Freeman', + ), + 'bugs' => + array ( + 0 => '10519', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10907 (Unable to serialize processed SplFixedArrays in PHP 8.2.4).', + 'raw' => 'Fixed bug GH-10907 (Unable to serialize processed SplFixedArrays in PHP 8.2.4). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10907', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-10844 (ArrayIterator allows modification of readonly props).', + 'raw' => 'Fixed bug GH-10844 (ArrayIterator allows modification of readonly props). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '10844', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10885 (stream_socket_server context leaks).', + 'raw' => 'Fixed bug GH-10885 (stream_socket_server context leaks). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '10885', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10052 (Browscap crashes PHP 8.1.12 on request shutdown (apache2)).', + 'raw' => 'Fixed bug GH-10052 (Browscap crashes PHP 8.1.12 on request shutdown (apache2)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10052', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \\0 delimiter and enclosure).', + 'raw' => 'Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \\0 delimiter and enclosure). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed undefined behaviour in unpack().', + 'raw' => 'Fixed undefined behaviour in unpack(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.2.4' => + array ( + 'date' => '16 Mar 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect check condition in ZEND_YIELD.', + 'raw' => 'Fixed incorrect check condition in ZEND_YIELD. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed incorrect check condition in type inference.', + 'raw' => 'Fixed incorrect check condition in type inference. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix incorrect check in zend_internal_call_should_throw().', + 'raw' => 'Fix incorrect check in zend_internal_call_should_throw(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed overflow check in OnUpdateMemoryConsumption.', + 'raw' => 'Fixed overflow check in OnUpdateMemoryConsumption. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes).', + 'raw' => 'Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '9916', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout).', + 'raw' => 'Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout). (trowski)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'trowski', + ), + 'bugs' => + array ( + 0 => '10437', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed SSA object type update for compound assignment opcodes.', + 'raw' => 'Fixed SSA object type update for compound assignment opcodes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed language scanner generation build.', + 'raw' => 'Fixed language scanner generation build. (Daniel Black)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniel Black', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed zend_update_static_property() calling zend_update_static_property_ex() misleadingly with the wrong return type.', + 'raw' => 'Fixed zend_update_static_property() calling zend_update_static_property_ex() misleadingly with the wrong return type. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer constant name).', + 'raw' => 'Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer constant name). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() freeing dangling pointers on the handle as it was uninitialized.', + 'raw' => 'Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() freeing dangling pointers on the handle as it was uninitialized. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed deprecation warning at compile time.', + 'raw' => 'Fixed deprecation warning at compile time. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc callback).', + 'raw' => 'Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc callback). (Pierrick Charron)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Pierrick Charron', + ), + 'bugs' => + array ( + 0 => '10270', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10447 (\'p\' format specifier does not yield \'Z\' for 00:00).', + 'raw' => 'Fix GH-10447 (\'p\' format specifier does not yield \'Z\' for 00:00). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-10152 (Custom properties of Date\'s child classes are not serialised).', + 'raw' => 'Fix GH-10152 (Custom properties of Date\'s child classes are not serialised). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect bitshifting and masking in ffi bitfield.', + 'raw' => 'Fixed incorrect bitshifting and masking in ffi bitfield. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fiber' => + array ( + 0 => + array ( + 'message' => 'Fixed assembly on alpine x86.', + 'raw' => 'Fixed assembly on alpine x86. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10496 (segfault when garbage collector is invoked inside of fiber).', + 'raw' => 'Fixed bug GH-10496 (segfault when garbage collector is invoked inside of fiber). (Bob, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '10496', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10315 (FPM unknown child alert not valid).', + 'raw' => 'Fixed bug GH-10315 (FPM unknown child alert not valid). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '10315', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10385 (FPM successful config test early exit).', + 'raw' => 'Fixed bug GH-10385 (FPM successful config test early exit). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10385', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Properly implement GMP::__construct().', + 'raw' => 'Properly implement GMP::__construct(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods error code\'s argument always returning NULL0.', + 'raw' => 'Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods error code\'s argument always returning NULL0. (Nathan Freeman)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Nathan Freeman', + ), + 'bugs' => + array ( + 0 => '10647', + ), + ), + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed JSON scanner and parser generation build.', + 'raw' => 'Fixed JSON scanner and parser generation build. (Daniel Black, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniel Black', + 1 => 'Jakub Zelenka', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'ext/mbstring: fix new_value length check.', + 'raw' => 'ext/mbstring: fix new_value length check. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows).', + 'raw' => 'Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect page_size check.', + 'raw' => 'Fix incorrect page_size check. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix readonly modification check when using inc/dec operators on readonly property with JIT.', + 'raw' => 'Fix readonly modification check when using inc/dec operators on readonly property with JIT. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed php_openssl_set_server_dh_param() DH params errors handling.', + 'raw' => 'Fixed php_openssl_set_server_dh_param() DH params errors handling. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars).', + 'raw' => 'Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars). (Michael Voříšek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Voříšek', + ), + 'bugs' => + array ( + 0 => '60994', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10715 (heap buffer overflow on --run option misuse).', + 'raw' => 'Fixed bug GH-10715 (heap buffer overflow on --run option misuse). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10715', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10672 (pg_lo_open segfaults in the strict_types mode).', + 'raw' => 'Fix GH-10672 (pg_lo_open segfaults in the strict_types mode). (girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'girgias', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect check in phar tar parsing.', + 'raw' => 'Fix incorrect check in phar tar parsing. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10390 (Do not trust arc4random_buf() on glibc).', + 'raw' => 'Fix GH-10390 (Do not trust arc4random_buf() on glibc). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown).', + 'raw' => 'Fix GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with variadic arguments).', + 'raw' => 'Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with variadic arguments). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10623', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix Segfault when using ReflectionFiber suspended by an internal function.', + 'raw' => 'Fix Segfault when using ReflectionFiber suspended by an internal function. (danog)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danog', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. .', + 'raw' => 'Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. (nielsdos).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8086 (Introduce mail.mixed_lf_and_crlf INI).', + 'raw' => 'Fixed bug GH-8086 (Introduce mail.mixed_lf_and_crlf INI). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '8086', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown).', + 'raw' => 'Fixed bug GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '10292', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix incorrect check in cs_8559_5 in map_from_unicode().', + 'raw' => 'Fix incorrect check in cs_8559_5 in map_from_unicode(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes', + 'raw' => 'Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes', + 'references' => + array ( + ), + ), + 4 => + array ( + 'message' => 'Fix incorrect error check in browsecap for pcre2_match().', + 'raw' => 'Fix incorrect error check in browsecap for pcre2_match(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10370 (File corruption in _php_stream_copy_to_stream_ex when using copy_file_range).', + 'raw' => 'Fixed bug GH-10370 (File corruption in _php_stream_copy_to_stream_ex when using copy_file_range). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10370', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10548 (copy() fails on cifs mounts because of incorrect copy_file_range() len).', + 'raw' => 'Fixed bug GH-10548 (copy() fails on cifs mounts because of incorrect copy_file_range() len). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10548', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when attempting to open a non-existing file or a file over 4GB.', + 'raw' => 'Fix memory leaks when attempting to open a non-existing file or a file over 4GB. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Add missing error check on tidyLoadConfig.', + 'raw' => 'Add missing error check on tidyLoadConfig. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed output_handler directive value\'s length which counted the string terminator.', + 'raw' => 'Fixed output_handler directive value\'s length which counted the string terminator. (nieldos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nieldos', + ), + ), + ), + ), + ), + ), + '8.2.3' => + array ( + 'date' => '14 Feb 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567).', + 'raw' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567). (Tim Düsterhus)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Tim Düsterhus', + ), + 'bugs' => + array ( + 0 => '81744', + ), + 'cves' => + array ( + 0 => 'CVE-2023-0567', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568).', + 'raw' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568). (Niels Dossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Niels Dossche', + ), + 'bugs' => + array ( + 0 => '81746', + ), + 'cves' => + array ( + 0 => 'CVE-2023-0568', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662)', + 'raw' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2023-0662', + ), + ), + ), + ), + ), + ), + '8.2.2' => + array ( + 'date' => '02 Feb 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10200 (zif_get_object_vars: Assertion `!(((__ht)->u.flags & (1<<2)) != 0)\' failed).', + 'raw' => 'Fixed bug GH-10200 (zif_get_object_vars: Assertion `!(((__ht)->u.flags & (1<<2)) != 0)\' failed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10200', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-10251 (Assertion `(flag & (1<<3)) == 0\' failed).', + 'raw' => 'Fix GH-10251 (Assertion `(flag & (1<<3)) == 0\' failed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix GH-10240 (Assertion failure when adding more than 2**30 elements to an unpacked array).', + 'raw' => 'Fix GH-10240 (Assertion failure when adding more than 2**30 elements to an unpacked array). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix GH-9735 (Fiber stack variables do not participate in cycle collector).', + 'raw' => 'Fix GH-9735 (Fiber stack variables do not participate in cycle collector). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix GH-9675 (Broken run_time_cache init for internal enum methods).', + 'raw' => 'Fix GH-9675 (Broken run_time_cache init for internal enum methods). (Petar Obradović, Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Petar Obradović', + 1 => 'Bob', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix GH-10248 (Assertion `!(zval_get_type(&(*(property))) == 10)\' failed).', + 'raw' => 'Fix GH-10248 (Assertion `!(zval_get_type(&(*(property))) == 10)\' failed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77106 (Missing separator in FPM FastCGI errors).', + 'raw' => 'Fixed bug #77106 (Missing separator in FPM FastCGI errors). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '77106', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9981 (FPM does not reset fastcgi.error_header).', + 'raw' => 'Fixed bug GH-9981 (FPM does not reset fastcgi.error_header). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9981', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #68591 (Configuration test does not perform UID lookups).', + 'raw' => 'Fixed bug #68591 (Configuration test does not perform UID lookups). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '68591', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed memory leak when running FPM config test.', + 'raw' => 'Fixed memory leak when running FPM config test. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug #67244 (Wrong owner:group for listening unix socket).', + 'raw' => 'Fixed bug #67244 (Wrong owner:group for listening unix socket). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '67244', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Handle exceptions from __toString in XXH3\'s initialization', + 'raw' => 'Handle exceptions from __toString in XXH3\'s initialization (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10112 (LDAP\\Connection::__construct() refers to ldap_create()).', + 'raw' => 'Fixed bug GH-10112 (LDAP\\Connection::__construct() refers to ldap_create()). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '10112', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix inverted bailout value in zend_runtime_jit() .', + 'raw' => 'Fix inverted bailout value in zend_runtime_jit() (Max Kellermann).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix access to uninitialized variable in accel_preload().', + 'raw' => 'Fix access to uninitialized variable in accel_preload(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix zend_jit_find_trace() crashes.', + 'raw' => 'Fix zend_jit_find_trace() crashes. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 3 => + array ( + 'message' => 'Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit.', + 'raw' => 'Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix wrong flags check for compression method in phar_object.c', + 'raw' => 'Fix wrong flags check for compression method in phar_object.c (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix undefined behaviour in phpdbg_load_module_or_extension().', + 'raw' => 'Fix undefined behaviour in phpdbg_load_module_or_extension(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix NULL pointer dereference in phpdbg_create_conditional_breal().', + 'raw' => 'Fix NULL pointer dereference in phpdbg_create_conditional_breal(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix GH-9710: phpdbg memory leaks by option "-h"', + 'raw' => 'Fix GH-9710: phpdbg memory leaks by option "-h" (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix phpdbg segmentation fault in case of malformed input', + 'raw' => 'Fix phpdbg segmentation fault in case of malformed input (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in posix_ttyname()', + 'raw' => 'Fix memory leak in posix_ttyname() (girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'girgias', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10247 (Theoretical file descriptor leak for /dev/urandom).', + 'raw' => 'Fixed bug GH-10247 (Theoretical file descriptor leak for /dev/urandom). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '10247', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10187 (Segfault in stripslashes() with arm64).', + 'raw' => 'Fix GH-10187 (Segfault in stripslashes() with arm64). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10214 (Incomplete validation of object syntax during unserialize()).', + 'raw' => 'Fixed bug GH-10214 (Incomplete validation of object syntax during unserialize()). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '10214', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix substr_replace with slots in repl_ht being UNDEF.', + 'raw' => 'Fix substr_replace with slots in repl_ht being UNDEF. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix missing check for xmlTextWriterEndElement', + 'raw' => 'Fix missing check for xmlTextWriterEndElement (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.2.1' => + array ( + 'date' => '05 Jan 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined).', + 'raw' => 'Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9905', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9918 (License information for xxHash is not included in README.REDIST.BINS file).', + 'raw' => 'Fixed bug GH-9918 (License information for xxHash is not included in README.REDIST.BINS file). (Akama Hitoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Akama Hitoshi', + ), + 'bugs' => + array ( + 0 => '9918', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9890 (OpenSSL legacy providers not available on Windows).', + 'raw' => 'Fixed bug GH-9890 (OpenSSL legacy providers not available on Windows). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9890', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9650 (Can\'t initialize heap: [0x000001e7]).', + 'raw' => 'Fixed bug GH-9650 (Can\'t initialize heap: [0x000001e7]). (Michael Voříšek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Voříšek', + ), + 'bugs' => + array ( + 0 => '9650', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed potentially undefined behavior in Windows ftok(3) emulation.', + 'raw' => 'Fixed potentially undefined behavior in Windows ftok(3) emulation. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed GH-9769 (Misleading error message for unpacking of objects).', + 'raw' => 'Fixed GH-9769 (Misleading error message for unpacking of objects). (jhdxr)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jhdxr', + ), + ), + ), + ), + 'apache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9949 (Partial content on incomplete POST request).', + 'raw' => 'Fixed bug GH-9949 (Partial content on incomplete POST request). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9949', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694).', + 'raw' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694). (Petr Sumbera)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Petr Sumbera', + ), + 'bugs' => + array ( + 0 => '9959', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING).', + 'raw' => 'Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '68207', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #80669 (FPM numeric user fails to set groups).', + 'raw' => 'Fixed bug #80669 (FPM numeric user fails to set groups). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '80669', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8517 (Random crash of FPM master process in fpm_stdio_child_said).', + 'raw' => 'Fixed bug GH-8517 (Random crash of FPM master process in fpm_stdio_child_said). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '8517', + ), + ), + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10051 (IMAP: there\'s no way to check if a IMAP\\Connection is still open).', + 'raw' => 'Fixed bug GH-10051 (IMAP: there\'s no way to check if a IMAP\\Connection is still open). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '10051', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in PHP8.1).', + 'raw' => 'Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in PHP8.1). (Nathan Freeman)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Nathan Freeman', + ), + 'bugs' => + array ( + 0 => '9535', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9968 (Segmentation Fault during OPCache Preload).', + 'raw' => 'Fixed bug GH-9968 (Segmentation Fault during OPCache Preload). (Arnaud, michdingpayc)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'michdingpayc', + ), + 'bugs' => + array ( + 0 => '9968', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9997 (OpenSSL engine clean up segfault).', + 'raw' => 'Fixed bug GH-9997 (OpenSSL engine clean up segfault). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9997', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec).', + 'raw' => 'Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9064', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with no-dsa).', + 'raw' => 'Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with no-dsa). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '10000', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash).', + 'raw' => 'Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash). (Erki Aring)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Erki Aring', + ), + 'bugs' => + array ( + 0 => '9298', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird).', + 'raw' => 'Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9971', + ), + ), + ), + ), + 'pdo/sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631)', + 'raw' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631) (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '81740', + ), + 'cves' => + array ( + 0 => 'CVE-2022-31631', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9932 (session name silently fails with . and [).', + 'raw' => 'Fixed GH-9932 (session name silently fails with . and [). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9883 (SplFileObject::__toString() reads next line).', + 'raw' => 'Fixed GH-9883 (SplFileObject::__toString() reads next line). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered).', + 'raw' => 'Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI).', + 'raw' => 'Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '81742', + ), + ), + ), + ), + 'tsrm' => + array ( + 0 => + array ( + 'message' => 'Fixed Windows shmget() wrt. IPC_PRIVATE.', + 'raw' => 'Fixed Windows shmget() wrt. IPC_PRIVATE. (Tyson Andre)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Tyson Andre', + ), + ), + ), + ), + ), + ), + '8.2.0' => + array ( + 'date' => '08 Dec 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81496 (Server logs incorrect request method).', + 'raw' => 'Fixed bug #81496 (Server logs incorrect request method). (lauri)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lauri', + ), + 'bugs' => + array ( + 0 => '81496', + ), + ), + ), + 1 => + array ( + 'message' => 'Updated the mime-type table for the builtin-server.', + 'raw' => 'Updated the mime-type table for the builtin-server. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable.', + 'raw' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable. (yiyuaner)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'yiyuaner', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-8575 by changing STDOUT, STDERR and STDIN to not close on resource destruction.', + 'raw' => 'Fixed GH-8575 by changing STDOUT, STDERR and STDIN to not close on resource destruction. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 4 => + array ( + 'message' => 'Implement built-in web server responding without body to HEAD request on a static resource.', + 'raw' => 'Implement built-in web server responding without body to HEAD request on a static resource. (Vedran Miletic, Marin Martuslovic)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Vedran Miletic', + 1 => 'Marin Martuslovic', + ), + ), + ), + 5 => + array ( + 'message' => 'Implement built-in web server responding with HTTP status 405 to DELETE/PUT/PATCH request on a static resource.', + 'raw' => 'Implement built-in web server responding with HTTP status 405 to DELETE/PUT/PATCH request on a static resource. (Vedran Miletic, Marin Martuslovic)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Vedran Miletic', + 1 => 'Marin Martuslovic', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options).', + 'raw' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options). (Adam Saponara)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Adam Saponara', + ), + 'bugs' => + array ( + 0 => '9709', + ), + ), + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8750 (Can not create VT_ERROR variant type).', + 'raw' => 'Fixed bug GH-8750 (Can not create VT_ERROR variant type). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '8750', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81380 (Observer may not be initialized properly).', + 'raw' => 'Fixed bug #81380 (Observer may not be initialized properly). (krakjoe)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'krakjoe', + ), + 'bugs' => + array ( + 0 => '81380', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7771 (Fix filename/lineno of constant expressions).', + 'raw' => 'Fixed bug GH-7771 (Fix filename/lineno of constant expressions). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '7771', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-7792 (Improve class type in error messages).', + 'raw' => 'Fixed bug GH-7792 (Improve class type in error messages). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '7792', + ), + ), + ), + 3 => + array ( + 'message' => 'Support huge pages on MacOS.', + 'raw' => 'Support huge pages on MacOS. (David CARLIER)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David CARLIER', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references).', + 'raw' => 'Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references). (Nicolas Grekas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Nicolas Grekas', + ), + 'bugs' => + array ( + 0 => '8655', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-8661 (Nullsafe in coalesce triggers undefined variable warning).', + 'raw' => 'Fixed bug GH-8661 (Nullsafe in coalesce triggers undefined variable warning). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '8661', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-7821 and GH-8418 (Allow arbitrary const expressions in backed enums).', + 'raw' => 'Fixed bug GH-7821 and GH-8418 (Allow arbitrary const expressions in backed enums). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '7821', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-8810 (Incorrect lineno in backtrace of multi-line function calls).', + 'raw' => 'Fixed bug GH-8810 (Incorrect lineno in backtrace of multi-line function calls). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '8810', + ), + ), + ), + 8 => + array ( + 'message' => 'Optimised code path for newly created file with the stream plain wrapper.', + 'raw' => 'Optimised code path for newly created file with the stream plain wrapper. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 9 => + array ( + 'message' => 'Uses safe_perealloc instead of perealloc for the ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows.', + 'raw' => 'Uses safe_perealloc instead of perealloc for the ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 10 => + array ( + 'message' => 'Reduced the memory footprint of strings returned by var_export(), json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(), http_build_query(), strstr(), Reflection*::__toString().', + 'raw' => 'Reduced the memory footprint of strings returned by var_export(), json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(), http_build_query(), strstr(), Reflection*::__toString(). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).', + 'raw' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError). (Tobias Bachert)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Tobias Bachert', + ), + 'bugs' => + array ( + 0 => '8995', + ), + ), + ), + 12 => + array ( + 'message' => 'Added error_log_mode ini setting.', + 'raw' => 'Added error_log_mode ini setting. (Mikhail Galanin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mikhail Galanin', + ), + ), + ), + 13 => + array ( + 'message' => 'Updated request startup messages.', + 'raw' => 'Updated request startup messages. (Eric Norris)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Eric Norris', + ), + ), + ), + 14 => + array ( + 'message' => 'Fixed bug GH-7900 (Arrow function with never return type compile-time errors).', + 'raw' => 'Fixed bug GH-7900 (Arrow function with never return type compile-time errors). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '7900', + ), + ), + ), + 15 => + array ( + 'message' => 'Fixed incorrect double to long casting in latest clang.', + 'raw' => 'Fixed incorrect double to long casting in latest clang. (zeriyoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'zeriyoshi', + ), + ), + ), + 16 => + array ( + 'message' => 'Added support for defining constants in traits.', + 'raw' => 'Added support for defining constants in traits. (sj-i)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'sj-i', + ), + ), + ), + 17 => + array ( + 'message' => 'Stop incorrectly emitting false positive deprecation notice alongside unsupported syntax fatal error for `"{$g{\'h\'}}"`.', + 'raw' => 'Stop incorrectly emitting false positive deprecation notice alongside unsupported syntax fatal error for `"{$g{\'h\'}}"`. (TysonAndre)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'TysonAndre', + ), + ), + ), + 18 => + array ( + 'message' => 'Fix unexpected deprecated dynamic property warning, which occurred when exit() in finally block after an exception was thrown without catching.', + 'raw' => 'Fix unexpected deprecated dynamic property warning, which occurred when exit() in finally block after an exception was thrown without catching. (Twosee)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Twosee', + ), + ), + ), + 19 => + array ( + 'message' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function)', + 'raw' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function) (Tim Starling)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Tim Starling', + ), + 'bugs' => + array ( + 0 => '9323', + ), + ), + ), + 20 => + array ( + 'message' => 'Fixed bug GH-9227 (Trailing dots and spaces in filenames are ignored).', + 'raw' => 'Fixed bug GH-9227 (Trailing dots and spaces in filenames are ignored). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9227', + ), + ), + ), + 21 => + array ( + 'message' => 'Fixed bug GH-9285 (Traits cannot be used in readonly classes).', + 'raw' => 'Fixed bug GH-9285 (Traits cannot be used in readonly classes). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '9285', + ), + ), + ), + 22 => + array ( + 'message' => 'Fixed bug GH-9186 (@strict-properties can be bypassed using unserialization).', + 'raw' => 'Fixed bug GH-9186 (@strict-properties can be bypassed using unserialization). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '9186', + ), + ), + ), + 23 => + array ( + 'message' => 'Fixed bug GH-9500 (Using dnf type with parentheses after readonly keyword results in a parse error).', + 'raw' => 'Fixed bug GH-9500 (Using dnf type with parentheses after readonly keyword results in a parse error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '9500', + ), + ), + ), + 24 => + array ( + 'message' => 'Fixed bug GH-9516 ((A&B)|D as a param should allow AB or D. Not just A).', + 'raw' => 'Fixed bug GH-9516 ((A&B)|D as a param should allow AB or D. Not just A). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '9516', + ), + ), + ), + 25 => + array ( + 'message' => 'Fixed observer class notify with Opcache file_cache_only=1.', + 'raw' => 'Fixed observer class notify with Opcache file_cache_only=1. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 26 => + array ( + 'message' => 'Fixes segfault with Fiber on FreeBSD i386 architecture.', + 'raw' => 'Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 27 => + array ( + 'message' => 'Fixed bug GH-9655 (Pure intersection types cannot be implicitly nullable)', + 'raw' => 'Fixed bug GH-9655 (Pure intersection types cannot be implicitly nullable) (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '9655', + ), + ), + ), + 28 => + array ( + 'message' => 'Fixed bug GH-9589 (dl() segfaults when module is already loaded).', + 'raw' => 'Fixed bug GH-9589 (dl() segfaults when module is already loaded). (cmb, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '9589', + ), + ), + ), + 29 => + array ( + 'message' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params).', + 'raw' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '9752', + ), + ), + ), + 30 => + array ( + 'message' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization).', + 'raw' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '9801', + ), + ), + ), + 31 => + array ( + 'message' => 'Fixed a bug with preloaded enums possibly segfaulting.', + 'raw' => 'Fixed a bug with preloaded enums possibly segfaulting. (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + ), + ), + 32 => + array ( + 'message' => 'Fixed bug GH-9823 (Don’t reset func in zend_closure_internal_handler).', + 'raw' => 'Fixed bug GH-9823 (Don’t reset func in zend_closure_internal_handler). (Florian Sowade)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Sowade', + ), + 'bugs' => + array ( + 0 => '9823', + ), + ), + ), + 33 => + array ( + 'message' => 'Fixed potential NULL pointer dereference Windows shm*() functions.', + 'raw' => 'Fixed potential NULL pointer dereference Windows shm*() functions. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 34 => + array ( + 'message' => 'Fix target validation for internal attributes with constructor property promotion.', + 'raw' => 'Fix target validation for internal attributes with constructor property promotion. (kooldev)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kooldev', + ), + ), + ), + 35 => + array ( + 'message' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation.', + 'raw' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '9750', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Added support for CURLOPT_XFERINFOFUNCTION.', + 'raw' => 'Added support for CURLOPT_XFERINFOFUNCTION. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added support for CURLOPT_MAXFILESIZE_LARGE.', + 'raw' => 'Added support for CURLOPT_MAXFILESIZE_LARGE. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added new constants from cURL 7.62 to 7.80.', + 'raw' => 'Added new constants from cURL 7.62 to 7.80. (Pierrick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Pierrick', + ), + ), + ), + 3 => + array ( + 'message' => 'New function curl_upkeep().', + 'raw' => 'New function curl_upkeep(). (Pierrick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Pierrick', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-8458 (DateInterval::createFromDateString does not throw if non-relative items are present).', + 'raw' => 'Fixed GH-8458 (DateInterval::createFromDateString does not throw if non-relative items are present). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #52015 (Allow including end date in DatePeriod iterations)', + 'raw' => 'Fixed bug #52015 (Allow including end date in DatePeriod iterations) (Daniel Egeberg, Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniel Egeberg', + 1 => 'Derick', + ), + 'bugs' => + array ( + 0 => '52015', + ), + ), + ), + 2 => + array ( + 'message' => 'idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO Year).', + 'raw' => 'idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO Year). (Pavel Djundik)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Pavel Djundik', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of different type).', + 'raw' => 'Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of different type). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '8730', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-8964 (DateTime object comparison after applying delta less than 1 second).', + 'raw' => 'Fixed bug GH-8964 (DateTime object comparison after applying delta less than 1 second). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '8964', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0).', + 'raw' => 'Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '9106', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug #75035 (Datetime fails to unserialize "extreme" dates).', + 'raw' => 'Fixed bug #75035 (Datetime fails to unserialize "extreme" dates). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '75035', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug #80483 (DateTime Object with 5-digit year can\'t unserialized).', + 'raw' => 'Fixed bug #80483 (DateTime Object with 5-digit year can\'t unserialized). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '80483', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug #81263 (Wrong result from DateTimeImmutable::diff).', + 'raw' => 'Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '81263', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-9431 (DateTime::getLastErrors() not returning false when no errors/warnings).', + 'raw' => 'Fixed bug GH-9431 (DateTime::getLastErrors() not returning false when no errors/warnings). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '9431', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug with parsing large negative numbers with the @ notation.', + 'raw' => 'Fixed bug with parsing large negative numbers with the @ notation. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed LMDB driver hanging when attempting to delete a non-existing key', + 'raw' => 'Fixed LMDB driver hanging when attempting to delete a non-existing key (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed LMDB driver memory leak on DB creation failure', + 'raw' => 'Fixed LMDB driver memory leak on DB creation failure (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-8856 (dba: lmdb: allow to override the MDB_NOSUBDIR flag).', + 'raw' => 'Fixed GH-8856 (dba: lmdb: allow to override the MDB_NOSUBDIR flag). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9090 (Support assigning function pointers in FFI).', + 'raw' => 'Fixed bug GH-9090 (Support assigning function pointers in FFI). (Adam Saponara)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Adam Saponara', + ), + 'bugs' => + array ( + 0 => '9090', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files).', + 'raw' => 'Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files). (Anatol)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Anatol', + ), + 'bugs' => + array ( + 0 => '8805', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs.', + 'raw' => 'Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs. (vnsavage)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'vnsavage', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Emit error for invalid port setting.', + 'raw' => 'Emit error for invalid port setting. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added extra check for FPM proc dumpable on SELinux based systems.', + 'raw' => 'Added extra check for FPM proc dumpable on SELinux based systems. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added support for listening queue on macOS.', + 'raw' => 'Added support for listening queue on macOS. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Changed default for listen.backlog on Linux to -1.', + 'raw' => 'Changed default for listen.backlog on Linux to -1. (Cristian Rodríguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Cristian Rodríguez', + ), + ), + ), + 4 => + array ( + 'message' => 'Added listen.setfib pool option to set route FIB on FreeBSD.', + 'raw' => 'Added listen.setfib pool option to set route FIB on FreeBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added access.suppress_path pool option to filter access log entries.', + 'raw' => 'Added access.suppress_path pool option to filter access log entries. (Mark Gallagher)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mark Gallagher', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed on fpm scoreboard occasional warning on acquisition failure.', + 'raw' => 'Fixed on fpm scoreboard occasional warning on acquisition failure. (Felix Wiedemann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Felix Wiedemann', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11).', + 'raw' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9754', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix datetime format string to follow POSIX spec in ftp_mdtm().', + 'raw' => 'Fix datetime format string to follow POSIX spec in ftp_mdtm(). (Jihwan Kim)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jihwan Kim', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630)', + 'raw' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '81739', + ), + 'cves' => + array ( + 0 => 'CVE-2022-31630', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()).', + 'raw' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '9308', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454)', + 'raw' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454) (nicky at mouha dot be)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nicky at mouha dot be', + ), + 'bugs' => + array ( + 0 => '81738', + ), + 'cves' => + array ( + 0 => 'CVE-2022-37454', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10077: Fix compilation on RHEL 7 ppc64le.', + 'raw' => 'Fixed bug GH-10077: Fix compilation on RHEL 7 ppc64le. (Mattias Ellert)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mattias Ellert', + ), + 'bugs' => + array ( + 0 => '10077', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Update all grandfathered language tags with preferred values', + 'raw' => 'Update all grandfathered language tags with preferred values', + 'references' => + array ( + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-7939 (Cannot unserialize IntlTimeZone objects).', + 'raw' => 'Fixed GH-7939 (Cannot unserialize IntlTimeZone objects). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed build for ICU 69.x and onwards.', + 'raw' => 'Fixed build for ICU 69.x and onwards. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Declared Transliterator::$id as readonly to unlock subclassing it.', + 'raw' => 'Declared Transliterator::$id as readonly to unlock subclassing it. (Nicolas Grekas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Nicolas Grekas', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter).', + 'raw' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '9421', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9248 (Segmentation fault in mb_strimwidth()).', + 'raw' => 'Fixed bug GH-9248 (Segmentation fault in mb_strimwidth()). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9248', + ), + ), + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode).', + 'raw' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode). (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + 'bugs' => + array ( + 0 => '9841', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed potential heap corruption due to alignment mismatch.', + 'raw' => 'Fixed potential heap corruption due to alignment mismatch. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Added oci8.prefetch_lob_size directive to tune LOB query performance', + 'raw' => 'Added oci8.prefetch_lob_size directive to tune LOB query performance', + 'references' => + array ( + ), + ), + 1 => + array ( + 'message' => 'Support for building against Oracle Client libraries 10.1 and 10.2 has been dropped. Oracle Client libraries 11.2 or newer are now required.', + 'raw' => 'Support for building against Oracle Client libraries 10.1 and 10.2 has been dropped. Oracle Client libraries 11.2 or newer are now required.', + 'references' => + array ( + ), + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8300 (User input not escaped when building connection string).', + 'raw' => 'Fixed bug GH-8300 (User input not escaped when building connection string). (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + 'bugs' => + array ( + 0 => '8300', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate).', + 'raw' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + 'bugs' => + array ( + 0 => '9347', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Allocate JIT buffer close to PHP .text segemnt to allow using direct IP-relative calls and jumps.', + 'raw' => 'Allocate JIT buffer close to PHP .text segemnt to allow using direct IP-relative calls and jumps. (Su Tao, Wang Xue, Chen Hu, Lizhen Lizhen, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Su Tao', + 1 => 'Wang Xue', + 2 => 'Chen Hu', + 3 => 'Lizhen Lizhen', + 4 => 'Dmitry', + ), + ), + ), + 1 => + array ( + 'message' => 'Added initial support for JIT performance profiling generation for macOs Instrument.', + 'raw' => 'Added initial support for JIT performance profiling generation for macOs Instrument. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8030 (Segfault with JIT and large match/switch statements).', + 'raw' => 'Fixed bug GH-8030 (Segfault with JIT and large match/switch statements). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '8030', + ), + ), + ), + 3 => + array ( + 'message' => 'Added JIT support improvement for macOs for segments and executable permission bit handling.', + 'raw' => 'Added JIT support improvement for macOs for segments and executable permission bit handling. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added JIT buffer allocation near the .text section on FreeNSD.', + 'raw' => 'Added JIT buffer allocation near the .text section on FreeNSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9371 (Crash with JIT on mac arm64)', + 'raw' => 'Fixed bug GH-9371 (Crash with JIT on mac arm64) (jdp1024/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jdp1024/David Carlier', + ), + 'bugs' => + array ( + 0 => '9371', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9259 (opcache.interned_strings_buffer setting integer overflow).', + 'raw' => 'Fixed bug GH-9259 (opcache.interned_strings_buffer setting integer overflow). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '9259', + ), + ), + ), + 7 => + array ( + 'message' => 'Added indirect call reduction for jit on x86 architectures.', + 'raw' => 'Added indirect call reduction for jit on x86 architectures. (wxue1)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'wxue1', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy).', + 'raw' => 'Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy). (Arnaud, Sergei Turchanov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'Sergei Turchanov', + ), + 'bugs' => + array ( + 0 => '9164', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT.', + 'raw' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9310 (SSL local_cert and local_pk do not respect open_basedir).', + 'raw' => 'Fixed bug GH-9310 (SSL local_cert and local_pk do not respect open_basedir). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9310', + ), + ), + ), + 2 => + array ( + 'message' => 'Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like AEAD).', + 'raw' => 'Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like AEAD). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 3 => + array ( + 'message' => 'Added openssl_cipher_key_length function.', + 'raw' => 'Added openssl_cipher_key_length function. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9517 (Compilation error openssl extension related to PR GH-9366).', + 'raw' => 'Fixed bug GH-9517 (Compilation error openssl extension related to PR GH-9366). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9517', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed missing clean up of OpenSSL engine list - attempt to fix GH-8620.', + 'raw' => 'Fixed missing clean up of OpenSSL engine list - attempt to fix GH-8620. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build).', + 'raw' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build). (Jakub Zelenka, fsbruva)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'fsbruva', + ), + 'bugs' => + array ( + 0 => '8430', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed pcntl_(get|set)priority error handling for MacOS.', + 'raw' => 'Fixed pcntl_(get|set)priority error handling for MacOS. (Juan Morales)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Juan Morales', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #77726 (Allow null character in regex patterns).', + 'raw' => 'Implemented FR #77726 (Allow null character in regex patterns). (tobil4sk)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'tobil4sk', + ), + 'featurerequest' => + array ( + 0 => '77726', + ), + ), + ), + 1 => + array ( + 'message' => 'Updated bundled libpcre to 10.40.', + 'raw' => 'Updated bundled libpcre to 10.40. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9818 (Initialize run time cache in PDO methods).', + 'raw' => 'Fixed bug GH-9818 (Initialize run time cache in PDO methods). (Florian Sowade)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Sowade', + ), + 'bugs' => + array ( + 0 => '9818', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8).', + 'raw' => 'Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '8576', + ), + ), + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80909 (crash with persistent connections in PDO_ODBC).', + 'raw' => 'Fixed bug #80909 (crash with persistent connections in PDO_ODBC). (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + 'bugs' => + array ( + 0 => '80909', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8300 (User input not escaped when building connection string).', + 'raw' => 'Fixed bug GH-8300 (User input not escaped when building connection string). (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + 'bugs' => + array ( + 0 => '8300', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate).', + 'raw' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + 'bugs' => + array ( + 0 => '9347', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9372 (HY010 when binding overlong parameter).', + 'raw' => 'Fixed bug GH-9372 (HY010 when binding overlong parameter). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9372', + ), + ), + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed).', + 'raw' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed). (Yurunsoft)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yurunsoft', + ), + 'bugs' => + array ( + 0 => '9411', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Added new random extension.', + 'raw' => 'Added new random extension. (Go Kudo)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Go Kudo', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9067 (random extension is not thread safe).', + 'raw' => 'Fixed bug GH-9067 (random extension is not thread safe). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9067', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9055 (segmentation fault if user engine throws).', + 'raw' => 'Fixed bug GH-9055 (segmentation fault if user engine throws). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9055', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9066 (signed integer overflow).', + 'raw' => 'Fixed bug GH-9066 (signed integer overflow). (zeriyoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'zeriyoshi', + ), + 'bugs' => + array ( + 0 => '9066', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9083 (undefined behavior during shifting).', + 'raw' => 'Fixed bug GH-9083 (undefined behavior during shifting). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9083', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9088, GH-9056 (incorrect expansion of bytes when generating uniform integers within a given range).', + 'raw' => 'Fixed bug GH-9088, GH-9056 (incorrect expansion of bytes when generating uniform integers within a given range). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9088', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9089 (Fix memory leak on Randomizer::__construct() call twice).', + 'raw' => 'Fixed bug GH-9089 (Fix memory leak on Randomizer::__construct() call twice). (zeriyoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'zeriyoshi', + ), + 'bugs' => + array ( + 0 => '9089', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-9212 (PcgOneseq128XslRr64::jump() should not allow negative $advance).', + 'raw' => 'Fixed bug GH-9212 (PcgOneseq128XslRr64::jump() should not allow negative $advance). (Anton Smirnov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Anton Smirnov', + ), + 'bugs' => + array ( + 0 => '9212', + ), + ), + ), + 8 => + array ( + 'message' => 'Changed Mt19937 to throw a ValueError instead of InvalidArgumentException for invalid $mode.', + 'raw' => 'Changed Mt19937 to throw a ValueError instead of InvalidArgumentException for invalid $mode. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 9 => + array ( + 'message' => 'Splitted Random\\Randomizer::getInt() (without arguments) to Random\\Randomizer::nextInt().', + 'raw' => 'Splitted Random\\Randomizer::getInt() (without arguments) to Random\\Randomizer::nextInt(). (zeriyoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'zeriyoshi', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-9235 (non-existant $sequence parameter in stub for PcgOneseq128XslRr64::__construct()).', + 'raw' => 'Fixed bug GH-9235 (non-existant $sequence parameter in stub for PcgOneseq128XslRr64::__construct()). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9235', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-9190, GH-9191 (undefined behavior for MT_RAND_PHP when handling large ranges).', + 'raw' => 'Fixed bug GH-9190, GH-9191 (undefined behavior for MT_RAND_PHP when handling large ranges). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9190', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed bug GH-9249 (Xoshiro256StarStar does not reject the invalid all-zero state).', + 'raw' => 'Fixed bug GH-9249 (Xoshiro256StarStar does not reject the invalid all-zero state). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9249', + ), + ), + ), + 13 => + array ( + 'message' => 'Removed redundant RuntimeExceptions from Randomizer methods. The exceptions thrown by the engines will be exposed directly.', + 'raw' => 'Removed redundant RuntimeExceptions from Randomizer methods. The exceptions thrown by the engines will be exposed directly. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 14 => + array ( + 'message' => 'Added extension specific Exceptions/Errors (RandomException, RandomError, BrokenRandomEngineError).', + 'raw' => 'Added extension specific Exceptions/Errors (RandomException, RandomError, BrokenRandomEngineError). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 15 => + array ( + 'message' => 'Fixed bug GH-9415 (Randomizer::getInt(0, 2**32 - 1) with Mt19937 always returns 1).', + 'raw' => 'Fixed bug GH-9415 (Randomizer::getInt(0, 2**32 - 1) with Mt19937 always returns 1). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9415', + ), + ), + ), + 16 => + array ( + 'message' => 'Fixed Randomizer::getInt() consistency for 32-bit engines.', + 'raw' => 'Fixed Randomizer::getInt() consistency for 32-bit engines. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 17 => + array ( + 'message' => 'Fixed bug GH-9464 (build on older macOs releases).', + 'raw' => 'Fixed bug GH-9464 (build on older macOs releases). (David Bohman)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Bohman', + ), + 'bugs' => + array ( + 0 => '9464', + ), + ), + ), + 18 => + array ( + 'message' => 'Fixed bug GH-9839 (Pre-PHP 8.2 output compatibility for non-mt_rand() functions for MT_RAND_PHP).', + 'raw' => 'Fixed bug GH-9839 (Pre-PHP 8.2 output compatibility for non-mt_rand() functions for MT_RAND_PHP). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9839', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Added ReflectionFunction::isAnonymous().', + 'raw' => 'Added ReflectionFunction::isAnonymous(). (Nicolas Grekas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Nicolas Grekas', + ), + ), + ), + 1 => + array ( + 'message' => 'Added ReflectionMethod::hasPrototype().', + 'raw' => 'Added ReflectionMethod::hasPrototype(). (Ollie Read)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ollie Read', + ), + ), + ), + 2 => + array ( + 'message' => 'Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType.', + 'raw' => 'Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType. (SamMousa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SamMousa', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure).', + 'raw' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure). (cmb, Nicolas Grekas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'Nicolas Grekas', + ), + 'bugs' => + array ( + 0 => '8932', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7787 (Improve session write failure message for user error handlers).', + 'raw' => 'Fixed bug GH-7787 (Improve session write failure message for user error handlers). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '7787', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-9200 (setcookie has an obsolete expires date format).', + 'raw' => 'Fixed GH-9200 (setcookie has an obsolete expires date format). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-9584 (Avoid memory corruption when not unregistering custom session handler).', + 'raw' => 'Fixed GH-9584 (Avoid memory corruption when not unregistering custom session handler). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method).', + 'raw' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '9583', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9720 (Null pointer dereference while serializing the response).', + 'raw' => 'Fixed bug GH-9720 (Null pointer dereference while serializing the response). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9720', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added TCP_NOTSENT_LOWAT socket option.', + 'raw' => 'Added TCP_NOTSENT_LOWAT socket option. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added SO_MEMINFO socket option.', + 'raw' => 'Added SO_MEMINFO socket option. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added SO_RTABLE socket option (OpenBSD), equivalent of SO_MARK (Linux).', + 'raw' => 'Added SO_RTABLE socket option (OpenBSD), equivalent of SO_MARK (Linux). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added TCP_KEEPALIVE, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT socket options.', + 'raw' => 'Added TCP_KEEPALIVE, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT socket options. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added ancillary data support for FreeBSD.', + 'raw' => 'Added ancillary data support for FreeBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added ancillary data support for NetBSD.', + 'raw' => 'Added ancillary data support for NetBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Added SO_BPF_EXTENSIONS socket option.', + 'raw' => 'Added SO_BPF_EXTENSIONS socket option. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Added SO_SETFIB socket option.', + 'raw' => 'Added SO_SETFIB socket option. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 8 => + array ( + 'message' => 'Added TCP_CONGESTION socket option.', + 'raw' => 'Added TCP_CONGESTION socket option. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 9 => + array ( + 'message' => 'Added SO_ZEROCOPY/MSG_ZEROCOPY options.', + 'raw' => 'Added SO_ZEROCOPY/MSG_ZEROCOPY options. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 10 => + array ( + 'message' => 'Added SOL_FILTER socket option for Solaris.', + 'raw' => 'Added SOL_FILTER socket option for Solaris. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed socket constants regression as of PHP 8.2.0beta3.', + 'raw' => 'Fixed socket constants regression as of PHP 8.2.0beta3. (Bruce Dou)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bruce Dou', + ), + ), + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Added sodium_crypto_stream_xchacha20_xor_ic().', + 'raw' => 'Added sodium_crypto_stream_xchacha20_xor_ic(). (Scott)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Scott', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Uses safe_erealloc instead of erealloc to handle heap growth for the SplHeap::insert method to avoid possible overflows.', + 'raw' => 'Uses safe_erealloc instead of erealloc to handle heap growth for the SplHeap::insert method to avoid possible overflows. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Widen iterator_to_array() and iterator_count()\'s $iterator parameter to iterable.', + 'raw' => 'Widen iterator_to_array() and iterator_count()\'s $iterator parameter to iterable. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields).', + 'raw' => 'Fixed bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '69181', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug #65069 (GlobIterator incorrect handling of open_basedir check).', + 'raw' => 'Fixed bug #65069 (GlobIterator incorrect handling of open_basedir check). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '65069', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Changed sqlite3.defensive from PHP_INI_SYSTEM to PHP_INI_USER.', + 'raw' => 'Changed sqlite3.defensive from PHP_INI_SYSTEM to PHP_INI_USER. (bohwaz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'bohwaz', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'net_get_interfaces() also reports wireless network interfaces on Windows.', + 'raw' => 'net_get_interfaces() also reports wireless network interfaces on Windows. (Yurun)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yurun', + ), + ), + ), + 1 => + array ( + 'message' => 'Finished AVIF support in getimagesize().', + 'raw' => 'Finished AVIF support in getimagesize(). (Yannis Guyon)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yannis Guyon', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-7847 (stripos with large haystack has bad performance).', + 'raw' => 'Fixed bug GH-7847 (stripos with large haystack has bad performance). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '7847', + ), + ), + ), + 3 => + array ( + 'message' => 'New function memory_reset_peak_usage().', + 'raw' => 'New function memory_reset_peak_usage(). (Patrick Allaert)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Patrick Allaert', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed parse_url(): can not recognize port without scheme.', + 'raw' => 'Fixed parse_url(): can not recognize port without scheme. (pandaLIU)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'pandaLIU', + ), + ), + ), + 5 => + array ( + 'message' => 'Deprecated utf8_encode() and utf8_decode().', + 'raw' => 'Deprecated utf8_encode() and utf8_decode(). (Rowan Tommins)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Rowan Tommins', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed the crypt_sha256/512 api build with clang > 12.', + 'raw' => 'Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Uses safe_erealloc instead of erealloc to handle options in getopt to avoid possible overflows.', + 'raw' => 'Uses safe_erealloc instead of erealloc to handle options in getopt to avoid possible overflows. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 8 => + array ( + 'message' => 'Implemented FR GH-8924 (str_split should return empty array for empty string).', + 'raw' => 'Implemented FR GH-8924 (str_split should return empty array for empty string). (Michael Vorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Vorisek', + ), + ), + ), + 9 => + array ( + 'message' => 'Added ini_parse_quantity function to convert ini quantities shorthand notation to int.', + 'raw' => 'Added ini_parse_quantity function to convert ini quantities shorthand notation to int. (Dennis Snell)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dennis Snell', + ), + ), + ), + 10 => + array ( + 'message' => 'Enable arc4random_buf for Linux glibc 2.36 and onwards for the random_bytes.', + 'raw' => 'Enable arc4random_buf for Linux glibc 2.36 and onwards for the random_bytes. (Cristian Rodriguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Cristian Rodriguez', + ), + ), + ), + 11 => + array ( + 'message' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. .', + 'raw' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed bug #65489 (glob() basedir check is inconsistent).', + 'raw' => 'Fixed bug #65489 (glob() basedir check is inconsistent). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '65489', + ), + ), + ), + 13 => + array ( + 'message' => 'Fixed GH-9200 (setcookie has an obsolete expires date format).', + 'raw' => 'Fixed GH-9200 (setcookie has an obsolete expires date format). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + 14 => + array ( + 'message' => 'Fixed GH-9244 (Segfault with array_multisort + array_shift).', + 'raw' => 'Fixed GH-9244 (Segfault with array_multisort + array_shift). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 15 => + array ( + 'message' => 'Fixed bug GH-9296 (`ksort` behaves incorrectly on arrays with mixed keys).', + 'raw' => 'Fixed bug GH-9296 (`ksort` behaves incorrectly on arrays with mixed keys). (Denis Vaksman)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Denis Vaksman', + ), + 'bugs' => + array ( + 0 => '9296', + ), + ), + ), + 16 => + array ( + 'message' => 'Marked crypt()\'s $string parameter as #[\\SensitiveParameter].', + 'raw' => 'Marked crypt()\'s $string parameter as #[\\SensitiveParameter]. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 17 => + array ( + 'message' => 'Fixed bug GH-9464 (build on older macOs releases).', + 'raw' => 'Fixed bug GH-9464 (build on older macOs releases). (David Bohman)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Bohman', + ), + 'bugs' => + array ( + 0 => '9464', + ), + ), + ), + 18 => + array ( + 'message' => 'Fixed bug GH-9518 (Disabling IPv6 support disables unrelated constants).', + 'raw' => 'Fixed bug GH-9518 (Disabling IPv6 support disables unrelated constants). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '9518', + ), + ), + ), + 19 => + array ( + 'message' => 'Revert "Fixed parse_url(): can not recognize port without scheme."', + 'raw' => 'Revert "Fixed parse_url(): can not recognize port without scheme." (andypost)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'andypost', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Set IP_BIND_ADDRESS_NO_PORT if available when connecting to remote host.', + 'raw' => 'Set IP_BIND_ADDRESS_NO_PORT if available when connecting to remote host. (Cristian Rodríguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Cristian Rodríguez', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8548 (stream_wrapper_unregister() leaks memory).', + 'raw' => 'Fixed bug GH-8548 (stream_wrapper_unregister() leaks memory). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '8548', + ), + ), + ), + 2 => + array ( + 'message' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT.', + 'raw' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line).', + 'raw' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line). (cmb, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '9316', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set).', + 'raw' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '9590', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9653 (file copy between different filesystems).', + 'raw' => 'Fixed bug GH-9653 (file copy between different filesystems). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '9653', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9779 (stream_copy_to_stream fails if dest in append mode).', + 'raw' => 'Fixed bug GH-9779 (stream_copy_to_stream fails if dest in append mode). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9779', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Added preliminary support for (cross-)building for ARM64.', + 'raw' => 'Added preliminary support for (cross-)building for ARM64. (Yun Dou)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yun Dou', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Added libxml_get_external_entity_loader() function.', + 'raw' => 'Added libxml_get_external_entity_loader() function. (Tim Starling)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Tim Starling', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'add ZipArchive::clearError() method', + 'raw' => 'add ZipArchive::clearError() method', + 'references' => + array ( + ), + ), + 1 => + array ( + 'message' => 'add ZipArchive::getStreamName() method', + 'raw' => 'add ZipArchive::getStreamName() method', + 'references' => + array ( + ), + ), + 2 => + array ( + 'message' => 'add ZipArchive::getStreamIndex() method', + 'raw' => 'add ZipArchive::getStreamIndex() method', + 'references' => + array ( + ), + ), + 3 => + array ( + 'message' => 'On Windows, the Zip extension is now built as shared library (DLL) by default.', + 'raw' => 'On Windows, the Zip extension is now built as shared library (DLL) by default. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 4 => + array ( + 'message' => 'Implement fseek for zip stream when possible with libzip 1.9.1.', + 'raw' => 'Implement fseek for zip stream when possible with libzip 1.9.1. (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.3/changelist.inc b/include/releases/8.3/changelist.inc new file mode 100644 index 0000000000..09fa24e74e --- /dev/null +++ b/include/releases/8.3/changelist.inc @@ -0,0 +1,15900 @@ + + array ( + 'date' => NULL, + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Shivam Mathur', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6735', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'vi3tL0u1s', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7259', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility issues with OpenSSL 4.0.', + 'raw' => 'Fix compatibility issues with OpenSSL 4.0. (jordikroon, Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jordikroon', + 1 => 'Remi', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14179', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6722', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7261', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7262', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'TimWolla', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7568', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7258', + ), + ), + ), + ), + ), + ), + '8.3.30' => + array ( + 'date' => '15 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument).', + 'raw' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()).', + 'raw' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20695', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator).', + 'raw' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20714', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation).', + 'raw' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20352', + ), + ), + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20620 (bzcompress overflow on large source size).', + 'raw' => 'Fixed bug GH-20620 (bzcompress overflow on large source size). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20620', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects).', + 'raw' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20722', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow).', + 'raw' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20622', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix leak in umsg_format_helper().', + 'raw' => 'Fix leak in umsg_format_helper(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in ldap_set_options().', + 'raw' => 'Fix memory leak in ldap_set_options(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator).', + 'raw' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator). (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + 'bugs' => + array ( + 0 => '20674', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails).', + 'raw' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20732', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix SplFileInfo::openFile() in write mode.', + 'raw' => 'Fix SplFileInfo::openFile() in write mode. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix build on legacy OpenSSL 1.1.0 systems.', + 'raw' => 'Fix build on legacy OpenSSL 1.1.0 systems. (Giovanni Giacobbi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Giovanni Giacobbi', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed crash on posix groups to php array creation on macos.', + 'raw' => 'Fixed crash on posix groups to php array creation on macos. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()).', + 'raw' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20678', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned).', + 'raw' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned). (ndossche, plusminmax)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'plusminmax', + ), + 'bugs' => + array ( + 0 => '20699', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix error check for proc_open() command.', + 'raw' => 'Fix error check for proc_open() command. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed).', + 'raw' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20582', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix OOB gzseek() causing assertion failure.', + 'raw' => 'Fix OOB gzseek() causing assertion failure. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + ), + ), + '8.3.29' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Sync all boost.context files with release 1.86.0.', + 'raw' => 'Sync all boost.context files with release 1.86.0. (mvorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mvorisek', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter).', + 'raw' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20435', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()).', + 'raw' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()). (ndossche, David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20286', + ), + ), + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors.', + 'raw' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix missing NUL byte check on C14NFile().', + 'raw' => 'Fix missing NUL byte check on C14NFile(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value).', + 'raw' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20483', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout).', + 'raw' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20601', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values).', + 'raw' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20511', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20602 (imagescale overflow with large height values).', + 'raw' => 'Fixed bug GH-20602 (imagescale overflow with large height values). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20602', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants).', + 'raw' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '20426', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling.', + 'raw' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma).', + 'raw' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20491', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings).', + 'raw' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20492', + ), + ), + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Make mysqli_begin_transaction() report errors properly.', + 'raw' => 'Make mysqli_begin_transaction() report errors properly. (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets).', + 'raw' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '20528', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer).', + 'raw' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20329', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14180', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub).', + 'raw' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub). (ndossche, TimWolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'TimWolla', + ), + 'bugs' => + array ( + 0 => '20442', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix broken return value of fflush() for phar file entries.', + 'raw' => 'Fix broken return value of fflush() for phar file entries. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix assertion failure when fseeking a phar file out of bounds.', + 'raw' => 'Fix assertion failure when fseeking a phar file out of bounds. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog().', + 'raw' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization).', + 'raw' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20614', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in array_diff() with custom type checks.', + 'raw' => 'Fix memory leak in array_diff() with custom type checks. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures).', + 'raw' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20583', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14178', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14177', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags).', + 'raw' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20374', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback).', + 'raw' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20439', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix crash in property existence test.', + 'raw' => 'Fix crash in property existence test. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Don\'t truncate return value of zip_fread() with user sizes.', + 'raw' => 'Don\'t truncate return value of zip_fread() with user sizes. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + ), + ), + '8.3.28' => + array ( + 'date' => '20 Nov 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv).', + 'raw' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19934', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference).', + 'raw' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20073', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown).', + 'raw' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19844', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).', + 'raw' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20177', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval).', + 'raw' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20183', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fix possible memory leak when tag is empty.', + 'raw' => 'Fix possible memory leak when tag is empty. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution).', + 'raw' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution). (Jakub Zelenka, txuna)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'txuna', + ), + 'bugs' => + array ( + 0 => '19974', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes).', + 'raw' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20240', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided).', + 'raw' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '20070', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on error in locale_filter_matches().', + 'raw' => 'Fix memory leak on error in locale_filter_matches(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix not thread safe schema/relaxng calls.', + 'raw' => 'Fix not thread safe schema/relaxng calls. (SpencerMalone, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SpencerMalone', + 1 => 'nielsdos', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)).', + 'raw' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8978', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL).', + 'raw' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20122', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()).', + 'raw' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20081', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).', + 'raw' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15). (Arnaud, Shivam Mathur)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'Shivam Mathur', + ), + 'bugs' => + array ( + 0 => '20121', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when first string conversion fails.', + 'raw' => 'Fix memory leak when first string conversion fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name.', + 'raw' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name. (Girgias, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + 1 => 'nielsdos', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of argument in webPhar.', + 'raw' => 'Fix memory leak of argument in webPhar. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when setAlias() fails.', + 'raw' => 'Fix memory leak when setAlias() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling.', + 'raw' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix file descriptor/memory leak when opening central fp fails.', + 'raw' => 'Fix file descriptor/memory leak when opening central fp fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails.', + 'raw' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t.', + 'raw' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 6 => + array ( + 'message' => 'Fix memory leak when openssl polyfill returns garbage.', + 'raw' => 'Fix memory leak when openssl polyfill returns garbage. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fix file descriptor leak in phar_zip_flush() on failure.', + 'raw' => 'Fix file descriptor leak in phar_zip_flush() on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 8 => + array ( + 'message' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive.', + 'raw' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects).', + 'raw' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20302', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs.', + 'raw' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix shm corruption with coercion in options of unserialize().', + 'raw' => 'Fix shm corruption with coercion in options of unserialize(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64.', + 'raw' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19798', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints).', + 'raw' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '20370', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19021 (improved tidyOptGetCategory detection).', + 'raw' => 'Fixed GH-19021 (improved tidyOptGetCategory detection). (arjendekorte, David Carlier, Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'arjendekorte', + 1 => 'David Carlier', + 2 => 'Peter Kokot', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix UAF in tidy when tidySetErrorBuffer() fails.', + 'raw' => 'Fix UAF in tidy when tidySetErrorBuffer() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available.', + 'raw' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket).', + 'raw' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket). (dktapps)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dktapps', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when passing enc_method/enc_password is passed as option for ZipArchive::addGlob()/addPattern() and with consecutive calls.', + 'raw' => 'Fix memory leak when passing enc_method/enc_password is passed as option for ZipArchive::addGlob()/addPattern() and with consecutive calls. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + ), + ), + '8.3.27' => + array ( + 'date' => '23 Oct 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks).', + 'raw' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '19765', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed hard_timeout with --enable-zend-max-execution-timers.', + 'raw' => 'Fixed hard_timeout with --enable-zend-max-execution-timers. (Appla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Appla', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered).', + 'raw' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19792', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash).', + 'raw' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash). (nielsdos, Arnaud, Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Arnaud', + 2 => 'Bob', + ), + 'bugs' => + array ( + 0 => '19653', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).', + 'raw' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19839', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).', + 'raw' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19480', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN).', + 'raw' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN). (outtersg)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'outtersg', + ), + 'bugs' => + array ( + 0 => '20002', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS.', + 'raw' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS. (leotaku)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'leotaku', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle.', + 'raw' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix curl build and test failures with version 8.16.', + 'raw' => 'Fix curl build and test failures with version 8.16. (nielsdos, ilutov, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ilutov', + 2 => 'Jakub Zelenka', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.', + 'raw' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19885 (dba_fetch() overflow on skip argument).', + 'raw' => 'Fixed GH-19885 (dba_fetch() overflow on skip argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19955 (imagefttext() memory leak).', + 'raw' => 'Fixed GH-19955 (imagefttext() memory leak). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter).', + 'raw' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '67563', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak and invalid continuation after tar header writing fails.', + 'raw' => 'Fix memory leak and invalid continuation after tar header writing fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leaks when creating temp file fails when applying zip signature.', + 'raw' => 'Fix memory leaks when creating temp file fails when applying zip signature. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)).', + 'raw' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19988', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19784 (SoapServer memory leak).', + 'raw' => 'Fixed bug GH-19784 (SoapServer memory leak). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19784', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash).', + 'raw' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20011', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion).', + 'raw' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12265', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data).', + 'raw' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19701', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).', + 'raw' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19801', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort).', + 'raw' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20043', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set).', + 'raw' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19926', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null).', + 'raw' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null). (nielsdos, divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'divinity76', + ), + 'bugs' => + array ( + 0 => '19570', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main).', + 'raw' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19248', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed).', + 'raw' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17345', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream.', + 'raw' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream. (bukka/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'bukka/David Carlier', + ), + 'bugs' => + array ( + 0 => '19705', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure).', + 'raw' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20009', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()).', + 'raw' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19688', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()).', + 'raw' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '19932', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19922 (Double free on gzopen).', + 'raw' => 'Fixed bug GH-19922 (Double free on gzopen). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '19922', + ), + ), + ), + ), + ), + ), + '8.3.26' => + array ( + 'date' => '25 Sep 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).', + 'raw' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18850', + ), + ), + ), + 1 => + array ( + 'message' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow).', + 'raw' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).', + 'raw' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references). (Arnaud, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '19544', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19613 (Stale array iterator pointer).', + 'raw' => 'Fixed bug GH-19613 (Stale array iterator pointer). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19613', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge).', + 'raw' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19679', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).', + 'raw' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '19681', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant).', + 'raw' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19720', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).', + 'raw' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19461', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.', + 'raw' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug).', + 'raw' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19612', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed failed debug assertion when php_admin_value setting fails.', + 'raw' => 'Fixed failed debug assertion when php_admin_value setting fails. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19579 (imagefilledellipse underflow on width argument).', + 'raw' => 'Fixed bug GH-19579 (imagefilledellipse underflow on width argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '19579', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).', + 'raw' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '11952', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure).', + 'raw' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19245', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections).', + 'raw' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections). (Mark Karpeles)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mark Karpeles', + ), + 'bugs' => + array ( + 0 => '19485', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaks when verifying OpenSSL signature.', + 'raw' => 'Fixed memory leaks when verifying OpenSSL signature. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in phar tar temporary file error handling code.', + 'raw' => 'Fix memory leak in phar tar temporary file error handling code. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix metadata leak when phar convert logic fails.', + 'raw' => 'Fix metadata leak when phar convert logic fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix memory leak on failure in phar_convert_to_other().', + 'raw' => 'Fix memory leak on failure in phar_convert_to_other(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF).', + 'raw' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19752', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16649 (UAF during array_splice).', + 'raw' => 'Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '16649', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator).', + 'raw' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19577', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata().', + 'raw' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #385993744.', + 'raw' => 'Fix OSS-Fuzz #385993744. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19021 build issue with libtidy in regard of tidyOptIsReadonly deprecation and TidyInternalCategory being available later than tidyOptGetCategory.', + 'raw' => 'Fixed GH-19021 build issue with libtidy in regard of tidyOptIsReadonly deprecation and TidyInternalCategory being available later than tidyOptGetCategory. (arjendekorte)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'arjendekorte', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in zip when encountering empty glob result.', + 'raw' => 'Fix memory leak in zip when encountering empty glob result. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.3.25' => + array ( + 'date' => '28 Aug 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro.', + 'raw' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro. (psumbera)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'psumbera', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking).', + 'raw' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18581', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr).', + 'raw' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19305 (Operands may be being released during comparison).', + 'raw' => 'Fixed bug GH-19305 (Operands may be being released during comparison). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19305', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure).', + 'raw' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19303', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).', + 'raw' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19306', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).', + 'raw' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19326', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally).', + 'raw' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18736', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed zend call stack size for macOs/arm64.', + 'raw' => 'Fixed zend call stack size for macOs/arm64. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming).', + 'raw' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming). (nielsdos, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19065', + ), + ), + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19371 (integer overflow in calendar.c).', + 'raw' => 'Fixed bug GH-19371 (integer overflow in calendar.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19371', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect comparison with result of php_stream_can_cast().', + 'raw' => 'Fix incorrect comparison with result of php_stream_can_cast(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash on clone failure.', + 'raw' => 'Fix crash on clone failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19261: msgfmt_parse_message leaks on message creation failure.', + 'raw' => 'Fixed GH-19261: msgfmt_parse_message leaks on message creation failure. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix return value on failure for resourcebundle count handler.', + 'raw' => 'Fix return value on failure for resourcebundle count handler. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (additional inheriting of TLS int options).', + 'raw' => 'Fixed bug GH-18529 (additional inheriting of TLS int options). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '18529', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free).', + 'raw' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19098', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown).', + 'raw' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19397', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Reset global pointers to prevent use-after-free in zend_jit_status().', + 'raw' => 'Reset global pointers to prevent use-after-free in zend_jit_status(). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check).', + 'raw' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check). (nielsdos, botovq)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'botovq', + ), + 'bugs' => + array ( + 0 => '18986', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix error return check of EVP_CIPHER_CTX_ctrl().', + 'raw' => 'Fix error return check of EVP_CIPHER_CTX_ctrl(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param).', + 'raw' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19428', + ), + ), + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper.', + 'raw' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper. (dixyes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dixyes', + ), + ), + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19250 and bug #51360 (Invalid conftest for rl_pending_input).', + 'raw' => 'Fixed bug GH-19250 and bug #51360 (Invalid conftest for rl_pending_input). (petk, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'petk', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19250', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref).', + 'raw' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18640', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fix some potential crashes on incorrect argument value.', + 'raw' => 'Fix some potential crashes on incorrect argument value. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache).', + 'raw' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks).', + 'raw' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19300', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Free opened_path when opened_path_len >= MAXPATHLEN.', + 'raw' => 'Free opened_path when opened_path_len >= MAXPATHLEN. (dixyes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dixyes', + ), + ), + ), + ), + ), + ), + '8.3.24' => + array ( + 'date' => '31 Jul 2025', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jewishtojd overflow on year argument.', + 'raw' => 'Fixed jewishtojd overflow on year argument. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order).', + 'raw' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order). (Daniil Gentili)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniil Gentili', + ), + 'bugs' => + array ( + 0 => '18833', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #427814456.', + 'raw' => 'Fix OSS-Fuzz #427814456. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #428983568 and #428760800.', + 'raw' => 'Fix OSS-Fuzz #428983568 and #428760800. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17204 -Wuseless-escape warnings emitted by re2c.', + 'raw' => 'Fixed bug GH-17204 -Wuseless-escape warnings emitted by re2c. (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '17204', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when returning refcounted value from curl callback.', + 'raw' => 'Fix memory leaks when returning refcounted value from curl callback. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Remove incorrect string release.', + 'raw' => 'Remove incorrect string release. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memleak on failure in collator_get_sort_key().', + 'raw' => 'Fix memleak on failure in collator_get_sort_key(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID.', + 'raw' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18901 (integer overflow mb_split).', + 'raw' => 'Fixed bug GH-18901 (integer overflow mb_split). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18901', + ), + ), + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18873 (OCI_RETURN_LOBS flag causes oci8 to leak memory).', + 'raw' => 'Fixed bug GH-18873 (OCI_RETURN_LOBS flag causes oci8 to leak memory). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '18873', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT).', + 'raw' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18639', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c).', + 'raw' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14082', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server).', + 'raw' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '80770', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers).', + 'raw' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '18958', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix stream double free in phar.', + 'raw' => 'Fix stream double free in phar. (nielsdos, dixyes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'dixyes', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix phar crash and file corruption with SplFileObject.', + 'raw' => 'Fix phar crash and file corruption with SplFileObject. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction).', + 'raw' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18990', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when URL parsing fails in redirect.', + 'raw' => 'Fix memory leak when URL parsing fails in redirect. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash).', + 'raw' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19094', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix misleading errors in printf().', + 'raw' => 'Fix misleading errors in printf(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix RCN violations in array functions.', + 'raw' => 'Fix RCN violations in array functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value.', + 'raw' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error).', + 'raw' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix leak when path is too long in ZipArchive::extractTo().', + 'raw' => 'Fix leak when path is too long in ZipArchive::extractTo(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.3.23' => + array ( + 'date' => '03 Jul 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved).', + 'raw' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved). (Oleg Efimov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Oleg Efimov', + ), + ), + ), + 1 => + array ( + 'message' => 'Do not delete main chunk in zend_gc.', + 'raw' => 'Do not delete main chunk in zend_gc. (danog, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danog', + 1 => 'Arnaud', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix compile issues with zend_alloc and some non-default options.', + 'raw' => 'Fix compile issues with zend_alloc and some non-default options. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when setting a list via curl_setopt fails.', + 'raw' => 'Fix memory leak when setting a list via curl_setopt fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix incorrect OpenSSL version detection.', + 'raw' => 'Fix incorrect OpenSSL version detection. (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix leaks with multiple calls to DatePeriod iterator current().', + 'raw' => 'Fix leaks with multiple calls to DatePeriod iterator current(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18662 (fpm_get_status segfault).', + 'raw' => 'Fixed GH-18662 (fpm_get_status segfault). (txuna)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'txuna', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14551 (PGO build fails with xxhash).', + 'raw' => 'Fixed bug GH-14551 (PGO build fails with xxhash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14551', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in intl_datetime_decompose() on failure.', + 'raw' => 'Fix memory leak in intl_datetime_decompose() on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in locale lookup on failure.', + 'raw' => 'Fix memory leak in locale lookup on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on php_odbc_fetch_hash() failure.', + 'raw' => 'Fix memory leak on php_odbc_fetch_hash() failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22).', + 'raw' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22). (nielsdos, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '18743', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure.', + 'raw' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #74796 (Requests through http proxy set peer name).', + 'raw' => 'Fixed bug #74796 (Requests through http proxy set peer name). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '74796', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Add missing filter cleanups on phar failure.', + 'raw' => 'Add missing filter cleanups on phar failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek).', + 'raw' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18642', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0.', + 'raw' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak if WideCharToMultiByte() fails.', + 'raw' => 'Fix memory leak if WideCharToMultiByte() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query().', + 'raw' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735)', + 'raw' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1735', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix reference type confusion and leak in user random engine.', + 'raw' => 'Fix reference type confusion and leak in user random engine. (nielsdos, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'timwolla', + ), + ), + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when calloc() fails in php_readline_completion_cb().', + 'raw' => 'Fix memory leak when calloc() fails in php_readline_completion_cb(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in php_http.c when call_user_function() fails.', + 'raw' => 'Fix memory leaks in php_http.c when call_user_function() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP ExtensionAdd commentMore actions via Large XML Namespace Prefix). (CVE-2025-6491)', + 'raw' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP ExtensionAdd commentMore actions via Large XML Namespace Prefix). (CVE-2025-6491) (Lekssays, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Lekssays', + 1 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2025-6491', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220)', + 'raw' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1220', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy output handler on error.', + 'raw' => 'Fix memory leak in tidy output handler on error. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory.', + 'raw' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + ), + ), + '8.3.22' => + array ( + 'date' => '05 Jun 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments).', + 'raw' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments). (nielsdos/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos/David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow).', + 'raw' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed OSS-Fuzz #417078295.', + 'raw' => 'Fixed OSS-Fuzz #417078295. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #418106144.', + 'raw' => 'Fixed OSS-Fuzz #418106144. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL).', + 'raw' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) .', + 'raw' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) (JiriJozif).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'JiriJozif', + ), + 'bugs' => + array ( + 0 => '18076', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset).', + 'raw' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset). (nielsdos/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos/David Carlier', + ), + 'bugs' => + array ( + 0 => '18481', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix various reference issues.', + 'raw' => 'Fix various reference issues. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()).', + 'raw' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '18529', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size).', + 'raw' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18417', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure).', + 'raw' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18567', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix leak of accel_globals->key.', + 'raw' => 'Fix leak of accel_globals->key. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix missing checks against php_set_blocking() in xp_ssl.c.', + 'raw' => 'Fix missing checks against php_set_blocking() in xp_ssl.c. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18494 (PDO OCI segfault in statement GC).', + 'raw' => 'Fixed bug GH-18494 (PDO OCI segfault in statement GC). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18494', + ), + ), + ), + ), + 'sockets' => + array ( + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator).', + 'raw' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18421', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails).', + 'raw' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17403', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions).', + 'raw' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '18509', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix leak+crash with sapi_windows_set_ctrl_handler().', + 'raw' => 'Fix leak+crash with sapi_windows_set_ctrl_handler(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work).', + 'raw' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18431', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern).', + 'raw' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18438', + ), + ), + ), + ), + ), + ), + '8.3.21' => + array ( + 'date' => '08 May 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault).', + 'raw' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18304', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix some leaks in php_scandir.', + 'raw' => 'Fix some leaks in php_scandir. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18309 (ipv6 filter integer overflow).', + 'raw' => 'Fixed bug GH-18309 (ipv6 filter integer overflow). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18309', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop().', + 'raw' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop(). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value.', + 'raw' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference support for intltz_get_offset().', + 'raw' => 'Fix reference support for intltz_get_offset(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden).', + 'raw' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '17776', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix NULL deref on high modification key.', + 'raw' => 'Fix NULL deref on high modification key. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message.', + 'raw' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in openssl_sign() when passing invalid algorithm.', + 'raw' => 'Fix memory leak in openssl_sign() when passing invalid algorithm. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix potential leaks when writing to BIO fails.', + 'raw' => 'Fix potential leaks when writing to BIO fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18276 - persistent connection - "zend_mm_heap corrupted" with setAttribute() .', + 'raw' => 'Fixed GH-18276 - persistent connection - "zend_mm_heap corrupted" with setAttribute() (SakiTakamachi).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory).', + 'raw' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18322', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()).', + 'raw' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '18145', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS).', + 'raw' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18209', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18212 (fseek with SEEK_CUR whence value and negative offset leads to negative stream position).', + 'raw' => 'Fixed bug GH-18212 (fseek with SEEK_CUR whence value and negative offset leads to negative stream position). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '18212', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix resource leak in iptcembed() on error.', + 'raw' => 'Fix resource leak in iptcembed() on error. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix uouv when handling empty options in ZipArchive::addGlob().', + 'raw' => 'Fix uouv when handling empty options in ZipArchive::addGlob(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob().', + 'raw' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.3.20' => + array ( + 'date' => '10 Apr 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction).', + 'raw' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '17961', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown).', + 'raw' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15367', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\').', + 'raw' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\'). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13193', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix weird unpack behaviour in DOM.', + 'raw' => 'Fix weird unpack behaviour in DOM. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix xinclude destruction of live attributes.', + 'raw' => 'Fix xinclude destruction of live attributes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8533 (Unable to link dynamic libphp on Mac).', + 'raw' => 'Fixed bug GH-8533 (Unable to link dynamic libphp on Mac). (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + 'bugs' => + array ( + 0 => '8533', + ), + ), + ), + ), + 'fuzzer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI).', + 'raw' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI). (Lung-Alexandra)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Lung-Alexandra', + ), + 'bugs' => + array ( + 0 => '18081', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17984 (calls with arguments as array with references).', + 'raw' => 'Fixed bug GH-17984 (calls with arguments as array with references). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17984', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix locale_compose and locale_lookup to work with their array argument with values as references.', + 'raw' => 'Fix locale_compose and locale_lookup to work with their array argument with values as references. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix dateformat_format when the time is an array of references.', + 'raw' => 'Fix dateformat_format when the time is an array of references. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix UConverter::transcode with substitutes as references.', + 'raw' => 'Fix UConverter::transcode with substitutes as references. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes).', + 'raw' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17989', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18112 (NULL access with preloading and INI option).', + 'raw' => 'Fixed bug GH-18112 (NULL access with preloading and INI option). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18112', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table).', + 'raw' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18107', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when destroying PDORow.', + 'raw' => 'Fix memory leak when destroying PDORow. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) .', + 'raw' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) . (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '66049', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject).', + 'raw' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18018', + ), + ), + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()).', + 'raw' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17736', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings).', + 'raw' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '17836', + ), + ), + ), + ), + ), + ), + '8.3.19' => + array ( + 'date' => '13 Mar 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17398 (bcmul memory leak).', + 'raw' => 'Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '17398', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation).', + 'raw' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17623', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account).', + 'raw' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '17618', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix fallback paths in fast_long_{add,sub}_function.', + 'raw' => 'Fix fallback paths in fast_long_{add,sub}_function. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed).', + 'raw' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '17718', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17797 (zend_test_compile_string crash on invalid script path).', + 'raw' => 'Fixed bug GH-17797 (zend_test_compile_string crash on invalid script path). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17797', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235)', + 'raw' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11235', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17847 (xinclude destroys live node).', + 'raw' => 'Fixed bug GH-17847 (xinclude destroys live node). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17847', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fix FFI Parsing of Pointer Declaration Lists.', + 'raw' => 'Fix FFI Parsing of Pointer Declaration Lists. (davnotdev)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'davnotdev', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env).', + 'raw' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '17643', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M).', + 'raw' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17772', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys).', + 'raw' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys). (nielsdos, 7u83)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => '7u83', + ), + 'bugs' => + array ( + 0 => '17704', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714).', + 'raw' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219)', + 'raw' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1219', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).', + 'raw' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17503', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash).', + 'raw' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17654', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17577 (JIT packed type guard crash).', + 'raw' => 'Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '17577', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17899 (zend_test_compile_string with invalid path when opcache is enabled).', + 'raw' => 'Fixed bug GH-17899 (zend_test_compile_string with invalid path when opcache is enabled). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17899', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT).', + 'raw' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17868', + ), + ), + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).', + 'raw' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix cycle leak in sqlite3 setAuthorizer().', + 'raw' => 'Fix cycle leak in sqlite3 setAuthorizer(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17808: PharFileInfo refcount bug.', + 'raw' => 'Fixed bug GH-17808: PharFileInfo refcount bug. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17808', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer).', + 'raw' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in phpdbg calling registered function.', + 'raw' => 'Fix memory leak in phpdbg calling registered function. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '15902', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17921 (socket_read/socket_recv overflow on buffer size).', + 'raw' => 'Fixed bug GH-17921 (socket_read/socket_recv overflow on buffer size). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17921', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths).', + 'raw' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '72666', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c).', + 'raw' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17650', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak on overflow in _php_stream_scandir().', + 'raw' => 'Fix memory leak on overflow in _php_stream_scandir(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)', + 'raw' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1736', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)', + 'raw' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1861', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)', + 'raw' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1734', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)', + 'raw' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1217', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed phpize for Windows 11 (24H2).', + 'raw' => 'Fixed phpize for Windows 11 (24H2). (bwoebi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'bwoebi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib).', + 'raw' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments).', + 'raw' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17745', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when encoding check fails.', + 'raw' => 'Fix memory leak when encoding check fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix zlib support for large files.', + 'raw' => 'Fix zlib support for large files. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.3.17' => + array ( + 'date' => '13 Feb 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b).', + 'raw' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16892', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0).', + 'raw' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16886', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final).', + 'raw' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17214', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed NULL arithmetic during system program execution on Windows.', + 'raw' => 'Fixed NULL arithmetic during system program execution on Windows. (cmb, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed potential OOB when checking for trailing spaces on Windows.', + 'raw' => 'Fixed potential OOB when checking for trailing spaces on Windows. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c). (nielsdos, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17408', + ), + ), + ), + 6 => + array ( + 'message' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK.', + 'raw' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fix NULL arithmetic in System V shared memory emulation for Windows.', + 'raw' => 'Fix NULL arithmetic in System V shared memory emulation for Windows. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype).', + 'raw' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17500', + ), + ), + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in enchant when passing null bytes.', + 'raw' => 'Fix crashes in enchant when passing null bytes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR).', + 'raw' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16800', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency).', + 'raw' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17349', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images).', + 'raw' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17373', + ), + ), + ), + 2 => + array ( + 'message' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate).', + 'raw' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11874 (intl causing segfault in docker images).', + 'raw' => 'Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11874', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17469 (UConverter::transcode always emit E_WARNING on invalid encoding).', + 'raw' => 'Fixed bug GH-17469 (UConverter::transcode always emit E_WARNING on invalid encoding). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17469', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17307 (Internal closure causes JIT failure).', + 'raw' => 'Fixed bug GH-17307 (Internal closure causes JIT failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17307', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding).', + 'raw' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17564', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed a memory leak when the GC is used to free a PDOStatment.', + 'raw' => 'Fixed a memory leak when the GC is used to free a PDOStatment. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed a crash in the PDO Firebird Statement destructor.', + 'raw' => 'Fixed a crash in the PDO Firebird Statement destructor. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed UAFs when changing default fetch class ctor args.', + 'raw' => 'Fixed UAFs when changing default fetch class ctor args. (Girgias, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + 1 => 'nielsdos', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17518 (offset overflow phar extractTo()).', + 'raw' => 'Fixed bug GH-17518 (offset overflow phar extractTo()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17518', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in function registration + test.', + 'raw' => 'Fix crashes in function registration + test. (nielsdos, Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Girgias', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fix type confusion with session SID constant.', + 'raw' => 'Fix type confusion with session SID constant. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset).', + 'raw' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '17541', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730).', + 'raw' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17409', + ), + ), + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session).', + 'raw' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17330', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17463 (crash on SplTempFileObject::ftruncate with negative value).', + 'raw' => 'Fixed bug GH-17463 (crash on SplTempFileObject::ftruncate with negative value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17463', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry).', + 'raw' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17139', + ), + ), + ), + ), + ), + ), + '8.3.16' => + array ( + 'date' => '16 Jan 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization).', + 'raw' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17106', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF).', + 'raw' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17162', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly).', + 'raw' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17101', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()).', + 'raw' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '17211', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17216 (Trampoline crash on error).', + 'raw' => 'Fixed bug GH-17216 (Trampoline crash on error). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17216', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14709 DatePeriod::__construct() overflow on recurrences.', + 'raw' => 'Fixed bug GH-14709 DatePeriod::__construct() overflow on recurrences. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14709', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Skip test if inifile is disabled.', + 'raw' => 'Skip test if inifile is disabled. (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17224 (UAF in importNode).', + 'raw' => 'Fixed bug GH-17224 (UAF in importNode). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17224', + ), + ), + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Make build command for program using embed portable.', + 'raw' => 'Make build command for program using embed portable. (dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dunglas', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79075 (FFI header parser chokes on comments).', + 'raw' => 'Fixed bug #79075 (FFI header parser chokes on comments). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '79075', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure.', + 'raw' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues).', + 'raw' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues). (Dmitry, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16013', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16944 (Fix filtering special IPv4 and IPv6 ranges, by using information from RFC 6890).', + 'raw' => 'Fixed bug GH-16944 (Fix filtering special IPv4 and IPv6 ranges, by using information from RFC 6890). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '16944', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)).', + 'raw' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '13437', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (cmb, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17112', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits).', + 'raw' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17208', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c).', + 'raw' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16255', + ), + ), + ), + 1 => + array ( + 'message' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs).', + 'raw' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()).', + 'raw' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '17202', + ), + ), + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17047 (UAF on iconv filter failure).', + 'raw' => 'Fixed bug GH-17047 (UAF on iconv filter failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17047', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes).', + 'raw' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17280', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling).', + 'raw' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17223', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17112', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'opcache_get_configuration() properly reports jit_prof_threshold.', + 'raw' => 'opcache_get_configuration() properly reports jit_prof_threshold. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17246 (GC during SCCP causes segfault).', + 'raw' => 'Fixed bug GH-17246 (GC during SCCP causes segfault). (Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '17246', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry.', + 'raw' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument).', + 'raw' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17158', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed further ArgumentCountError for calls with flexible number of arguments.', + 'raw' => 'Fixed further ArgumentCountError for calls with flexible number of arguments. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c).', + 'raw' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17137', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects).', + 'raw' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17040', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document).', + 'raw' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17153', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN).', + 'raw' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN). (David Carlier / cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier / cmb', + ), + 'bugs' => + array ( + 0 => '16276', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option().', + 'raw' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option(). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c).', + 'raw' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17225', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling).', + 'raw' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17037', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value).', + 'raw' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16810', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds).', + 'raw' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17067', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Hardened proc_open() against cmd.exe hijacking.', + 'raw' => 'Hardened proc_open() against cmd.exe hijacking. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-1718 (unreachable program point in zend_hash).', + 'raw' => 'Fixed bug GH-1718 (unreachable program point in zend_hash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '1718', + ), + ), + ), + ), + ), + ), + '8.3.15' => + array ( + 'date' => '19 Dec 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jdtogregorian overflow.', + 'raw' => 'Fixed jdtogregorian overflow. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed cal_to_jd julian_days argument overflow.', + 'raw' => 'Fixed cal_to_jd julian_days argument overflow. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).', + 'raw' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16991', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fail early in *nix configuration build script.', + 'raw' => 'Fail early in *nix configuration build script. (hakre)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'hakre', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)).', + 'raw' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16727', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469).', + 'raw' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16799', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs).', + 'raw' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16630', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix is_zend_ptr() huge block comparison.', + 'raw' => 'Fix is_zend_ptr() huge block comparison. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed potential OOB read in zend_dirname() on Windows.', + 'raw' => 'Fixed potential OOB read in zend_dirname() on Windows. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16802 (open_basedir bypass using curl extension).', + 'raw' => 'Fixed bug GH-16802 (open_basedir bypass using curl extension). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16802', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix various memory leaks in curl mime handling.', + 'raw' => 'Fix various memory leaks in curl mime handling. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16777 (Calling the constructor again on a DOM object after it is in a document causes UAF).', + 'raw' => 'Fixed bug GH-16777 (Calling the constructor again on a DOM object after it is in a document causes UAF). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16777', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator).', + 'raw' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16906', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status).', + 'raw' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16776 (imagecreatefromstring overflow).', + 'raw' => 'Fixed GH-16776 (imagecreatefromstring overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)).', + 'raw' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16890', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16711: Segfault in mhash().', + 'raw' => 'Fixed GH-16711: Segfault in mhash(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF).', + 'raw' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF). (nielsdos, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '16770', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).', + 'raw' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads). (dktapps)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dktapps', + ), + 'bugs' => + array ( + 0 => '16851', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64).', + 'raw' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16902', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Prevent unexpected array entry conversion when reading key.', + 'raw' => 'Prevent unexpected array entry conversion when reading key. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix various memory leaks related to openssl exports.', + 'raw' => 'Fix various memory leaks related to openssl exports. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix memory leak in php_openssl_pkey_from_zval().', + 'raw' => 'Fix memory leak in php_openssl_pkey_from_zval(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak of `setFetchMode()`.', + 'raw' => 'Fixed memory leak of `setFetchMode()`. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks).', + 'raw' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks). (nielsdos, Hans Krentel)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Hans Krentel', + ), + 'bugs' => + array ( + 0 => '16695', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).', + 'raw' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15208', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867).', + 'raw' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16998', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input).', + 'raw' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16808', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fix make check being invoked in ext/soap.', + 'raw' => 'Fix make check being invoked in ext/soap. (Ma27)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ma27', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties).', + 'raw' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16905', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array).', + 'raw' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16957', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed network connect poll interuption handling.', + 'raw' => 'Fixed network connect poll interuption handling. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16849 (Error dialog causes process to hang).', + 'raw' => 'Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16849', + ), + ), + ), + ), + ), + ), + '8.3.14' => + array ( + 'date' => '21 Nov 2024', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang).', + 'raw' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16373', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface).', + 'raw' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed out of bound writes to SafeArray data.', + 'raw' => 'Fixed out of bound writes to SafeArray data. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15).', + 'raw' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16168', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646).', + 'raw' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16371', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline).', + 'raw' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16515', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error).', + 'raw' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16509', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes).', + 'raw' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16508', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16648 (Use-after-free during array sorting).', + 'raw' => 'Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16648', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-15915 (overflow with a high value for precision INI).', + 'raw' => 'Fixed bug GH-15915 (overflow with a high value for precision INI). (David Carlier / cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier / cmb', + ), + 'bugs' => + array ( + 0 => '15915', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails).', + 'raw' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '16302', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset).', + 'raw' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16454', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values).', + 'raw' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '14732', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams).', + 'raw' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16390', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly).', + 'raw' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16316', + ), + ), + ), + 1 => + array ( + 'message' => 'Add missing hierarchy checks to replaceChild.', + 'raw' => 'Add missing hierarchy checks to replaceChild. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16336 (Attribute intern document mismanagement).', + 'raw' => 'Fixed bug GH-16336 (Attribute intern document mismanagement). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16336', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16338 (Null-dereference in ext/dom/node.c).', + 'raw' => 'Fixed bug GH-16338 (Null-dereference in ext/dom/node.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16338', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong).', + 'raw' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16473', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element).', + 'raw' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16533', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16535 (UAF when using document as a child).', + 'raw' => 'Fixed bug GH-16535 (UAF when using document as a child). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16535', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild).', + 'raw' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16593', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode).', + 'raw' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16595', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file).', + 'raw' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16409', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object).', + 'raw' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16397', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen).', + 'raw' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16523', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement).', + 'raw' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16628', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements).', + 'raw' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16334', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16427 (Unchecked libavif return values).', + 'raw' => 'Fixed bug GH-16427 (Unchecked libavif return values). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16427', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007).', + 'raw' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16559', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed floating point exception bug with gmp_pow when using large exposant values. .', + 'raw' => 'Fixed floating point exception bug with gmp_pow when using large exposant values. (David Carlier).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16411 (gmp_export() can cause overflow).', + 'raw' => 'Fixed bug GH-16411 (gmp_export() can cause overflow). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16411', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow).', + 'raw' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16501', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed gmp_pow() overflow bug with large base/exponents.', + 'raw' => 'Fixed gmp_pow() overflow bug with large base/exponents. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed segfaults and other issues related to operator overloading with GMP objects.', + 'raw' => 'Fixed segfaults and other issues related to operator overloading with GMP objects. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932)', + 'raw' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8932', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments).', + 'raw' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16361', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929)', + 'raw' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8929', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16408 (Array to string conversion warning emitted in optimizer).', + 'raw' => 'Fixed bug GH-16408 (Array to string conversion warning emitted in optimizer). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16408', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays).', + 'raw' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16357', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow).', + 'raw' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16433', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix various memory leaks on error conditions in openssl_x509_parse().', + 'raw' => 'Fix various memory leaks on error conditions in openssl_x509_parse(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11236', + ), + ), + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11236', + ), + ), + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values).', + 'raw' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16450', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808).', + 'raw' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16406', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev).', + 'raw' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16174', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors).', + 'raw' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16601', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params).', + 'raw' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16385', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value).', + 'raw' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16290', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16318 (Recursive array segfaults soap encoding).', + 'raw' => 'Fixed bug GH-16318 (Recursive array segfaults soap encoding). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16318', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient).', + 'raw' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16429', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with overflow socket_recvfrom $length argument.', + 'raw' => 'Fixed bug with overflow socket_recvfrom $length argument. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16337 (Use-after-free in SplHeap).', + 'raw' => 'Fixed bug GH-16337 (Use-after-free in SplHeap). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16337', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()).', + 'raw' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16464', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()).', + 'raw' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16479', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()).', + 'raw' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16478', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16588 (UAF in Observer->serialize).', + 'raw' => 'Fixed bug GH-16588 (UAF in Observer->serialize). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16588', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor).', + 'raw' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()).', + 'raw' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16589', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance).', + 'raw' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14687', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors).', + 'raw' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16604', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()).', + 'raw' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16646', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled).', + 'raw' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16293', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234)', + 'raw' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11234', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233)', + 'raw' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11233', + ), + ), + ), + ), + 'sysvmsg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized).', + 'raw' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized). (David Carlier / cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier / cmb', + ), + 'bugs' => + array ( + 0 => '16592', + ), + ), + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16591 (Assertion error in shm_put_var).', + 'raw' => 'Fixed bug GH-16591 (Assertion error in shm_put_var). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16591', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c).', + 'raw' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16292', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.)', + 'raw' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.) (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16326', + ), + ), + ), + ), + ), + ), + '8.3.13' => + array ( + 'date' => '24 Oct 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16240: jdtounix overflow on argument value.', + 'raw' => 'Fixed GH-16240: jdtounix overflow on argument value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument.', + 'raw' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-16263: jddayofweek overflow.', + 'raw' => 'Fixed GH-16263: jddayofweek overflow. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-16234: jewishtojd overflow.', + 'raw' => 'Fixed GH-16234: jewishtojd overflow. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client.', + 'raw' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16137', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16054 (Segmentation fault when resizing hash table iterator list while adding).', + 'raw' => 'Fixed bug GH-16054 (Segmentation fault when resizing hash table iterator list while adding). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16054', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER).', + 'raw' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15905', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception).', + 'raw' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15907', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame).', + 'raw' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15851', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c).', + 'raw' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15866', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16188', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline).', + 'raw' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16233', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16039', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16149 (Null pointer dereference in DOMElement->getAttributeNames()).', + 'raw' => 'Fixed bug GH-16149 (Null pointer dereference in DOMElement->getAttributeNames()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16149', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16151', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16150 (Use after free in php_dom.c).', + 'raw' => 'Fixed bug GH-16150 (Use after free in php_dom.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16150', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16152 (Memory leak in DOMProcessingInstruction/DOMDocument).', + 'raw' => 'Fixed bug GH-16152 (Memory leak in DOMProcessingInstruction/DOMDocument). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16152', + ), + ), + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15168 (stack overflow in json_encode()).', + 'raw' => 'Fixed bug GH-15168 (stack overflow in json_encode()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15168', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16232', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value)', + 'raw' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value) (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '12264', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16274', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()).', + 'raw' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '16032', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list).', + 'raw' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '16101', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.).', + 'raw' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary).', + 'raw' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()).', + 'raw' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16261', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed stub for openssl_csr_new.', + 'raw' => 'Fixed stub for openssl_csr_new. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16189 (underflow on offset argument).', + 'raw' => 'Fixed bug GH-16189 (underflow on offset argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16189', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c).', + 'raw' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16184', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs).', + 'raw' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15901', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error).', + 'raw' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16181', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '16187', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request).', + 'raw' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request). (Jakub Zelenka, David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '15395', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c).', + 'raw' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15837', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument).', + 'raw' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16267', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form).', + 'raw' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '73182', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #62900 (Wrong namespace on xsd import error message).', + 'raw' => 'Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '62900', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15711 (SoapClient can\'t convert BackedEnum to scalar value).', + 'raw' => 'Fixed bug GH-15711 (SoapClient can\'t convert BackedEnum to scalar value). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15711', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer).', + 'raw' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16237', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix Soap leaking http_msg on error.', + 'raw' => 'Fix Soap leaking http_msg on error. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460).', + 'raw' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16256', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails).', + 'raw' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16259', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15918 (Assertion failure in ext/spl/spl_fixedarray.c).', + 'raw' => 'Fixed bug GH-15918 (Assertion failure in ext/spl/spl_fixedarray.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15918', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c).', + 'raw' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16053', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15169 (stack overflow when var serialization in ext/standard/var).', + 'raw' => 'Fixed bug GH-15169 (stack overflow when var serialization in ext/standard/var). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15169', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c).', + 'raw' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c).', + 'raw' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15980', + ), + ), + ), + ), + 'tsrm' => + array ( + 0 => + array ( + 'message' => 'Prevent closing of unrelated handles.', + 'raw' => 'Prevent closing of unrelated handles. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed minimal Windows version.', + 'raw' => 'Fixed minimal Windows version. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + ), + ), + '8.3.12' => + array ( + 'date' => '26 Sep 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926)', + 'raw' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8926', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927)', + 'raw' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8927', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer).', + 'raw' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer). (zeriyoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'zeriyoshi', + ), + 'bugs' => + array ( + 0 => '15408', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15515 (Configure error grep illegal option q).', + 'raw' => 'Fixed bug GH-15515 (Configure error grep illegal option q). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '15515', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error).', + 'raw' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '15514', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found).', + 'raw' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15565', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit).', + 'raw' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit). (Bernd Kuhls, Thomas Petazzoni)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bernd Kuhls', + 1 => 'Thomas Petazzoni', + ), + 'bugs' => + array ( + 0 => '15587', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15330 (Do not scan generator frames more than once).', + 'raw' => 'Fixed bug GH-15330 (Do not scan generator frames more than once). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15330', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed uninitialized lineno in constant AST of internal enums.', + 'raw' => 'Fixed uninitialized lineno in constant AST of internal enums. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument).', + 'raw' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h).', + 'raw' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15551', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c).', + 'raw' => 'Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15654', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument).', + 'raw' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '15752', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026)', + 'raw' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-9026', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15432 (Heap corruption when querying a vector).', + 'raw' => 'Fixed bug GH-15432 (Heap corruption when querying a vector). (cmb, Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'Kamil Tekiela', + ), + 'bugs' => + array ( + 0 => '15432', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c).', + 'raw' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15661', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h).', + 'raw' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15658', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925)', + 'raw' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925) (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'cves' => + array ( + 0 => 'CVE-2024-8925', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c).', + 'raw' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15552', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated).', + 'raw' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15628', + ), + ), + ), + ), + ), + ), + '8.3.11' => + array ( + 'date' => '29 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c).', + 'raw' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15020', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c).', + 'raw' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15023', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally).', + 'raw' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '13330', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix uninitialized memory in network.c.', + 'raw' => 'Fix uninitialized memory in network.c. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown).', + 'raw' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15108', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate).', + 'raw' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15275', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed case when curl_error returns an empty string.', + 'raw' => 'Fixed case when curl_error returns an empty string. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix UAF when removing doctype and using foreach iteration.', + 'raw' => 'Fix UAF when removing doctype and using foreach iteration. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak).', + 'raw' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak). (nielsdos, dstogov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'dstogov', + ), + 'bugs' => + array ( + 0 => '14286', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash when converting array data for array in shm in xxh3.', + 'raw' => 'Fix crash when converting array data for array in shm in xxh3. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional).', + 'raw' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15087', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4).', + 'raw' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '13817', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement).', + 'raw' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement). (Arnaud, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13775', + ), + ), + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re).', + 'raw' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15179', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix bogus fallthrough path in firebird_handle_get_attribute().', + 'raw' => 'Fix bogus fallthrough path in firebird_handle_get_attribute(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline).', + 'raw' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '13199', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)).', + 'raw' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15268', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations.', + 'raw' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15210', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris.', + 'raw' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55639 (Digest autentication dont work).', + 'raw' => 'Fixed bug #55639 (Digest autentication dont work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '55639', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix SoapFault property destruction.', + 'raw' => 'Fix SoapFault property destruction. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option).', + 'raw' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15252', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix passing non-finite timeout values in stream functions.', + 'raw' => 'Fix passing non-finite timeout values in stream functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-14780 p(f)sockopen timeout overflow.', + 'raw' => 'Fixed GH-14780 p(f)sockopen timeout overflow. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-15653 overflow on fgetcsv length parameter.', + 'raw' => 'Fixed GH-15653 overflow on fgetcsv length parameter. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c).', + 'raw' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15028', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB).', + 'raw' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15034', + ), + ), + ), + 2 => + array ( + 'message' => 'Reverted fix for GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters).', + 'raw' => 'Reverted fix for GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/tidy basedir restriction code.', + 'raw' => 'Fix memory leaks in ext/tidy basedir restriction code. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.3.10' => + array ( + 'date' => '01 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1).', + 'raw' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '13922', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks).', + 'raw' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '14626', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt.', + 'raw' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14590', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #69765.', + 'raw' => 'Fixed OSS-Fuzz #69765. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h).', + 'raw' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14741', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()).', + 'raw' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14969', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error).', + 'raw' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14961', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash).', + 'raw' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14702', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14888 (README.REDIST.BINS refers to non-existing LICENSE).', + 'raw' => 'Fixed bug GH-14888 (README.REDIST.BINS refers to non-existing LICENSE). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '14888', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support.', + 'raw' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support. (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + ), + ), + 1 => + array ( + 'message' => 'restored warning instead of fata error.', + 'raw' => 'restored warning instead of fata error. (dryabov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dryabov', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0).', + 'raw' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14563', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled).', + 'raw' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14550', + ), + ), + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer).', + 'raw' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14808', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14712 (Crash with PDORow access to null property).', + 'raw' => 'Fixed bug GH-14712 (Crash with PDORow access to null property). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14712', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14603 (null string from zip entry).', + 'raw' => 'Fixed bug GH-14603 (null string from zip entry). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14603', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1).', + 'raw' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14596', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte).', + 'raw' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14553', + ), + ), + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process).', + 'raw' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14537', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c).', + 'raw' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14639', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14775 (range function overflow with negative step argument).', + 'raw' => 'Fixed bug GH-14775 (range function overflow with negative step argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14775', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix 32-bit wordwrap test failures.', + 'raw' => 'Fix 32-bit wordwrap test failures. (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14774 (time_sleep_until overflow).', + 'raw' => 'Fixed bug GH-14774 (time_sleep_until overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '14774', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters in PHP 8.3).', + 'raw' => 'Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters in PHP 8.3). (Joe Cai)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Joe Cai', + ), + 'bugs' => + array ( + 0 => '14930', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy_repair_file().', + 'raw' => 'Fix memory leak in tidy_repair_file(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility with libxml2 2.13.2.', + 'raw' => 'Fix compatibility with libxml2 2.13.2. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Move away from to-be-deprecated libxml fields.', + 'raw' => 'Move away from to-be-deprecated libxml fields. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used).', + 'raw' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14834', + ), + ), + ), + ), + ), + ), + '8.3.9' => + array ( + 'date' => '04 Jul 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14315 (Incompatible pointer type warnings).', + 'raw' => 'Fixed bug GH-14315 (Incompatible pointer type warnings). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '14315', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon).', + 'raw' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon). (Manuel Kress)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Manuel Kress', + ), + 'bugs' => + array ( + 0 => '12814', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()).', + 'raw' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '14387', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor).', + 'raw' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '14456', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14510 (memleak due to missing pthread_attr_destroy()-call).', + 'raw' => 'Fixed bug GH-14510 (memleak due to missing pthread_attr_destroy()-call). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + 'bugs' => + array ( + 0 => '14510', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose).', + 'raw' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose). (Ryan Carsten Schmidt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ryan Carsten Schmidt', + ), + 'bugs' => + array ( + 0 => '14549', + ), + ), + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0).', + 'raw' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0).', + 'raw' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14307', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14343 (Memory leak in xml and dom).', + 'raw' => 'Fixed bug GH-14343 (Memory leak in xml and dom). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14343', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool).', + 'raw' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool). (Wilhansen Li, Pierrick Charron)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Wilhansen Li', + 1 => 'Pierrick Charron', + ), + 'bugs' => + array ( + 0 => '14037', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix parameter numbers for imagecolorset().', + 'raw' => 'Fix parameter numbers for imagecolorset(). (Giovanni Giacobbi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Giovanni Giacobbi', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference handling in SpoofChecker.', + 'raw' => 'Fix reference handling in SpoofChecker. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection).', + 'raw' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime).', + 'raw' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14267', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed TLS access in JIT on FreeBSD/amd64.', + 'raw' => 'Fixed TLS access in JIT on FreeBSD/amd64. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64).', + 'raw' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11188', + ), + ), + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC).', + 'raw' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC). (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + 'bugs' => + array ( + 0 => '14367', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure).', + 'raw' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '13681', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47925 (PHPClient can\'t decompress response).', + 'raw' => 'Fixed bug #47925 (PHPClient can\'t decompress response). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '47925', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix missing error restore code.', + 'raw' => 'Fix missing error restore code. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setObject() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setObject() twice. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setClass() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setClass() twice. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix reading zlib ini settings in ext-soap.', + 'raw' => 'Fix reading zlib ini settings in ext-soap. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix memory leaks with string function name lookups.', + 'raw' => 'Fix memory leaks with string function name lookups. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name).', + 'raw' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '69280', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon).', + 'raw' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '76232', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed memory leaks when calling SoapFault::__construct() twice.', + 'raw' => 'Fixed memory leaks when calling SoapFault::__construct() twice. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/sodium on failure of some functions.', + 'raw' => 'Fix memory leaks in ext/sodium on failure of some functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl).', + 'raw' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14290', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets).', + 'raw' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets). (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + 'bugs' => + array ( + 0 => '14483', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors).', + 'raw' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11078', + ), + ), + ), + ), + ), + ), + '8.3.8' => + array ( + 'date' => '06 Jun 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed buffer limit on Windows, replacing read call usage by _read.', + 'raw' => 'Fixed buffer limit on Windows, replacing read call usage by _read. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577)', + 'raw' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-4577', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.).', + 'raw' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14189', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions).', + 'raw' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '13970', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when entity declaration is removed while still having entity references.', + 'raw' => 'Fix crashes when entity declaration is removed while still having entity references. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix references not handled correctly in C14N.', + 'raw' => 'Fix references not handled correctly in C14N. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix crash when calling childNodes next() when iterator is exhausted.', + 'raw' => 'Fix crash when calling childNodes next() when iterator is exhausted. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes.', + 'raw' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458)', + 'raw' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-5458', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status).', + 'raw' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status). (Benjamin Cremer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Benjamin Cremer', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__`', + 'raw' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__` (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build regression on systems without C++17 compilers.', + 'raw' => 'Fixed build regression on systems without C++17 compilers. (Calvin Buckley, Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + 1 => 'Peter Kokot', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query).', + 'raw' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query). (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm).', + 'raw' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14109', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable.', + 'raw' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. (CVE-2024-2408)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'CVE-2024-2408', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585)', + 'raw' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-5585', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit).', + 'raw' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14124', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden).', + 'raw' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14183', + ), + ), + ), + ), + ), + ), + '8.3.7' => + array ( + 'date' => '09 May 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed zend_call_stack build with Linux/uclibc-ng without thread support.', + 'raw' => 'Fixed zend_call_stack build with Linux/uclibc-ng without thread support. (Fabrice Fontaine)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Fabrice Fontaine', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled).', + 'raw' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '13772', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c).', + 'raw' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13931', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations).', + 'raw' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations). (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + 'bugs' => + array ( + 0 => '13942', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters).', + 'raw' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '14003', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure).', + 'raw' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '14013', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly).', + 'raw' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly). (ranvis)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ranvis', + ), + 'bugs' => + array ( + 0 => '10232', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-13727 (Missing void keyword).', + 'raw' => 'Fixed bug GH-13727 (Missing void keyword). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '13727', + ), + ), + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).', + 'raw' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13903', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on big-endian PPC).', + 'raw' => 'Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on big-endian PPC). (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + 'bugs' => + array ( + 0 => '13795', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails).', + 'raw' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '13563', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build for icu 74 and onwards.', + 'raw' => 'Fixed build for icu 74 and onwards. (dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dunglas', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix shift out of bounds on 32-bit non-fast-path platforms.', + 'raw' => 'Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when using opcache.preload).', + 'raw' => 'Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when using opcache.preload). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13433', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed incorrect assumptions across compilation units for static calls.', + 'raw' => 'Fixed incorrect assumptions across compilation units for static calls. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely).', + 'raw' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '10495', + ), + ), + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13984 (Buffer size is now checked before memcmp).', + 'raw' => 'Fix GH-13984 (Buffer size is now checked before memcmp). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly).', + 'raw' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference).', + 'raw' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13836', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c).', + 'raw' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13833', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix potential NULL pointer dereference before calling EVP_SignInit.', + 'raw' => 'Fix potential NULL pointer dereference before calling EVP_SignInit. (icy17)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'icy17', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame).', + 'raw' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13827', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fix usage of reentrant functions in ext/posix.', + 'raw' => 'Fix usage of reentrant functions in ext/posix. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c).', + 'raw' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13856', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts).', + 'raw' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts). (nielsdos, kamil-tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'kamil-tekiela', + ), + 'bugs' => + array ( + 0 => '13891', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed buffer _read/_write size limit on windows for the file mode.', + 'raw' => 'Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument".', + 'raw' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument". (Damian Wójcik)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Damian Wójcik', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure).', + 'raw' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '13264', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket).', + 'raw' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13860', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64).', + 'raw' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '11678', + ), + ), + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix gcc-14 Wcalloc-transposed-args warnings.', + 'raw' => 'Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Cristian Rodríguez', + ), + ), + ), + ), + ), + ), + '8.3.6' => + array ( + 'date' => '11 Apr 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when scanning WeakMaps).', + 'raw' => 'Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when scanning WeakMaps). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references).', + 'raw' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13612', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13446 (Restore exception handler after it finishes).', + 'raw' => 'Fixed bug GH-13446 (Restore exception handler after it finishes). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '13446', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure).', + 'raw' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '13784', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor).', + 'raw' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '13670', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Add some missing ZPP checks.', + 'raw' => 'Add some missing ZPP checks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix potential memory leak in XPath evaluation results.', + 'raw' => 'Fix potential memory leak in XPath evaluation results. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11086 (FPM: config test runs twice in daemonised mode).', + 'raw' => 'Fixed GH-11086 (FPM: config test runs twice in daemonised mode). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed incorrect check in fpm_shm_free().', + 'raw' => 'Fixed incorrect check in fpm_shm_free(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests).', + 'raw' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '12019', + ), + ), + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL.', + 'raw' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]).', + 'raw' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix incorrect charset length in check_mb_eucjpms().', + 'raw' => 'Fix incorrect charset length in check_mb_eucjpms(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).', + 'raw' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null). (Arnaud, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'Dmitry', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded).', + 'raw' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes).', + 'raw' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '13544', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used).', + 'raw' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '13690', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error).', + 'raw' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13680', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h).', + 'raw' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13685', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11808 (Live filesystem modified by tests).', + 'raw' => 'Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11808', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()).', + 'raw' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).', + 'raw' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows). (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + 'bugs' => + array ( + 0 => '13203', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874)', + 'raw' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-1874', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756)', + 'raw' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'cves' => + array ( + 0 => 'CVE-2024-2756', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096)', + 'raw' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2024-3096', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some inputs). (CVE-2024-2757)', + 'raw' => 'Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some inputs). (CVE-2024-2757) (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + 'cves' => + array ( + 0 => 'CVE-2024-2757', + ), + ), + ), + ), + ), + ), + '8.3.4' => + array ( + 'date' => '14 Mar 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix ZTS persistent resource crashes on shutdown.', + 'raw' => 'Fix ZTS persistent resource crashes on shutdown. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix failing tests due to string changes in libcurl 8.6.0.', + 'raw' => 'Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix unlikely memory leak in case of namespace removal with extremely deep trees.', + 'raw' => 'Fix unlikely memory leak in case of namespace removal with extremely deep trees. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap.', + 'raw' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport).', + 'raw' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13344', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER).', + 'raw' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '75712', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (detection of image formats in system gd library).', + 'raw' => 'Fixed bug GH-12019 (detection of image formats in system gd library). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '12019', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set).', + 'raw' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '11950', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix various PDORow bugs.', + 'raw' => 'Fix various PDORow bugs. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference).', + 'raw' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference). (George Barbarosie)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'George Barbarosie', + ), + 'bugs' => + array ( + 0 => '13354', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15).', + 'raw' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13531', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13279 (Instable array during in-place modification in uksort).', + 'raw' => 'Fixed bug GH-13279 (Instable array during in-place modification in uksort). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '13279', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now).', + 'raw' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now). (A. Slepykh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'A. Slepykh', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat).', + 'raw' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13517', + ), + ), + ), + ), + ), + ), + '8.3.3' => + array ( + 'date' => '15 Feb 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed timer leak in zend-max-execution-timers builds.', + 'raw' => 'Fixed timer leak in zend-max-execution-timers builds. (withinboredom)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'withinboredom', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12349 (linking failure on ARM with mold).', + 'raw' => 'Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jan Palus', + ), + 'bugs' => + array ( + 0 => '12349', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception).', + 'raw' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13097', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13177 (PHP 8.3.2: final private constructor not allowed when used in trait).', + 'raw' => 'Fixed bug GH-13177 (PHP 8.3.2: final private constructor not allowed when used in trait). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13177', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-13215 (GCC 14 build failure).', + 'raw' => 'Fixed bug GH-13215 (GCC 14 build failure). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '13215', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix missing error check in curl_multi_init().', + 'raw' => 'Fix missing error check in curl_multi_init(). (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path).', + 'raw' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '12996', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path).', + 'raw' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10344', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90).', + 'raw' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10614', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix crashes with entity references and predefined entities.', + 'raw' => 'Fix crashes with entity references and predefined entities. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes).', + 'raw' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12107', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13145 (strtok() is not comptime).', + 'raw' => 'Fixed bug GH-13145 (strtok() is not comptime). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '13145', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed type inference of range().', + 'raw' => 'Fixed type inference of range(). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on).', + 'raw' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13232', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. .', + 'raw' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. (David Carlier).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format).', + 'raw' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed).', + 'raw' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '71465', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file).', + 'raw' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13037', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines).', + 'raw' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '13138', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader).', + 'raw' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12504', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13094 (range(9.9, \'0\') causes segmentation fault).', + 'raw' => 'Fixed bug GH-13094 (range(9.9, \'0\') causes segmentation fault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13094', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail).', + 'raw' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13071', + ), + ), + ), + ), + ), + ), + '8.3.2' => + array ( + 'date' => '18 Jan 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements).', + 'raw' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12953', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported).', + 'raw' => 'Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported). (rainerjung)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'rainerjung', + ), + 'bugs' => + array ( + 0 => '12999', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings).', + 'raw' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '12966', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly report visibility in Reflection).', + 'raw' => 'Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly report visibility in Reflection). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12854', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time.', + 'raw' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException).', + 'raw' => 'Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12870', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix crash when toggleAttribute() is used without a document.', + 'raw' => 'Fix crash when toggleAttribute() is used without a document. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix crash in adoptNode with attribute references.', + 'raw' => 'Fix crash in adoptNode with attribute references. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13012 (DOMNode::isEqualNode() is incorrect when attribute order is different).', + 'raw' => 'Fixed bug GH-13012 (DOMNode::isEqualNode() is incorrect when attribute order is different). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13012', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData).', + 'raw' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '9698', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers).', + 'raw' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12905', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*.', + 'raw' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale).', + 'raw' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB).', + 'raw' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12936', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'When operating on a string with invalid encoding, mb_substr (as well as mb_strstr and its variants) defines character indices in the same way as other mbstring functions such as mb_strpos.', + 'raw' => 'When operating on a string with invalid encoding, mb_substr (as well as mb_strstr and its variants) defines character indices in the same way as other mbstring functions such as mb_strpos. (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + ), + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix crash on Apache shutdown with persistent connections.', + 'raw' => 'Fix crash on Apache shutdown with persistent connections. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result).', + 'raw' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258.', + 'raw' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error).', + 'raw' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '12987', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES).', + 'raw' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()).', + 'raw' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '12767', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed auto_reset_persistent handling and allow_persistent type.', + 'raw' => 'Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()).', + 'raw' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12974', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77432 (Segmentation fault on including phar file).', + 'raw' => 'Fixed bug #77432 (Segmentation fault on including phar file). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '77432', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c).', + 'raw' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12962', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash.', + 'raw' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12929 (SimpleXMLElement with stream_wrapper_register can segfault).', + 'raw' => 'Fixed bug GH-12929 (SimpleXMLElement with stream_wrapper_register can segfault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12929', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes).', + 'raw' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12980', + ), + ), + ), + ), + ), + ), + '8.3.1' => + array ( + 'date' => '21 Dec 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC).', + 'raw' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + 'bugs' => + array ( + 0 => '12758', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix various missing NULL checks.', + 'raw' => 'Fix various missing NULL checks. (nielsdos, dstogov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'dstogov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call).', + 'raw' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '12835', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12826 (Weird pointers issue in nested loops).', + 'raw' => 'Fixed bug GH-12826 (Weird pointers issue in nested loops). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12826', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval).', + 'raw' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). (Patrick Prasse)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Patrick Prasse', + ), + 'bugs' => + array ( + 0 => '12705', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9348 (FTP & SSL session reuse).', + 'raw' => 'Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '9348', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed test failures for libxml2 2.12.0.', + 'raw' => 'Fixed test failures for libxml2 2.12.0. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Avoid using uninitialised struct.', + 'raw' => 'Avoid using uninitialised struct. (mikhainin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mikhainin', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code).', + 'raw' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12791', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error).', + 'raw' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown).', + 'raw' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify()', + 'raw' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted).', + 'raw' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12838', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-12745 (http_build_query() default null argument for $arg_separator is implicitly coerced to string).', + 'raw' => 'Fixed GH-12745 (http_build_query() default null argument for $arg_separator is implicitly coerced to string). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + ), + ), + '8.3.0' => + array ( + 'date' => '23 Nov 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11761 (removing trailing zeros from numbers)', + 'raw' => 'Fixed GH-11761 (removing trailing zeros from numbers) (jorgsowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jorgsowa', + ), + ), + ), + 1 => + array ( + 'message' => 'Added pdeathsig to builtin server to terminate workers when the master process is killed.', + 'raw' => 'Added pdeathsig to builtin server to terminate workers when the master process is killed. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11104 (STDIN/STDOUT/STDERR is not available for CLI without a script).', + 'raw' => 'Fixed bug GH-11104 (STDIN/STDOUT/STDERR is not available for CLI without a script). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11104', + ), + ), + ), + 3 => + array ( + 'message' => 'Implement GH-10024 (support linting multiple files at once using php -l).', + 'raw' => 'Implement GH-10024 (support linting multiple files at once using php -l). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait).', + 'raw' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure).', + 'raw' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11406', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9388 (Improve unset property and __get type incompatibility error message).', + 'raw' => 'Fixed bug GH-9388 (Improve unset property and __get type incompatibility error message). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '9388', + ), + ), + ), + 3 => + array ( + 'message' => 'SA_ONSTACK is now set for signal handlers to be friendlier to other in-process code such as Go\'s cgo.', + 'raw' => 'SA_ONSTACK is now set for signal handlers to be friendlier to other in-process code such as Go\'s cgo. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 4 => + array ( + 'message' => 'SA_ONSTACK is now set when signals are disabled.', + 'raw' => 'SA_ONSTACK is now set when signals are disabled. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix GH-9649: Signal handlers now do a no-op instead of crashing when executed on threads not managed by TSRM.', + 'raw' => 'Fix GH-9649: Signal handlers now do a no-op instead of crashing when executed on threads not managed by TSRM. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 6 => + array ( + 'message' => 'Added shadow stack support for fibers.', + 'raw' => 'Added shadow stack support for fibers. (Chen Hu)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Chen Hu', + ), + ), + ), + 7 => + array ( + 'message' => 'Fix bug GH-9965 (Fix accidental caching of default arguments with side effects).', + 'raw' => 'Fix bug GH-9965 (Fix accidental caching of default arguments with side effects). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 8 => + array ( + 'message' => 'Implement GH-10217 (Use strlen() for determining the class_name length).', + 'raw' => 'Implement GH-10217 (Use strlen() for determining the class_name length). (Dennis Buteyn)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dennis Buteyn', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix bug GH-8821 (Improve line numbers for errors in constant expressions).', + 'raw' => 'Fix bug GH-8821 (Improve line numbers for errors in constant expressions). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 10 => + array ( + 'message' => 'Fix bug GH-10083 (Allow comments between & and parameter).', + 'raw' => 'Fix bug GH-10083 (Allow comments between & and parameter). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 11 => + array ( + 'message' => 'Zend Max Execution Timers is now enabled by default for ZTS builds on Linux.', + 'raw' => 'Zend Max Execution Timers is now enabled by default for ZTS builds on Linux. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 12 => + array ( + 'message' => 'Fix bug GH-10469 (Disallow .. in open_basedir paths set at runtime).', + 'raw' => 'Fix bug GH-10469 (Disallow .. in open_basedir paths set at runtime). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 13 => + array ( + 'message' => 'Fix bug GH-10168, GH-10582 (Various segfaults with destructors and VM return values).', + 'raw' => 'Fix bug GH-10168, GH-10582 (Various segfaults with destructors and VM return values). (dstogov, nielsdos, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dstogov', + 1 => 'nielsdos', + 2 => 'ilutov', + ), + ), + ), + 14 => + array ( + 'message' => 'Fix bug GH-10935 (Use of trait doesn\'t redeclare static property if class has inherited it from its parent).', + 'raw' => 'Fix bug GH-10935 (Use of trait doesn\'t redeclare static property if class has inherited it from its parent). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 15 => + array ( + 'message' => 'Fix bug GH-11154 (Negative indices on empty array don\'t affect next chosen index).', + 'raw' => 'Fix bug GH-11154 (Negative indices on empty array don\'t affect next chosen index). (ColinHDev)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ColinHDev', + ), + ), + ), + 16 => + array ( + 'message' => 'Fix bug GH-8846 (Implement delayed early binding for classes without parents).', + 'raw' => 'Fix bug GH-8846 (Implement delayed early binding for classes without parents). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 17 => + array ( + 'message' => 'Fix bug #79836 (Segfault in concat_function).', + 'raw' => 'Fix bug #79836 (Segfault in concat_function). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 18 => + array ( + 'message' => 'Fix bug #81705 (type confusion/UAF on set_error_handler with concat operation).', + 'raw' => 'Fix bug #81705 (type confusion/UAF on set_error_handler with concat operation). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 19 => + array ( + 'message' => 'Fix GH-11348 (Closure created from magic method does not accept named arguments).', + 'raw' => 'Fix GH-11348 (Closure created from magic method does not accept named arguments). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 20 => + array ( + 'message' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait).', + 'raw' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 21 => + array ( + 'message' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure).', + 'raw' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11406', + ), + ), + ), + 22 => + array ( + 'message' => 'Fixed bug GH-11507 (String concatenation performance regression in 8.3).', + 'raw' => 'Fixed bug GH-11507 (String concatenation performance regression in 8.3). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11507', + ), + ), + ), + 23 => + array ( + 'message' => 'Fixed GH-11488 (Missing "Optional parameter before required" deprecation on union null type).', + 'raw' => 'Fixed GH-11488 (Missing "Optional parameter before required" deprecation on union null type). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 24 => + array ( + 'message' => 'Implement the #[\\Override] attribute RFC.', + 'raw' => 'Implement the #[\\Override] attribute RFC. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 25 => + array ( + 'message' => 'Fixed bug GH-11601 (Incorrect handling of unwind and graceful exit exceptions).', + 'raw' => 'Fixed bug GH-11601 (Incorrect handling of unwind and graceful exit exceptions). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '11601', + ), + ), + ), + 26 => + array ( + 'message' => 'Added zend_call_stack_get implementation for OpenBSD.', + 'raw' => 'Added zend_call_stack_get implementation for OpenBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 27 => + array ( + 'message' => 'Add stack limit check in zend_eval_const_expr().', + 'raw' => 'Add stack limit check in zend_eval_const_expr(). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 28 => + array ( + 'message' => 'Expose time spent collecting cycles in gc_status().', + 'raw' => 'Expose time spent collecting cycles in gc_status(). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 29 => + array ( + 'message' => 'Remove WeakMap entries whose key is only reachable through the entry value.', + 'raw' => 'Remove WeakMap entries whose key is only reachable through the entry value. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 30 => + array ( + 'message' => 'Resolve open_basedir paths on INI update.', + 'raw' => 'Resolve open_basedir paths on INI update. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 31 => + array ( + 'message' => 'Fixed oss-fuzz #60741 (Leak in open_basedir).', + 'raw' => 'Fixed oss-fuzz #60741 (Leak in open_basedir). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 32 => + array ( + 'message' => 'Fixed segfault during freeing of some incompletely initialized objects due to OOM error (PDO, SPL, XSL).', + 'raw' => 'Fixed segfault during freeing of some incompletely initialized objects due to OOM error (PDO, SPL, XSL). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 33 => + array ( + 'message' => 'Introduced Zend guard recursion protection to fix __debugInfo issue.', + 'raw' => 'Introduced Zend guard recursion protection to fix __debugInfo issue. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 34 => + array ( + 'message' => 'Fixed oss-fuzz #61712 (assertion failure with error handler during binary op).', + 'raw' => 'Fixed oss-fuzz #61712 (assertion failure with error handler during binary op). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 35 => + array ( + 'message' => 'Fixed GH-11847 (DTrace enabled build is broken).', + 'raw' => 'Fixed GH-11847 (DTrace enabled build is broken). (Filip Zrůst)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Filip Zrůst', + ), + ), + ), + 36 => + array ( + 'message' => 'Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property that is unset in error handler).', + 'raw' => 'Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property that is unset in error handler). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 37 => + array ( + 'message' => 'Fixed warning emitted when checking if a user stream is castable.', + 'raw' => 'Fixed warning emitted when checking if a user stream is castable. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 38 => + array ( + 'message' => 'Fixed bug GH-12123 (Compile error on MacOS with C++ extension when using ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX).', + 'raw' => 'Fixed bug GH-12123 (Compile error on MacOS with C++ extension when using ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '12123', + ), + ), + ), + 39 => + array ( + 'message' => 'Fixed bug GH-12189 (#[Override] attribute in trait does not check for parent class implementations).', + 'raw' => 'Fixed bug GH-12189 (#[Override] attribute in trait does not check for parent class implementations). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '12189', + ), + ), + ), + 40 => + array ( + 'message' => 'Fixed OSS Fuzz #62294 (Unsetting variable after ++/-- on string variable warning).', + 'raw' => 'Fixed OSS Fuzz #62294 (Unsetting variable after ++/-- on string variable warning). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 41 => + array ( + 'message' => 'Fixed buffer underflow when compiling memoized expression.', + 'raw' => 'Fixed buffer underflow when compiling memoized expression. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 42 => + array ( + 'message' => 'Fixed oss-fuzz #63802 (OP1 leak in error path of post inc/dec).', + 'raw' => 'Fixed oss-fuzz #63802 (OP1 leak in error path of post inc/dec). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Added Curl options and constants up to (including) version 7.87.', + 'raw' => 'Added Curl options and constants up to (including) version 7.87. (nielsdos, adoy)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'adoy', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Implement More Appropriate Date/Time Exceptions RFC.', + 'raw' => 'Implement More Appropriate Date/Time Exceptions RFC. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-8388 (DOMAttr unescapes character reference).', + 'raw' => 'Fix bug GH-8388 (DOMAttr unescapes character reference). (Tim Starling)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Tim Starling', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix bug GH-11308 (getElementsByTagName() is O(N^2)).', + 'raw' => 'Fix bug GH-11308 (getElementsByTagName() is O(N^2)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix #79700 (wrong use of libxml oldNs leads to performance problem).', + 'raw' => 'Fix #79700 (wrong use of libxml oldNs leads to performance problem). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix #77894 (DOMNode::C14N() very slow on generated DOMDocuments even after normalisation).', + 'raw' => 'Fix #77894 (DOMNode::C14N() very slow on generated DOMDocuments even after normalisation). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion.', + 'raw' => 'Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-11500 (Namespace reuse in createElementNS() generates wrong output).', + 'raw' => 'Fixed bug GH-11500 (Namespace reuse in createElementNS() generates wrong output). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11500', + ), + ), + ), + 6 => + array ( + 'message' => 'Implemented DOMDocument::adoptNode(). Previously this always threw a "not yet implemented" exception.', + 'raw' => 'Implemented DOMDocument::adoptNode(). Previously this always threw a "not yet implemented" exception. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-9628 (Implicitly removing nodes from \\DOMDocument breaks existing references).', + 'raw' => 'Fixed bug GH-9628 (Implicitly removing nodes from \\DOMDocument breaks existing references). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '9628', + ), + ), + ), + 8 => + array ( + 'message' => 'Added DOMNode::contains() and DOMNameSpaceNode::contains().', + 'raw' => 'Added DOMNode::contains() and DOMNameSpaceNode::contains(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 9 => + array ( + 'message' => 'Added DOMElement::getAttributeNames().', + 'raw' => 'Added DOMElement::getAttributeNames(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 10 => + array ( + 'message' => 'Added DOMNode::getRootNode().', + 'raw' => 'Added DOMNode::getRootNode(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 11 => + array ( + 'message' => 'Added DOMElement::className and DOMElement::id.', + 'raw' => 'Added DOMElement::className and DOMElement::id. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 12 => + array ( + 'message' => 'Added DOMParentNode::replaceChildren().', + 'raw' => 'Added DOMParentNode::replaceChildren(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 13 => + array ( + 'message' => 'Added DOMNode::isConnected and DOMNameSpaceNode::isConnected.', + 'raw' => 'Added DOMNode::isConnected and DOMNameSpaceNode::isConnected. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 14 => + array ( + 'message' => 'Added DOMNode::parentElement and DOMNameSpaceNode::parentElement.', + 'raw' => 'Added DOMNode::parentElement and DOMNameSpaceNode::parentElement. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 15 => + array ( + 'message' => 'Added DOMNode::isEqualNode().', + 'raw' => 'Added DOMNode::isEqualNode(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 16 => + array ( + 'message' => 'Added DOMElement::insertAdjacentElement() and DOMElement::insertAdjacentText().', + 'raw' => 'Added DOMElement::insertAdjacentElement() and DOMElement::insertAdjacentText(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 17 => + array ( + 'message' => 'Added DOMElement::toggleAttribute().', + 'raw' => 'Added DOMElement::toggleAttribute(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 18 => + array ( + 'message' => 'Fixed bug GH-11792 (LIBXML_NOXMLDECL is not implemented or broken).', + 'raw' => 'Fixed bug GH-11792 (LIBXML_NOXMLDECL is not implemented or broken). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11792', + ), + ), + ), + 19 => + array ( + 'message' => 'adoptNode now respects the strict error checking property.', + 'raw' => 'adoptNode now respects the strict error checking property. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 20 => + array ( + 'message' => 'Align DOMChildNode parent checks with spec.', + 'raw' => 'Align DOMChildNode parent checks with spec. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 21 => + array ( + 'message' => 'Fixed bug #80927 (Removing documentElement after creating attribute node: possible use-after-free).', + 'raw' => 'Fixed bug #80927 (Removing documentElement after creating attribute node: possible use-after-free). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '80927', + ), + ), + ), + 22 => + array ( + 'message' => 'Fix various namespace prefix conflict resolution bugs.', + 'raw' => 'Fix various namespace prefix conflict resolution bugs. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 23 => + array ( + 'message' => 'Fix calling createAttributeNS() without prefix causing the default namespace of the element to change.', + 'raw' => 'Fix calling createAttributeNS() without prefix causing the default namespace of the element to change. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 24 => + array ( + 'message' => 'Fixed GH-11952 (Confusing warning when blocking entity loading via libxml_set_external_entity_loader).', + 'raw' => 'Fixed GH-11952 (Confusing warning when blocking entity loading via libxml_set_external_entity_loader). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 25 => + array ( + 'message' => 'Fix broken cache invalidation with deallocated and reallocated document node.', + 'raw' => 'Fix broken cache invalidation with deallocated and reallocated document node. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 26 => + array ( + 'message' => 'Fix compile error when php_libxml.h header is included in C++.', + 'raw' => 'Fix compile error when php_libxml.h header is included in C++. (Remi, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + 1 => 'nielsdos', + ), + ), + ), + 27 => + array ( + 'message' => 'Fixed bug #47531 (No way of removing redundant xmlns: declarations).', + 'raw' => 'Fixed bug #47531 (No way of removing redundant xmlns: declarations). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '47531', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Removed unneeded codepaths in exif_process_TIFF_in_JPEG().', + 'raw' => 'Removed unneeded codepaths in exif_process_TIFF_in_JPEG(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Implement GH-11934 (Allow to pass CData into struct and/or union fields).', + 'raw' => 'Implement GH-11934 (Allow to pass CData into struct and/or union fields). (nielsdos, KapitanOczywisty)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'KapitanOczywisty', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Upgrade bundled libmagic to 5.43.', + 'raw' => 'Upgrade bundled libmagic to 5.43. (Anatol)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Anatol', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-11408 (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension).', + 'raw' => 'Fix GH-11408 (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'The status.listen shared pool now uses the same php_values (including expose_php) and php_admin_value as the pool it is shared with.', + 'raw' => 'The status.listen shared pool now uses the same php_values (including expose_php) and php_admin_value as the pool it is shared with. (dwxh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dwxh', + ), + ), + ), + 1 => + array ( + 'message' => 'Added warning to log when fpm socket was not registered on the expected path.', + 'raw' => 'Added warning to log when fpm socket was not registered on the expected path. (Joshua Behrens, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Joshua Behrens', + 1 => 'Jakub Zelenka', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #76067 (system() function call leaks php-fpm listening sockets).', + 'raw' => 'Fixed bug #76067 (system() function call leaks php-fpm listening sockets). (Mikhail Galanin, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mikhail Galanin', + 1 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '76067', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-12077 (PHP 8.3.0RC1 borked socket-close-on-exec.phpt).', + 'raw' => 'Fixed GH-12077 (PHP 8.3.0RC1 borked socket-close-on-exec.phpt). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Removed imagerotate "ignore_transparent" argument since it has no effect.', + 'raw' => 'Removed imagerotate "ignore_transparent" argument since it has no effect. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Added pattern format error infos for numfmt_set_pattern.', + 'raw' => 'Added pattern format error infos for numfmt_set_pattern. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for the Spoofchecker\'s class.', + 'raw' => 'Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for the Spoofchecker\'s class. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type. .', + 'raw' => 'Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type. (David Carlier).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Updated IntlBreakInterator::setText return type.', + 'raw' => 'Updated IntlBreakInterator::setText return type. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Updated IntlChar::enumCharNames return type.', + 'raw' => 'Updated IntlChar::enumCharNames return type. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale.', + 'raw' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Added json_validate().', + 'raw' => 'Added json_validate(). (Juan Morales)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Juan Morales', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Deprecate calling ldap_connect() with separate hostname and port.', + 'raw' => 'Deprecate calling ldap_connect() with separate hostname and port. (heiglandreas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'heiglandreas', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2.', + 'raw' => 'Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'mb_detect_encoding is better able to identify the correct encoding for Turkish text.', + 'raw' => 'mb_detect_encoding is better able to identify the correct encoding for Turkish text. (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + ), + ), + 1 => + array ( + 'message' => 'mb_detect_encoding\'s "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned."', + 'raw' => 'mb_detect_encoding\'s "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned." (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + ), + ), + 2 => + array ( + 'message' => 'mb_strtolower, mb_strtotitle, and mb_convert_case implement conditional casing rules for the Greek letter sigma. For mb_convert_case, conditional casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE.', + 'raw' => 'mb_strtolower, mb_strtotitle, and mb_convert_case implement conditional casing rules for the Greek letter sigma. For mb_convert_case, conditional casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE. (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + ), + ), + 3 => + array ( + 'message' => 'mb_detect_encoding is better able to identify UTF-8 and UTF-16 strings with a byte-order mark.', + 'raw' => 'mb_detect_encoding is better able to identify UTF-8 and UTF-16 strings with a byte-order mark. (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + ), + ), + 4 => + array ( + 'message' => 'mb_decode_mimeheader interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words.', + 'raw' => 'mb_decode_mimeheader interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words. (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + ), + ), + 5 => + array ( + 'message' => 'mb_encode_mimeheader no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb_encode_mimeheader.', + 'raw' => 'mb_encode_mimeheader no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb_encode_mimeheader. (Alex Dowad)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Alex Dowad', + ), + ), + ), + 6 => + array ( + 'message' => 'Implement mb_str_pad() RFC.', + 'raw' => 'Implement mb_str_pad() RFC. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-11514 (PHP 8.3 build fails with --enable-mbstring enabled).', + 'raw' => 'Fixed bug GH-11514 (PHP 8.3 build fails with --enable-mbstring enabled). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11514', + ), + ), + ), + 8 => + array ( + 'message' => 'Fix use-after-free of mb_list_encodings() return value.', + 'raw' => 'Fix use-after-free of mb_list_encodings() return value. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-11992 (utf_encodings.phpt fails on Windows 32-bit).', + 'raw' => 'Fixed bug GH-11992 (utf_encodings.phpt fails on Windows 32-bit). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11992', + ), + ), + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'mysqli_fetch_object raises a ValueError instead of an Exception.', + 'raw' => 'mysqli_fetch_object raises a ValueError instead of an Exception. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added start, restart and force restart time to opcache\'s phpinfo section.', + 'raw' => 'Added start, restart and force restart time to opcache\'s phpinfo section. (Mikhail Galanin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mikhail Galanin', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-9139: Allow FFI in opcache.preload when opcache.preload_user=root.', + 'raw' => 'Fix GH-9139: Allow FFI in opcache.preload when opcache.preload_user=root. (Arnaud, Kapitan Oczywisty)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'Kapitan Oczywisty', + ), + ), + ), + 2 => + array ( + 'message' => 'Made opcache.preload_user always optional in the cli and phpdbg SAPIs.', + 'raw' => 'Made opcache.preload_user always optional in the cli and phpdbg SAPIs. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 3 => + array ( + 'message' => 'Allows W/X bits on page creation on FreeBSD despite system settings.', + 'raw' => 'Allows W/X bits on page creation on FreeBSD despite system settings. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added memfd api usage, on Linux, for zend_shared_alloc_create_lock() to create an abstract anonymous file for the opcache\'s lock.', + 'raw' => 'Added memfd api usage, on Linux, for zend_shared_alloc_create_lock() to create an abstract anonymous file for the opcache\'s lock. (Max Kellermann)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Kellermann', + ), + ), + ), + 5 => + array ( + 'message' => 'Avoid resetting JIT counter handlers from multiple processes/threads.', + 'raw' => 'Avoid resetting JIT counter handlers from multiple processes/threads. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed COPY_TMP type inference for references.', + 'raw' => 'Fixed COPY_TMP type inference for references. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Added OPENSSL_CMS_OLDMIMETYPE and PKCS7_NOOLDMIMETYPE contants to switch between mime content types.', + 'raw' => 'Added OPENSSL_CMS_OLDMIMETYPE and PKCS7_NOOLDMIMETYPE contants to switch between mime content types. (Daniel Kesselberg)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniel Kesselberg', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-11054: Reset OpenSSL errors when using a PEM public key.', + 'raw' => 'Fixed GH-11054: Reset OpenSSL errors when using a PEM public key. (Florian Moser)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Moser', + ), + ), + ), + 2 => + array ( + 'message' => 'Added support for additional EC parameters in openssl_pkey_new.', + 'raw' => 'Added support for additional EC parameters in openssl_pkey_new. (Eno-CN)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Eno-CN', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'SA_ONSTACK is now set for pcntl_signal.', + 'raw' => 'SA_ONSTACK is now set for pcntl_signal. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 1 => + array ( + 'message' => 'Added SIGINFO constant.', + 'raw' => 'Added SIGINFO constant. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Update bundled libpcre2 to 10.42.', + 'raw' => 'Update bundled libpcre2 to 10.42. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'pg_fetch_object raises a ValueError instead of an Exception.', + 'raw' => 'pg_fetch_object raises a ValueError instead of an Exception. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'pg_cancel use thread safe PQcancel api instead.', + 'raw' => 'pg_cancel use thread safe PQcancel api instead. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'pg_trace new PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE contants support.', + 'raw' => 'pg_trace new PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE contants support. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'pg_set_error_verbosity adding PGSQL_ERRORS_STATE constant.', + 'raw' => 'pg_set_error_verbosity adding PGSQL_ERRORS_STATE constant. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'pg_convert/pg_insert E_WARNING on type errors had been converted to ValueError/TypeError exceptions.', + 'raw' => 'pg_convert/pg_insert E_WARNING on type errors had been converted to ValueError/TypeError exceptions. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added pg_set_error_context_visibility to set the context\'s visibility within the error messages.', + 'raw' => 'Added pg_set_error_context_visibility to set the context\'s visibility within the error messages. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in phar_rename_archive().', + 'raw' => 'Fix memory leak in phar_rename_archive(). (stkeke)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'stkeke', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Added posix_sysconf.', + 'raw' => 'Added posix_sysconf. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added posix_pathconf.', + 'raw' => 'Added posix_pathconf. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added posix_fpathconf.', + 'raw' => 'Added posix_fpathconf. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed zend_parse_arg_long\'s bool pointer argument assignment.', + 'raw' => 'Fixed zend_parse_arg_long\'s bool pointer argument assignment. (Cristian Rodriguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Cristian Rodriguez', + ), + ), + ), + 4 => + array ( + 'message' => 'Added posix_eaccess.', + 'raw' => 'Added posix_eaccess. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Added Randomizer::getBytesFromString().', + 'raw' => 'Added Randomizer::getBytesFromString(). (Joshua Rüsweg)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Joshua Rüsweg', + ), + ), + ), + 1 => + array ( + 'message' => 'Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary.', + 'raw' => 'Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Enable getrandom() for NetBSD (from 10.x).', + 'raw' => 'Enable getrandom() for NetBSD (from 10.x). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Deprecate MT_RAND_PHP.', + 'raw' => 'Deprecate MT_RAND_PHP. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix Randomizer::getFloat() returning incorrect results under certain circumstances.', + 'raw' => 'Fix Randomizer::getFloat() returning incorrect results under certain circumstances. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fix GH-9470 (ReflectionMethod constructor should not find private parent method).', + 'raw' => 'Fix GH-9470 (ReflectionMethod constructor should not find private parent method). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix GH-10259 (ReflectionClass::getStaticProperties doesn\'t need null return type).', + 'raw' => 'Fix GH-10259 (ReflectionClass::getStaticProperties doesn\'t need null return type). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11141 (Could not open input file: should be sent to stderr).', + 'raw' => 'Fixed GH-11141 (Could not open input file: should be sent to stderr). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11529 (Crash after dealing with an Apache request).', + 'raw' => 'Fixed bug GH-11529 (Crash after dealing with an Apache request). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11529', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called within foreach).', + 'raw' => 'Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called within foreach). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12192', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a foreach).', + 'raw' => 'Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a foreach). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12208', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #55098 (SimpleXML iteration produces infinite loop).', + 'raw' => 'Fixed bug #55098 (SimpleXML iteration produces infinite loop). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '55098', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added SO_ATTACH_REUSEPORT_CBPF socket option, to give tighter control over socket binding for a cpu core.', + 'raw' => 'Added SO_ATTACH_REUSEPORT_CBPF socket option, to give tighter control over socket binding for a cpu core. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added SKF_AD_QUEUE for cbpf filters.', + 'raw' => 'Added SKF_AD_QUEUE for cbpf filters. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added socket_atmark if send/recv needs using MSG_OOB.', + 'raw' => 'Added socket_atmark if send/recv needs using MSG_OOB. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added TCP_QUICKACK constant, to give tigher control over ACK delays.', + 'raw' => 'Added TCP_QUICKACK constant, to give tigher control over ACK delays. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added DONTFRAGMENT support for path MTU discovery purpose.', + 'raw' => 'Added DONTFRAGMENT support for path MTU discovery purpose. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added AF_DIVERT for raw socket for divert ports.', + 'raw' => 'Added AF_DIVERT for raw socket for divert ports. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite protocol support.', + 'raw' => 'Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite protocol support. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Added SO_RERROR, SO_ZEROIZE and SO_SPLICE netbsd and openbsd constants.', + 'raw' => 'Added SO_RERROR, SO_ZEROIZE and SO_SPLICE netbsd and openbsd constants. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 8 => + array ( + 'message' => 'Added TCP_REPAIR for quietly close a connection.', + 'raw' => 'Added TCP_REPAIR for quietly close a connection. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 9 => + array ( + 'message' => 'Added SO_REUSEPORT_LB freebsd constant.', + 'raw' => 'Added SO_REUSEPORT_LB freebsd constant. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 10 => + array ( + 'message' => 'Added IP_BIND_ADDRESS_NO_PORT.', + 'raw' => 'Added IP_BIND_ADDRESS_NO_PORT. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11573 (RecursiveDirectoryIterator::hasChildren is slow).', + 'raw' => 'Fixed GH-11573 (RecursiveDirectoryIterator::hasChildren is slow). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'E_NOTICEs emitted by unserialize() have been promoted to E_WARNING.', + 'raw' => 'E_NOTICEs emitted by unserialize() have been promoted to E_WARNING. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'unserialize() now emits a new E_WARNING if the input contains unconsumed bytes.', + 'raw' => 'unserialize() now emits a new E_WARNING if the input contains unconsumed bytes. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Make array_pad\'s $length warning less confusing.', + 'raw' => 'Make array_pad\'s $length warning less confusing. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'E_WARNING emitted by strtok in the caase both arguments are not provided when starting tokenisation.', + 'raw' => 'E_WARNING emitted by strtok in the caase both arguments are not provided when starting tokenisation. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'password_hash() will now chain the original RandomException to the ValueError on salt generation failure.', + 'raw' => 'password_hash() will now chain the original RandomException to the ValueError on salt generation failure. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix GH-10239 (proc_close after proc_get_status always returns -1).', + 'raw' => 'Fix GH-10239 (proc_close after proc_get_status always returns -1). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Improve the warning message for unpack() in case not enough values were provided.', + 'raw' => 'Improve the warning message for unpack() in case not enough values were provided. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fix GH-11010 (parse_ini_string() now preserves formatting of unquoted strings starting with numbers when the INI_SCANNER_TYPED flag is specified).', + 'raw' => 'Fix GH-11010 (parse_ini_string() now preserves formatting of unquoted strings starting with numbers when the INI_SCANNER_TYPED flag is specified). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 8 => + array ( + 'message' => 'Fix GH-10742 (http_response_code emits no error when headers were already sent).', + 'raw' => 'Fix GH-10742 (http_response_code emits no error when headers were already sent). (NattyNarwhal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'NattyNarwhal', + ), + ), + ), + 9 => + array ( + 'message' => 'Added support for rounding negative places in number_format().', + 'raw' => 'Added support for rounding negative places in number_format(). (Marc Bennewitz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Marc Bennewitz', + ), + ), + ), + 10 => + array ( + 'message' => 'Prevent precision loss on formatting decimal integers in number_format().', + 'raw' => 'Prevent precision loss on formatting decimal integers in number_format(). (Marc Bennewitz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Marc Bennewitz', + ), + ), + ), + 11 => + array ( + 'message' => 'Added usage of posix_spawn for proc_open when supported by OS.', + 'raw' => 'Added usage of posix_spawn for proc_open when supported by OS. (Cristian Rodriguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Cristian Rodriguez', + ), + ), + ), + 12 => + array ( + 'message' => 'Added $before_needle argument to strrchr().', + 'raw' => 'Added $before_needle argument to strrchr(). (HypeMC)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'HypeMC', + ), + ), + ), + 13 => + array ( + 'message' => 'Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure).', + 'raw' => 'Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 14 => + array ( + 'message' => 'Fixed str_decrement() on "1".', + 'raw' => 'Fixed str_decrement() on "1". (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51056: blocking fread() will block even if data is available.', + 'raw' => 'Fixed bug #51056: blocking fread() will block even if data is available. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '51056', + ), + ), + ), + 1 => + array ( + 'message' => 'Added storing of the original path used to open xport stream.', + 'raw' => 'Added storing of the original path used to open xport stream. (Luc Vieillescazes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Luc Vieillescazes', + ), + ), + ), + 2 => + array ( + 'message' => 'Implement GH-8641 (STREAM_NOTIFY_COMPLETED over HTTP never emitted).', + 'raw' => 'Implement GH-8641 (STREAM_NOTIFY_COMPLETED over HTTP never emitted). (nielsdos, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Jakub Zelenka', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix bug GH-10406 (fgets on a redis socket connection fails on PHP 8.3).', + 'raw' => 'Fix bug GH-10406 (fgets on a redis socket connection fails on PHP 8.3). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 4 => + array ( + 'message' => 'Implemented GH-11242 (_php_stream_copy_to_mem: Allow specifying a maximum length without allocating a buffer of that size).', + 'raw' => 'Implemented GH-11242 (_php_stream_copy_to_mem: Allow specifying a maximum length without allocating a buffer of that size). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug #52335 (fseek() on memory stream behavior different than file).', + 'raw' => 'Fixed bug #52335 (fseek() on memory stream behavior different than file). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '52335', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug #76857 (Can read "non-existant" files).', + 'raw' => 'Fixed bug #76857 (Can read "non-existant" files). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '76857', + ), + ), + ), + ), + 'xsltprocessor' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69168 (DomNode::getNodePath() returns invalid path).', + 'raw' => 'Fixed bug #69168 (DomNode::getNodePath() returns invalid path). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '69168', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'zip extension version 1.22.0 for libzip 1.10.0.', + 'raw' => 'zip extension version 1.22.0 for libzip 1.10.0. (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + 1 => + array ( + 'message' => 'add new error macros (ER_DATA_LENGTH and ER_NOT_ALLOWED).', + 'raw' => 'add new error macros (ER_DATA_LENGTH and ER_NOT_ALLOWED). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + 2 => + array ( + 'message' => 'add new archive global flags (ER_AFL_*).', + 'raw' => 'add new archive global flags (ER_AFL_*). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + 3 => + array ( + 'message' => 'add ZipArchive::setArchiveFlag and ZipArchive::getArchiveFlag methods.', + 'raw' => 'add ZipArchive::setArchiveFlag and ZipArchive::getArchiveFlag methods. (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.4/changelist.inc b/include/releases/8.4/changelist.inc new file mode 100644 index 0000000000..cde2146ba4 --- /dev/null +++ b/include/releases/8.4/changelist.inc @@ -0,0 +1,14925 @@ + + array ( + 'date' => NULL, + 'modules' => + array ( + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18422 (int overflow in php_date_llabs).', + 'raw' => 'Fixed bug GH-18422 (int overflow in php_date_llabs). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '18422', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect argument positions in out-of-bounds errors for IntlCalendar::set(), IntlCalendar::setDate(), IntlCalendar::setDateTime(), and IntlGregorianCalendar date/time construction.', + 'raw' => 'Fix incorrect argument positions in out-of-bounds errors for IntlCalendar::set(), IntlCalendar::setDate(), IntlCalendar::setDateTime(), and IntlGregorianCalendar date/time construction. (Weilin Du)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Weilin Du', + ), + ), + ), + 1 => + array ( + 'message' => 'Expose Spoofchecker restriction-level APIs on all supported ICU versions.', + 'raw' => 'Expose Spoofchecker restriction-level APIs on all supported ICU versions. (Weilin Du)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Weilin Du', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix SpoofChecker::setAllowedChars() and IntlDateFormatter::__construct() to report PHP constant names instead of ICU constant names in user-visible error messages.', + 'raw' => 'Fix SpoofChecker::setAllowedChars() and IntlDateFormatter::__construct() to report PHP constant names instead of ICU constant names in user-visible error messages. (Weilin Du)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Weilin Du', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix persistent free of non-persistent connect_attr key .', + 'raw' => 'Fix persistent free of non-persistent connect_attr key (David Carlier).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed tracing JIT crash when a VM interrupt is handled during an observed user function call.', + 'raw' => 'Fixed tracing JIT crash when a VM interrupt is handled during an observed user function call. (Levi Morrison)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Levi Morrison', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-22004 (Assertion failure at ext/opcache/jit/zend_jit_trace.c).', + 'raw' => 'Fixed bug GH-22004 (Assertion failure at ext/opcache/jit/zend_jit_trace.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '22004', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility issues with OpenSSL 4.0.', + 'raw' => 'Fix compatibility issues with OpenSSL 4.0. (jordikroon, Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jordikroon', + 1 => 'Remi', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fix SplFixedArray::setSize leak when destructor grows during clear.', + 'raw' => 'Fix SplFixedArray::setSize leak when destructor grows during clear. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21933 (use after free of self-freeing MultipleIterator children).', + 'raw' => 'Fixed bug GH-21933 (use after free of self-freeing MultipleIterator children). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21933', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21689 (version_compare() incorrectly handles versions ending with a dot).', + 'raw' => 'Fixed bug GH-21689 (version_compare() incorrectly handles versions ending with a dot). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '21689', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed ip2long() leading zeros handling inconsistency on AIX.', + 'raw' => 'Fixed ip2long() leading zeros handling inconsistency on AIX. (ayappanec)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ayappanec', + ), + ), + ), + ), + ), + ), + '8.4.21' => + array ( + 'date' => '07 May 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors).', + 'raw' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '19983', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies).', + 'raw' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21478', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21605 (Missing addref for Countable::count()).', + 'raw' => 'Fixed bug GH-21605 (Missing addref for Countable::count()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21605', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws).', + 'raw' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws). (macoaure)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'macoaure', + ), + 'bugs' => + array ( + 0 => '21699', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21603 (Missing addref for __unset).', + 'raw' => 'Fixed bug GH-21603 (Missing addref for __unset). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21603', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV).', + 'raw' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV). (Pratik Bhujel)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Pratik Bhujel', + ), + 'bugs' => + array ( + 0 => '21760', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings).', + 'raw' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '21754', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Shivam Mathur', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263)', + 'raw' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263) (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7263', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21688 (segmentation fault on empty HTMLDocument).', + 'raw' => 'Fixed bug GH-21688 (segmentation fault on empty HTMLDocument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21688', + ), + ), + ), + 2 => + array ( + 'message' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079)', + 'raw' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079) (ndossche, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-21544 (Dom\\XMLDocument::C14N*( drops namespace declarations on DOM-built documents).', + 'raw' => 'Fixed bug GH-21544 (Dom\\XMLDocument::C14N*( drops namespace declarations on DOM-built documents). (David Carlier, ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + 1 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21544', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6735', + ), + ), + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17399 (iconv memory leak on bailout).', + 'raw' => 'Fixed bug GH-17399 (iconv memory leak on bailout). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '17399', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'vi3tL0u1s', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7259', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104)', + 'raw' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6104', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg).', + 'raw' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21158', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch).', + 'raw' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21593', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21460 (COND optimization regression).', + 'raw' => 'Fixed bug GH-21460 (COND optimization regression). (Dmitry, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21460', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed faulty returns out of zend_try block in zend_jit_trace().', + 'raw' => 'Fixed faulty returns out of zend_try block in zend_jit_trace(). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix a bunch of memory leaks and crashes on edge cases.', + 'raw' => 'Fix a bunch of memory leaks and crashes on edge cases. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14179', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Restore is_link handler in phar_intercept_functions_shutdown.', + 'raw' => 'Restore is_link handler in phar_intercept_functions_shutdown. (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment).', + 'raw' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21797', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix memory leak in Phar::offsetGet().', + 'raw' => 'Fix memory leak in Phar::offsetGet(). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix memory leak in phar_add_file().', + 'raw' => 'Fix memory leak in phar_add_file(). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close).', + 'raw' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21799', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid.', + 'raw' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid. (JarneClauw)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'JarneClauw', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state).', + 'raw' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21731', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak when session GC callback return a refcounted value.', + 'raw' => 'Fixed memory leak when session GC callback return a refcounted value. (jorgsowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jorgsowa', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6722', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7261', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7262', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free).', + 'raw' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '21499', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix concurrent iteration and deletion issues in SplObjectStorage.', + 'raw' => 'Fix concurrent iteration and deletion issues in SplObjectStorage. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'TimWolla', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7568', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7258', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set).', + 'raw' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21468', + ), + ), + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21600 (Segfault on module shutdown).', + 'raw' => 'Fixed bug GH-21600 (Segfault on module shutdown). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21600', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21698 (memory leak with ZipArchive::addGlob() early return statements).', + 'raw' => 'Fixed bug GH-21698 (memory leak with ZipArchive::addGlob() early return statements). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21698', + ), + ), + ), + ), + ), + ), + '8.4.20' => + array ( + 'date' => '09 Apr 2026', + 'modules' => + array ( + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix truncation of total output size causing erroneous errors.', + 'raw' => 'Fix truncation of total output size causing erroneous errors. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies).', + 'raw' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes).', + 'raw' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21486', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure.', + 'raw' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support).', + 'raw' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21431', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results).', + 'raw' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results). (Dmitry, iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '20838', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context).', + 'raw' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context). (Dmitry, iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21267', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21395 (uaf in jit).', + 'raw' => 'Fixed bug GH-21395 (uaf in jit). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21395', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys).', + 'raw' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21083', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix missing error propagation for BIO_printf() calls.', + 'raw' => 'Fix missing error propagation for BIO_printf() calls. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl.', + 'raw' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed preprocessor silently guarding PGSQL_SUPPRESS_TIMESTAMPS support due to a typo.', + 'raw' => 'Fixed preprocessor silently guarding PGSQL_SUPPRESS_TIMESTAMPS support due to a typo. (KentarouTakeda)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'KentarouTakeda', + ), + ), + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments).', + 'raw' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21336', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes.', + 'raw' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap).', + 'raw' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21454', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers).', + 'raw' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20906', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize).', + 'raw' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize). (y-guyon)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'y-guyon', + ), + 'bugs' => + array ( + 0 => '20627', + ), + ), + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in shm_get_var() when variable is corrupted.', + 'raw' => 'Fix memory leak in shm_get_var() when variable is corrupted. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument).', + 'raw' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage).', + 'raw' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage). (David Carlier/ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier/ndossche', + ), + 'bugs' => + array ( + 0 => '21496', + ), + ), + ), + ), + ), + ), + '8.4.19' => + array ( + 'date' => '12 Mar 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds).', + 'raw' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21029', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()).', + 'raw' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20657', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()).', + 'raw' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20504', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value).', + 'raw' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21215 (Build fails with -std=).', + 'raw' => 'Fixed bug GH-21215 (Build fails with -std=). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21215', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool).', + 'raw' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '13674', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21023 (CURLOPT_XFERINFOFUNCTION crash with a null callback).', + 'raw' => 'Fixed bug GH-21023 (CURLOPT_XFERINFOFUNCTION crash with a null callback). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21023', + ), + ), + ), + 1 => + array ( + 'message' => 'Don\'t truncate length.', + 'raw' => 'Don\'t truncate length. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start).', + 'raw' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20936', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix timezone offset with seconds losing precision.', + 'raw' => 'Fix timezone offset with seconds losing precision. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError).', + 'raw' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21077', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError).', + 'raw' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21097', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries).', + 'raw' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries). (Jordi Kroon)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jordi Kroon', + ), + 'bugs' => + array ( + 0 => '21223', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris).', + 'raw' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris). (Petr Sumbera)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Petr Sumbera', + ), + 'bugs' => + array ( + 0 => '20718', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object).', + 'raw' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21227', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script).', + 'raw' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21052', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix a bunch of leaks and error propagation.', + 'raw' => 'Fix a bunch of leaks and error propagation. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed pcntl_setns() internal errors handling regarding errnos.', + 'raw' => 'Fixed pcntl_setns() internal errors handling regarding errnos. (David Carlier/ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier/ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID on NetBSD/Solaris platforms.', + 'raw' => 'Fixed cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID on NetBSD/Solaris platforms. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed pcntl_signal() signal table registering the callback first OS-wise before the internal list.', + 'raw' => 'Fixed pcntl_signal() signal table registering the callback first OS-wise before the internal list. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed pcntl_signal_dispatch() stale pointer and exception handling.', + 'raw' => 'Fixed pcntl_signal_dispatch() stale pointer and exception handling. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed preg_match memory leak with invalid regexes.', + 'raw' => 'Fixed preg_match memory leak with invalid regexes. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed pcre2_code leak when pcre2_pattern_info() fails after a successful pcre2_compile(), and match_sets/match_data/marks leaks in php_pcre_match_impl().', + 'raw' => 'Fixed pcre2_code leak when pcre2_pattern_info() fails after a successful pcre2_compile(), and match_sets/match_data/marks leaks in php_pcre_match_impl(). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21055 (connection attribute status typo for GSS negotiation).', + 'raw' => 'Fixed bug GH-21055 (connection attribute status typo for GSS negotiation). (lsaos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lsaos', + ), + 'bugs' => + array ( + 0 => '21055', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21162 (pg_connect() memory leak on error).', + 'raw' => 'Fixed bug GH-21162 (pg_connect() memory leak on error). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21162', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21161 (socket_set_option() crash with array \'addr\' entry as null).', + 'raw' => 'Fixed bug GH-21161 (socket_set_option() crash with array \'addr\' entry as null). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21161', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed possible addr length overflow with socket_connect() and AF_UNIX family sockets.', + 'raw' => 'Fixed possible addr length overflow with socket_connect() and AF_UNIX family sockets. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed compilation with clang (missing intrin.h include).', + 'raw' => 'Fixed compilation with clang (missing intrin.h include). (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + ), + ), + ), + '8.4.18' => + array ( + 'date' => '12 Feb 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()).', + 'raw' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '20837', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber).', + 'raw' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization).', + 'raw' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-GH-20914 (Internal enums can be cloned and compared).', + 'raw' => 'Fixed bug GH-GH-20914 (Internal enums can be cloned and compared). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value).', + 'raw' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction).', + 'raw' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '20766', + ), + ), + ), + 6 => + array ( + 'message' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value).', + 'raw' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 7 => + array ( + 'message' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf).', + 'raw' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion).', + 'raw' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20905', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-20479 (Hooked object properties overflow).', + 'raw' => 'Fixed bug GH-20479 (Hooked object properties overflow). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20479', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Update timelib to 2022.16.', + 'raw' => 'Update timelib to 2022.16. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts).', + 'raw' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts). (lexborisov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lexborisov', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding).', + 'raw' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20833', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references).', + 'raw' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '20836', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference).', + 'raw' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference). (khasinski)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'khasinski', + ), + 'bugs' => + array ( + 0 => '20818', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when sk_X509_new_null() fails.', + 'raw' => 'Fix memory leaks when sk_X509_new_null() fails. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails.', + 'raw' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails.', + 'raw' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory).', + 'raw' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20882', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB.', + 'raw' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()).', + 'raw' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '18139', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration).', + 'raw' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20856', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS)', + 'raw' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '74357', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20843 (var_dump() crash with nested objects)', + 'raw' => 'Fixed bug GH-20843 (var_dump() crash with nested objects) (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20843', + ), + ), + ), + ), + ), + ), + '8.4.17' => + array ( + 'date' => '15 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument).', + 'raw' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()).', + 'raw' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20695', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator).', + 'raw' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20714', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation).', + 'raw' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20352', + ), + ), + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20620 (bzcompress overflow on large source size).', + 'raw' => 'Fixed bug GH-20620 (bzcompress overflow on large source size). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20620', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects).', + 'raw' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20722', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()).', + 'raw' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20444', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow).', + 'raw' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20622', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix leak in umsg_format_helper().', + 'raw' => 'Fix leak in umsg_format_helper(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in ldap_set_options().', + 'raw' => 'Fix memory leak in ldap_set_options(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator).', + 'raw' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator). (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + 'bugs' => + array ( + 0 => '20674', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options).', + 'raw' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20802', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling.', + 'raw' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails).', + 'raw' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20732', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix SplFileInfo::openFile() in write mode.', + 'raw' => 'Fix SplFileInfo::openFile() in write mode. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix build on legacy OpenSSL 1.1.0 systems.', + 'raw' => 'Fix build on legacy OpenSSL 1.1.0 systems. (Giovanni Giacobbi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Giovanni Giacobbi', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug #74154 (Phar extractTo creates empty files).', + 'raw' => 'Fixed bug #74154 (Phar extractTo creates empty files). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '74154', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed crash on posix groups to php array creation on macos.', + 'raw' => 'Fixed crash on posix groups to php array creation on macos. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()).', + 'raw' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20678', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned).', + 'raw' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned). (ndossche, plusminmax)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'plusminmax', + ), + 'bugs' => + array ( + 0 => '20699', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix error check for proc_open() command.', + 'raw' => 'Fix error check for proc_open() command. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in mail() when header key is numeric.', + 'raw' => 'Fix memory leak in mail() when header key is numeric. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed).', + 'raw' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20582', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix OOB gzseek() causing assertion failure.', + 'raw' => 'Fix OOB gzseek() causing assertion failure. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + ), + ), + '8.4.16' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Sync all boost.context files with release 1.86.0.', + 'raw' => 'Sync all boost.context files with release 1.86.0. (mvorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mvorisek', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter).', + 'raw' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20435', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()).', + 'raw' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()). (ndossche, David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20286', + ), + ), + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors.', + 'raw' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when edge case is hit when registering xpath callback.', + 'raw' => 'Fix memory leak when edge case is hit when registering xpath callback. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase).', + 'raw' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20395', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix missing NUL byte check on C14NFile().', + 'raw' => 'Fix missing NUL byte check on C14NFile(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value).', + 'raw' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20483', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout).', + 'raw' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20601', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values).', + 'raw' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20511', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20602 (imagescale overflow with large height values).', + 'raw' => 'Fixed bug GH-20602 (imagescale overflow with large height values). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20602', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants).', + 'raw' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '20426', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling.', + 'raw' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma).', + 'raw' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20491', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings).', + 'raw' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20492', + ), + ), + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Make mysqli_begin_transaction() report errors properly.', + 'raw' => 'Make mysqli_begin_transaction() report errors properly. (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets).', + 'raw' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '20528', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer).', + 'raw' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20329', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14180', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub).', + 'raw' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub). (ndossche, TimWolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'TimWolla', + ), + 'bugs' => + array ( + 0 => '20442', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix broken return value of fflush() for phar file entries.', + 'raw' => 'Fix broken return value of fflush() for phar file entries. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix assertion failure when fseeking a phar file out of bounds.', + 'raw' => 'Fix assertion failure when fseeking a phar file out of bounds. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog().', + 'raw' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization).', + 'raw' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20614', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in array_diff() with custom type checks.', + 'raw' => 'Fix memory leak in array_diff() with custom type checks. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures).', + 'raw' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20583', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14178', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14177', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints).', + 'raw' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '20370', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags).', + 'raw' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20374', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback).', + 'raw' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20439', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix crash in property existence test.', + 'raw' => 'Fix crash in property existence test. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Don\'t truncate return value of zip_fread() with user sizes.', + 'raw' => 'Don\'t truncate return value of zip_fread() with user sizes. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + ), + ), + '8.4.15' => + array ( + 'date' => '20 Nov 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv).', + 'raw' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19934', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference).', + 'raw' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20073', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20085 (Assertion failure when combining lazy object get_properties exception with foreach loop).', + 'raw' => 'Fixed bug GH-20085 (Assertion failure when combining lazy object get_properties exception with foreach loop). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20085', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown).', + 'raw' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19844', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).', + 'raw' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20177', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20270 (Broken parent hook call with named arguments).', + 'raw' => 'Fixed bug GH-20270 (Broken parent hook call with named arguments). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20270', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval).', + 'raw' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20183', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20281 (\\Dom\\Document::getElementById() is inconsistent after nodes are removed).', + 'raw' => 'Fixed bug GH-20281 (\\Dom\\Document::getElementById() is inconsistent after nodes are removed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20281', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fix possible memory leak when tag is empty.', + 'raw' => 'Fix possible memory leak when tag is empty. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution).', + 'raw' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution). (Jakub Zelenka, txuna)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'txuna', + ), + 'bugs' => + array ( + 0 => '19974', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes).', + 'raw' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20240', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided).', + 'raw' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '20070', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on error in locale_filter_matches().', + 'raw' => 'Fix memory leak on error in locale_filter_matches(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix not thread safe schema/relaxng calls.', + 'raw' => 'Fix not thread safe schema/relaxng calls. (SpencerMalone, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SpencerMalone', + 1 => 'nielsdos', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)).', + 'raw' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '8978', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL).', + 'raw' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20122', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()).', + 'raw' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20081', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).', + 'raw' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15). (Arnaud, Shivam Mathur)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'Shivam Mathur', + ), + 'bugs' => + array ( + 0 => '20121', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess).', + 'raw' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19875', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20012 (heap buffer overflow in jit).', + 'raw' => 'Fixed bug GH-20012 (heap buffer overflow in jit). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20012', + ), + ), + ), + 4 => + array ( + 'message' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments).', + 'raw' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when first string conversion fails.', + 'raw' => 'Fix memory leak when first string conversion fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name.', + 'raw' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name. (Girgias, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + 1 => 'nielsdos', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of argument in webPhar.', + 'raw' => 'Fix memory leak of argument in webPhar. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when setAlias() fails.', + 'raw' => 'Fix memory leak when setAlias() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling.', + 'raw' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix file descriptor/memory leak when opening central fp fails.', + 'raw' => 'Fix file descriptor/memory leak when opening central fp fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails.', + 'raw' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t.', + 'raw' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 6 => + array ( + 'message' => 'Fix memory leak when openssl polyfill returns garbage.', + 'raw' => 'Fix memory leak when openssl polyfill returns garbage. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fix file descriptor leak in phar_zip_flush() on failure.', + 'raw' => 'Fix file descriptor leak in phar_zip_flush() on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 8 => + array ( + 'message' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive.', + 'raw' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects).', + 'raw' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20302', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs.', + 'raw' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks).', + 'raw' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '20217', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64.', + 'raw' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19798', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19021 (improved tidyOptGetCategory detection).', + 'raw' => 'Fixed GH-19021 (improved tidyOptGetCategory detection). (arjendekorte, David Carlier, Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'arjendekorte', + 1 => 'David Carlier', + 2 => 'Peter Kokot', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix UAF in tidy when tidySetErrorBuffer() fails.', + 'raw' => 'Fix UAF in tidy when tidySetErrorBuffer() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available.', + 'raw' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket).', + 'raw' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket). (dktapps)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dktapps', + ), + ), + ), + ), + ), + ), + '8.4.14' => + array ( + 'date' => '09 Oct 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks).', + 'raw' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '19765', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed hard_timeout with --enable-zend-max-execution-timers.', + 'raw' => 'Fixed hard_timeout with --enable-zend-max-execution-timers. (Appla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Appla', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered).', + 'raw' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19792', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash).', + 'raw' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash). (nielsdos, Arnaud, Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Arnaud', + 2 => 'Bob', + ), + 'bugs' => + array ( + 0 => '19653', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).', + 'raw' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19839', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).', + 'raw' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19480', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN).', + 'raw' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN). (outtersg)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'outtersg', + ), + 'bugs' => + array ( + 0 => '20002', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS.', + 'raw' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS. (leotaku)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'leotaku', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle.', + 'raw' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix curl build and test failures with version 8.16.', + 'raw' => 'Fix curl build and test failures with version 8.16. (nielsdos, ilutov, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ilutov', + 2 => 'Jakub Zelenka', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.', + 'raw' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix macro name clash on macOS.', + 'raw' => 'Fix macro name clash on macOS. (Ruoyu Zhong)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ruoyu Zhong', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20022 (docker-php-ext-install DOM failed).', + 'raw' => 'Fixed bug GH-20022 (docker-php-ext-install DOM failed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20022', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19955 (imagefttext() memory leak).', + 'raw' => 'Fixed GH-19955 (imagefttext() memory leak). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter).', + 'raw' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '67563', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex).', + 'raw' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19669', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19831 (function JIT may not deref property value).', + 'raw' => 'Fixed bug GH-19831 (function JIT may not deref property value). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19831', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()).', + 'raw' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19889', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak and invalid continuation after tar header writing fails.', + 'raw' => 'Fix memory leak and invalid continuation after tar header writing fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leaks when creating temp file fails when applying zip signature.', + 'raw' => 'Fix memory leaks when creating temp file fails when applying zip signature. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)).', + 'raw' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19988', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19784 (SoapServer memory leak).', + 'raw' => 'Fixed bug GH-19784 (SoapServer memory leak). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19784', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash).', + 'raw' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20011', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion).', + 'raw' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12265', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data).', + 'raw' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19701', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).', + 'raw' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19801', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort).', + 'raw' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20043', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set).', + 'raw' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19926', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null).', + 'raw' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null). (nielsdos, divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'divinity76', + ), + 'bugs' => + array ( + 0 => '19570', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main).', + 'raw' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19248', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed).', + 'raw' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17345', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream.', + 'raw' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream. (bukka/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'bukka/David Carlier', + ), + 'bugs' => + array ( + 0 => '19705', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure).', + 'raw' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20009', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()).', + 'raw' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19688', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()).', + 'raw' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '19932', + ), + ), + ), + ), + ), + ), + '8.4.13' => + array ( + 'date' => '25 Sep 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).', + 'raw' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18850', + ), + ), + ), + 1 => + array ( + 'message' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow).', + 'raw' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).', + 'raw' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references). (Arnaud, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '19544', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19613 (Stale array iterator pointer).', + 'raw' => 'Fixed bug GH-19613 (Stale array iterator pointer). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19613', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge).', + 'raw' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19679', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).', + 'raw' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '19681', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant).', + 'raw' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19720', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).', + 'raw' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19461', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.', + 'raw' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19706 (dba stream resource mismanagement).', + 'raw' => 'Fixed bug GH-19706 (dba stream resource mismanagement). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19706', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug).', + 'raw' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19612', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed failed debug assertion when php_admin_value setting fails.', + 'raw' => 'Fixed failed debug assertion when php_admin_value setting fails. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).', + 'raw' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '11952', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD).', + 'raw' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19493', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure).', + 'raw' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19245', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections).', + 'raw' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections). (Mark Karpeles)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mark Karpeles', + ), + 'bugs' => + array ( + 0 => '19485', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaks when verifying OpenSSL signature.', + 'raw' => 'Fixed memory leaks when verifying OpenSSL signature. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in phar tar temporary file error handling code.', + 'raw' => 'Fix memory leak in phar tar temporary file error handling code. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix metadata leak when phar convert logic fails.', + 'raw' => 'Fix metadata leak when phar convert logic fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix memory leak on failure in phar_convert_to_other().', + 'raw' => 'Fix memory leak on failure in phar_convert_to_other(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF).', + 'raw' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19752', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16649 (UAF during array_splice).', + 'raw' => 'Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '16649', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator).', + 'raw' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19577', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata().', + 'raw' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #385993744.', + 'raw' => 'Fix OSS-Fuzz #385993744. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in zip when encountering empty glob result.', + 'raw' => 'Fix memory leak in zip when encountering empty glob result. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.4.12' => + array ( + 'date' => '28 Aug 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro.', + 'raw' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro. (psumbera)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'psumbera', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19053 (Duplicate property slot with hooks and interface property).', + 'raw' => 'Fixed bug GH-19053 (Duplicate property slot with hooks and interface property). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19053', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19044 (Protected properties are not scoped according to their prototype).', + 'raw' => 'Fixed bug GH-19044 (Protected properties are not scoped according to their prototype). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '19044', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking).', + 'raw' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18581', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr).', + 'raw' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19305 (Operands may be being released during comparison).', + 'raw' => 'Fixed bug GH-19305 (Operands may be being released during comparison). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19305', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure).', + 'raw' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19303', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).', + 'raw' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19306', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).', + 'raw' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19326', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-19280 (Stale array iterator position on rehashing).', + 'raw' => 'Fixed bug GH-19280 (Stale array iterator position on rehashing). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19280', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally).', + 'raw' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18736', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming).', + 'raw' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming). (nielsdos, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19065', + ), + ), + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19371 (integer overflow in calendar.c).', + 'raw' => 'Fixed bug GH-19371 (integer overflow in calendar.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19371', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect comparison with result of php_stream_can_cast().', + 'raw' => 'Fix incorrect comparison with result of php_stream_can_cast(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash on clone failure.', + 'raw' => 'Fix crash on clone failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memleak on failure in collator_get_sort_key().', + 'raw' => 'Fix memleak on failure in collator_get_sort_key(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix return value on failure for resourcebundle count handler.', + 'raw' => 'Fix return value on failure for resourcebundle count handler. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (additional inheriting of TLS int options).', + 'raw' => 'Fixed bug GH-18529 (additional inheriting of TLS int options). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '18529', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free).', + 'raw' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19098', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown).', + 'raw' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19397', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Reset global pointers to prevent use-after-free in zend_jit_status().', + 'raw' => 'Reset global pointers to prevent use-after-free in zend_jit_status(). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix issue with JIT restart and hooks.', + 'raw' => 'Fix issue with JIT restart and hooks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix crash with dynamic function defs in hooks during preload.', + 'raw' => 'Fix crash with dynamic function defs in hooks during preload. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check).', + 'raw' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check). (nielsdos, botovq)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'botovq', + ), + 'bugs' => + array ( + 0 => '18986', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix error return check of EVP_CIPHER_CTX_ctrl().', + 'raw' => 'Fix error return check of EVP_CIPHER_CTX_ctrl(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param).', + 'raw' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19428', + ), + ), + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper.', + 'raw' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper. (dixyes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dixyes', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref).', + 'raw' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18640', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fix some potential crashes on incorrect argument value.', + 'raw' => 'Fix some potential crashes on incorrect argument value. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache).', + 'raw' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks).', + 'raw' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19300', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Free opened_path when opened_path_len >= MAXPATHLEN.', + 'raw' => 'Free opened_path when opened_path_len >= MAXPATHLEN. (dixyes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dixyes', + ), + ), + ), + ), + ), + ), + '8.4.11' => + array ( + 'date' => '31 Jul 2025', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jewishtojd overflow on year argument.', + 'raw' => 'Fixed jewishtojd overflow on year argument. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order).', + 'raw' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order). (Daniil Gentili)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniil Gentili', + ), + 'bugs' => + array ( + 0 => '18833', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18907 (Leak when creating cycle in hook).', + 'raw' => 'Fixed bug GH-18907 (Leak when creating cycle in hook). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18907', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #427814456.', + 'raw' => 'Fix OSS-Fuzz #427814456. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix OSS-Fuzz #428983568 and #428760800.', + 'raw' => 'Fix OSS-Fuzz #428983568 and #428760800. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when returning refcounted value from curl callback.', + 'raw' => 'Fix memory leaks when returning refcounted value from curl callback. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Remove incorrect string release.', + 'raw' => 'Remove incorrect string release. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18979 (Dom\\XMLDocument::createComment() triggers undefined behavior with null byte).', + 'raw' => 'Fixed bug GH-18979 (Dom\\XMLDocument::createComment() triggers undefined behavior with null byte). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18979', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID.', + 'raw' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18901 (integer overflow mb_split).', + 'raw' => 'Fixed bug GH-18901 (integer overflow mb_split). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18901', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT).', + 'raw' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18639', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18899 (JIT function crash when emitting undefined variable warning and opline is not set yet).', + 'raw' => 'Fixed bug GH-18899 (JIT function crash when emitting undefined variable warning and opline is not set yet). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18899', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c).', + 'raw' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14082', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18898 (SEGV zend_jit_op_array_hot with property hooks and preloading).', + 'raw' => 'Fixed bug GH-18898 (SEGV zend_jit_op_array_hot with property hooks and preloading). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18898', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server).', + 'raw' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '80770', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers).', + 'raw' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '18958', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix stream double free in phar.', + 'raw' => 'Fix stream double free in phar. (nielsdos, dixyes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'dixyes', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix phar crash and file corruption with SplFileObject.', + 'raw' => 'Fix phar crash and file corruption with SplFileObject. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction).', + 'raw' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18990', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when URL parsing fails in redirect.', + 'raw' => 'Fix memory leak when URL parsing fails in redirect. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash).', + 'raw' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19094', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix misleading errors in printf().', + 'raw' => 'Fix misleading errors in printf(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix RCN violations in array functions.', + 'raw' => 'Fix RCN violations in array functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value.', + 'raw' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error).', + 'raw' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix leak when path is too long in ZipArchive::extractTo().', + 'raw' => 'Fix leak when path is too long in ZipArchive::extractTo(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.4.10' => + array ( + 'date' => '03 Jul 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18641 (Accessing a BcMath\\Number property by ref crashes).', + 'raw' => 'Fixed bug GH-18641 (Accessing a BcMath\\Number property by ref crashes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18641', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-17711 and GH-18022 (Infinite recursion on deprecated attribute evaluation) and GH-18464 (Recursion protection for deprecation constants not released on bailout).', + 'raw' => 'Fixed bugs GH-17711 and GH-18022 (Infinite recursion on deprecated attribute evaluation) and GH-18464 (Recursion protection for deprecation constants not released on bailout). (DanielEScherzer and ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer and ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved).', + 'raw' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved). (Oleg Efimov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Oleg Efimov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix handling of references in zval_try_get_long().', + 'raw' => 'Fix handling of references in zval_try_get_long(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Do not delete main chunk in zend_gc.', + 'raw' => 'Do not delete main chunk in zend_gc. (danog, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danog', + 1 => 'Arnaud', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix compile issues with zend_alloc and some non-default options.', + 'raw' => 'Fix compile issues with zend_alloc and some non-default options. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when setting a list via curl_setopt fails.', + 'raw' => 'Fix memory leak when setting a list via curl_setopt fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix leaks with multiple calls to DatePeriod iterator current().', + 'raw' => 'Fix leaks with multiple calls to DatePeriod iterator current(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18744 (classList works not correctly if copy HTMLElement by clone keyword).', + 'raw' => 'Fixed bug GH-18744 (classList works not correctly if copy HTMLElement by clone keyword). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18744', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18662 (fpm_get_status segfault).', + 'raw' => 'Fixed GH-18662 (fpm_get_status segfault). (txuna)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'txuna', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14551 (PGO build fails with xxhash).', + 'raw' => 'Fixed bug GH-14551 (PGO build fails with xxhash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14551', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in intl_datetime_decompose() on failure.', + 'raw' => 'Fix memory leak in intl_datetime_decompose() on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in locale lookup on failure.', + 'raw' => 'Fix memory leak in locale lookup on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22).', + 'raw' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22). (nielsdos, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '18743', + ), + ), + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on php_odbc_fetch_hash() failure.', + 'raw' => 'Fix memory leak on php_odbc_fetch_hash() failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure.', + 'raw' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #74796 (Requests through http proxy set peer name).', + 'raw' => 'Fixed bug #74796 (Requests through http proxy set peer name). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '74796', + ), + ), + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak if WideCharToMultiByte() fails.', + 'raw' => 'Fix memory leak if WideCharToMultiByte() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak with Pdo_Sqlite::createCollation when the callback has an incorrect return type.', + 'raw' => 'Fixed memory leak with Pdo_Sqlite::createCollation when the callback has an incorrect return type. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Add missing filter cleanups on phar failure.', + 'raw' => 'Add missing filter cleanups on phar failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek).', + 'raw' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18642', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0.', + 'raw' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query().', + 'raw' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix reference type confusion and leak in user random engine.', + 'raw' => 'Fix reference type confusion and leak in user random engine. (nielsdos, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'timwolla', + ), + ), + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when calloc() fails in php_readline_completion_cb().', + 'raw' => 'Fix memory leak when calloc() fails in php_readline_completion_cb(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18597 (Heap-buffer-overflow in zend_alloc.c when assigning string with UTF-8 bytes).', + 'raw' => 'Fixed bug GH-18597 (Heap-buffer-overflow in zend_alloc.c when assigning string with UTF-8 bytes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18597', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in php_http.c when call_user_function() fails.', + 'raw' => 'Fix memory leaks in php_http.c when call_user_function() fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy output handler on error.', + 'raw' => 'Fix memory leak in tidy output handler on error. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory.', + 'raw' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + ), + ), + '8.4.8' => + array ( + 'date' => '06 Jun 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments).', + 'raw' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments). (nielsdos/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos/David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow).', + 'raw' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed OSS-Fuzz #417078295.', + 'raw' => 'Fixed OSS-Fuzz #417078295. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #418106144.', + 'raw' => 'Fixed OSS-Fuzz #418106144. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL).', + 'raw' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) .', + 'raw' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) (JiriJozif).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'JiriJozif', + ), + 'bugs' => + array ( + 0 => '18076', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset).', + 'raw' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset). (nielsdos/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos/David Carlier', + ), + 'bugs' => + array ( + 0 => '18481', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Backport lexbor/lexbor#274.', + 'raw' => 'Backport lexbor/lexbor#274. (nielsdos, alexpeattie)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'alexpeattie', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix various reference issues.', + 'raw' => 'Fix various reference issues. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()).', + 'raw' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '18529', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size).', + 'raw' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18417', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18297 (Exception not handled when jit guard is triggered).', + 'raw' => 'Fixed bug GH-18297 (Exception not handled when jit guard is triggered). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '18297', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18408 (Snapshotted poly_func / poly_this may be spilled).', + 'raw' => 'Fixed bug GH-18408 (Snapshotted poly_func / poly_this may be spilled). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '18408', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure).', + 'raw' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18567', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-18534 (FPM exit code 70 with enabled opcache and hooked properties in traits).', + 'raw' => 'Fixed bug GH-18534 (FPM exit code 70 with enabled opcache and hooked properties in traits). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18534', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix leak of accel_globals->key.', + 'raw' => 'Fix leak of accel_globals->key. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix missing checks against php_set_blocking() in xp_ssl.c.', + 'raw' => 'Fix missing checks against php_set_blocking() in xp_ssl.c. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator).', + 'raw' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18421', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails).', + 'raw' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17403', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18400 (http_build_query type error is inaccurate).', + 'raw' => 'Fixed bug GH-18400 (http_build_query type error is inaccurate). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18400', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions).', + 'raw' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '18509', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix leak+crash with sapi_windows_set_ctrl_handler().', + 'raw' => 'Fix leak+crash with sapi_windows_set_ctrl_handler(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work).', + 'raw' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18431', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern).', + 'raw' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18438', + ), + ), + ), + ), + ), + ), + '8.4.7' => + array ( + 'date' => '24 Apr 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18038 (Lazy proxy calls magic methods twice).', + 'raw' => 'Fixed bug GH-18038 (Lazy proxy calls magic methods twice). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '18038', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS).', + 'raw' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18209', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18268 (Segfault in array_walk() on object with added property hooks).', + 'raw' => 'Fixed bug GH-18268 (Segfault in array_walk() on object with added property hooks). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18268', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault).', + 'raw' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18304', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix some leaks in php_scandir.', + 'raw' => 'Fix some leaks in php_scandir. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'FIxed bug GH-18247 dba_popen() memory leak on invalid path.', + 'raw' => 'FIxed bug GH-18247 dba_popen() memory leak on invalid path. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18309 (ipv6 filter integer overflow).', + 'raw' => 'Fixed bug GH-18309 (ipv6 filter integer overflow). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18309', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop().', + 'raw' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop(). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value.', + 'raw' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference support for intltz_get_offset().', + 'raw' => 'Fix reference support for intltz_get_offset(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden).', + 'raw' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '17776', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix NULL deref on high modification key.', + 'raw' => 'Fix NULL deref on high modification key. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message.', + 'raw' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18294 (assertion failure zend_jit_ir.c).', + 'raw' => 'Fixed bug GH-18294 (assertion failure zend_jit_ir.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18294', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18289 (Fix segfault in JIT).', + 'raw' => 'Fixed bug GH-18289 (Fix segfault in JIT). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + 'bugs' => + array ( + 0 => '18289', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18136 (tracing JIT floating point register clobbering on Windows and ARM64).', + 'raw' => 'Fixed bug GH-18136 (tracing JIT floating point register clobbering on Windows and ARM64). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18136', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in openssl_sign() when passing invalid algorithm.', + 'raw' => 'Fix memory leak in openssl_sign() when passing invalid algorithm. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix potential leaks when writing to BIO fails.', + 'raw' => 'Fix potential leaks when writing to BIO fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18276 (persistent connection - "zend_mm_heap corrupted" with setAttribute()) .', + 'raw' => 'Fixed bug GH-18276 (persistent connection - "zend_mm_heap corrupted" with setAttribute()) (SakiTakamachi).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '18276', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17383 (PDOException has wrong code and message since PHP 8.4) .', + 'raw' => 'Fixed bug GH-17383 (PDOException has wrong code and message since PHP 8.4) (SakiTakamachi).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '17383', + ), + ), + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on error return of collation callback.', + 'raw' => 'Fix memory leak on error return of collation callback. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix uouv in pg_put_copy_end().', + 'raw' => 'Fix uouv in pg_put_copy_end(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory).', + 'raw' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18322', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()).', + 'raw' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '18145', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix resource leak in iptcembed() on error.', + 'raw' => 'Fix resource leak in iptcembed() on error. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'tests' => + array ( + 0 => + array ( + 'message' => 'Address deprecated PHP 8.4 session options to prevent test failures.', + 'raw' => 'Address deprecated PHP 8.4 session options to prevent test failures. (willvar)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'willvar', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix uouv when handling empty options in ZipArchive::addGlob().', + 'raw' => 'Fix uouv when handling empty options in ZipArchive::addGlob(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob().', + 'raw' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.4.6' => + array ( + 'date' => '10 Apr 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed pointer subtraction for scale.', + 'raw' => 'Fixed pointer subtraction for scale. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed property hook backing value access in multi-level inheritance.', + 'raw' => 'Fixed property hook backing value access in multi-level inheritance. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed accidentally inherited default value in overridden virtual properties.', + 'raw' => 'Fixed accidentally inherited default value in overridden virtual properties. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to child class).', + 'raw' => 'Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to child class). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17376', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17913 (ReflectionFunction::isDeprecated() returns incorrect results for closures created from magic __call()).', + 'raw' => 'Fixed bug GH-17913 (ReflectionFunction::isDeprecated() returns incorrect results for closures created from magic __call()). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '17913', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks).', + 'raw' => 'Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17941', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in get_object_vars()).', + 'raw' => 'Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in get_object_vars()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17988', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-17998 (Skipped lazy object initialization on primed SIMPLE_WRITE cache).', + 'raw' => 'Fixed bug GH-17998 (Skipped lazy object initialization on primed SIMPLE_WRITE cache). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17998', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy calls hook again).', + 'raw' => 'Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy calls hook again). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17998', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction).', + 'raw' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '17961', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown).', + 'raw' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15367', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed OSS-Fuzz #403308724.', + 'raw' => 'Fixed OSS-Fuzz #403308724. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\').', + 'raw' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\'). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13193', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed assertion violation when opening the same file with dba_open multiple times.', + 'raw' => 'Fixed assertion violation when opening the same file with dba_open multiple times. (chschneider)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'chschneider', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17991 (Assertion failure dom_attr_value_write).', + 'raw' => 'Fixed bug GH-17991 (Assertion failure dom_attr_value_write). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17991', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix weird unpack behaviour in DOM.', + 'raw' => 'Fix weird unpack behaviour in DOM. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased).', + 'raw' => 'Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18090', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix xinclude destruction of live attributes.', + 'raw' => 'Fix xinclude destruction of live attributes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fuzzer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI).', + 'raw' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI). (Lung-Alexandra)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Lung-Alexandra', + ), + 'bugs' => + array ( + 0 => '18081', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17984 (calls with arguments as array with references).', + 'raw' => 'Fixed bug GH-17984 (calls with arguments as array with references). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17984', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18015 (Error messages for ldap_mod_replace are confusing).', + 'raw' => 'Fixed bug GH-18015 (Error messages for ldap_mod_replace are confusing). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18015', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes).', + 'raw' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17989', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal JIT).', + 'raw' => 'Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal JIT). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15834', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17966 (Symfony JIT 1205 assertion failure).', + 'raw' => 'Fixed bug GH-17966 (Symfony JIT 1205 assertion failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17966', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18037 (SEGV Zend/zend_execute.c).', + 'raw' => 'Fixed bug GH-18037 (SEGV Zend/zend_execute.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18037', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken).', + 'raw' => 'Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18050', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c).', + 'raw' => 'Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18113', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-18112 (NULL access with preloading and INI option).', + 'raw' => 'Fixed bug GH-18112 (NULL access with preloading and INI option). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18112', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table).', + 'raw' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18107', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when destroying PDORow.', + 'raw' => 'Fix memory leak when destroying PDORow. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18148 (pg_copy_from() regression with explicit \\n terminator due to wrong offset check).', + 'raw' => 'Fixed bug GH-18148 (pg_copy_from() regression with explicit \\n terminator due to wrong offset check). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '18148', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in array_any() / array_all().', + 'raw' => 'Fix memory leaks in array_any() / array_all(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) .', + 'raw' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) . (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '66049', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject).', + 'raw' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18018', + ), + ), + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()).', + 'raw' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17736', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings).', + 'raw' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '17836', + ), + ), + ), + ), + ), + ), + '8.4.5' => + array ( + 'date' => '27 Feb 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17398 (bcmul memory leak).', + 'raw' => 'Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'bugs' => + array ( + 0 => '17398', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation).', + 'raw' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17623', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account).', + 'raw' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '17618', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix fallback paths in fast_long_{add,sub}_function.', + 'raw' => 'Fix fallback paths in fast_long_{add,sub}_function. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #391975641 (Crash when accessing property backing value by reference).', + 'raw' => 'Fixed bug OSS-Fuzz #391975641 (Crash when accessing property backing value by reference). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed).', + 'raw' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '17718', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17713 (ReflectionProperty::getRawValue() and related methods may call hooks of overridden properties).', + 'raw' => 'Fixed bug GH-17713 (ReflectionProperty::getRawValue() and related methods may call hooks of overridden properties). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '17713', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-17916 (Final abstract properties should error).', + 'raw' => 'Fixed bug GH-17916 (Final abstract properties should error). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '17916', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-17866 (zend_mm_heap corrupted error after upgrading from 8.4.3 to 8.4.4).', + 'raw' => 'Fixed bug GH-17866 (zend_mm_heap corrupted error after upgrading from 8.4.3 to 8.4.4). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17866', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235)', + 'raw' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2024-11235', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17609 (Typo in error message: Dom\\NO_DEFAULT_NS instead of Dom\\HTML_NO_DEFAULT_NS).', + 'raw' => 'Fixed bug GH-17609 (Typo in error message: Dom\\NO_DEFAULT_NS instead of Dom\\HTML_NO_DEFAULT_NS). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17609', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17802 (\\Dom\\HTMLDocument querySelector attribute name is case sensitive in HTML).', + 'raw' => 'Fixed bug GH-17802 (\\Dom\\HTMLDocument querySelector attribute name is case sensitive in HTML). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17802', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17847 (xinclude destroys live node).', + 'raw' => 'Fixed bug GH-17847 (xinclude destroys live node). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17847', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix using Dom\\Node with Dom\\XPath callbacks.', + 'raw' => 'Fix using Dom\\Node with Dom\\XPath callbacks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fix FFI Parsing of Pointer Declaration Lists.', + 'raw' => 'Fix FFI Parsing of Pointer Declaration Lists. (davnotdev)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'davnotdev', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env).', + 'raw' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '17643', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17703 (imagescale with both width and height negative values triggers only an Exception on width).', + 'raw' => 'Fixed bug GH-17703 (imagescale with both width and height negative values triggers only an Exception on width). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17703', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M).', + 'raw' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17772', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys).', + 'raw' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys). (nielsdos, 7u83)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => '7u83', + ), + 'bugs' => + array ( + 0 => '17704', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714).', + 'raw' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219)', + 'raw' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1219', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).', + 'raw' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17503', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash).', + 'raw' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17654', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17577 (JIT packed type guard crash).', + 'raw' => 'Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '17577', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17747 (Exception on reading property in register-based FETCH_OBJ_R breaks JIT).', + 'raw' => 'Fixed bug GH-17747 (Exception on reading property in register-based FETCH_OBJ_R breaks JIT). (Dmitry, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17747', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17715 (Null pointer deref in observer API when calling cases() method on preloaded enum).', + 'raw' => 'Fixed bug GH-17715 (Null pointer deref in observer API when calling cases() method on preloaded enum). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '17715', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT on 8.4.4).', + 'raw' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT on 8.4.4). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17868', + ), + ), + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).', + 'raw' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix cycle leak in sqlite3 setAuthorizer().', + 'raw' => 'Fix cycle leak in sqlite3 setAuthorizer(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix memory leaks in pdo_sqlite callback registration.', + 'raw' => 'Fix memory leaks in pdo_sqlite callback registration. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17808: PharFileInfo refcount bug.', + 'raw' => 'Fixed bug GH-17808: PharFileInfo refcount bug. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17808', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer).', + 'raw' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in phpdbg calling registered function.', + 'raw' => 'Fix memory leak in phpdbg calling registered function. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '15902', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed missing final and abstract flags when dumping properties.', + 'raw' => 'Fixed missing final and abstract flags when dumping properties. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths).', + 'raw' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '72666', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c).', + 'raw' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17650', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak on overflow in _php_stream_scandir().', + 'raw' => 'Fix memory leak on overflow in _php_stream_scandir(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)', + 'raw' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1736', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)', + 'raw' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1861', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)', + 'raw' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1734', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)', + 'raw' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-1217', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed phpize for Windows 11 (24H2).', + 'raw' => 'Fixed phpize for Windows 11 (24H2). (bwoebi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'bwoebi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib).', + 'raw' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments).', + 'raw' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17745', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak when encoding check fails.', + 'raw' => 'Fix memory leak when encoding check fails. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix zlib support for large files.', + 'raw' => 'Fix zlib support for large files. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + ), + ), + '8.4.4' => + array ( + 'date' => '13 Feb 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17234 (Numeric parent hook call fails with assertion).', + 'raw' => 'Fixed bug GH-17234 (Numeric parent hook call fails with assertion). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17234', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b).', + 'raw' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16892', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0).', + 'raw' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16886', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17222 (__PROPERTY__ magic constant does not work in all constant expression contexts).', + 'raw' => 'Fixed bug GH-17222 (__PROPERTY__ magic constant does not work in all constant expression contexts). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17222', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final).', + 'raw' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17214', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed NULL arithmetic during system program execution on Windows.', + 'raw' => 'Fixed NULL arithmetic during system program execution on Windows. (cmb, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed potential OOB when checking for trailing spaces on Windows.', + 'raw' => 'Fixed potential OOB when checking for trailing spaces on Windows. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c). (nielsdos, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17408', + ), + ), + ), + 8 => + array ( + 'message' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK.', + 'raw' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix NULL arithmetic in System V shared memory emulation for Windows.', + 'raw' => 'Fix NULL arithmetic in System V shared memory emulation for Windows. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-17597 (#[\\Deprecated] does not work for __call() and __callStatic()).', + 'raw' => 'Fixed bug GH-17597 (#[\\Deprecated] does not work for __call() and __callStatic()). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '17597', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17397 (Assertion failure ext/dom/php_dom.c).', + 'raw' => 'Fixed bug GH-17397 (Assertion failure ext/dom/php_dom.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17397', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17486 (Incorrect error line numbers reported in Dom\\HTMLDocument::createFromString).', + 'raw' => 'Fixed bug GH-17486 (Incorrect error line numbers reported in Dom\\HTMLDocument::createFromString). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17486', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17481 (UTF-8 corruption in \\Dom\\HTMLDocument).', + 'raw' => 'Fixed bug GH-17481 (UTF-8 corruption in \\Dom\\HTMLDocument). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17481', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype).', + 'raw' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17500', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17485 (upstream fix, Self-closing tag on void elements shouldn\'t be a parse error/warning in \\Dom\\HTMLDocument).', + 'raw' => 'Fixed bug GH-17485 (upstream fix, Self-closing tag on void elements shouldn\'t be a parse error/warning in \\Dom\\HTMLDocument). (lexborisov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lexborisov', + ), + 'bugs' => + array ( + 0 => '17485', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17572 (getElementsByTagName returns collections with tagName-based indexing).', + 'raw' => 'Fixed bug GH-17572 (getElementsByTagName returns collections with tagName-based indexing). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17572', + ), + ), + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in enchant when passing null bytes.', + 'raw' => 'Fix crashes in enchant when passing null bytes. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR).', + 'raw' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16800', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency).', + 'raw' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17349', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images).', + 'raw' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17373', + ), + ), + ), + 2 => + array ( + 'message' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate).', + 'raw' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 3 => + array ( + 'message' => 'Added support for reading GIFs without colormap to bundled libgd.', + 'raw' => 'Added support for reading GIFs without colormap to bundled libgd. (Andrew Burley, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Andrew Burley', + 1 => 'cmb', + ), + ), + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17400 (bindtextdomain SEGV on invalid domain).', + 'raw' => 'Fixed bug GH-17400 (bindtextdomain SEGV on invalid domain). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17400', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11874 (intl causing segfault in docker images).', + 'raw' => 'Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11874', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT).', + 'raw' => 'Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15981', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17307 (Internal closure causes JIT failure).', + 'raw' => 'Fixed bug GH-17307 (Internal closure causes JIT failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17307', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940).', + 'raw' => 'Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17428', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding).', + 'raw' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17564', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed pcntl_setcpuaffinity exception type from ValueError to TypeError for the cpu mask argument with entries type different than int/string.', + 'raw' => 'Fixed pcntl_setcpuaffinity exception type from ValueError to TypeError for the cpu mask argument with entries type different than int/string. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17122 (memory leak in regex).', + 'raw' => 'Fixed bug GH-17122 (memory leak in regex). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17122', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed a memory leak when the GC is used to free a PDOStatment.', + 'raw' => 'Fixed a memory leak when the GC is used to free a PDOStatment. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed a crash in the PDO Firebird Statement destructor.', + 'raw' => 'Fixed a crash in the PDO Firebird Statement destructor. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed UAFs when changing default fetch class ctor args.', + 'raw' => 'Fixed UAFs when changing default fetch class ctor args. (Girgias, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + 1 => 'nielsdos', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed build failure when the constant PGRES_TUPLES_CHUNK is not present in the system.', + 'raw' => 'Fixed build failure when the constant PGRES_TUPLES_CHUNK is not present in the system. (chschneider)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'chschneider', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17518 (offset overflow phar extractTo()).', + 'raw' => 'Fixed bug GH-17518 (offset overflow phar extractTo()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17518', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in function registration + test.', + 'raw' => 'Fix crashes in function registration + test. (nielsdos, Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Girgias', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fix type confusion with session SID constant.', + 'raw' => 'Fix type confusion with session SID constant. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset).', + 'raw' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '17541', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730).', + 'raw' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17409', + ), + ), + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session).', + 'raw' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17330', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15833 (Segmentation fault (access null pointer) in ext/spl/spl_array.c).', + 'raw' => 'Fixed bug GH-15833 (Segmentation fault (access null pointer) in ext/spl/spl_array.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15833', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17516 (SplFileTempObject::getPathInfo() Undefined behavior on invalid class).', + 'raw' => 'Fixed bug GH-17516 (SplFileTempObject::getPathInfo() Undefined behavior on invalid class). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '17516', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17447 (Assertion failure when array popping a self addressing variable).', + 'raw' => 'Fixed bug GH-17447 (Assertion failure when array popping a self addressing variable). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17447', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed clang compiler detection.', + 'raw' => 'Fixed clang compiler detection. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry).', + 'raw' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17139', + ), + ), + ), + ), + ), + ), + '8.4.3' => + array ( + 'date' => '16 Jan 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17049 (Correctly compare 0 and -0).', + 'raw' => 'Fixed bug GH-17049 (Correctly compare 0 and -0). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '17049', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17061 (Now Number::round() does not remove trailing zeros).', + 'raw' => 'Fixed bug GH-17061 (Now Number::round() does not remove trailing zeros). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '17061', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17064 (Correctly round rounding mode with zero edge case).', + 'raw' => 'Fixed bug GH-17064 (Correctly round rounding mode with zero edge case). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '17064', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17275 (Fixed the calculation logic of dividend scale).', + 'raw' => 'Fixed bug GH-17275 (Fixed the calculation logic of dividend scale). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '17275', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object iterator properties table).', + 'raw' => 'Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object iterator properties table). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed unstable get_iterator pointer for hooked classes in shm on Windows.', + 'raw' => 'Fixed unstable get_iterator pointer for hooked classes in shm on Windows. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization).', + 'raw' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17106', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF).', + 'raw' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17162', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly).', + 'raw' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17101', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17200 (Incorrect dynamic prop offset in hooked prop iterator).', + 'raw' => 'Fixed bug GH-17200 (Incorrect dynamic prop offset in hooked prop iterator). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17200', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-17216 (Trampoline crash on error).', + 'raw' => 'Fixed bug GH-17216 (Trampoline crash on error). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17216', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Skip test if inifile is disabled.', + 'raw' => 'Skip test if inifile is disabled. (orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'orlitzky', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17145 (DOM memory leak).', + 'raw' => 'Fixed bug GH-17145 (DOM memory leak). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17145', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17201 (Dom\\TokenList issues with interned string replace).', + 'raw' => 'Fixed bug GH-17201 (Dom\\TokenList issues with interned string replace). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17201', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17224 (UAF in importNode).', + 'raw' => 'Fixed bug GH-17224 (UAF in importNode). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17224', + ), + ), + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Make build command for program using embed portable.', + 'raw' => 'Make build command for program using embed portable. (dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dunglas', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79075 (FFI header parser chokes on comments).', + 'raw' => 'Fixed bug #79075 (FFI header parser chokes on comments). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '79075', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure.', + 'raw' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues).', + 'raw' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues). (Dmitry, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16013', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17039 (PHP 8.4: Incorrect MIME content type).', + 'raw' => 'Fixed bug GH-17039 (PHP 8.4: Incorrect MIME content type). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17039', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)).', + 'raw' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '13437', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (cmb, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17112', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits).', + 'raw' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17208', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c).', + 'raw' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16255', + ), + ), + ), + 1 => + array ( + 'message' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs).', + 'raw' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()).', + 'raw' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '17202', + ), + ), + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17047 (UAF on iconv filter failure).', + 'raw' => 'Fixed bug GH-17047 (UAF on iconv filter failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17047', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes).', + 'raw' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17280', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling).', + 'raw' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17223', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (nielsdos, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17112', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'opcache_get_configuration() properly reports jit_prof_threshold.', + 'raw' => 'opcache_get_configuration() properly reports jit_prof_threshold. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17140 (Assertion failure in JIT trace exit with ZEND_FETCH_DIM_FUNC_ARG).', + 'raw' => 'Fixed bug GH-17140 (Assertion failure in JIT trace exit with ZEND_FETCH_DIM_FUNC_ARG). (nielsdos, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '17140', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17151 (Incorrect RC inference of op1 of FETCH_OBJ and INIT_METHOD_CALL).', + 'raw' => 'Fixed bug GH-17151 (Incorrect RC inference of op1 of FETCH_OBJ and INIT_METHOD_CALL). (Dmitry, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17151', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17246 (GC during SCCP causes segfault).', + 'raw' => 'Fixed bug GH-17246 (GC during SCCP causes segfault). (Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '17246', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17257 (UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c).', + 'raw' => 'Fixed bug GH-17257 (UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c). (nielsdos, Dmitry)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'Dmitry', + ), + 'bugs' => + array ( + 0 => '17257', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry.', + 'raw' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument).', + 'raw' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17158', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed further ArgumentCountError for calls with flexible number of arguments.', + 'raw' => 'Fixed further ArgumentCountError for calls with flexible number of arguments. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c).', + 'raw' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17137', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects).', + 'raw' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17040', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document).', + 'raw' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17153', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN).', + 'raw' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN). (David Carlier / cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier / cmb', + ), + 'bugs' => + array ( + 0 => '16276', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option().', + 'raw' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option(). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17198 (SplFixedArray assertion failure with get_object_vars).', + 'raw' => 'Fixed bug GH-17198 (SplFixedArray assertion failure with get_object_vars). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17198', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c).', + 'raw' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17225', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling).', + 'raw' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17037', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value).', + 'raw' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16810', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds).', + 'raw' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '17067', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Hardened proc_open() against cmd.exe hijacking.', + 'raw' => 'Hardened proc_open() against cmd.exe hijacking. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-1718 (unreachable program point in zend_hash).', + 'raw' => 'Fixed bug GH-1718 (unreachable program point in zend_hash). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '1718', + ), + ), + ), + ), + ), + ), + '8.4.2' => + array ( + 'date' => '19 Dec 2024', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16978 (Avoid unnecessary padding with leading zeros).', + 'raw' => 'Fixed bug GH-16978 (Avoid unnecessary padding with leading zeros). (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '16978', + ), + ), + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).', + 'raw' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16991', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16344 (setRawValueWithoutLazyInitialization() and skipLazyInitialization() may change initialized proxy).', + 'raw' => 'Fixed bug GH-16344 (setRawValueWithoutLazyInitialization() and skipLazyInitialization() may change initialized proxy). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16344', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix is_zend_ptr() huge block comparison.', + 'raw' => 'Fix is_zend_ptr() huge block comparison. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed potential OOB read in zend_dirname() on Windows.', + 'raw' => 'Fixed potential OOB read in zend_dirname() on Windows. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15964 (printf() can strip sign of -INF).', + 'raw' => 'Fixed bug GH-15964 (printf() can strip sign of -INF). (divinity76, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15964', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix various memory leaks in curl mime handling.', + 'raw' => 'Fix various memory leaks in curl mime handling. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16990 (dba_list() is now zero-indexed instead of using resource ids)', + 'raw' => 'Fixed bug GH-16990 (dba_list() is now zero-indexed instead of using resource ids) (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '16990', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator).', + 'raw' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16906', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16932 (wrong FPM status output).', + 'raw' => 'Fixed bug GH-16932 (wrong FPM status output). (Jakub Zelenka, James Lucas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'James Lucas', + ), + 'bugs' => + array ( + 0 => '16932', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)).', + 'raw' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16890', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).', + 'raw' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads). (dktapps)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dktapps', + ), + 'bugs' => + array ( + 0 => '16851', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64).', + 'raw' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16902', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16879 (JIT dead code skipping does not update call_level).', + 'raw' => 'Fixed bug GH-16879 (JIT dead code skipping does not update call_level). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16879', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867).', + 'raw' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16998', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).', + 'raw' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15208', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties).', + 'raw' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16905', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array).', + 'raw' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16957', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed network connect poll interuption handling.', + 'raw' => 'Fixed network connect poll interuption handling. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16849 (Error dialog causes process to hang).', + 'raw' => 'Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16849', + ), + ), + ), + 1 => + array ( + 'message' => 'Windows Server 2025 is now properly reported.', + 'raw' => 'Windows Server 2025 is now properly reported. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + ), + ), + '8.4.1' => + array ( + 'date' => '21 Nov 2024', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => '[RFC] Add bcfloor, bcceil and bcround to BCMath.', + 'raw' => '[RFC] Add bcfloor, bcceil and bcround to BCMath. (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Improve performance.', + 'raw' => 'Improve performance. (Saki Takamachi, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + 1 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Adjust bcround()\'s $mode parameter to only accept the RoundingMode enum.', + 'raw' => 'Adjust bcround()\'s $mode parameter to only accept the RoundingMode enum. (timwolla, saki)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'saki', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed LONG_MAX in BCMath ext.', + 'raw' => 'Fixed LONG_MAX in BCMath ext. (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bcdiv() div by one.', + 'raw' => 'Fixed bcdiv() div by one. (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 5 => + array ( + 'message' => '[RFC] Support object types in BCMath.', + 'raw' => '[RFC] Support object types in BCMath. (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + 6 => + array ( + 'message' => 'bcpow() performance improvement.', + 'raw' => 'bcpow() performance improvement. (Jorg Sowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jorg Sowa', + ), + ), + ), + 7 => + array ( + 'message' => 'ext/bcmath: Check for scale overflow.', + 'raw' => 'ext/bcmath: Check for scale overflow. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 8 => + array ( + 'message' => '[RFC] ext/bcmath: Added bcdivmod.', + 'raw' => '[RFC] ext/bcmath: Added bcdivmod. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix GH-15968 (Avoid converting objects to strings in operator calculations).', + 'raw' => 'Fix GH-15968 (Avoid converting objects to strings in operator calculations). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-16265 (Added early return case when result is 0) .', + 'raw' => 'Fixed bug GH-16265 (Added early return case when result is 0) (Saki Takamachi).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '16265', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-16262 (Fixed a bug where size_t underflows) .', + 'raw' => 'Fixed bug GH-16262 (Fixed a bug where size_t underflows) (Saki Takamachi).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + 'bugs' => + array ( + 0 => '16262', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed GH-16236 (Fixed a bug in BcMath\\Number::pow() and bcpow() when raising negative powers of 0) .', + 'raw' => 'Fixed GH-16236 (Fixed a bug in BcMath\\Number::pow() and bcpow() when raising negative powers of 0) (Saki Takamachi).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, Solaris and Haiku.', + 'raw' => 'Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, Solaris and Haiku. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Enabled ifunc checks on FreeBSD from the 12.x releases.', + 'raw' => 'Enabled ifunc checks on FreeBSD from the 12.x releases. (Freaky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Freaky', + ), + ), + ), + 2 => + array ( + 'message' => 'Changed the type of PHP_DEBUG and PHP_ZTS constants to bool.', + 'raw' => 'Changed the type of PHP_DEBUG and PHP_ZTS constants to bool. (haszi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'haszi', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13142 (Undefined variable name is shortened when contains \\0).', + 'raw' => 'Fixed bug GH-13142 (Undefined variable name is shortened when contains \\0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13142', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-13178 (Iterator positions incorrect when converting packed array to hashed).', + 'raw' => 'Fixed bug GH-13178 (Iterator positions incorrect when converting packed array to hashed). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '13178', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed zend fiber build for solaris default mode (32 bits).', + 'raw' => 'Fixed zend fiber build for solaris default mode (32 bits). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed zend call stack size for macOs/arm64.', + 'raw' => 'Fixed zend call stack size for macOs/arm64. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Added support for Zend Max Execution Timers on FreeBSD.', + 'raw' => 'Added support for Zend Max Execution Timers on FreeBSD. (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + 8 => + array ( + 'message' => 'Ensure fiber stack is not backed by THP.', + 'raw' => 'Ensure fiber stack is not backed by THP. (crrodriguez)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'crrodriguez', + ), + ), + ), + 9 => + array ( + 'message' => 'Implement GH-13609 (Dump wrapped object in WeakReference class).', + 'raw' => 'Implement GH-13609 (Dump wrapped object in WeakReference class). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 10 => + array ( + 'message' => 'Added sparc64 arch assembly support for zend fiber.', + 'raw' => 'Added sparc64 arch assembly support for zend fiber. (Claudio Jeker)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Claudio Jeker', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed GH-13581 no space available for TLS on NetBSD.', + 'raw' => 'Fixed GH-13581 no space available for TLS on NetBSD. (Paul Ripke)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Paul Ripke', + ), + ), + ), + 12 => + array ( + 'message' => 'Added fiber Sys-V loongarch64 support.', + 'raw' => 'Added fiber Sys-V loongarch64 support. (qiangxuhui)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'qiangxuhui', + ), + ), + ), + 13 => + array ( + 'message' => 'Adjusted closure names to include the parent function\'s name.', + 'raw' => 'Adjusted closure names to include the parent function\'s name. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 14 => + array ( + 'message' => 'Improve randomness of uploaded file names and files created by tempnam().', + 'raw' => 'Improve randomness of uploaded file names and files created by tempnam(). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 15 => + array ( + 'message' => 'Added gc and shutdown callbacks to zend_mm custom handlers.', + 'raw' => 'Added gc and shutdown callbacks to zend_mm custom handlers. (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + ), + ), + 16 => + array ( + 'message' => 'Fixed bug GH-14650 (Compute the size of pages before allocating memory).', + 'raw' => 'Fixed bug GH-14650 (Compute the size of pages before allocating memory). (Julien Voisin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Julien Voisin', + ), + 'bugs' => + array ( + 0 => '14650', + ), + ), + ), + 17 => + array ( + 'message' => 'Fixed bug GH-11928 (The --enable-re2c-cgoto doesn\'t add the -g flag).', + 'raw' => 'Fixed bug GH-11928 (The --enable-re2c-cgoto doesn\'t add the -g flag). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '11928', + ), + ), + ), + 18 => + array ( + 'message' => 'Added the #[\\Deprecated] attribute.', + 'raw' => 'Added the #[\\Deprecated] attribute. (beberlei, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'beberlei', + 1 => 'timwolla', + ), + ), + ), + 19 => + array ( + 'message' => 'Fixed GH-11389 (Allow suspending fibers in destructors).', + 'raw' => 'Fixed GH-11389 (Allow suspending fibers in destructors). (Arnaud, trowski)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'trowski', + ), + ), + ), + 20 => + array ( + 'message' => 'Fixed bug GH-14801 (Fix build for armv7).', + 'raw' => 'Fixed bug GH-14801 (Fix build for armv7). (andypost)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'andypost', + ), + 'bugs' => + array ( + 0 => '14801', + ), + ), + ), + 21 => + array ( + 'message' => 'Implemented property hooks RFC.', + 'raw' => 'Implemented property hooks RFC. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 22 => + array ( + 'message' => 'Fix GH-14978 (The xmlreader extension phpize build).', + 'raw' => 'Fix GH-14978 (The xmlreader extension phpize build). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + ), + ), + 23 => + array ( + 'message' => 'Throw Error exception when encountering recursion during comparison, rather than fatal error.', + 'raw' => 'Throw Error exception when encountering recursion during comparison, rather than fatal error. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 24 => + array ( + 'message' => 'Added missing cstddef include for C++ builds.', + 'raw' => 'Added missing cstddef include for C++ builds. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 25 => + array ( + 'message' => 'Updated build system scripts config.guess to 2024-07-27 and config.sub to 2024-05-27.', + 'raw' => 'Updated build system scripts config.guess to 2024-07-27 and config.sub to 2024-05-27. (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + ), + ), + 26 => + array ( + 'message' => 'Fixed bug GH-15240 (Infinite recursion in trait hook).', + 'raw' => 'Fixed bug GH-15240 (Infinite recursion in trait hook). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15240', + ), + ), + ), + 27 => + array ( + 'message' => 'Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric type).', + 'raw' => 'Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric type). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15140', + ), + ), + ), + 28 => + array ( + 'message' => 'Fixed bug GH-15181 (Disabled output handler is flushed again).', + 'raw' => 'Fixed bug GH-15181 (Disabled output handler is flushed again). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15181', + ), + ), + ), + 29 => + array ( + 'message' => 'Passing E_USER_ERROR to trigger_error() is now deprecated.', + 'raw' => 'Passing E_USER_ERROR to trigger_error() is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 30 => + array ( + 'message' => 'Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC).', + 'raw' => 'Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15292', + ), + ), + ), + 31 => + array ( + 'message' => 'Using "_" as a class name is now deprecated.', + 'raw' => 'Using "_" as a class name is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 32 => + array ( + 'message' => 'Exiting a namespace now clears seen symbols.', + 'raw' => 'Exiting a namespace now clears seen symbols. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 33 => + array ( + 'message' => 'The exit (and die) language constructs now behave more like a function. They can be passed liked callables, are affected by the strict_types declare statement, and now perform the usual type coercions instead of casting any non-integer value to a string. As such, passing invalid types to exit/die may now result in a TypeError being thrown.', + 'raw' => 'The exit (and die) language constructs now behave more like a function. They can be passed liked callables, are affected by the strict_types declare statement, and now perform the usual type coercions instead of casting any non-integer value to a string. As such, passing invalid types to exit/die may now result in a TypeError being thrown. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 34 => + array ( + 'message' => 'Fixed bug GH-15438 (Hooks on constructor promoted properties without visibility are ignored).', + 'raw' => 'Fixed bug GH-15438 (Hooks on constructor promoted properties without visibility are ignored). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15438', + ), + ), + ), + 35 => + array ( + 'message' => 'Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly classes).', + 'raw' => 'Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly classes). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15419', + ), + ), + ), + 36 => + array ( + 'message' => 'Fixed bug GH-15187 (Various hooked object iterator issues).', + 'raw' => 'Fixed bug GH-15187 (Various hooked object iterator issues). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15187', + ), + ), + ), + 37 => + array ( + 'message' => 'Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties).', + 'raw' => 'Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15456', + ), + ), + ), + 38 => + array ( + 'message' => 'Fixed bug GH-15501 (Windows HAVE_
    _H macros defined to 1 or undefined).', + 'raw' => 'Fixed bug GH-15501 (Windows HAVE_
    _H macros defined to 1 or undefined). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '15501', + ), + ), + ), + 39 => + array ( + 'message' => 'Implemented asymmetric visibility for properties.', + 'raw' => 'Implemented asymmetric visibility for properties. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 40 => + array ( + 'message' => 'Fixed bug GH-15644 (Asymmetric visibility doesn\'t work with hooks).', + 'raw' => 'Fixed bug GH-15644 (Asymmetric visibility doesn\'t work with hooks). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15644', + ), + ), + ), + 41 => + array ( + 'message' => 'Implemented lazy objects RFC.', + 'raw' => 'Implemented lazy objects RFC. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 42 => + array ( + 'message' => 'Fixed bug GH-15686 (Building shared iconv with external iconv library).', + 'raw' => 'Fixed bug GH-15686 (Building shared iconv with external iconv library). (Peter Kokot, zeriyoshi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + 1 => 'zeriyoshi', + ), + 'bugs' => + array ( + 0 => '15686', + ), + ), + ), + 43 => + array ( + 'message' => 'Fixed missing error when adding asymmetric visibility to unilateral virtual property.', + 'raw' => 'Fixed missing error when adding asymmetric visibility to unilateral virtual property. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 44 => + array ( + 'message' => 'Fixed bug GH-15693 (Unnecessary include in main.c bloats binary).', + 'raw' => 'Fixed bug GH-15693 (Unnecessary include in main.c bloats binary). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15693', + ), + ), + ), + 45 => + array ( + 'message' => 'Fixed bug GH-15731 (AllowDynamicProperties validation should error on enums).', + 'raw' => 'Fixed bug GH-15731 (AllowDynamicProperties validation should error on enums). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '15731', + ), + ), + ), + 46 => + array ( + 'message' => 'Fixed bug GH-16040 (Use-after-free of object released in hook).', + 'raw' => 'Fixed bug GH-16040 (Use-after-free of object released in hook). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16040', + ), + ), + ), + 47 => + array ( + 'message' => 'Fixed bug GH-16026 (Reuse of dtor fiber during shutdown).', + 'raw' => 'Fixed bug GH-16026 (Reuse of dtor fiber during shutdown). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16026', + ), + ), + ), + 48 => + array ( + 'message' => 'Fixed bug GH-15999 (zend_std_write_property() assertion failure with lazy objects).', + 'raw' => 'Fixed bug GH-15999 (zend_std_write_property() assertion failure with lazy objects). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15999', + ), + ), + ), + 49 => + array ( + 'message' => 'Fixed bug GH-15960 (Foreach edge cases with lazy objects).', + 'raw' => 'Fixed bug GH-15960 (Foreach edge cases with lazy objects). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15960', + ), + ), + ), + 50 => + array ( + 'message' => 'Fixed bug GH-16185 (Various hooked object iterator issues).', + 'raw' => 'Fixed bug GH-16185 (Various hooked object iterator issues). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16185', + ), + ), + ), + 51 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr_free).', + 'raw' => 'Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr_free). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 52 => + array ( + 'message' => 'Fixed missing error when adding asymmetric visibility to static properties.', + 'raw' => 'Fixed missing error when adding asymmetric visibility to static properties. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 53 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in zend_lazy_object_clone).', + 'raw' => 'Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in zend_lazy_object_clone). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 54 => + array ( + 'message' => 'Fixed bug GH-16574 (Incorrect error "undefined method" messages).', + 'raw' => 'Fixed bug GH-16574 (Incorrect error "undefined method" messages). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16574', + ), + ), + ), + 55 => + array ( + 'message' => 'Fixed bug GH-16577 (EG(strtod_state).freelist leaks with opcache.preload).', + 'raw' => 'Fixed bug GH-16577 (EG(strtod_state).freelist leaks with opcache.preload). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16577', + ), + ), + ), + 56 => + array ( + 'message' => 'Fixed bug GH-16615 (Assertion failure in zend_std_read_property).', + 'raw' => 'Fixed bug GH-16615 (Assertion failure in zend_std_read_property). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16615', + ), + ), + ), + 57 => + array ( + 'message' => 'Fixed bug GH-16342 (Added ReflectionProperty::isLazy()).', + 'raw' => 'Fixed bug GH-16342 (Added ReflectionProperty::isLazy()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16342', + ), + ), + ), + 58 => + array ( + 'message' => 'Fixed bug GH-16725 (Incorrect access check for non-hooked props in hooked object iterator).', + 'raw' => 'Fixed bug GH-16725 (Incorrect access check for non-hooked props in hooked object iterator). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '16725', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Deprecated the CURLOPT_BINARYTRANSFER constant.', + 'raw' => 'Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + ), + ), + 1 => + array ( + 'message' => 'Bumped required libcurl version to 7.61.0.', + 'raw' => 'Bumped required libcurl version to 7.61.0. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + 2 => + array ( + 'message' => 'Added feature_list key to the curl_version() return value.', + 'raw' => 'Added feature_list key to the curl_version() return value. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + 3 => + array ( + 'message' => 'Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY (libcurl 7.88) as options for CURLOPT_HTTP_VERSION', + 'raw' => 'Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY (libcurl 7.88) as options for CURLOPT_HTTP_VERSION (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 4 => + array ( + 'message' => 'Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before dropping the connection.', + 'raw' => 'Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before dropping the connection. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback after the connection is established, but before the request is performed.', + 'raw' => 'Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback after the connection is established, but before the request is performed. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 6 => + array ( + 'message' => 'Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as CURLOPT_FTP_RESPONSE_TIMEOUT.', + 'raw' => 'Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as CURLOPT_FTP_RESPONSE_TIMEOUT. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 7 => + array ( + 'message' => 'The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored.', + 'raw' => 'The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 8 => + array ( + 'message' => 'Added CURLOPT_DEBUGFUNCTION as a Curl option.', + 'raw' => 'Added CURLOPT_DEBUGFUNCTION as a Curl option. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-16359 (crash with curl_setopt* CURLOPT_WRITEFUNCTION without null callback).', + 'raw' => 'Fixed bug GH-16359 (crash with curl_setopt* CURLOPT_WRITEFUNCTION without null callback). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16359', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues).', + 'raw' => 'Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16723', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Added DateTime[Immutable]::createFromTimestamp.', + 'raw' => 'Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Marc Bennewitz', + ), + ), + ), + 1 => + array ( + 'message' => 'Added DateTime[Immutable]::[get|set]Microsecond.', + 'raw' => 'Added DateTime[Immutable]::[get|set]Microsecond. (Marc Bennewitz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Marc Bennewitz', + ), + ), + ), + 2 => + array ( + 'message' => 'Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE are now deprecated.', + 'raw' => 'Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE are now deprecated. (Jorg Sowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jorg Sowa', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end date).', + 'raw' => 'Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end date). (Mark Bennewitz, Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Mark Bennewitz', + 1 => 'Derick', + ), + 'bugs' => + array ( + 0 => '13773', + ), + ), + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Passing null or false to dba_key_split() is deprecated.', + 'raw' => 'Passing null or false to dba_key_split() is deprecated. (Grigias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Grigias', + ), + ), + ), + ), + 'debugging' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15923 (GDB: Python Exception : exceptions must derive from BaseException).', + 'raw' => 'Fixed bug GH-15923 (GDB: Python Exception : exceptions must derive from BaseException). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15923', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Added DOMNode::compareDocumentPosition().', + 'raw' => 'Added DOMNode::compareDocumentPosition(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents).', + 'raw' => 'Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix cloning attribute with namespace disappearing namespace.', + 'raw' => 'Fix cloning attribute with namespace disappearing namespace. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Implement DOM HTML5 parsing and serialization RFC.', + 'raw' => 'Implement DOM HTML5 parsing and serialization RFC. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix DOMElement->prefix with empty string creates bogus prefix.', + 'raw' => 'Fix DOMElement->prefix with empty string creates bogus prefix. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Handle OOM more consistently.', + 'raw' => 'Handle OOM more consistently. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC.', + 'raw' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Added DOMXPath::quote() static method.', + 'raw' => 'Added DOMXPath::quote() static method. (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + ), + ), + 8 => + array ( + 'message' => 'Implemented opt-in ext/dom spec compliance RFC.', + 'raw' => 'Implemented opt-in ext/dom spec compliance RFC. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug #79701 (getElementById does not correctly work with duplicate definitions).', + 'raw' => 'Fixed bug #79701 (getElementById does not correctly work with duplicate definitions). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '79701', + ), + ), + ), + 10 => + array ( + 'message' => 'Implemented "New ext-dom features in PHP 8.4" RFC.', + 'raw' => 'Implemented "New ext-dom features in PHP 8.4" RFC. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed GH-14698 (segfault on DOM node dereference).', + 'raw' => 'Fixed GH-14698 (segfault on DOM node dereference). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 12 => + array ( + 'message' => 'Improve support for template elements.', + 'raw' => 'Improve support for template elements. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 13 => + array ( + 'message' => 'Fix trampoline leak in xpath callables.', + 'raw' => 'Fix trampoline leak in xpath callables. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 14 => + array ( + 'message' => 'Throw instead of silently failing when creating a too long text node in (DOM)ParentNode and (DOM)ChildNode.', + 'raw' => 'Throw instead of silently failing when creating a too long text node in (DOM)ParentNode and (DOM)ChildNode. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 15 => + array ( + 'message' => 'Fixed bug GH-15192 (Segmentation fault in dom extension (html5_serializer)).', + 'raw' => 'Fixed bug GH-15192 (Segmentation fault in dom extension (html5_serializer)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15192', + ), + ), + ), + 16 => + array ( + 'message' => 'Deprecated DOM_PHP_ERR constant.', + 'raw' => 'Deprecated DOM_PHP_ERR constant. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 17 => + array ( + 'message' => 'Removed DOMImplementation::getFeature().', + 'raw' => 'Removed DOMImplementation::getFeature(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 18 => + array ( + 'message' => 'Fixed bug GH-15331 (Element::$substitutedNodeValue test failed).', + 'raw' => 'Fixed bug GH-15331 (Element::$substitutedNodeValue test failed). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15331', + ), + ), + ), + 19 => + array ( + 'message' => 'Fixed bug GH-15570 (Segmentation fault (access null pointer) in ext/dom/html5_serializer.c).', + 'raw' => 'Fixed bug GH-15570 (Segmentation fault (access null pointer) in ext/dom/html5_serializer.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15570', + ), + ), + ), + 20 => + array ( + 'message' => 'Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0).', + 'raw' => 'Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13988', + ), + ), + ), + 21 => + array ( + 'message' => 'Fix XML serializer errata: xmlns="" serialization should be allowed.', + 'raw' => 'Fix XML serializer errata: xmlns="" serialization should be allowed. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 22 => + array ( + 'message' => 'Fixed bug GH-15910 (Assertion failure in ext/dom/element.c).', + 'raw' => 'Fixed bug GH-15910 (Assertion failure in ext/dom/element.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15910', + ), + ), + ), + 23 => + array ( + 'message' => 'Fix unsetting DOM properties.', + 'raw' => 'Fix unsetting DOM properties. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 24 => + array ( + 'message' => 'Fixed bug GH-16190 (Using reflection to call Dom\\Node::__construct causes assertion failure).', + 'raw' => 'Fixed bug GH-16190 (Using reflection to call Dom\\Node::__construct causes assertion failure). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16190', + ), + ), + ), + 25 => + array ( + 'message' => 'Fix edge-case in DOM parsing decoding.', + 'raw' => 'Fix edge-case in DOM parsing decoding. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 26 => + array ( + 'message' => 'Fixed bug GH-16465 (Heap buffer overflow in DOMNode->getElementByTagName).', + 'raw' => 'Fixed bug GH-16465 (Heap buffer overflow in DOMNode->getElementByTagName). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16465', + ), + ), + ), + 27 => + array ( + 'message' => 'Fixed bug GH-16594 (Assertion failure in DOM -> before).', + 'raw' => 'Fixed bug GH-16594 (Assertion failure in DOM -> before). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16594', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Update to libmagic 5.45.', + 'raw' => 'Update to libmagic 5.45. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #65106 (PHP fails to compile ext/fileinfo).', + 'raw' => 'Fixed bug #65106 (PHP fails to compile ext/fileinfo). (Guillaume Outters)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Guillaume Outters', + ), + 'bugs' => + array ( + 0 => '65106', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Implement GH-12385 (flush headers without body when calling flush()).', + 'raw' => 'Implement GH-12385 (flush headers without body when calling flush()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT to SOMAXCONN.', + 'raw' => 'Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT to SOMAXCONN. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => '/dev/poll events.mechanism for Solaris/Illumos setting had been retired.', + 'raw' => '/dev/poll events.mechanism for Solaris/Illumos setting had been retired. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added memory peak to the scoreboard / status page.', + 'raw' => 'Added memory peak to the scoreboard / status page. (Flávio Heleno)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Flávio Heleno', + ), + ), + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #63937 (Upload speed 10 times slower with PHP).', + 'raw' => 'Fixed bug #63937 (Upload speed 10 times slower with PHP). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '63937', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix parameter numbers and missing alpha check for imagecolorset().', + 'raw' => 'Fix parameter numbers and missing alpha check for imagecolorset(). (Giovanni Giacobbi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Giovanni Giacobbi', + ), + ), + ), + 1 => + array ( + 'message' => 'imagepng/imagejpeg/imagewep/imageavif now throw an exception on invalid quality parameter.', + 'raw' => 'imagepng/imagejpeg/imagewep/imageavif now throw an exception on invalid quality parameter. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Check overflow/underflow for imagescale/imagefilter.', + 'raw' => 'Check overflow/underflow for imagescale/imagefilter. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added gdImageClone to bundled libgd.', + 'raw' => 'Added gdImageClone to bundled libgd. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'bind_textdomain_codeset, textdomain and d(*)gettext functions now throw an exception on empty domain.', + 'raw' => 'bind_textdomain_codeset, textdomain and d(*)gettext functions now throw an exception on empty domain. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'The GMP class is now final and cannot be extended anymore.', + 'raw' => 'The GMP class is now final and cannot be extended anymore. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'RFC: Change GMP bool cast behavior.', + 'raw' => 'RFC: Change GMP bool cast behavior. (Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Saki Takamachi', + ), + ), + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Changed return type of hash_update() to true.', + 'raw' => 'Changed return type of hash_update() to true. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Added HashContext::__debugInfo().', + 'raw' => 'Added HashContext::__debugInfo(). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Deprecated passing incorrect data types for options to ext/hash functions.', + 'raw' => 'Deprecated passing incorrect data types for options to ext/hash functions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Added SSE2 and SHA-NI implementation of SHA-256.', + 'raw' => 'Added SSE2 and SHA-NI implementation of SHA-256. (timwolla, Colin Percival, Graham Percival)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'Colin Percival', + 2 => 'Graham Percival', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix GH-15384 (Build fails on Alpine / Musl for amd64).', + 'raw' => 'Fix GH-15384 (Build fails on Alpine / Musl for amd64). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15742 (php_hash_sha.h incompatible with C++).', + 'raw' => 'Fixed bug GH-15742 (php_hash_sha.h incompatible with C++). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15742', + ), + ), + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Moved to PECL.', + 'raw' => 'Moved to PECL. (Derick Rethans)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick Rethans', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Added IntlDateFormatter::PATTERN constant.', + 'raw' => 'Added IntlDateFormatter::PATTERN constant. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed Numberformatter::__construct when the locale is invalid, now throws an exception.', + 'raw' => 'Fixed Numberformatter::__construct when the locale is invalid, now throws an exception. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as aliases for ::ROUND_DOWN and ::ROUND_UP.', + 'raw' => 'Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as aliases for ::ROUND_DOWN and ::ROUND_UP. (Jorg Sowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jorg Sowa', + ), + ), + ), + 3 => + array ( + 'message' => 'Added NumberFormatter::ROUND_HALFODD.', + 'raw' => 'Added NumberFormatter::ROUND_HALFODD. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 4 => + array ( + 'message' => 'Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and PROPERTY_ID_COMPAT_MATH_CONTINUE constants.', + 'raw' => 'Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and PROPERTY_ID_COMPAT_MATH_CONTINUE constants. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function.', + 'raw' => 'Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Set to C++17 standard for icu 74 and onwards.', + 'raw' => 'Set to C++17 standard for icu 74 and onwards. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a ResourceBundle object now throw: - TypeError for invalid offset types - ValueError for an empty string - ValueError if the integer index does not fit in a signed 32 bit integer', + 'raw' => 'resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a ResourceBundle object now throw: - TypeError for invalid offset types - ValueError for an empty string - ValueError if the integer index does not fit in a signed 32 bit integer', + 'references' => + array ( + ), + ), + 8 => + array ( + 'message' => 'ResourceBundle::get() now has a tentative return type of: ResourceBundle|array|string|int|null', + 'raw' => 'ResourceBundle::get() now has a tentative return type of: ResourceBundle|array|string|int|null', + 'references' => + array ( + ), + ), + 9 => + array ( + 'message' => 'Added the new Grapheme function grapheme_str_split.', + 'raw' => 'Added the new Grapheme function grapheme_str_split. (youkidearitai)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'youkidearitai', + ), + ), + ), + 10 => + array ( + 'message' => 'Added IntlDateFormatter::parseToCalendar.', + 'raw' => 'Added IntlDateFormatter::parseToCalendar. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 11 => + array ( + 'message' => 'Added SpoofChecker::setAllowedChars to set unicode chars ranges.', + 'raw' => 'Added SpoofChecker::setAllowedChars to set unicode chars ranges. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 constants.', + 'raw' => 'Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 constants. (StephenWall)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'StephenWall', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Added LIBXML_RECOVER constant.', + 'raw' => 'Added LIBXML_RECOVER constant. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'libxml_set_streams_context() now throws immediately on an invalid context instead of at the use-site.', + 'raw' => 'libxml_set_streams_context() now throws immediately on an invalid context instead of at the use-site. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Added LIBXML_NO_XXE constant.', + 'raw' => 'Added LIBXML_NO_XXE constant. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Added mb_trim, mb_ltrim and mb_rtrim.', + 'raw' => 'Added mb_trim, mb_ltrim and mb_rtrim. (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + ), + ), + 1 => + array ( + 'message' => 'Added mb_ucfirst and mb_lcfirst.', + 'raw' => 'Added mb_ucfirst and mb_lcfirst. (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + ), + ), + 2 => + array ( + 'message' => 'Updated Unicode data tables to Unicode 15.1.', + 'raw' => 'Updated Unicode data tables to Unicode 15.1. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains invalid encoding "UTF8").', + 'raw' => 'Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains invalid encoding "UTF8"). (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + 'bugs' => + array ( + 0 => '15824', + ), + ), + ), + 4 => + array ( + 'message' => 'Updated Unicode data tables to Unicode 16.0.', + 'raw' => 'Updated Unicode data tables to Unicode 16.0. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'The mysqli_ping() function and mysqli::ping() method are now deprecated, as the reconnect feature was removed in PHP 8.2.', + 'raw' => 'The mysqli_ping() function and mysqli::ping() method are now deprecated, as the reconnect feature was removed in PHP 8.2. (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + 1 => + array ( + 'message' => 'The mysqli_kill() function and mysqli::kill() method are now deprecated. If this functionality is needed a SQL "KILL" command can be used instead.', + 'raw' => 'The mysqli_kill() function and mysqli::kill() method are now deprecated. If this functionality is needed a SQL "KILL" command can be used instead. (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + 2 => + array ( + 'message' => 'The mysqli_refresh() function and mysqli::refresh() method are now deprecated. If this functionality is needed a SQL "FLUSH" command can be used instead.', + 'raw' => 'The mysqli_refresh() function and mysqli::refresh() method are now deprecated. If this functionality is needed a SQL "FLUSH" command can be used instead. (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + 3 => + array ( + 'message' => 'Passing explicitly the $mode parameter to mysqli_store_result() has been deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in conjunction with this function it has also been deprecated.', + 'raw' => 'Passing explicitly the $mode parameter to mysqli_store_result() has been deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in conjunction with this function it has also been deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13440 (PDO quote bottleneck).', + 'raw' => 'Fixed bug GH-13440 (PDO quote bottleneck). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13440', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection).', + 'raw' => 'Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10599', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added large shared segments support for FreeBSD.', + 'raw' => 'Added large shared segments support for FreeBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'If JIT is enabled, PHP will now exit with a fatal error on startup in case of JIT startup initialization issues.', + 'raw' => 'If JIT is enabled, PHP will now exit with a fatal error on startup in case of JIT startup initialization issues. (danog)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danog', + ), + ), + ), + 2 => + array ( + 'message' => 'Increased the maximum value of opcache.interned_strings_buffer to 32767 on 64bit archs.', + 'raw' => 'Increased the maximum value of opcache.interned_strings_buffer to 32767 on 64bit archs. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in zend_jit.c).', + 'raw' => 'Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in zend_jit.c). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '13834', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault).', + 'raw' => 'Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14361', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer).', + 'raw' => 'Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14873', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols).', + 'raw' => 'Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15490', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-15178 (Assertion in tracing JIT on hooks).', + 'raw' => 'Fixed bug GH-15178 (Assertion in tracing JIT on hooks). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15178', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-15657 (Segmentation fault in dasm_x86.h).', + 'raw' => 'Fixed bug GH-15657 (Segmentation fault in dasm_x86.h). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15657', + ), + ), + ), + 9 => + array ( + 'message' => 'Added opcache_jit_blacklist() function.', + 'raw' => 'Added opcache_jit_blacklist() function. (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-16009 (Segmentation fault with frameless functions and undefined CVs).', + 'raw' => 'Fixed bug GH-16009 (Segmentation fault with frameless functions and undefined CVs). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16009', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-16186 (Assertion failure in Zend/zend_operators.c).', + 'raw' => 'Fixed bug GH-16186 (Assertion failure in Zend/zend_operators.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16186', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT).', + 'raw' => 'Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16572', + ), + ), + ), + 13 => + array ( + 'message' => 'Fixed GH-16839 (Error on building Opcache JIT for Windows ARM64).', + 'raw' => 'Fixed GH-16839 (Error on building Opcache JIT for Windows ARM64). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter).', + 'raw' => 'Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '80269', + ), + ), + ), + 1 => + array ( + 'message' => 'Implement request #48520 (openssl_csr_new - allow multiple values in DN).', + 'raw' => 'Implement request #48520 (openssl_csr_new - allow multiple values in DN). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 2 => + array ( + 'message' => 'Introduced new serial_hex parameter to openssl_csr_sign.', + 'raw' => 'Introduced new serial_hex parameter to openssl_csr_sign. (Jakub Zelenka, Florian Sowade)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + 1 => 'Florian Sowade', + ), + ), + ), + 3 => + array ( + 'message' => 'Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants.', + 'raw' => 'Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants. (Vincent Jardin)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Vincent Jardin', + ), + ), + ), + 4 => + array ( + 'message' => 'Bumped minimum required OpenSSL version to 1.1.1.', + 'raw' => 'Bumped minimum required OpenSSL version to 1.1.1. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 5 => + array ( + 'message' => 'Added compile-time option --with-openssl-legacy-provider to enable legacy provider.', + 'raw' => 'Added compile-time option --with-openssl-legacy-provider to enable legacy provider. (Adam Saponara)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Adam Saponara', + ), + ), + ), + 6 => + array ( + 'message' => 'Added support for Curve25519 + Curve448 based keys.', + 'raw' => 'Added support for Curve25519 + Curve448 based keys. (Manuel Mausz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Manuel Mausz', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in UTCTimes).', + 'raw' => 'Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in UTCTimes). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '13343', + ), + ), + ), + 8 => + array ( + 'message' => 'Bumped minimum required OpenSSL version to 1.1.0.', + 'raw' => 'Bumped minimum required OpenSSL version to 1.1.0. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 9 => + array ( + 'message' => 'Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2.', + 'raw' => 'Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2. (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Clear output handler status flags during handler initialization.', + 'raw' => 'Clear output handler status flags during handler initialization. (haszi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'haszi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var().', + 'raw' => 'Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var(). (haszi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'haszi', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Added pcntl_setns for Linux.', + 'raw' => 'Added pcntl_setns for Linux. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added pcntl_getcpuaffinity/pcntl_setcpuaffinity.', + 'raw' => 'Added pcntl_getcpuaffinity/pcntl_setcpuaffinity. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Updated pcntl_get_signal_handler signal id upper limit to be more in line with platforms limits.', + 'raw' => 'Updated pcntl_get_signal_handler signal id upper limit to be more in line with platforms limits. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos.', + 'raw' => 'Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added pcntl_getqos_class/pcntl_setqos_class for macOs.', + 'raw' => 'Added pcntl_getqos_class/pcntl_setqos_class for macOs. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD.', + 'raw' => 'Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Added FreeBSD\'s SIGTRAP handling to pcntl_siginfo_to_zval.', + 'raw' => 'Added FreeBSD\'s SIGTRAP handling to pcntl_siginfo_to_zval. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Added POSIX pcntl_waitid.', + 'raw' => 'Added POSIX pcntl_waitid. (Vladimir Vrzić)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Vladimir Vrzić', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16769: (pcntl_sigwaitinfo aborts on signal value as reference).', + 'raw' => 'Fixed bug GH-16769: (pcntl_sigwaitinfo aborts on signal value as reference). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '16769', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Upgrade bundled pcre2lib to version 10.43.', + 'raw' => 'Upgrade bundled pcre2lib to version 10.43. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Add "/r" modifier.', + 'raw' => 'Add "/r" modifier. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + 2 => + array ( + 'message' => 'Upgrade bundled pcre2lib to version 10.44.', + 'raw' => 'Upgrade bundled pcre2lib to version 10.44. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-16189 (underflow on offset argument).', + 'raw' => 'Fixed GH-16189 (underflow on offset argument). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix UAF issues with PCRE after request shutdown.', + 'raw' => 'Fix UAF issues with PCRE after request shutdown. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Implemented PDO driver-specific subclasses RFC.', + 'raw' => 'Implemented PDO driver-specific subclasses RFC. (danack, kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danack', + 1 => 'kocsismate', + ), + ), + ), + 2 => + array ( + 'message' => 'Added support for PDO driver-specific SQL parsers.', + 'raw' => 'Added support for PDO driver-specific SQL parsers. (Matteo Beccati)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Matteo Beccati', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14792 (Compilation failure on pdo_* extensions).', + 'raw' => 'Fixed bug GH-14792 (Compilation failure on pdo_* extensions). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '14792', + ), + ), + ), + 4 => + array ( + 'message' => 'mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT.', + 'raw' => 'mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT. (Appla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Appla', + ), + ), + ), + 5 => + array ( + 'message' => 'The internal header php_pdo_int.h is no longer installed; it is not supposed to be used by PDO drivers.', + 'raw' => 'The internal header php_pdo_int.h is no longer installed; it is not supposed to be used by PDO drivers. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16167 (Prevent mixing PDO sub-classes with different DSN).', + 'raw' => 'Fixed bug GH-16167 (Prevent mixing PDO sub-classes with different DSN). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '16167', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-16314 ("Pdo\\Mysql object is uninitialized" when opening a persistent connection).', + 'raw' => 'Fixed bug GH-16314 ("Pdo\\Mysql object is uninitialized" when opening a persistent connection). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '16314', + ), + ), + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Added class Pdo\\DbLib.', + 'raw' => 'Added class Pdo\\DbLib. (danack, kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danack', + 1 => 'kocsismate', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Feature: Add transaction isolation level and mode settings to pdo_firebird.', + 'raw' => 'Feature: Add transaction isolation level and mode settings to pdo_firebird. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 2 => + array ( + 'message' => 'Added class Pdo\\Firebird.', + 'raw' => 'Added class Pdo\\Firebird. (danack, kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danack', + 1 => 'kocsismate', + ), + ), + ), + 3 => + array ( + 'message' => 'Added Pdo\\Firebird::ATTR_API_VERSION.', + 'raw' => 'Added Pdo\\Firebird::ATTR_API_VERSION. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 4 => + array ( + 'message' => 'Added getApiVersion() and removed from getAttribute().', + 'raw' => 'Added getApiVersion() and removed from getAttribute(). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 5 => + array ( + 'message' => 'Supported Firebird 4.0 datatypes.', + 'raw' => 'Supported Firebird 4.0 datatypes. (sim1984)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'sim1984', + ), + ), + ), + 6 => + array ( + 'message' => 'Support proper formatting of time zone types.', + 'raw' => 'Support proper formatting of time zone types. (sim1984)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'sim1984', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed GH-15604 (Always make input parameters nullable).', + 'raw' => 'Fixed GH-15604 (Always make input parameters nullable). (sim1984)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'sim1984', + ), + ), + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Added class Pdo\\Mysql.', + 'raw' => 'Added class Pdo\\Mysql. (danack, kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danack', + 1 => 'kocsismate', + ), + ), + ), + 2 => + array ( + 'message' => 'Added custom SQL parser.', + 'raw' => 'Added custom SQL parser. (Matteo Beccati)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Matteo Beccati', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-15949 (PDO_MySQL not properly quoting PDO_PARAM_LOB binary data).', + 'raw' => 'Fixed GH-15949 (PDO_MySQL not properly quoting PDO_PARAM_LOB binary data). (mbeccati, lcobucci)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mbeccati', + 1 => 'lcobucci', + ), + ), + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Added class Pdo\\Odbc.', + 'raw' => 'Added class Pdo\\Odbc. (danack, kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danack', + 1 => 'kocsismate', + ), + ), + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-12423, DSN credentials being prioritized over the user/password PDO constructor arguments.', + 'raw' => 'Fixed GH-12423, DSN credentials being prioritized over the user/password PDO constructor arguments. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed native float support with pdo_pgsql query results.', + 'raw' => 'Fixed native float support with pdo_pgsql query results. (Yurunsoft)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yurunsoft', + ), + ), + ), + 2 => + array ( + 'message' => 'Added class Pdo\\Pgsql.', + 'raw' => 'Added class Pdo\\Pgsql. (danack, kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danack', + 1 => 'kocsismate', + ), + ), + ), + 3 => + array ( + 'message' => 'Retrieve the memory usage of the query result resource.', + 'raw' => 'Retrieve the memory usage of the query result resource. (KentarouTakeda)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'KentarouTakeda', + ), + ), + ), + 4 => + array ( + 'message' => 'Added Pdo\\Pgsql::setNoticeCallBack method to receive DB notices.', + 'raw' => 'Added Pdo\\Pgsql::setNoticeCallBack method to receive DB notices. (outtersg)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'outtersg', + ), + ), + ), + 5 => + array ( + 'message' => 'Added custom SQL parser.', + 'raw' => 'Added custom SQL parser. (Matteo Beccati)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Matteo Beccati', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed GH-15986 (Double-free due to Pdo\\Pgsql::setNoticeCallback()).', + 'raw' => 'Fixed GH-15986 (Double-free due to Pdo\\Pgsql::setNoticeCallback()). (cmb, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'nielsdos', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed GH-12940 (Using PQclosePrepared when available instead of the DEALLOCATE command to free statements resources).', + 'raw' => 'Fixed GH-12940 (Using PQclosePrepared when available instead of the DEALLOCATE command to free statements resources). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 8 => + array ( + 'message' => 'Remove PGSQL_ATTR_RESULT_MEMORY_SIZE constant as it is provided by the new PDO Subclass as Pdo\\Pgsql::ATTR_RESULT_MEMORY_SIZE.', + 'raw' => 'Remove PGSQL_ATTR_RESULT_MEMORY_SIZE constant as it is provided by the new PDO Subclass as Pdo\\Pgsql::ATTR_RESULT_MEMORY_SIZE. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Added class Pdo\\Sqlite.', + 'raw' => 'Added class Pdo\\Sqlite. (danack, kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'danack', + 1 => 'kocsismate', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #81227 (PDO::inTransaction reports false when in transaction).', + 'raw' => 'Fixed bug #81227 (PDO::inTransaction reports false when in transaction). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '81227', + ), + ), + ), + 2 => + array ( + 'message' => 'Added custom SQL parser.', + 'raw' => 'Added custom SQL parser. (Matteo Beccati)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Matteo Beccati', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'array out of bounds, stack overflow handled for segfault handler on windows.', + 'raw' => 'array out of bounds, stack overflow handled for segfault handler on windows. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16041 (Support stack limit in phpdbg).', + 'raw' => 'Fixed bug GH-16041 (Support stack limit in phpdbg). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '16041', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added the possibility to have no conditions for pg_select.', + 'raw' => 'Added the possibility to have no conditions for pg_select. (OmarEmaraDev)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'OmarEmaraDev', + ), + ), + ), + 1 => + array ( + 'message' => 'Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag.', + 'raw' => 'Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added pg_result_memory_size to get the query result memory usage.', + 'raw' => 'Added pg_result_memory_size to get the query result memory usage. (KentarouTakeda)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'KentarouTakeda', + ), + ), + ), + 3 => + array ( + 'message' => 'Added pg_change_password to alter an user\'s password.', + 'raw' => 'Added pg_change_password to alter an user\'s password. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal the end of the COPY.', + 'raw' => 'Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal the end of the COPY. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added pg_socket_poll to poll on the connection.', + 'raw' => 'Added pg_socket_poll to poll on the connection. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Added pg_jit to get infos on server JIT support.', + 'raw' => 'Added pg_jit to get infos on server JIT support. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Added pg_set_chunked_rows_size to fetch results per chunk.', + 'raw' => 'Added pg_set_chunked_rows_size to fetch results per chunk. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 8 => + array ( + 'message' => 'pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached.', + 'raw' => 'pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12532 (PharData created from zip has incorrect timestamp).', + 'raw' => 'Fixed bug GH-12532 (PharData created from zip has incorrect timestamp). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12532', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants.', + 'raw' => 'Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 1 => + array ( + 'message' => 'Updated posix_isatty to set the error number on file descriptors.', + 'raw' => 'Updated posix_isatty to set the error number on file descriptors. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'pspell' => + array ( + 0 => + array ( + 'message' => 'Moved to PECL.', + 'raw' => 'Moved to PECL. (Derick Rethans)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick Rethans', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming).', + 'raw' => 'Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '15094', + ), + ), + ), + 1 => + array ( + 'message' => 'lcg_value() is now deprecated.', + 'raw' => 'lcg_value() is now deprecated. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed readline_info, rl_line_buffer_length/rl_len globals on update.', + 'raw' => 'Fixed readline_info, rl_line_buffer_length/rl_len globals on update. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #51558 (Shared readline build fails).', + 'raw' => 'Fixed bug #51558 (Shared readline build fails). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '51558', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed UAF with readline_info().', + 'raw' => 'Fixed UAF with readline_info(). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump).', + 'raw' => 'Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Make ReflectionGenerator::getFunction() legal after generator termination.', + 'raw' => 'Make ReflectionGenerator::getFunction() legal after generator termination. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Added ReflectionGenerator::isClosed().', + 'raw' => 'Added ReflectionGenerator::isClosed(). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on dynamic properties).', + 'raw' => 'Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on dynamic properties). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '15718', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for hooked properties).', + 'raw' => 'Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for hooked properties). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15694', + ), + ), + ), + 5 => + array ( + 'message' => 'Add missing ReflectionProperty::hasHook[s]() methods.', + 'raw' => 'Add missing ReflectionProperty::hasHook[s]() methods. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 6 => + array ( + 'message' => 'Add missing ReflectionProperty::isFinal() method.', + 'raw' => 'Add missing ReflectionProperty::isFinal() method. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName() and ReflectionFunction::inNamespace() for closures is incorrect).', + 'raw' => 'Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName() and ReflectionFunction::inNamespace() for closures is incorrect). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '16122', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16162 (No ReflectionProperty::IS_VIRTUAL)', + 'raw' => 'Fixed bug GH-16162 (No ReflectionProperty::IS_VIRTUAL) (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '16162', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed the name of the second parameter of ReflectionClass::resetAsLazyGhost().', + 'raw' => 'Fixed the name of the second parameter of ReflectionClass::resetAsLazyGhost(). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'INI settings session.sid_length and session.sid_bits_per_character are now deprecated.', + 'raw' => 'INI settings session.sid_length and session.sid_bits_per_character are now deprecated. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'Emit warnings for non-positive values of session.gc_divisor and negative values of session.gc_probability.', + 'raw' => 'Emit warnings for non-positive values of session.gc_divisor and negative values of session.gc_probability. (Jorg Sowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jorg Sowa', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16590 (UAF in session_encode()).', + 'raw' => 'Fixed bug GH-16590 (UAF in session_encode()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16590', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fix signature of simplexml_import_dom().', + 'raw' => 'Fix signature of simplexml_import_dom(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Add support for clark notation for namespaces in class map.', + 'raw' => 'Add support for clark notation for namespaces in class map. (lxShaDoWxl)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lxShaDoWxl', + ), + ), + ), + 1 => + array ( + 'message' => 'Mitigate #51561 (SoapServer with a extented class and using sessions, lost the setPersistence()).', + 'raw' => 'Mitigate #51561 (SoapServer with a extented class and using sessions, lost the setPersistence()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if wsdl operation !has output).', + 'raw' => 'Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if wsdl operation !has output). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '49278', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug #44383 (PHP DateTime not converted to xsd:datetime).', + 'raw' => 'Fixed bug #44383 (PHP DateTime not converted to xsd:datetime). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '44383', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11941 (soap with session persistence will silently fail when "session" built as a shared object).', + 'raw' => 'Fixed bug GH-11941 (soap with session persistence will silently fail when "session" built as a shared object). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '11941', + ), + ), + ), + 5 => + array ( + 'message' => 'Passing an int to SoapServer::addFunction() is now deprecated. If all PHP functions need to be provided flatten the array returned by get_defined_functions().', + 'raw' => 'Passing an int to SoapServer::addFunction() is now deprecated. If all PHP functions need to be provided flatten the array returned by get_defined_functions(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 6 => + array ( + 'message' => 'The SOAP_FUNCTIONS_ALL constant is now deprecated.', + 'raw' => 'The SOAP_FUNCTIONS_ALL constant is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug #61525 (SOAP functions require at least one space after HTTP header colon).', + 'raw' => 'Fixed bug #61525 (SOAP functions require at least one space after HTTP header colon). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '61525', + ), + ), + ), + 8 => + array ( + 'message' => 'Implement request #47317 (SoapServer::__getLastResponse()).', + 'raw' => 'Implement request #47317 (SoapServer::__getLastResponse()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added the SO_EXECLUSIVEADDRUSE windows constant.', + 'raw' => 'Added the SO_EXECLUSIVEADDRUSE windows constant. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants.', + 'raw' => 'Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added multicast group support for ipv4 on FreeBSD.', + 'raw' => 'Added multicast group support for ipv4 on FreeBSD. (jonathan@tangential.ca)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jonathan@tangential.ca', + ), + ), + ), + 4 => + array ( + 'message' => 'Added the TCP_SYNCNT constant for Linux to set number of attempts to send SYN packets from the client.', + 'raw' => 'Added the TCP_SYNCNT constant for Linux to set number of attempts to send SYN packets from the client. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris.', + 'raw' => 'Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Updated the socket_create_listen backlog argument default value to SOMAXCONN.', + 'raw' => 'Updated the socket_create_listen backlog argument default value to SOMAXCONN. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for macOs and FreeBSD.', + 'raw' => 'Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for macOs and FreeBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 8 => + array ( + 'message' => 'Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms.', + 'raw' => 'Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 9 => + array ( + 'message' => 'Add close-on-exec on socket created with socket_accept on unixes.', + 'raw' => 'Add close-on-exec on socket created with socket_accept on unixes. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 10 => + array ( + 'message' => 'Added IP_PORTRANGE* constants for BSD systems to control ephemeral port ranges.', + 'raw' => 'Added IP_PORTRANGE* constants for BSD systems to control ephemeral port ranges. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 11 => + array ( + 'message' => 'Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the newly created sockets.', + 'raw' => 'Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the newly created sockets. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 12 => + array ( + 'message' => 'Added SO_BINDTOIFINDEX to bind a socket to an interface index.', + 'raw' => 'Added SO_BINDTOIFINDEX to bind a socket to an interface index. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Add support for AEGIS-128L and AEGIS-256.', + 'raw' => 'Add support for AEGIS-128L and AEGIS-256. (jedisct1)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jedisct1', + ), + ), + ), + 1 => + array ( + 'message' => 'Enable AES-GCM on aarch64 with the ARM crypto extensions.', + 'raw' => 'Enable AES-GCM on aarch64 with the ARM crypto extensions. (jedisct1)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jedisct1', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Implement SeekableIterator for SplObjectStorage.', + 'raw' => 'Implement SeekableIterator for SplObjectStorage. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'The SplFixedArray::__wakeup() method has been deprecated as it implements __serialize() and __unserialize() which need to be overwritten instead.', + 'raw' => 'The SplFixedArray::__wakeup() method has been deprecated as it implements __serialize() and __unserialize() which need to be overwritten instead. (TysonAndre)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'TysonAndre', + ), + ), + ), + 2 => + array ( + 'message' => 'Passing a non-empty string for the $escape parameter of: - SplFileObject::setCsvControl() - SplFileObject::fputcsv() - SplFileObject::fgetcsv() is now deprecated.', + 'raw' => 'Passing a non-empty string for the $escape parameter of: - SplFileObject::setCsvControl() - SplFileObject::fputcsv() - SplFileObject::fgetcsv() is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Implement GH-12188 (Indication for the int size in phpinfo()).', + 'raw' => 'Implement GH-12188 (Indication for the int size in phpinfo()). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994).', + 'raw' => 'Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix GH-12252 (round(): Validate the rounding mode).', + 'raw' => 'Fix GH-12252 (round(): Validate the rounding mode). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 3 => + array ( + 'message' => 'Increase the default BCrypt cost to 12.', + 'raw' => 'Increase the default BCrypt cost to 12. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask).', + 'raw' => 'Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12592', + ), + ), + ), + 5 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Cast large floats that are within int range to int in number_format so the precision is not lost.', + 'raw' => 'Cast large floats that are within int range to int in number_format so the precision is not lost. (Marc Bennewitz)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Marc Bennewitz', + ), + ), + ), + 7 => + array ( + 'message' => 'Add support for 4 new rounding modes to the round() function.', + 'raw' => 'Add support for 4 new rounding modes to the round() function. (Jorg Sowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jorg Sowa', + ), + ), + ), + 8 => + array ( + 'message' => 'debug_zval_dump() now indicates whether an array is packed.', + 'raw' => 'debug_zval_dump() now indicates whether an array is packed. (Max Semenik)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Max Semenik', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix GH-12143 (Optimize round).', + 'raw' => 'Fix GH-12143 (Optimize round). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 10 => + array ( + 'message' => 'Changed return type of long2ip to string from string|false.', + 'raw' => 'Changed return type of long2ip to string from string|false. (Jorg Sowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jorg Sowa', + ), + ), + ), + 11 => + array ( + 'message' => 'Fix GH-12143 (Extend the maximum precision round can handle by one digit).', + 'raw' => 'Fix GH-12143 (Extend the maximum precision round can handle by one digit). (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 12 => + array ( + 'message' => 'Added the http_get_last_response_headers() and http_clear_last_response_headers() that allows retrieving the same content as the magic $http_response_header variable.', + 'raw' => 'Added the http_get_last_response_headers() and http_clear_last_response_headers() that allows retrieving the same content as the magic $http_response_header variable.', + 'references' => + array ( + ), + ), + 13 => + array ( + 'message' => 'Add php_base64_encode_ex() API.', + 'raw' => 'Add php_base64_encode_ex() API. (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + 14 => + array ( + 'message' => 'Implemented "Raising zero to the power of negative number" RFC.', + 'raw' => 'Implemented "Raising zero to the power of negative number" RFC. (Jorg Sowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jorg Sowa', + ), + ), + ), + 15 => + array ( + 'message' => 'Added array_find(), array_find_key(), array_all(), and array_any().', + 'raw' => 'Added array_find(), array_find_key(), array_all(), and array_any(). (josh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'josh', + ), + ), + ), + 16 => + array ( + 'message' => 'Change highlight_string() and print_r() return type to string|true.', + 'raw' => 'Change highlight_string() and print_r() return type to string|true. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + 17 => + array ( + 'message' => 'Fix references in request_parse_body() options array.', + 'raw' => 'Fix references in request_parse_body() options array. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 18 => + array ( + 'message' => 'Add RoundingMode enum.', + 'raw' => 'Add RoundingMode enum. (timwolla, saki)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'saki', + ), + ), + ), + 19 => + array ( + 'message' => 'Unserializing the uppercase \'S\' tag is now deprecated.', + 'raw' => 'Unserializing the uppercase \'S\' tag is now deprecated. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 20 => + array ( + 'message' => 'Enables crc32 auxiliary detection on OpenBSD.', + 'raw' => 'Enables crc32 auxiliary detection on OpenBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 21 => + array ( + 'message' => 'Passing a non-empty string for the $escape parameter of: - fputcsv() - fgetcsv() - str_getcsv() is now deprecated.', + 'raw' => 'Passing a non-empty string for the $escape parameter of: - fputcsv() - fgetcsv() - str_getcsv() is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 22 => + array ( + 'message' => 'The str_getcsv() function now throws ValueErrors when the $separator and $enclosure arguments are not one byte long, or if the $escape is not one byte long or the empty string. This aligns the behaviour to be identical to that of fputcsv() and fgetcsv().', + 'raw' => 'The str_getcsv() function now throws ValueErrors when the $separator and $enclosure arguments are not one byte long, or if the $escape is not one byte long or the empty string. This aligns the behaviour to be identical to that of fputcsv() and fgetcsv(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 23 => + array ( + 'message' => 'php_uname() now throws ValueErrors on invalid inputs.', + 'raw' => 'php_uname() now throws ValueErrors on invalid inputs. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 24 => + array ( + 'message' => 'The "allowed_classes" option for unserialize() now throws TypeErrors and ValueErrors if it is not an array of class names.', + 'raw' => 'The "allowed_classes" option for unserialize() now throws TypeErrors and ValueErrors if it is not an array of class names. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 25 => + array ( + 'message' => 'Implemented GH-15685 (improve proc_open error reporting on Windows).', + 'raw' => 'Implemented GH-15685 (improve proc_open error reporting on Windows). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 26 => + array ( + 'message' => 'Add support for backed enums in http_build_query().', + 'raw' => 'Add support for backed enums in http_build_query(). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 27 => + array ( + 'message' => 'Fixed bug GH-15982 (Assertion failure with array_find when references are involved).', + 'raw' => 'Fixed bug GH-15982 (Assertion failure with array_find when references are involved). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15982', + ), + ), + ), + 28 => + array ( + 'message' => 'Fixed parameter names of fpow() to be identical to pow().', + 'raw' => 'Fixed parameter names of fpow() to be identical to pow(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Implemented GH-15155 (Stream context is lost when custom stream wrapper is being filtered).', + 'raw' => 'Implemented GH-15155 (Stream context is lost when custom stream wrapper is being filtered). (Quentin Dreyer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Quentin Dreyer', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Failures in the constructor now throw exceptions rather than emitting warnings and having a broken object.', + 'raw' => 'Failures in the constructor now throw exceptions rather than emitting warnings and having a broken object. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling().', + 'raw' => 'Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Update the icon of the Windows executables, e.g. php.exe.', + 'raw' => 'Update the icon of the Windows executables, e.g. php.exe. (Ayesh, Nurudin Imširović)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + 1 => 'Nurudin Imširović', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16199 (GREP_HEADER() is broken).', + 'raw' => 'Fixed bug GH-16199 (GREP_HEADER() is broken). (Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '16199', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Added XML_OPTION_PARSE_HUGE parser option.', + 'raw' => 'Added XML_OPTION_PARSE_HUGE parser option. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on 64-bit builds).', + 'raw' => 'Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on 64-bit builds). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '81481', + ), + ), + ), + 2 => + array ( + 'message' => 'The xml_set_object() function has been deprecated.', + 'raw' => 'The xml_set_object() function has been deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 3 => + array ( + 'message' => 'Passing non-callable strings to the xml_set_*_handler() functions is now deprecated.', + 'raw' => 'Passing non-callable strings to the xml_set_*_handler() functions is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Declares class constant types.', + 'raw' => 'Declares class constant types. (Ayesh)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh', + ), + ), + ), + 1 => + array ( + 'message' => 'Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString().', + 'raw' => 'Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15123 (var_dump doesn\'t actually work on XMLReader).', + 'raw' => 'Fixed bug GH-15123 (var_dump doesn\'t actually work on XMLReader). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '15123', + ), + ), + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory().', + 'raw' => 'Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Implement request #64137 (XSLTProcessor::setParameter() should allow both quotes to be used).', + 'raw' => 'Implement request #64137 (XSLTProcessor::setParameter() should allow both quotes to be used). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC.', + 'raw' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars.', + 'raw' => 'Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix trampoline leak in xpath callables.', + 'raw' => 'Fix trampoline leak in xpath callables. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11.', + 'raw' => 'Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11. (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.5/changelist.inc b/include/releases/8.5/changelist.inc new file mode 100644 index 0000000000..bc266ab80e --- /dev/null +++ b/include/releases/8.5/changelist.inc @@ -0,0 +1,7399 @@ + + array ( + 'date' => NULL, + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21901 (Stale getopt() optional value).', + 'raw' => 'Fixed bug GH-21901 (Stale getopt() optional value). (onthebed)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'onthebed', + ), + 'bugs' => + array ( + 0 => '21901', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18422 (int overflow in php_date_llabs).', + 'raw' => 'Fixed bug GH-18422 (int overflow in php_date_llabs). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '18422', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-22077 (UAF in custom XPath function).', + 'raw' => 'Fixed bug GH-22077 (UAF in custom XPath function). (afflerbach/David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'afflerbach/David Carlier', + ), + 'bugs' => + array ( + 0 => '22077', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed tracing JIT crash when a VM interrupt is handled during an observed user function call.', + 'raw' => 'Fixed tracing JIT crash when a VM interrupt is handled during an observed user function call. (Levi Morrison)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Levi Morrison', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21746 (Segfault with tracing JIT).', + 'raw' => 'Fixed bug GH-21746 (Segfault with tracing JIT). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21746', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-22004 (Assertion failure at ext/opcache/jit/zend_jit_trace.c).', + 'raw' => 'Fixed bug GH-22004 (Assertion failure at ext/opcache/jit/zend_jit_trace.c). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '22004', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed tailcall VM crash when a VM interrupt is handled from a VM helper.', + 'raw' => 'Fixed tailcall VM crash when a VM interrupt is handled from a VM helper. (Levi Morrison, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Levi Morrison', + 1 => 'Arnaud', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility issues with OpenSSL 4.0.', + 'raw' => 'Fix compatibility issues with OpenSSL 4.0. (jordikroon, Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jordikroon', + 1 => 'Remi', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21689 (version_compare() incorrectly handles versions ending with a dot).', + 'raw' => 'Fixed bug GH-21689 (version_compare() incorrectly handles versions ending with a dot). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '21689', + ), + ), + ), + ), + 'uri' => + array ( + 0 => + array ( + 'message' => 'Fixed CVE-2026-44927 (In uriparser before 1.0.2, there is pointer difference truncation to int in various places). (CVE-2026-44927)', + 'raw' => 'Fixed CVE-2026-44927 (In uriparser before 1.0.2, there is pointer difference truncation to int in various places). (CVE-2026-44927) (Sebastian Pipping)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Sebastian Pipping', + ), + 'cves' => + array ( + 0 => 'CVE-2026-44927', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed CVE-2026-44928 (In uriparser before 1.0.2, the function family EqualsUri can misclassify two unequal URIs as equal). (CVE-2026-44928)', + 'raw' => 'Fixed CVE-2026-44928 (In uriparser before 1.0.2, the function family EqualsUri can misclassify two unequal URIs as equal). (CVE-2026-44928) (Sebastian Pipping)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Sebastian Pipping', + ), + 'cves' => + array ( + 0 => 'CVE-2026-44928', + ), + ), + ), + ), + ), + ), + '8.5.6' => + array ( + 'date' => '07 May 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors).', + 'raw' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '19983', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed ZEND_API mismatch on zend_ce_closure forward decl for Windows+Clang.', + 'raw' => 'Fixed ZEND_API mismatch on zend_ce_closure forward decl for Windows+Clang. (henderkes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'henderkes', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21504 (Incorrect RC-handling for ZEND_EXT_STMT op1).', + 'raw' => 'Fixed bug GH-21504 (Incorrect RC-handling for ZEND_EXT_STMT op1). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21504', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies).', + 'raw' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21478', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21605 (Missing addref for Countable::count()).', + 'raw' => 'Fixed bug GH-21605 (Missing addref for Countable::count()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21605', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws).', + 'raw' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws). (macoaure)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'macoaure', + ), + 'bugs' => + array ( + 0 => '21699', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-21603 (Missing addref for __unset).', + 'raw' => 'Fixed bug GH-21603 (Missing addref for __unset). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21603', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV).', + 'raw' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV). (Pratik Bhujel)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Pratik Bhujel', + ), + 'bugs' => + array ( + 0 => '21760', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings).', + 'raw' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '21754', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Shivam Mathur', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263)', + 'raw' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263) (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7263', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6735', + ), + ), + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17399 (iconv memory leak on bailout).', + 'raw' => 'Fixed bug GH-17399 (iconv memory leak on bailout). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '17399', + ), + ), + ), + ), + 'lexbor' => + array ( + 0 => + array ( + 'message' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079)', + 'raw' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079) (ndossche, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'ilutov', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'vi3tL0u1s', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7259', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104)', + 'raw' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6104', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg).', + 'raw' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21158', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch).', + 'raw' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21593', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21460 (COND optimization regression).', + 'raw' => 'Fixed bug GH-21460 (COND optimization regression). (Dmitry, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21460', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed faulty returns out of zend_try block in zend_jit_trace().', + 'raw' => 'Fixed faulty returns out of zend_try block in zend_jit_trace(). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak regression in openssl_pbkdf2().', + 'raw' => 'Fix memory leak regression in openssl_pbkdf2(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix a bunch of memory leaks and crashes on edge cases.', + 'raw' => 'Fix a bunch of memory leaks and crashes on edge cases. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14179', + ), + ), + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21683 (pdo_pgsql throws with ATTR_PREFETCH=0 on empty result set).', + 'raw' => 'Fixed bug GH-21683 (pdo_pgsql throws with ATTR_PREFETCH=0 on empty result set). (thomasschiet)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'thomasschiet', + ), + 'bugs' => + array ( + 0 => '21683', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Restore is_link handler in phar_intercept_functions_shutdown.', + 'raw' => 'Restore is_link handler in phar_intercept_functions_shutdown. (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment).', + 'raw' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21797', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix memory leak in Phar::offsetGet().', + 'raw' => 'Fix memory leak in Phar::offsetGet(). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix memory leak in phar_add_file().', + 'raw' => 'Fix memory leak in phar_add_file(). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close).', + 'raw' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21799', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid.', + 'raw' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid. (JarneClauw)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'JarneClauw', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state).', + 'raw' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21731', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak when session GC callback return a refcounted value.', + 'raw' => 'Fixed memory leak when session GC callback return a refcounted value. (jorgsowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jorgsowa', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-6722', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7261', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7262', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free).', + 'raw' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '21499', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix concurrent iteration and deletion issues in SplObjectStorage.', + 'raw' => 'Fix concurrent iteration and deletion issues in SplObjectStorage. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed wrong free list comparator pointer type.', + 'raw' => 'Fixed wrong free list comparator pointer type. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'TimWolla', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7568', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'cves' => + array ( + 0 => 'CVE-2026-7258', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set).', + 'raw' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21468', + ), + ), + ), + ), + 'uri' => + array ( + 0 => + array ( + 'message' => 'Fixed CVE-2026-42371 (uriparser before 1.0.1 has numeric truncation in text range comparison). (CVE-2026-42371)', + 'raw' => 'Fixed CVE-2026-42371 (uriparser before 1.0.1 has numeric truncation in text range comparison). (CVE-2026-42371) (Joshua W. Windle)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Joshua W. Windle', + ), + 'cves' => + array ( + 0 => 'CVE-2026-42371', + ), + ), + ), + ), + ), + ), + '8.5.5' => + array ( + 'date' => '26 Mar 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20672 (Incorrect property_info sizing for locally shadowed trait properties).', + 'raw' => 'Fixed bug GH-20672 (Incorrect property_info sizing for locally shadowed trait properties). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20672', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies).', + 'raw' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + ), + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix truncation of total output size causing erroneous errors.', + 'raw' => 'Fix truncation of total output size causing erroneous errors. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes).', + 'raw' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21486', + ), + ), + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure.', + 'raw' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support).', + 'raw' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21431', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script).', + 'raw' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21052', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results).', + 'raw' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results). (Dmitry, iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '20838', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context).', + 'raw' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context). (Dmitry, iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitry', + 1 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21267', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-21395 (uaf in jit).', + 'raw' => 'Fixed bug GH-21395 (uaf in jit). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21395', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys).', + 'raw' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys). (iliaal)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'iliaal', + ), + 'bugs' => + array ( + 0 => '21083', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix missing error propagation for BIO_printf() calls.', + 'raw' => 'Fix missing error propagation for BIO_printf() calls. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed signal handler installation on AIX by bumping the storage size of the num_signals global.', + 'raw' => 'Fixed signal handler installation on AIX by bumping the storage size of the num_signals global. (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl.', + 'raw' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21333 (use after free when unlinking entries during iteration of a compressed phar).', + 'raw' => 'Fixed bug GH-21333 (use after free when unlinking entries during iteration of a compressed phar). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21333', + ), + ), + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments).', + 'raw' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21336', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes.', + 'raw' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap).', + 'raw' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21454', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers).', + 'raw' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20906', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize).', + 'raw' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize). (y-guyon)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'y-guyon', + ), + 'bugs' => + array ( + 0 => '20627', + ), + ), + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in shm_get_var() when variable is corrupted.', + 'raw' => 'Fix memory leak in shm_get_var() when variable is corrupted. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument).', + 'raw' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage).', + 'raw' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage). (David Carlier/ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier/ndossche', + ), + 'bugs' => + array ( + 0 => '21496', + ), + ), + ), + ), + ), + ), + '8.5.4' => + array ( + 'date' => '12 Mar 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds).', + 'raw' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21029', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21059 (Segfault when preloading constant AST closure).', + 'raw' => 'Fixed bug GH-21059 (Segfault when preloading constant AST closure). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21059', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21072 (Crash on (unset) cast in constant expression).', + 'raw' => 'Fixed bug GH-21072 (Crash on (unset) cast in constant expression). (arshidkv12)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'arshidkv12', + ), + 'bugs' => + array ( + 0 => '21072', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix deprecation now showing when accessing null key of an array with JIT.', + 'raw' => 'Fix deprecation now showing when accessing null key of an array with JIT. (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()).', + 'raw' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20657', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()).', + 'raw' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20504', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value).', + 'raw' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-21215 (Build fails with -std=).', + 'raw' => 'Fixed bug GH-21215 (Build fails with -std=). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '21215', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool).', + 'raw' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool). (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + 'bugs' => + array ( + 0 => '13674', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Don\'t truncate length.', + 'raw' => 'Don\'t truncate length. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start).', + 'raw' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20936', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix timezone offset with seconds losing precision.', + 'raw' => 'Fix timezone offset with seconds losing precision. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError).', + 'raw' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21077', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError).', + 'raw' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '21097', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21262 (ldap_modify() too strict controls argument validation makes it impossible to unset attribute).', + 'raw' => 'Fixed bug GH-21262 (ldap_modify() too strict controls argument validation makes it impossible to unset attribute). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '21262', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries).', + 'raw' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries). (Jordi Kroon)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jordi Kroon', + ), + 'bugs' => + array ( + 0 => '21223', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris).', + 'raw' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris). (Petr Sumbera)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Petr Sumbera', + ), + 'bugs' => + array ( + 0 => '20718', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object).', + 'raw' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '21227', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix a bunch of leaks and error propagation.', + 'raw' => 'Fix a bunch of leaks and error propagation. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed compilation with clang (missing intrin.h include).', + 'raw' => 'Fixed compilation with clang (missing intrin.h include). (Kévin Dunglas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kévin Dunglas', + ), + ), + ), + ), + ), + ), + '8.5.3' => + array ( + 'date' => '29 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20806 (preserve_none feature compatiblity with LTO).', + 'raw' => 'Fixed bug GH-20806 (preserve_none feature compatiblity with LTO). (henderkes)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'henderkes', + ), + 'bugs' => + array ( + 0 => '20806', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20767 (build failure with musttail/preserve_none feature on macOs).', + 'raw' => 'Fixed bug GH-20767 (build failure with musttail/preserve_none feature on macOs). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20767', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()).', + 'raw' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '20837', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber).', + 'raw' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization).', + 'raw' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20914 (Internal enums can be cloned and compared).', + 'raw' => 'Fixed bug GH-20914 (Internal enums can be cloned and compared). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20914', + ), + ), + ), + 6 => + array ( + 'message' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value).', + 'raw' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-20895 (ReflectionProperty does not return the PHPDoc of a property if it contains an attribute with a Closure).', + 'raw' => 'Fixed bug GH-20895 (ReflectionProperty does not return the PHPDoc of a property if it contains an attribute with a Closure). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '20895', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction).', + 'raw' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '20766', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value).', + 'raw' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 10 => + array ( + 'message' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf).', + 'raw' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion).', + 'raw' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20905', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed bug GH-20479 (Hooked object properties overflow).', + 'raw' => 'Fixed bug GH-20479 (Hooked object properties overflow). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20479', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Update timelib to 2022.16.', + 'raw' => 'Update timelib to 2022.16. (Derick)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Derick', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts).', + 'raw' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts). (lexborisov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lexborisov', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding).', + 'raw' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20833', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references).', + 'raw' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '20836', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference).', + 'raw' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference). (khasinski)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'khasinski', + ), + 'bugs' => + array ( + 0 => '20818', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when sk_X509_new_null() fails.', + 'raw' => 'Fix memory leaks when sk_X509_new_null() fails. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails.', + 'raw' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails.', + 'raw' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory).', + 'raw' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20882', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB.', + 'raw' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()).', + 'raw' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '18139', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration).', + 'raw' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20856', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS)', + 'raw' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '74357', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20843 (var_dump() crash with nested objects)', + 'raw' => 'Fixed bug GH-20843 (var_dump() crash with nested objects) (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20843', + ), + ), + ), + ), + ), + ), + '8.5.2' => + array ( + 'date' => '15 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument).', + 'raw' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()).', + 'raw' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20695', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator).', + 'raw' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20714', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation).', + 'raw' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20352', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20745 ("Casting out of range floats to int" applies to strings).', + 'raw' => 'Fixed bug GH-20745 ("Casting out of range floats to int" applies to strings). (Bob)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Bob', + ), + 'bugs' => + array ( + 0 => '20745', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects).', + 'raw' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20722', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()).', + 'raw' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20444', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20631 (Integer underflow in exif HEIF parsing when pos.size < 2).', + 'raw' => 'Fixed bug GH-20631 (Integer underflow in exif HEIF parsing when pos.size < 2). (Oblivionsage)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Oblivionsage', + ), + 'bugs' => + array ( + 0 => '20631', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix leak in umsg_format_helper().', + 'raw' => 'Fix leak in umsg_format_helper(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in ldap_set_options().', + 'raw' => 'Fix memory leak in ldap_set_options(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'lexbor' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20668 (\\Uri\\WhatWg\\Url::withHost() crashes (SEGV) for URLs using the file: scheme).', + 'raw' => 'Fixed bug GH-20668 (\\Uri\\WhatWg\\Url::withHost() crashes (SEGV) for URLs using the file: scheme). (lexborisov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lexborisov', + ), + 'bugs' => + array ( + 0 => '20668', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator).', + 'raw' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator). (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + 'bugs' => + array ( + 0 => '20674', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options).', + 'raw' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20802', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling.', + 'raw' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails).', + 'raw' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20732', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix SplFileInfo::openFile() in write mode.', + 'raw' => 'Fix SplFileInfo::openFile() in write mode. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix build on legacy OpenSSL 1.1.0 systems.', + 'raw' => 'Fix build on legacy OpenSSL 1.1.0 systems. (Giovanni Giacobbi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Giovanni Giacobbi', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug #74154 (Phar extractTo creates empty files).', + 'raw' => 'Fixed bug #74154 (Phar extractTo creates empty files). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '74154', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fix support for MM module.', + 'raw' => 'Fix support for MM module. (Michael Orlitzky)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + ), + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned).', + 'raw' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned). (ndossche, plusminmax)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'plusminmax', + ), + 'bugs' => + array ( + 0 => '20699', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix error check for proc_open() command.', + 'raw' => 'Fix error check for proc_open() command. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix memory leak in mail() when header key is numeric.', + 'raw' => 'Fix memory leak in mail() when header key is numeric. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed).', + 'raw' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20582', + ), + ), + ), + ), + 'uri' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20771 (Assertion failure when getUnicodeHost() returns empty string).', + 'raw' => 'Fixed bug GH-20771 (Assertion failure when getUnicodeHost() returns empty string). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20771', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix OOB gzseek() causing assertion failure.', + 'raw' => 'Fix OOB gzseek() causing assertion failure. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + ), + ), + '8.5.1' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Sync all boost.context files with release 1.86.0.', + 'raw' => 'Sync all boost.context files with release 1.86.0. (mvorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mvorisek', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter).', + 'raw' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20435', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20546 (preserve_none attribute configure check on macOs issue).', + 'raw' => 'Fixed bug GH-20546 (preserve_none attribute configure check on macOs issue). (David Carlier/cho-m)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier/cho-m', + ), + 'bugs' => + array ( + 0 => '20546', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()).', + 'raw' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()). (ndossche, David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20286', + ), + ), + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when edge case is hit when registering xpath callback.', + 'raw' => 'Fix memory leak when edge case is hit when registering xpath callback. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase).', + 'raw' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20395', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix missing NUL byte check on C14NFile().', + 'raw' => 'Fix missing NUL byte check on C14NFile(). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value).', + 'raw' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20483', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants).', + 'raw' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '20426', + ), + ), + ), + ), + 'lexbor' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20501 (\\Uri\\WhatWg\\Url lose host after calling withPath() or withQuery()).', + 'raw' => 'Fixed bug GH-20501 (\\Uri\\WhatWg\\Url lose host after calling withPath() or withQuery()). (lexborisov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lexborisov', + ), + 'bugs' => + array ( + 0 => '20501', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20502 (\\Uri\\WhatWg\\Url crashes (SEGV) when parsing malformed URL due to Lexbor memory corruption).', + 'raw' => 'Fixed bug GH-20502 (\\Uri\\WhatWg\\Url crashes (SEGV) when parsing malformed URL due to Lexbor memory corruption). (lexborisov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'lexborisov', + ), + 'bugs' => + array ( + 0 => '20502', + ), + ), + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling.', + 'raw' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Make mysqli_begin_transaction() report errors properly.', + 'raw' => 'Make mysqli_begin_transaction() report errors properly. (Kamil Tekiela)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Kamil Tekiela', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets).', + 'raw' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '20528', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer).', + 'raw' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20329', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20553 (PDO::FETCH_CLASSTYPE ignores $constructorArgs in PHP 8.5.0).', + 'raw' => 'Fixed bug GH-20553 (PDO::FETCH_CLASSTYPE ignores $constructorArgs in PHP 8.5.0). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + 'bugs' => + array ( + 0 => '20553', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14180', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub).', + 'raw' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub). (ndossche, TimWolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + 1 => 'TimWolla', + ), + 'bugs' => + array ( + 0 => '20442', + ), + ), + ), + 1 => + array ( + 'message' => 'Fix broken return value of fflush() for phar file entries.', + 'raw' => 'Fix broken return value of fflush() for phar file entries. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix assertion failure when fseeking a phar file out of bounds.', + 'raw' => 'Fix assertion failure when fseeking a phar file out of bounds. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog().', + 'raw' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization).', + 'raw' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20614', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in array_diff() with custom type checks.', + 'raw' => 'Fix memory leak in array_diff() with custom type checks. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures).', + 'raw' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20583', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14178', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'cves' => + array ( + 0 => 'CVE-2025-14177', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints).', + 'raw' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '20370', + ), + ), + ), + ), + 'uri' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20366 (ext/uri incorrectly throws ValueError when encountering null byte).', + 'raw' => 'Fixed bug GH-20366 (ext/uri incorrectly throws ValueError when encountering null byte). (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + 'bugs' => + array ( + 0 => '20366', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed CVE-2025-67899 (uriparser through 0.9.9 allows unbounded recursion and stack consumption).', + 'raw' => 'Fixed CVE-2025-67899 (uriparser through 0.9.9 allows unbounded recursion and stack consumption). (Sebastian Pipping)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Sebastian Pipping', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback).', + 'raw' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback). (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + 'bugs' => + array ( + 0 => '20439', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix crash in property existence test.', + 'raw' => 'Fix crash in property existence test. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + 1 => + array ( + 'message' => 'Don\'t truncate return value of zip_fread() with user sizes.', + 'raw' => 'Don\'t truncate return value of zip_fread() with user sizes. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ndossche', + ), + ), + ), + ), + ), + ), + '8.5.0' => + array ( + 'date' => '20 Nov 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added the #[\\NoDiscard] attribute to indicate that a function\'s return value is important and should be consumed.', + 'raw' => 'Added the #[\\NoDiscard] attribute to indicate that a function\'s return value is important and should be consumed. (timwolla, edorian)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'edorian', + ), + ), + ), + 1 => + array ( + 'message' => 'Added the (void) cast to indicate that not using a value is intentional.', + 'raw' => 'Added the (void) cast to indicate that not using a value is intentional. (timwolla, edorian)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'edorian', + ), + ), + ), + 2 => + array ( + 'message' => 'Added get_error_handler(), get_exception_handler() functions.', + 'raw' => 'Added get_error_handler(), get_exception_handler() functions. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 3 => + array ( + 'message' => 'Added support for casts in constant expressions.', + 'raw' => 'Added support for casts in constant expressions. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Added the pipe (|>) operator.', + 'raw' => 'Added the pipe (|>) operator. (crell)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'crell', + ), + ), + ), + 5 => + array ( + 'message' => 'Added support for `final` with constructor property promotion.', + 'raw' => 'Added support for `final` with constructor property promotion. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 6 => + array ( + 'message' => 'Added support for configuring the URI parser for the FTP/FTPS as well as the SSL/TLS stream wrappers as described in https://wiki.php.net/rfc/url_parsing_api#plugability.', + 'raw' => 'Added support for configuring the URI parser for the FTP/FTPS as well as the SSL/TLS stream wrappers as described in https://wiki.php.net/rfc/url_parsing_api#plugability. (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + 7 => + array ( + 'message' => 'Added PHP_BUILD_PROVIDER constant.', + 'raw' => 'Added PHP_BUILD_PROVIDER constant. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 8 => + array ( + 'message' => 'Added PHP_BUILD_DATE constant.', + 'raw' => 'Added PHP_BUILD_DATE constant. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 9 => + array ( + 'message' => 'Added support for Closures and first class callables in constant expressions.', + 'raw' => 'Added support for Closures and first class callables in constant expressions. (timwolla, edorian)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'edorian', + ), + ), + ), + 10 => + array ( + 'message' => 'Add support for backtraces for fatal errors.', + 'raw' => 'Add support for backtraces for fatal errors. (enorris)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'enorris', + ), + ), + ), + 11 => + array ( + 'message' => 'Add clone-with support to the clone() function.', + 'raw' => 'Add clone-with support to the clone() function. (timwolla, edorian)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'edorian', + ), + ), + ), + 12 => + array ( + 'message' => 'Add RFC 3986 and WHATWG URL compliant APIs for URL parsing and manipulation', + 'raw' => 'Add RFC 3986 and WHATWG URL compliant APIs for URL parsing and manipulation (kocsismate, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + 1 => 'timwolla', + ), + ), + ), + 13 => + array ( + 'message' => 'Fixed AST printing for immediately invoked Closure.', + 'raw' => 'Fixed AST printing for immediately invoked Closure. (Dmitrii Derepko)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Dmitrii Derepko', + ), + ), + ), + 14 => + array ( + 'message' => 'Properly handle __debugInfo() returning an array reference.', + 'raw' => 'Properly handle __debugInfo() returning an array reference. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 15 => + array ( + 'message' => 'Properly handle reference return value from __toString().', + 'raw' => 'Properly handle reference return value from __toString(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 16 => + array ( + 'message' => 'Improved error message of UnhandledMatchError for zend.exception_string_param_max_len=0.', + 'raw' => 'Improved error message of UnhandledMatchError for zend.exception_string_param_max_len=0. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 17 => + array ( + 'message' => 'Fixed bug GH-15753 and GH-16198 (Bind traits before parent class).', + 'raw' => 'Fixed bug GH-15753 and GH-16198 (Bind traits before parent class). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '15753', + ), + ), + ), + 18 => + array ( + 'message' => 'Fixed bug GH-17951 (memory_limit is not always limited by max_memory_limit).', + 'raw' => 'Fixed bug GH-17951 (memory_limit is not always limited by max_memory_limit). (manuelm)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'manuelm', + ), + 'bugs' => + array ( + 0 => '17951', + ), + ), + ), + 19 => + array ( + 'message' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval).', + 'raw' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20183', + ), + ), + ), + 20 => + array ( + 'message' => 'Fixed bug GH-20113 (Missing new Foo(...) error in constant expressions).', + 'raw' => 'Fixed bug GH-20113 (Missing new Foo(...) error in constant expressions). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20113', + ), + ), + ), + 21 => + array ( + 'message' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown).', + 'raw' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19844', + ), + ), + ), + 22 => + array ( + 'message' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).', + 'raw' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '20177', + ), + ), + ), + 23 => + array ( + 'message' => 'Fix OSS-Fuzz #447521098 (Fatal error during sccp shift eval).', + 'raw' => 'Fix OSS-Fuzz #447521098 (Fatal error during sccp shift eval). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 24 => + array ( + 'message' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN).', + 'raw' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN). (outtersg)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'outtersg', + ), + 'bugs' => + array ( + 0 => '20002', + ), + ), + ), + 25 => + array ( + 'message' => 'Fixed bug GH-19352 (Cross-compilation with musl C library).', + 'raw' => 'Fixed bug GH-19352 (Cross-compilation with musl C library). (henderkes, Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'henderkes', + 1 => 'Peter Kokot', + ), + 'bugs' => + array ( + 0 => '19352', + ), + ), + ), + 26 => + array ( + 'message' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks).', + 'raw' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '19765', + ), + ), + ), + 27 => + array ( + 'message' => 'Fixed hard_timeout with --enable-zend-max-execution-timers.', + 'raw' => 'Fixed hard_timeout with --enable-zend-max-execution-timers. (Appla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Appla', + ), + ), + ), + 28 => + array ( + 'message' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).', + 'raw' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19839', + ), + ), + ), + 29 => + array ( + 'message' => 'Fixed bug GH-19823 (register_argc_argv deprecation emitted twice when using OPcache).', + 'raw' => 'Fixed bug GH-19823 (register_argc_argv deprecation emitted twice when using OPcache). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '19823', + ), + ), + ), + 30 => + array ( + 'message' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).', + 'raw' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19480', + ), + ), + ), + 31 => + array ( + 'message' => 'Fixed bug GH-19719 (Allow empty statements before declare(strict_types)).', + 'raw' => 'Fixed bug GH-19719 (Allow empty statements before declare(strict_types)). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19719', + ), + ), + ), + 32 => + array ( + 'message' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv).', + 'raw' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19934', + ), + ), + ), + 33 => + array ( + 'message' => 'Fixed bug GH-19613 (Stale array iterator pointer).', + 'raw' => 'Fixed bug GH-19613 (Stale array iterator pointer). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19613', + ), + ), + ), + 34 => + array ( + 'message' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge).', + 'raw' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19679', + ), + ), + ), + 35 => + array ( + 'message' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).', + 'raw' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '19681', + ), + ), + ), + 36 => + array ( + 'message' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).', + 'raw' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18850', + ), + ), + ), + 37 => + array ( + 'message' => 'Fixed bug GH-19476 (pipe operator fails to correctly handle returning by reference).', + 'raw' => 'Fixed bug GH-19476 (pipe operator fails to correctly handle returning by reference). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19476', + ), + ), + ), + 38 => + array ( + 'message' => 'Fixed bug GH-19081 (Wrong lineno in property error with constructor property promotion).', + 'raw' => 'Fixed bug GH-19081 (Wrong lineno in property error with constructor property promotion). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19081', + ), + ), + ), + 39 => + array ( + 'message' => 'Fixed bug GH-17959 (Relax missing trait fatal error to error exception).', + 'raw' => 'Fixed bug GH-17959 (Relax missing trait fatal error to error exception). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '17959', + ), + ), + ), + 40 => + array ( + 'message' => 'Fixed bug GH-18033 (NULL-ptr dereference when using register_tick_function in destructor).', + 'raw' => 'Fixed bug GH-18033 (NULL-ptr dereference when using register_tick_function in destructor). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18033', + ), + ), + ), + 41 => + array ( + 'message' => 'Fixed bug GH-18026 (Improve "expecting token" error for ampersand).', + 'raw' => 'Fixed bug GH-18026 (Improve "expecting token" error for ampersand). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18026', + ), + ), + ), + 42 => + array ( + 'message' => 'The report_memleaks INI directive has been deprecated.', + 'raw' => 'The report_memleaks INI directive has been deprecated. (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 43 => + array ( + 'message' => 'Fixed OSS-Fuzz #439125710 (Pipe cannot be used in write context).', + 'raw' => 'Fixed OSS-Fuzz #439125710 (Pipe cannot be used in write context). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 44 => + array ( + 'message' => 'Fixed bug GH-19548 (Shared memory violation on property inheritance).', + 'raw' => 'Fixed bug GH-19548 (Shared memory violation on property inheritance). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19548', + ), + ), + ), + 45 => + array ( + 'message' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).', + 'raw' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references). (Arnaud, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '19544', + ), + ), + ), + 46 => + array ( + 'message' => 'Fixed bug GH-18373 (Don\'t substitute self/parent with anonymous class).', + 'raw' => 'Fixed bug GH-18373 (Don\'t substitute self/parent with anonymous class). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '18373', + ), + ), + ), + 47 => + array ( + 'message' => 'Fix support for non-userland stream notifiers.', + 'raw' => 'Fix support for non-userland stream notifiers. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 48 => + array ( + 'message' => 'Fixed bug GH-19305 (Operands may be being released during comparison).', + 'raw' => 'Fixed bug GH-19305 (Operands may be being released during comparison). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19305', + ), + ), + ), + 49 => + array ( + 'message' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).', + 'raw' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19306', + ), + ), + ), + 50 => + array ( + 'message' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).', + 'raw' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19326', + ), + ), + ), + 51 => + array ( + 'message' => 'Fix OSS-Fuzz #427814452 (pipe compilation fails with assert).', + 'raw' => 'Fix OSS-Fuzz #427814452 (pipe compilation fails with assert). (nielsdos, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'ilutov', + ), + ), + ), + 52 => + array ( + 'message' => 'Fixed bug GH-16665 (\\array and \\callable should not be usable in class_alias).', + 'raw' => 'Fixed bug GH-16665 (\\array and \\callable should not be usable in class_alias). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16665', + ), + ), + ), + 53 => + array ( + 'message' => 'Use `clock_gettime_nsec_np()` for high resolution timer on macOS if available.', + 'raw' => 'Use `clock_gettime_nsec_np()` for high resolution timer on macOS if available. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 54 => + array ( + 'message' => 'Make `clone()` a function.', + 'raw' => 'Make `clone()` a function. (timwolla, edorian)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'edorian', + ), + ), + ), + 55 => + array ( + 'message' => 'Introduced the TAILCALL VM, enabled by default when compiling with Clang>=19 on x86_64 or aarch64.', + 'raw' => 'Introduced the TAILCALL VM, enabled by default when compiling with Clang>=19 on x86_64 or aarch64. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 56 => + array ( + 'message' => 'Enacted the follow-up phase of the "Path to Saner Increment/Decrement operators" RFC, meaning that incrementing non-numeric strings is now deprecated. .', + 'raw' => 'Enacted the follow-up phase of the "Path to Saner Increment/Decrement operators" RFC, meaning that incrementing non-numeric strings is now deprecated. (Girgias).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 57 => + array ( + 'message' => 'Various closure binding issues are now deprecated.', + 'raw' => 'Various closure binding issues are now deprecated. (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 58 => + array ( + 'message' => 'Constant redeclaration has been deprecated.', + 'raw' => 'Constant redeclaration has been deprecated. (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 59 => + array ( + 'message' => 'Marks the stack as non-executable on Haiku.', + 'raw' => 'Marks the stack as non-executable on Haiku. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 60 => + array ( + 'message' => 'Deriving $_SERVER[\'argc\'] and $_SERVER[\'argv\'] from the query string is now deprecated.', + 'raw' => 'Deriving $_SERVER[\'argc\'] and $_SERVER[\'argv\'] from the query string is now deprecated. (timwolla, nicolasgrekas)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + 1 => 'nicolasgrekas', + ), + ), + ), + 61 => + array ( + 'message' => 'Using null as an array offset or when calling array_key_exists() is now deprecated.', + 'raw' => 'Using null as an array offset or when calling array_key_exists() is now deprecated. (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 62 => + array ( + 'message' => 'The disable_classes INI directive has been removed.', + 'raw' => 'The disable_classes INI directive has been removed. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 63 => + array ( + 'message' => 'The locally predefined variable $http_response_header is deprecated.', + 'raw' => 'The locally predefined variable $http_response_header is deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 64 => + array ( + 'message' => 'Non-canonical cast names (boolean), (integer), (double), and (binary) have been deprecated.', + 'raw' => 'Non-canonical cast names (boolean), (integer), (double), and (binary) have been deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 65 => + array ( + 'message' => 'The $exclude_disabled parameter of the get_defined_functions() function has been deprecated, as it no longer has any effect since PHP 8.0.', + 'raw' => 'The $exclude_disabled parameter of the get_defined_functions() function has been deprecated, as it no longer has any effect since PHP 8.0. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 66 => + array ( + 'message' => 'Terminating case statements with a semicolon instead of a colon has been deprecated.', + 'raw' => 'Terminating case statements with a semicolon instead of a colon has been deprecated. (theodorejb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'theodorejb', + ), + ), + ), + 67 => + array ( + 'message' => 'The backtick operator as an alias for shell_exec() has been deprecated.', + 'raw' => 'The backtick operator as an alias for shell_exec() has been deprecated. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 68 => + array ( + 'message' => 'Returning null from __debugInfo() has been deprecated.', + 'raw' => 'Returning null from __debugInfo() has been deprecated. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 69 => + array ( + 'message' => 'Support #[\\Override] on properties.', + 'raw' => 'Support #[\\Override] on properties. (Jiří Pudil)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jiří Pudil', + ), + ), + ), + 70 => + array ( + 'message' => 'Destructing non-array values (other than NULL) using [] or list() now emits a warning.', + 'raw' => 'Destructing non-array values (other than NULL) using [] or list() now emits a warning. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 71 => + array ( + 'message' => 'Casting floats that are not representable as ints now emits a warning.', + 'raw' => 'Casting floats that are not representable as ints now emits a warning. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 72 => + array ( + 'message' => 'Casting NAN to other types now emits a warning.', + 'raw' => 'Casting NAN to other types now emits a warning. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 73 => + array ( + 'message' => 'Implement GH-15680 (Enhance zend_dump_op_array to properly represent non-printable characters in string literals).', + 'raw' => 'Implement GH-15680 (Enhance zend_dump_op_array to properly represent non-printable characters in string literals). (nielsdos, WangYihang)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'WangYihang', + ), + ), + ), + 74 => + array ( + 'message' => 'Fixed bug GH-17442 (Engine UAF with reference assign and dtor).', + 'raw' => 'Fixed bug GH-17442 (Engine UAF with reference assign and dtor). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '17442', + ), + ), + ), + 75 => + array ( + 'message' => 'Do not use RTLD_DEEPBIND if dlmopen is available.', + 'raw' => 'Do not use RTLD_DEEPBIND if dlmopen is available. (Daniil Gentili)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Daniil Gentili', + ), + ), + ), + 76 => + array ( + 'message' => 'Added #[\\DelayedTargetValidation] attribute.', + 'raw' => 'Added #[\\DelayedTargetValidation] attribute. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 77 => + array ( + 'message' => 'Support #[\\Deprecated] on traits.', + 'raw' => 'Support #[\\Deprecated] on traits. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Simplify `bc_divide()` code.', + 'raw' => 'Simplify `bc_divide()` code. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 1 => + array ( + 'message' => 'If the result is 0, n_scale is set to 0.', + 'raw' => 'If the result is 0, n_scale is set to 0. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 2 => + array ( + 'message' => 'If size of BC_VECTOR array is within 64 bytes, stack area is now used.', + 'raw' => 'If size of BC_VECTOR array is within 64 bytes, stack area is now used. (SakiTakamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'SakiTakamachi', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20006 (Power of 0 of BcMath number causes UB).', + 'raw' => 'Fixed bug GH-20006 (Power of 0 of BcMath number causes UB). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20006', + ), + ), + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19810 (Broken bzopen() stream mode validation).', + 'raw' => 'Fixed bug GH-19810 (Broken bzopen() stream mode validation). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19810', + ), + ), + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Add --ini=diff to print INI settings changed from the builtin default.', + 'raw' => 'Add --ini=diff to print INI settings changed from the builtin default. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'Drop support for -z CLI/CGI flag.', + 'raw' => 'Drop support for -z CLI/CGI flag. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-17956 - development server 404 page does not adapt to mobiles.', + 'raw' => 'Fixed GH-17956 - development server 404 page does not adapt to mobiles. (pascalchevrel)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'pascalchevrel', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS.', + 'raw' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS. (leotaku)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'leotaku', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).', + 'raw' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19461', + ), + ), + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed property access of PHP objects wrapped in variant.', + 'raw' => 'Fixed property access of PHP objects wrapped in variant. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed method calls for PHP objects wrapped in variant.', + 'raw' => 'Fixed method calls for PHP objects wrapped in variant. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Added CURLFOLLOW_ALL, CURLFOLLOW_OBEYCODE and CURLFOLLOW_FIRSTONLY values for CURLOPT_FOLLOWLOCATION curl_easy_setopt option.', + 'raw' => 'Added CURLFOLLOW_ALL, CURLFOLLOW_OBEYCODE and CURLFOLLOW_FIRSTONLY values for CURLOPT_FOLLOWLOCATION curl_easy_setopt option. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added curl_multi_get_handles().', + 'raw' => 'Added curl_multi_get_handles(). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 2 => + array ( + 'message' => 'Added curl_share_init_persistent().', + 'raw' => 'Added curl_share_init_persistent(). (enorris)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'enorris', + ), + ), + ), + 3 => + array ( + 'message' => 'Added CURLINFO_USED_PROXY, CURLINFO_HTTPAUTH_USED, and CURLINFO_PROXYAUTH_USED support to curl_getinfo.', + 'raw' => 'Added CURLINFO_USED_PROXY, CURLINFO_HTTPAUTH_USED, and CURLINFO_PROXYAUTH_USED support to curl_getinfo. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 4 => + array ( + 'message' => 'Add support for CURLINFO_CONN_ID in curl_getinfo()', + 'raw' => 'Add support for CURLINFO_CONN_ID in curl_getinfo() (thecaliskan)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'thecaliskan', + ), + ), + ), + 5 => + array ( + 'message' => 'Add support for CURLINFO_QUEUE_TIME_T in curl_getinfo()', + 'raw' => 'Add support for CURLINFO_QUEUE_TIME_T in curl_getinfo() (thecaliskan)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'thecaliskan', + ), + ), + ), + 6 => + array ( + 'message' => 'Add support for CURLOPT_SSL_SIGNATURE_ALGORITHMS.', + 'raw' => 'Add support for CURLOPT_SSL_SIGNATURE_ALGORITHMS. (Ayesh Karunaratne)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Ayesh Karunaratne', + ), + ), + ), + 7 => + array ( + 'message' => 'The curl_close() function has been deprecated.', + 'raw' => 'The curl_close() function has been deprecated. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 8 => + array ( + 'message' => 'The curl_share_close() function has been deprecated.', + 'raw' => 'The curl_share_close() function has been deprecated. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 9 => + array ( + 'message' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle.', + 'raw' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix undefined behaviour problems regarding integer overflow in extreme edge cases.', + 'raw' => 'Fix undefined behaviour problems regarding integer overflow in extreme edge cases. (nielsdos, cmb, ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'cmb', + 2 => 'ilutov', + ), + ), + ), + 1 => + array ( + 'message' => 'The DATE_RFC7231 and DateTimeInterface::RFC7231 constants have been deprecated.', + 'raw' => 'The DATE_RFC7231 and DateTimeInterface::RFC7231 constants have been deprecated. (jorgsowa)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jorgsowa', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.', + 'raw' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.', + 'raw' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'The __wakeup() magic method of DateTimeInterface, DateTime, DateTimeImmutable, DateTimeZone, DateInterval, and DatePeriod has been deprecated in favour of the __unserialize() magic method.', + 'raw' => 'The __wakeup() magic method of DateTimeInterface, DateTime, DateTimeImmutable, DateTimeZone, DateInterval, and DatePeriod has been deprecated in favour of the __unserialize() magic method. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Added Dom\\Element::$outerHTML.', + 'raw' => 'Added Dom\\Element::$outerHTML. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Added Dom\\Element::insertAdjacentHTML().', + 'raw' => 'Added Dom\\Element::insertAdjacentHTML(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Added $children property to ParentNode implementations.', + 'raw' => 'Added $children property to ParentNode implementations. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Make cloning DOM node lists, maps, and collections fail.', + 'raw' => 'Make cloning DOM node lists, maps, and collections fail. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Added Dom\\Element::getElementsByClassName().', + 'raw' => 'Added Dom\\Element::getElementsByClassName(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-18877 (\\Dom\\HTMLDocument querySelectorAll selecting only the first when using ~ and :has).', + 'raw' => 'Fixed bug GH-18877 (\\Dom\\HTMLDocument querySelectorAll selecting only the first when using ~ and :has). (nielsdos, lexborisov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'lexborisov', + ), + 'bugs' => + array ( + 0 => '18877', + ), + ), + ), + 6 => + array ( + 'message' => 'Fix getNamedItemNS() incorrect namespace check.', + 'raw' => 'Fix getNamedItemNS() incorrect namespace check. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Added enchant_dict_remove_from_session().', + 'raw' => 'Added enchant_dict_remove_from_session(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'Added enchant_dict_remove().', + 'raw' => 'Added enchant_dict_remove(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix missing empty string checks.', + 'raw' => 'Fix missing empty string checks. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Add OffsetTime* Exif tags.', + 'raw' => 'Add OffsetTime* Exif tags. (acc987)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'acc987', + ), + ), + ), + 1 => + array ( + 'message' => 'Added support to retrieve Exif from HEIF file.', + 'raw' => 'Added support to retrieve Exif from HEIF file. (Benstone Zhang)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Benstone Zhang', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #442954659 (zero-size box in HEIF file causes infinite loop).', + 'raw' => 'Fix OSS-Fuzz #442954659 (zero-size box in HEIF file causes infinite loop). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fix OSS-Fuzz #442954659 (Crash in exif_scan_HEIF_header).', + 'raw' => 'Fix OSS-Fuzz #442954659 (Crash in exif_scan_HEIF_header). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 4 => + array ( + 'message' => 'Various hardening fixes to HEIF parsing.', + 'raw' => 'Various hardening fixes to HEIF parsing. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'The finfo_close() function has been deprecated.', + 'raw' => 'The finfo_close() function has been deprecated. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'The $context parameter of the finfo_buffer() function has been deprecated as it is ignored.', + 'raw' => 'The $context parameter of the finfo_buffer() function has been deprecated as it is ignored. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 2 => + array ( + 'message' => 'Upgrade to file 5.46.', + 'raw' => 'Upgrade to file 5.46. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Change return type of finfo_close() to true.', + 'raw' => 'Change return type of finfo_close() to true. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Added support for configuring the URI parser for FILTER_VALIDATE_URL as described in https://wiki.php.net/rfc/url_parsing_api#plugability.', + 'raw' => 'Added support for configuring the URI parser for FILTER_VALIDATE_URL as described in https://wiki.php.net/rfc/url_parsing_api#plugability. (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16993 (filter_var_array with FILTER_VALIDATE_INT|FILTER_NULL_ON_FAILURE should emit warning for invalid filter usage).', + 'raw' => 'Fixed bug GH-16993 (filter_var_array with FILTER_VALIDATE_INT|FILTER_NULL_ON_FAILURE should emit warning for invalid filter usage). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '16993', + ), + ), + ), + 2 => + array ( + 'message' => 'Added FILTER_THROW_ON_FAILURE flag.', + 'raw' => 'Added FILTER_THROW_ON_FAILURE flag. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19817 (Decode SCRIPT_FILENAME issue in php 8.5).', + 'raw' => 'Fixed bug GH-19817 (Decode SCRIPT_FILENAME issue in php 8.5). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19817', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19989 (PHP 8.5 FPM access log lines also go to STDERR).', + 'raw' => 'Fixed bug GH-19989 (PHP 8.5 FPM access log lines also go to STDERR). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19989', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed GH-17645 (FPM with httpd ProxyPass does not decode script path).', + 'raw' => 'Fixed GH-17645 (FPM with httpd ProxyPass does not decode script path). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 3 => + array ( + 'message' => 'Make FPM access log limit configurable using log_limit.', + 'raw' => 'Make FPM access log limit configurable using log_limit. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed failed debug assertion when php_admin_value setting fails.', + 'raw' => 'Fixed failed debug assertion when php_admin_value setting fails. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed GH-8157 (post_max_size evaluates .user.ini too late in php-fpm).', + 'raw' => 'Fixed GH-8157 (post_max_size evaluates .user.ini too late in php-fpm). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68629 (Transparent artifacts when using imagerotate).', + 'raw' => 'Fixed bug #68629 (Transparent artifacts when using imagerotate). (pierre, cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'pierre', + 1 => 'cmb', + ), + 'bugs' => + array ( + 0 => '68629', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug #64823 (ZTS GD fails to find system TrueType font).', + 'raw' => 'Fixed bug #64823 (ZTS GD fails to find system TrueType font). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '64823', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix incorrect comparison with result of php_stream_can_cast().', + 'raw' => 'Fix incorrect comparison with result of php_stream_can_cast(). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 3 => + array ( + 'message' => 'The imagedestroy() function has been deprecated.', + 'raw' => 'The imagedestroy() function has been deprecated. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Extends the ICONV_CONST preprocessor for illumos/solaris.', + 'raw' => 'Extends the ICONV_CONST preprocessor for illumos/solaris. (jMichaelA)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'jMichaelA', + ), + ), + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Bumped ICU requirement to ICU >= 57.1.', + 'raw' => 'Bumped ICU requirement to ICU >= 57.1. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 1 => + array ( + 'message' => 'IntlDateFormatter::setTimeZone()/datefmt_set_timezone() throws an exception with uninitialised classes or clone failure.', + 'raw' => 'IntlDateFormatter::setTimeZone()/datefmt_set_timezone() throws an exception with uninitialised classes or clone failure. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added DECIMAL_COMPACT_SHORT/DECIMAL_COMPACT_LONG for NumberFormatter class.', + 'raw' => 'Added DECIMAL_COMPACT_SHORT/DECIMAL_COMPACT_LONG for NumberFormatter class. (BogdanUngureanu)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'BogdanUngureanu', + ), + ), + ), + 3 => + array ( + 'message' => 'Added Locale::isRightToLeft to check if a locale is written right to left.', + 'raw' => 'Added Locale::isRightToLeft to check if a locale is written right to left. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added null bytes presence in locale inputs for Locale class.', + 'raw' => 'Added null bytes presence in locale inputs for Locale class. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added grapheme_levenshtein() function.', + 'raw' => 'Added grapheme_levenshtein() function. (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + ), + ), + 6 => + array ( + 'message' => 'Added Locale::addLikelySubtags/Locale::minimizeSubtags to handle adding/removing likely subtags to a locale.', + 'raw' => 'Added Locale::addLikelySubtags/Locale::minimizeSubtags to handle adding/removing likely subtags to a locale. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 7 => + array ( + 'message' => 'Added IntlListFormatter class to format a list of items with a locale, operands types and units.', + 'raw' => 'Added IntlListFormatter class to format a list of items with a locale, operands types and units. (BogdanUngureanu)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'BogdanUngureanu', + ), + ), + ), + 8 => + array ( + 'message' => 'Added grapheme_strpos(), grapheme_stripos(), grapheme_strrpos(), grapheme_strripos(), grapheme_substr(), grapheme_strstr(), grapheme_stristr() and grapheme_levenshtein() functions add $locale parameter .', + 'raw' => 'Added grapheme_strpos(), grapheme_stripos(), grapheme_strrpos(), grapheme_strripos(), grapheme_substr(), grapheme_strstr(), grapheme_stristr() and grapheme_levenshtein() functions add $locale parameter (Yuya Hamada).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).', + 'raw' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '11952', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-18566 ([intl] Weird numeric sort in Collator).', + 'raw' => 'Fixed bug GH-18566 ([intl] Weird numeric sort in Collator). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18566', + ), + ), + ), + 11 => + array ( + 'message' => 'Fix return value on failure for resourcebundle count handler.', + 'raw' => 'Fix return value on failure for resourcebundle count handler. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed bug GH-19307 (PGO builds of shared ext-intl are broken).', + 'raw' => 'Fixed bug GH-19307 (PGO builds of shared ext-intl are broken). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '19307', + ), + ), + ), + 13 => + array ( + 'message' => 'Intl\'s internal error mechanism has been modernized so that it indicates more accurately which call site caused what error. Moreover, some ext/date exceptions have been wrapped inside a IntlException now.', + 'raw' => 'Intl\'s internal error mechanism has been modernized so that it indicates more accurately which call site caused what error. Moreover, some ext/date exceptions have been wrapped inside a IntlException now. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 14 => + array ( + 'message' => 'The intl.error_level INI setting has been deprecated.', + 'raw' => 'The intl.error_level INI setting has been deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Allow ldap_get_option to retrieve global option by allowing NULL for connection instance ($ldap).', + 'raw' => 'Allow ldap_get_option to retrieve global option by allowing NULL for connection instance ($ldap). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + ), + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Updated Unicode data tables to Unicode 17.0.', + 'raw' => 'Updated Unicode data tables to Unicode 17.0. (Yuya Hamada)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Yuya Hamada', + ), + ), + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-17900 and GH-8084 (calling mysqli::__construct twice).', + 'raw' => 'Fixed bugs GH-17900 and GH-8084 (calling mysqli::__construct twice). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 1 => + array ( + 'message' => 'The mysqli_execute() alias function has been deprecated.', + 'raw' => 'The mysqli_execute() alias function has been deprecated. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Added mysqlnd.collect_memory_statistics to ini quick reference.', + 'raw' => 'Added mysqlnd.collect_memory_statistics to ini quick reference. (hauk92)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'hauk92', + ), + ), + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Removed driver-specific build flags and support.', + 'raw' => 'Removed driver-specific build flags and support. (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + ), + ), + 1 => + array ( + 'message' => 'Remove ODBCVER and assume ODBC 3.5.', + 'raw' => 'Remove ODBCVER and assume ODBC 3.5. (Calvin Buckley)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + ), + ), + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Make OPcache non-optional', + 'raw' => 'Make OPcache non-optional (Arnaud, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'timwolla', + ), + ), + ), + 1 => + array ( + 'message' => 'Added opcache.file_cache_read_only.', + 'raw' => 'Added opcache.file_cache_read_only. (Samuel Melrose)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Samuel Melrose', + ), + ), + ), + 2 => + array ( + 'message' => 'Updated default value of opcache.jit_hot_loop.', + 'raw' => 'Updated default value of opcache.jit_hot_loop. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 3 => + array ( + 'message' => 'Log a warning when opcache lock file permissions could not be changed.', + 'raw' => 'Log a warning when opcache lock file permissions could not be changed. (Taavi Eomäe)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Taavi Eomäe', + ), + ), + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20012 (heap buffer overflow in jit).', + 'raw' => 'Fixed bug GH-20012 (heap buffer overflow in jit). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20012', + ), + ), + ), + 5 => + array ( + 'message' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments).', + 'raw' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 6 => + array ( + 'message' => 'Disallow changing opcache.memory_consumption when SHM is already set up.', + 'raw' => 'Disallow changing opcache.memory_consumption when SHM is already set up. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-15074 (Compiling opcache statically into ZTS PHP fails).', + 'raw' => 'Fixed bug GH-15074 (Compiling opcache statically into ZTS PHP fails). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '15074', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-17422 (OPcache bypasses the user-defined error handler for deprecations).', + 'raw' => 'Fixed bug GH-17422 (OPcache bypasses the user-defined error handler for deprecations). (Arnaud, timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '17422', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-19301 (opcache build failure).', + 'raw' => 'Fixed bug GH-19301 (opcache build failure). (Remi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Remi', + ), + 'bugs' => + array ( + 0 => '19301', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()).', + 'raw' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '20081', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).', + 'raw' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15). (Arnaud, Shivam Mathur)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + 1 => 'Shivam Mathur', + ), + 'bugs' => + array ( + 0 => '20121', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess).', + 'raw' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19875', + ), + ), + ), + 13 => + array ( + 'message' => 'Fixed segfault in function JIT due to NAN to bool warning.', + 'raw' => 'Fixed segfault in function JIT due to NAN to bool warning. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 14 => + array ( + 'message' => 'Fixed bug GH-19984 (Double-free of EG(errors)/persistent_script->warnings on persist of already persisted file).', + 'raw' => 'Fixed bug GH-19984 (Double-free of EG(errors)/persistent_script->warnings on persist of already persisted file). (ilutov, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + 1 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19984', + ), + ), + ), + 15 => + array ( + 'message' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()).', + 'raw' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19889', + ), + ), + ), + 16 => + array ( + 'message' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex).', + 'raw' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19669', + ), + ), + ), + 17 => + array ( + 'message' => 'Fixed bug GH-19831 (function JIT may not deref property value).', + 'raw' => 'Fixed bug GH-19831 (function JIT may not deref property value). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19831', + ), + ), + ), + 18 => + array ( + 'message' => 'Fixed bug GH-19486 (Incorrect opline after deoptimization).', + 'raw' => 'Fixed bug GH-19486 (Incorrect opline after deoptimization). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19486', + ), + ), + ), + 19 => + array ( + 'message' => 'Fixed bug GH-19601 (Wrong JIT stack setup on aarch64/clang).', + 'raw' => 'Fixed bug GH-19601 (Wrong JIT stack setup on aarch64/clang). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19601', + ), + ), + ), + 20 => + array ( + 'message' => 'Fixed bug GH-19388 (Broken opcache.huge_code_pages).', + 'raw' => 'Fixed bug GH-19388 (Broken opcache.huge_code_pages). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19388', + ), + ), + ), + 21 => + array ( + 'message' => 'Fixed bug GH-19657 (Build fails on non-glibc/musl/freebsd/macos/win platforms).', + 'raw' => 'Fixed bug GH-19657 (Build fails on non-glibc/musl/freebsd/macos/win platforms). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19657', + ), + ), + ), + 22 => + array ( + 'message' => 'Fixed ZTS OPcache build on Cygwin.', + 'raw' => 'Fixed ZTS OPcache build on Cygwin. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + 23 => + array ( + 'message' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD).', + 'raw' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD). (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19493', + ), + ), + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Added openssl.libctx INI that allows to select the OpenSSL library context type and convert various parts of the extension to use the custom libctx.', + 'raw' => 'Added openssl.libctx INI that allows to select the OpenSSL library context type and convert various parts of the extension to use the custom libctx. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 1 => + array ( + 'message' => 'Add $digest_algo parameter to openssl_public_encrypt() and openssl_private_decrypt() functions.', + 'raw' => 'Add $digest_algo parameter to openssl_public_encrypt() and openssl_private_decrypt() functions. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 2 => + array ( + 'message' => 'Implement #81724 (openssl_cms_encrypt only allows specific ciphers).', + 'raw' => 'Implement #81724 (openssl_cms_encrypt only allows specific ciphers). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 3 => + array ( + 'message' => 'Implement #80495 (Enable to set padding in openssl_(sign|verify).', + 'raw' => 'Implement #80495 (Enable to set padding in openssl_(sign|verify). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 4 => + array ( + 'message' => 'Implement #47728 (openssl_pkcs7_sign ignores new openssl flags).', + 'raw' => 'Implement #47728 (openssl_pkcs7_sign ignores new openssl flags). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19994 (openssl_get_cipher_methods inconsistent with fetching).', + 'raw' => 'Fixed bug GH-19994 (openssl_get_cipher_methods inconsistent with fetching). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19994', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed build when --with-openssl-legacy-provider set.', + 'raw' => 'Fixed build when --with-openssl-legacy-provider set. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-19369 (8.5 | Regression in openssl_sign() - support for alias algorithms appears to be broken).', + 'raw' => 'Fixed bug GH-19369 (8.5 | Regression in openssl_sign() - support for alias algorithms appears to be broken). (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19369', + ), + ), + ), + 8 => + array ( + 'message' => 'The $key_length parameter for openssl_pkey_derive() has been deprecated.', + 'raw' => 'The $key_length parameter for openssl_pkey_derive() has been deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed calculation of aligned buffer size.', + 'raw' => 'Fixed calculation of aligned buffer size. (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + ), + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Extend pcntl_waitid with rusage parameter.', + 'raw' => 'Extend pcntl_waitid with rusage parameter. (vrza)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'vrza', + ), + ), + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Remove PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK from pcre compile options.', + 'raw' => 'Remove PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK from pcre compile options. (mvorisek)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'mvorisek', + ), + ), + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20095 (Incorrect class name in deprecation message for PDO mixins).', + 'raw' => 'Fixed bug GH-20095 (Incorrect class name in deprecation message for PDO mixins). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '20095', + ), + ), + ), + 1 => + array ( + 'message' => 'Driver specific methods and constants in the PDO class are now deprecated.', + 'raw' => 'Driver specific methods and constants in the PDO class are now deprecated. (Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Arnaud', + ), + ), + ), + 2 => + array ( + 'message' => 'The "uri:" DSN scheme has been deprecated due to security concerns with DSNs coming from remote URIs.', + 'raw' => 'The "uri:" DSN scheme has been deprecated due to security concerns with DSNs coming from remote URIs. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fetch larger block sizes and better handle SQL_NO_TOTAL when calling SQLGetData.', + 'raw' => 'Fetch larger block sizes and better handle SQL_NO_TOTAL when calling SQLGetData. (Calvin Buckley, Saki Takamachi)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Calvin Buckley', + 1 => 'Saki Takamachi', + ), + ), + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Added Iterable support for PDO::pgsqlCopyFromArray.', + 'raw' => 'Added Iterable support for PDO::pgsqlCopyFromArray. (KentarouTakeda)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'KentarouTakeda', + ), + ), + ), + 1 => + array ( + 'message' => 'Implement GH-15387 Pdo\\Pgsql::setAttribute(PDO::ATTR_PREFETCH, 0) or Pdo\\Pgsql::prepare(…, [ PDO::ATTR_PREFETCH => 0 ]) make fetch() lazy instead of storing the whole result set in memory', + 'raw' => 'Implement GH-15387 Pdo\\Pgsql::setAttribute(PDO::ATTR_PREFETCH, 0) or Pdo\\Pgsql::prepare(…, [ PDO::ATTR_PREFETCH => 0 ]) make fetch() lazy instead of storing the whole result set in memory (Guillaume Outters)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Guillaume Outters', + ), + ), + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Add PDO\\Sqlite::ATTR_TRANSACTION_MODE connection attribute.', + 'raw' => 'Add PDO\\Sqlite::ATTR_TRANSACTION_MODE connection attribute. (Samuel Štancl)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Samuel Štancl', + ), + ), + ), + 1 => + array ( + 'message' => 'Implement GH-17321: Add setAuthorizer to Pdo\\Sqlite.', + 'raw' => 'Implement GH-17321: Add setAuthorizer to Pdo\\Sqlite. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'PDO::sqliteCreateCollation now throws a TypeError if the callback has a wrong return type.', + 'raw' => 'PDO::sqliteCreateCollation now throws a TypeError if the callback has a wrong return type. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added Pdo_Sqlite::ATTR_BUSY_STATEMENT constant to check if a statement is currently executing.', + 'raw' => 'Added Pdo_Sqlite::ATTR_BUSY_STATEMENT constant to check if a statement is currently executing. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added Pdo_Sqlite::ATTR_EXPLAIN_STATEMENT constant to set a statement in either EXPLAIN_MODE_PREPARED, EXPLAIN_MODE_EXPLAIN, EXPLAIN_MODE_EXPLAIN_QUERY_PLAN modes.', + 'raw' => 'Added Pdo_Sqlite::ATTR_EXPLAIN_STATEMENT constant to set a statement in either EXPLAIN_MODE_PREPARED, EXPLAIN_MODE_EXPLAIN, EXPLAIN_MODE_EXPLAIN_QUERY_PLAN modes. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Fix bug GH-13952 (sqlite PDO::quote silently corrupts strings with null bytes) by throwing on null bytes.', + 'raw' => 'Fix bug GH-13952 (sqlite PDO::quote silently corrupts strings with null bytes) by throwing on null bytes. (divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'divinity76', + ), + ), + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added pg_close_stmt to close a prepared statement while allowing its name to be reused.', + 'raw' => 'Added pg_close_stmt to close a prepared statement while allowing its name to be reused. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added Iterable support for pgsql_copy_from.', + 'raw' => 'Added Iterable support for pgsql_copy_from. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'pg_connect checks if connection_string contains any null byte, pg_close_stmt check if the statement contains any null byte.', + 'raw' => 'pg_connect checks if connection_string contains any null byte, pg_close_stmt check if the statement contains any null byte. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added pg_service to get the connection current service identifier.', + 'raw' => 'Added pg_service to get the connection current service identifier. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name.', + 'raw' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name. (Girgias, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + 1 => 'nielsdos', + ), + ), + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t.', + 'raw' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed memory leaks when verifying OpenSSL signature.', + 'raw' => 'Fixed memory leaks when verifying OpenSSL signature. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Added POSIX_SC_OPEN_MAX constant to get the number of file descriptors a process can handle.', + 'raw' => 'Added POSIX_SC_OPEN_MAX constant to get the number of file descriptors a process can handle. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'posix_ttyname() sets last_error to EBADF on invalid file descriptors, posix_isatty() raises E_WARNING on invalid file descriptors, posix_fpathconf checks invalid file descriptors.', + 'raw' => 'posix_ttyname() sets last_error to EBADF on invalid file descriptors, posix_isatty() raises E_WARNING on invalid file descriptors, posix_fpathconf checks invalid file descriptors. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'posix_kill and posix_setpgid throws a ValueError on invalid process_id.', + 'raw' => 'posix_kill and posix_setpgid throws a ValueError on invalid process_id. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'posix_setpgid throws a ValueError on invalid process_group_id, posix_setrlimit throws a ValueError on invalid soft_limit and hard_limit arguments.', + 'raw' => 'posix_setpgid throws a ValueError on invalid process_group_id, posix_setrlimit throws a ValueError on invalid soft_limit and hard_limit arguments. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Moves from /dev/urandom usage to arc4random_buf on Haiku.', + 'raw' => 'Moves from /dev/urandom usage to arc4random_buf on Haiku. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Added ReflectionConstant::getExtension() and ::getExtensionName().', + 'raw' => 'Added ReflectionConstant::getExtension() and ::getExtensionName(). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 1 => + array ( + 'message' => 'Added ReflectionProperty::getMangledName() method.', + 'raw' => 'Added ReflectionProperty::getMangledName() method. (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 2 => + array ( + 'message' => 'ReflectionConstant is no longer final.', + 'raw' => 'ReflectionConstant is no longer final. (sasezaki)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'sasezaki', + ), + ), + ), + 3 => + array ( + 'message' => 'The setAccessible() methods of various Reflection objects have been deprecated, as those no longer have an effect.', + 'raw' => 'The setAccessible() methods of various Reflection objects have been deprecated, as those no longer have an effect. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 4 => + array ( + 'message' => 'ReflectionClass::getConstant() for constants that do not exist has been deprecated.', + 'raw' => 'ReflectionClass::getConstant() for constants that do not exist has been deprecated. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 5 => + array ( + 'message' => 'ReflectionProperty::getDefaultValue() for properties without default values has been deprecated.', + 'raw' => 'ReflectionProperty::getDefaultValue() for properties without default values has been deprecated. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-12856 (ReflectionClass::getStaticPropertyValue() returns UNDEF zval for uninitialized typed properties).', + 'raw' => 'Fixed bug GH-12856 (ReflectionClass::getStaticPropertyValue() returns UNDEF zval for uninitialized typed properties). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12856', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-15766 (ReflectionClass::__toString() should have better output for enums).', + 'raw' => 'Fixed bug GH-15766 (ReflectionClass::__toString() should have better output for enums). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '15766', + ), + ), + ), + 8 => + array ( + 'message' => 'Fix GH-19691 (getModifierNames() not reporting asymmetric visibility).', + 'raw' => 'Fix GH-19691 (getModifierNames() not reporting asymmetric visibility). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + 9 => + array ( + 'message' => 'Fixed bug GH-17927 (Reflection: have some indication of property hooks in `_property_string()`).', + 'raw' => 'Fixed bug GH-17927 (Reflection: have some indication of property hooks in `_property_string()`). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '17927', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-19187 (ReflectionNamedType::getName() prints nullable type when retrieved from ReflectionProperty::getSettableType()).', + 'raw' => 'Fixed bug GH-19187 (ReflectionNamedType::getName() prints nullable type when retrieved from ReflectionProperty::getSettableType()). (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + 'bugs' => + array ( + 0 => '19187', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks).', + 'raw' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '20217', + ), + ), + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18582 and #81451: http_response_code() does not override the status code generated by header().', + 'raw' => 'Fixed bug GH-18582 and #81451: http_response_code() does not override the status code generated by header(). (ilutov, Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + 1 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '18582', + ), + ), + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'session_start() throws a ValueError on option argument if not a hashmap or a TypeError if read_and_close value is not compatible with int.', + 'raw' => 'session_start() throws a ValueError on option argument if not a hashmap or a TypeError if read_and_close value is not compatible with int. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added support for partitioned cookies.', + 'raw' => 'Added support for partitioned cookies. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix RC violation of session SID constant deprecation attribute.', + 'raw' => 'Fix RC violation of session SID constant deprecation attribute. (ilutov)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'ilutov', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed GH-19197: build broken with ZEND_STRL usage with memcpy when implemented as macro.', + 'raw' => 'Fixed GH-19197: build broken with ZEND_STRL usage with memcpy when implemented as macro. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12231 (SimpleXML xpath should warn when returning other return types than node lists).', + 'raw' => 'Fixed bug GH-12231 (SimpleXML xpath should warn when returning other return types than node lists). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '12231', + ), + ), + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'snmpget, snmpset, snmp_get2, snmp_set2, snmp_get3, snmp_set3 and SNMP::__construct() throw an exception on invalid hostname, community timeout and retries arguments.', + 'raw' => 'snmpget, snmpset, snmp_get2, snmp_set2, snmp_get3, snmp_set3 and SNMP::__construct() throw an exception on invalid hostname, community timeout and retries arguments. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Added support for configuring the URI parser for SoapClient::__doRequest() as described in https://wiki.php.net/rfc/url_parsing_api#plugability.', + 'raw' => 'Added support for configuring the URI parser for SoapClient::__doRequest() as described in https://wiki.php.net/rfc/url_parsing_api#plugability. (kocsismate)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kocsismate', + ), + ), + ), + 1 => + array ( + 'message' => 'Implement request #55503 (Extend __getTypes to support enumerations).', + 'raw' => 'Implement request #55503 (Extend __getTypes to support enumerations). (nielsdos, datibbaw)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'datibbaw', + ), + ), + ), + 2 => + array ( + 'message' => 'Implement request #61105 (Support Soap 1.2 SoapFault Reason Text lang attribute).', + 'raw' => 'Implement request #61105 (Support Soap 1.2 SoapFault Reason Text lang attribute). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Fixed bug #49169 (SoapServer calls wrong function, although "SOAP action" header is correct).', + 'raw' => 'Fixed bug #49169 (SoapServer calls wrong function, although "SOAP action" header is correct). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '49169', + ), + ), + ), + 4 => + array ( + 'message' => 'Fix namespace handling of WSDL and XML schema in SOAP, fixing at least GH-16320 and bug #68576.', + 'raw' => 'Fix namespace handling of WSDL and XML schema in SOAP, fixing at least GH-16320 and bug #68576. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 5 => + array ( + 'message' => 'Fixed bug #70951 (Segmentation fault on invalid WSDL cache).', + 'raw' => 'Fixed bug #70951 (Segmentation fault on invalid WSDL cache). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '70951', + ), + ), + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19773 (SIGSEGV due to uninitialized soap_globals->lang_en).', + 'raw' => 'Fixed bug GH-19773 (SIGSEGV due to uninitialized soap_globals->lang_en). (nielsdos, KaseyJenkins)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'KaseyJenkins', + ), + 'bugs' => + array ( + 0 => '19773', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed bug GH-19226 (Segfault when spawning new thread in soap extension).', + 'raw' => 'Fixed bug GH-19226 (Segfault when spawning new thread in soap extension). (Florian Engelhardt)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Florian Engelhardt', + ), + 'bugs' => + array ( + 0 => '19226', + ), + ), + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added IPPROTO_ICMP/IPPROTO_ICMPV6 to create raw socket for ICMP usage.', + 'raw' => 'Added IPPROTO_ICMP/IPPROTO_ICMPV6 to create raw socket for ICMP usage. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added TCP_FUNCTION_BLK to change the TCP stack algorithm on FreeBSD.', + 'raw' => 'Added TCP_FUNCTION_BLK to change the TCP stack algorithm on FreeBSD. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added IP_BINDANY for a socket to bind to any address.', + 'raw' => 'Added IP_BINDANY for a socket to bind to any address. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 3 => + array ( + 'message' => 'Added SO_BUSY_POOL to reduce packets poll latency.', + 'raw' => 'Added SO_BUSY_POOL to reduce packets poll latency. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 4 => + array ( + 'message' => 'Added UDP_SEGMENT support to optimise multiple large datagrams over UDP if the kernel and hardware supports it.', + 'raw' => 'Added UDP_SEGMENT support to optimise multiple large datagrams over UDP if the kernel and hardware supports it. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 5 => + array ( + 'message' => 'Added SHUT_RD, SHUT_WR and SHUT_RDWR constants for socket_shutdown().', + 'raw' => 'Added SHUT_RD, SHUT_WR and SHUT_RDWR constants for socket_shutdown(). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 6 => + array ( + 'message' => 'Added TCP_FUNCTION_ALIAS, TCP_REUSPORT_LB_NUMA, TCP_REUSPORT_LB_NUMA_NODOM, TCP_REUSPORT_LB_CURDOM, TCP_BBR_ALGORITHM constants.', + 'raw' => 'Added TCP_FUNCTION_ALIAS, TCP_REUSPORT_LB_NUMA, TCP_REUSPORT_LB_NUMA_NODOM, TCP_REUSPORT_LB_CURDOM, TCP_BBR_ALGORITHM constants.', + 'references' => + array ( + ), + ), + 7 => + array ( + 'message' => 'socket_set_option() catches possible overflow with SO_RCVTIMEO/SO_SNDTIMEO with timeout setting on windows.', + 'raw' => 'socket_set_option() catches possible overflow with SO_RCVTIMEO/SO_SNDTIMEO with timeout setting on windows. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 8 => + array ( + 'message' => 'socket_create_listen() throws an exception on invalid port value.', + 'raw' => 'socket_create_listen() throws an exception on invalid port value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 9 => + array ( + 'message' => 'socket_bind() throws an exception on invalid port value.', + 'raw' => 'socket_bind() throws an exception on invalid port value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 10 => + array ( + 'message' => 'socket_sendto() throws an exception on invalid port value.', + 'raw' => 'socket_sendto() throws an exception on invalid port value. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 11 => + array ( + 'message' => 'socket_addrinfo_lookup throws an exception on invalid hints value types.', + 'raw' => 'socket_addrinfo_lookup throws an exception on invalid hints value types. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 12 => + array ( + 'message' => 'socket_addrinfo_lookup throws an exception if any of the hints value overflows.', + 'raw' => 'socket_addrinfo_lookup throws an exception if any of the hints value overflows. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 13 => + array ( + 'message' => 'socket_addrinfo_lookup throws an exception if one or more hints entries has an index as numeric.', + 'raw' => 'socket_addrinfo_lookup throws an exception if one or more hints entries has an index as numeric. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 14 => + array ( + 'message' => 'socket_set_option with the options MCAST_LEAVE_GROUP/MCAST_LEAVE_SOURCE_GROUP will throw an exception if its value is not a valid array/object.', + 'raw' => 'socket_set_option with the options MCAST_LEAVE_GROUP/MCAST_LEAVE_SOURCE_GROUP will throw an exception if its value is not a valid array/object. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 15 => + array ( + 'message' => 'socket_getsockname/socket_create/socket_bind handled AF_PACKET family socket.', + 'raw' => 'socket_getsockname/socket_create/socket_bind handled AF_PACKET family socket. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 16 => + array ( + 'message' => 'socket_set_option for multicast context throws a ValueError when the socket family is not of AF_INET/AF_INET6 family.', + 'raw' => 'socket_set_option for multicast context throws a ValueError when the socket family is not of AF_INET/AF_INET6 family. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fix overall theoretical overflows on zend_string buffer allocations.', + 'raw' => 'Fix overall theoretical overflows on zend_string buffer allocations. (David Carlier/nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier/nielsdos', + ), + ), + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20101 (SplHeap/SplPriorityQueue serialization exposes INDIRECTs).', + 'raw' => 'Fixed bug GH-20101 (SplHeap/SplPriorityQueue serialization exposes INDIRECTs). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20101', + ), + ), + ), + 1 => + array ( + 'message' => 'Improve __unserialize() hardening for SplHeap/SplPriorityQueue.', + 'raw' => 'Improve __unserialize() hardening for SplHeap/SplPriorityQueue. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Deprecate ArrayObject and ArrayIterator with objects.', + 'raw' => 'Deprecate ArrayObject and ArrayIterator with objects. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 3 => + array ( + 'message' => 'Unregistering all autoloaders by passing the spl_autoload_call() function as a callback argument to spl_autoload_unregister() has been deprecated. Instead if this is needed, one should iterate over the return value of spl_autoload_functions() and call spl_autoload_unregister() on each value.', + 'raw' => 'Unregistering all autoloaders by passing the spl_autoload_call() function as a callback argument to spl_autoload_unregister() has been deprecated. Instead if this is needed, one should iterate over the return value of spl_autoload_functions() and call spl_autoload_unregister() on each value. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 4 => + array ( + 'message' => 'The SplObjectStorage::contains(), SplObjectStorage::attach(), and SplObjectStorage::detach() methods have been deprecated in favour of SplObjectStorage::offsetExists(), SplObjectStorage::offsetSet(), and SplObjectStorage::offsetUnset() respectively.', + 'raw' => 'The SplObjectStorage::contains(), SplObjectStorage::attach(), and SplObjectStorage::detach() methods have been deprecated in favour of SplObjectStorage::offsetExists(), SplObjectStorage::offsetSet(), and SplObjectStorage::offsetUnset() respectively. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Added Sqlite3Stmt::busy to check if a statement is still being executed.', + 'raw' => 'Added Sqlite3Stmt::busy to check if a statement is still being executed. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Added Sqlite3Stmt::explain to produce an explain query plan from the statement.', + 'raw' => 'Added Sqlite3Stmt::explain to produce an explain query plan from the statement. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 2 => + array ( + 'message' => 'Added Sqlite3Result::fetchAll to return all results at once from a query.', + 'raw' => 'Added Sqlite3Result::fetchAll to return all results at once from a query. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Add HEIF/HEIC support to getimagesize.', + 'raw' => 'Add HEIF/HEIC support to getimagesize. (Benstone Zhang)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Benstone Zhang', + ), + ), + ), + 1 => + array ( + 'message' => 'Added support for partitioned cookies.', + 'raw' => 'Added support for partitioned cookies. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 2 => + array ( + 'message' => 'Implement #71517 (Implement SVG support for getimagesize() and friends).', + 'raw' => 'Implement #71517 (Implement SVG support for getimagesize() and friends). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 3 => + array ( + 'message' => 'Implement GH-19188: Add support for new INI mail.cr_lf_mode.', + 'raw' => 'Implement GH-19188: Add support for new INI mail.cr_lf_mode. (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 4 => + array ( + 'message' => 'Optimized PHP html_entity_decode function.', + 'raw' => 'Optimized PHP html_entity_decode function. (Artem Ukrainskiy)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Artem Ukrainskiy', + ), + ), + ), + 5 => + array ( + 'message' => 'Minor optimization to array_chunk().', + 'raw' => 'Minor optimization to array_chunk(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 6 => + array ( + 'message' => 'Optimized pack().', + 'raw' => 'Optimized pack(). (nielsdos, divinity76)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + 1 => 'divinity76', + ), + ), + ), + 7 => + array ( + 'message' => 'Fixed crypt() tests on musl when using --with-external-libcrypt .', + 'raw' => 'Fixed crypt() tests on musl when using --with-external-libcrypt (Michael Orlitzky).', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Michael Orlitzky', + ), + ), + ), + 8 => + array ( + 'message' => 'Fixed bug GH-18062 (is_callable(func(...), callable_name: $name) for first class callables returns wrong name).', + 'raw' => 'Fixed bug GH-18062 (is_callable(func(...), callable_name: $name) for first class callables returns wrong name). (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + 'bugs' => + array ( + 0 => '18062', + ), + ), + ), + 9 => + array ( + 'message' => 'Added array_first() and array_last().', + 'raw' => 'Added array_first() and array_last(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + 10 => + array ( + 'message' => 'Fixed bug GH-18823 (setlocale\'s 2nd and 3rd argument ignores strict_types).', + 'raw' => 'Fixed bug GH-18823 (setlocale\'s 2nd and 3rd argument ignores strict_types). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18823', + ), + ), + ), + 11 => + array ( + 'message' => 'Fixed exit code handling of sendmail cmd and added warnings.', + 'raw' => 'Fixed exit code handling of sendmail cmd and added warnings. (Jesse Hathaway)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jesse Hathaway', + ), + ), + ), + 12 => + array ( + 'message' => 'Fixed bug GH-18897 (printf: empty precision is interpreted as precision 6, not as precision 0).', + 'raw' => 'Fixed bug GH-18897 (printf: empty precision is interpreted as precision 6, not as precision 0). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '18897', + ), + ), + ), + 13 => + array ( + 'message' => 'Fixed bug GH-20257 (mail() heap overflow with an empty message in lf mode).', + 'raw' => 'Fixed bug GH-20257 (mail() heap overflow with an empty message in lf mode). (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + 'bugs' => + array ( + 0 => '20257', + ), + ), + ), + 14 => + array ( + 'message' => 'Fixed bug GH-20201 (AVIF images misdetected as HEIF after introducing HEIF support in getimagesize()).', + 'raw' => 'Fixed bug GH-20201 (AVIF images misdetected as HEIF after introducing HEIF support in getimagesize()). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '20201', + ), + ), + ), + 15 => + array ( + 'message' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set).', + 'raw' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19926', + ), + ), + ), + 16 => + array ( + 'message' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).', + 'raw' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19801', + ), + ), + ), + 17 => + array ( + 'message' => 'Fixed GH-14402 (SplPriorityQueue, SplMinHeap, and SplMaxHeap lost their data on serialize()).', + 'raw' => 'Fixed GH-14402 (SplPriorityQueue, SplMinHeap, and SplMaxHeap lost their data on serialize()). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + ), + ), + 18 => + array ( + 'message' => 'Fixed GH-19610 (Deprecation warnings in functions taking as argument).', + 'raw' => 'Fixed GH-19610 (Deprecation warnings in functions taking as argument). (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 19 => + array ( + 'message' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator).', + 'raw' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '19577', + ), + ), + ), + 20 => + array ( + 'message' => 'Fixed bug GH-19153 (#[\\Attribute] validation should error on trait/interface/enum/abstract class).', + 'raw' => 'Fixed bug GH-19153 (#[\\Attribute] validation should error on trait/interface/enum/abstract class). (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + 'bugs' => + array ( + 0 => '19153', + ), + ), + ), + 21 => + array ( + 'message' => 'Fixed bug GH-19070 (setlocale($type, NULL) should not be deprecated).', + 'raw' => 'Fixed bug GH-19070 (setlocale($type, NULL) should not be deprecated). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '19070', + ), + ), + ), + 22 => + array ( + 'message' => 'Fixed bug GH-16649 (UAF during array_splice).', + 'raw' => 'Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'alexandre-daubois', + ), + 'bugs' => + array ( + 0 => '16649', + ), + ), + ), + 23 => + array ( + 'message' => 'Passing strings which are not one byte long to ord() is now deprecated.', + 'raw' => 'Passing strings which are not one byte long to ord() is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 24 => + array ( + 'message' => 'Passing integers outside the interval [0, 255] to chr() is now deprecated.', + 'raw' => 'Passing integers outside the interval [0, 255] to chr() is now deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + 25 => + array ( + 'message' => 'The socket_set_timeout() alias function has been deprecated.', + 'raw' => 'The socket_set_timeout() alias function has been deprecated. (timwolla)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'timwolla', + ), + ), + ), + 26 => + array ( + 'message' => 'Passing null to readdir(), rewinddir(), and closedir() to use the last opened directory has been deprecated.', + 'raw' => 'Passing null to readdir(), rewinddir(), and closedir() to use the last opened directory has been deprecated. (Girgias)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Girgias', + ), + ), + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16889 (stream_select() timeout useless for pipes on Windows).', + 'raw' => 'Fixed bug GH-16889 (stream_select() timeout useless for pipes on Windows). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16889', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64.', + 'raw' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64. (Jakub Zelenka)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'Jakub Zelenka', + ), + 'bugs' => + array ( + 0 => '19798', + ), + ), + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14506 (Closing a userspace stream inside a userspace handler causes heap corruption).', + 'raw' => 'Fixed bug GH-14506 (Closing a userspace stream inside a userspace handler causes heap corruption). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '14506', + ), + ), + ), + 3 => + array ( + 'message' => 'Avoid double conversion to string in php_userstreamop_readdir().', + 'raw' => 'Avoid double conversion to string in php_userstreamop_readdir(). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'tests' => + array ( + 0 => + array ( + 'message' => 'Allow to shuffle tests even in non-parallel mode.', + 'raw' => 'Allow to shuffle tests even in non-parallel mode. (dhuang00)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dhuang00', + ), + ), + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'tidy::__construct/parseFile/parseString methods throw an exception if the configuration argument is invalid.', + 'raw' => 'tidy::__construct/parseFile/parseString methods throw an exception if the configuration argument is invalid. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed GH-19021 (improved tidyOptGetCategory detection).', + 'raw' => 'Fixed GH-19021 (improved tidyOptGetCategory detection). (arjendekorte, David Carlier, Peter Kokot)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'arjendekorte', + 1 => 'David Carlier', + 2 => 'Peter Kokot', + ), + ), + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19507 (Corrupted result after recursive tokenization during token_get_all()).', + 'raw' => 'Fixed bug GH-19507 (Corrupted result after recursive tokenization during token_get_all()). (kubawerlos, nielsdos, Arnaud)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'kubawerlos', + 1 => 'nielsdos', + 2 => 'Arnaud', + ), + 'bugs' => + array ( + 0 => '19507', + ), + ), + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10992 (Improper long path support for relative paths).', + 'raw' => 'Fixed bug GH-10992 (Improper long path support for relative paths). (cmb, nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + 1 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '10992', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16843 (Windows phpize builds ignore source subfolders).', + 'raw' => 'Fixed bug GH-16843 (Windows phpize builds ignore source subfolders). (cmb)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'cmb', + ), + 'bugs' => + array ( + 0 => '16843', + ), + ), + ), + 2 => + array ( + 'message' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket).', + 'raw' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket). (dktapps)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'dktapps', + ), + ), + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'The xml_parser_free() function has been deprecated.', + 'raw' => 'The xml_parser_free() function has been deprecated. (DanielEScherzer)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'DanielEScherzer', + ), + ), + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Improved performance and reduce memory consumption.', + 'raw' => 'Improved performance and reduce memory consumption. (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Implement request #30622 (make $namespace parameter functional).', + 'raw' => 'Implement request #30622 (make $namespace parameter functional). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'gzfile, gzopen and readgzfile, their "use_include_path" argument is now a boolean.', + 'raw' => 'gzfile, gzopen and readgzfile, their "use_include_path" argument is now a boolean. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16883 (gzopen() does not use the default stream context when opening HTTP URLs).', + 'raw' => 'Fixed bug GH-16883 (gzopen() does not use the default stream context when opening HTTP URLs). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + 'bugs' => + array ( + 0 => '16883', + ), + ), + ), + 2 => + array ( + 'message' => 'Implemented GH-17668 (zlib streams should support locking).', + 'raw' => 'Implemented GH-17668 (zlib streams should support locking). (nielsdos)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'nielsdos', + ), + ), + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed missing zend_release_fcall_info_cache on the following methods ZipArchive::registerProgressCallback() and ZipArchive::registerCancelCallback() on failure.', + 'raw' => 'Fixed missing zend_release_fcall_info_cache on the following methods ZipArchive::registerProgressCallback() and ZipArchive::registerCancelCallback() on failure. (David Carlier)', + 'references' => + array ( + 'authors' => + array ( + 0 => 'David Carlier', + ), + ), + ), + ), + ), + ), +); \ No newline at end of file From cad374687936b7e154e42b39d637440c3ddb6231 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Sat, 6 Jun 2026 21:47:22 +0100 Subject: [PATCH 45/76] Ensure that OLDRELASES are defined into GLOBALS even if included elsewhere. --- bin/bumpRelease | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/bumpRelease b/bin/bumpRelease index f03c2c6da9..728685bc30 100755 --- a/bin/bumpRelease +++ b/bin/bumpRelease @@ -34,7 +34,7 @@ $OLDRELEASES[$major] = array_merge( ); file_put_contents(__DIR__ . "/../include/releases.inc", [ - " Date: Sat, 6 Jun 2026 21:47:41 +0100 Subject: [PATCH 46/76] Ensure that OLDRELASES are defined into GLOBALS even if included elsewhere. --- include/releases.inc | 7274 +++++++++++++++++++++--------------------- 1 file changed, 3637 insertions(+), 3637 deletions(-) diff --git a/include/releases.inc b/include/releases.inc index baf2ee2c0e..921dd4505f 100644 --- a/include/releases.inc +++ b/include/releases.inc @@ -1,34 +1,34 @@ +$GLOBALS['OLDRELEASES'] = $OLDRELEASES = array ( + 8 => array ( - '8.5.5' => + '8.5.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 Apr 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.5.tar.gz', 'name' => 'PHP 8.5.5 (tar.gz)', 'sha256' => '276279f637a875a514346b332bba6d8b06c036cf7979a858e5c55f72c4874884', 'date' => '09 Apr 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.5.tar.bz2', 'name' => 'PHP 8.5.5 (tar.bz2)', 'sha256' => 'ee262beff61c431965d1f97192854b36208adeac38983c3498bb3500ae87283c', 'date' => '09 Apr 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.5.tar.xz', 'name' => 'PHP 8.5.5 (tar.xz)', @@ -38,34 +38,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.30' => + '8.2.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.30.tar.gz', 'name' => 'PHP 8.2.30 (tar.gz)', 'sha256' => 'a0fa6673ba4b0c8335fbab08afb7c2e13a3791f2b5a0928c7ad3d7ad872edf26', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.30.tar.bz2', 'name' => 'PHP 8.2.30 (tar.bz2)', 'sha256' => '104820b6c8fc959dde4b3342135f42bdabf246e86918a16381a17d8447c866fa', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.30.tar.xz', 'name' => 'PHP 8.2.30 (tar.xz)', @@ -75,33 +75,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.20' => + '8.4.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 Apr 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.20.tar.gz', 'name' => 'PHP 8.4.20 (tar.gz)', 'sha256' => 'a2def5d534d57c6a0236f2265de7537608af871900a4f7955eff463e9e38247d', 'date' => '09 Apr 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.20.tar.bz2', 'name' => 'PHP 8.4.20 (tar.bz2)', 'sha256' => 'ce25d2610a5f9522ac8f53fbb7b8280b5c021991e9bd9137068c9c629d9ffb56', 'date' => '09 Apr 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.20.tar.xz', 'name' => 'PHP 8.4.20 (tar.xz)', @@ -111,33 +111,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.30' => + '8.3.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_30.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Jan 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.30.tar.gz', 'name' => 'PHP 8.3.30 (tar.gz)', 'sha256' => 'e587dc95fb7f62730299fa7b36b6e4f91e6708aaefa2fff68a0098d320c16386', 'date' => '15 Jan 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.30.tar.bz2', 'name' => 'PHP 8.3.30 (tar.bz2)', 'sha256' => '800b7b6ed50b73c8ee7844ee5f2f7cc612faa7875a0aa7c4529e8ed5866a5030', 'date' => '15 Jan 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.30.tar.xz', 'name' => 'PHP 8.3.30 (tar.xz)', @@ -147,33 +147,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.19' => + '8.4.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Mar 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.19.tar.gz', 'name' => 'PHP 8.4.19 (tar.gz)', 'sha256' => '9e862435ffb533dc5b0eb486170a74e5f7c8095e8eb8819a2ff5aad430292a18', 'date' => '12 Mar 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.19.tar.bz2', 'name' => 'PHP 8.4.19 (tar.bz2)', 'sha256' => 'bceb7798ed37b442fe523ae7ef345ccc2231db0b022d30735c2e378d3254a0d4', 'date' => '12 Mar 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.19.tar.xz', 'name' => 'PHP 8.4.19 (tar.xz)', @@ -183,33 +183,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.4' => + '8.5.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Mar 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.4.tar.gz', 'name' => 'PHP 8.5.4 (tar.gz)', 'sha256' => '4fef7f44eff3c18e329504cb0d3eb30b41cf54e2db05cb4ebe8b78fc37d38ce1', 'date' => '12 Mar 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.4.tar.bz2', 'name' => 'PHP 8.5.4 (tar.bz2)', 'sha256' => '2ac929a29a6b7ef4b8acec981a417b91bdf7f548f597df665cc56ab9ea95fc75', 'date' => '12 Mar 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.4.tar.xz', 'name' => 'PHP 8.5.4 (tar.xz)', @@ -219,33 +219,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.3' => + '8.5.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Feb 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.3.tar.gz', 'name' => 'PHP 8.5.3 (tar.gz)', 'sha256' => '402654d99b4beda602d4daec4f1cd39aafdacf5923e3e947da87392826660146', 'date' => '12 Feb 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.3.tar.bz2', 'name' => 'PHP 8.5.3 (tar.bz2)', 'sha256' => 'fc5ecabc183ceb64d9fca3dcd387bd29b2b67448326af998fde003124916823b', 'date' => '12 Feb 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.3.tar.xz', 'name' => 'PHP 8.5.3 (tar.xz)', @@ -255,33 +255,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.18' => + '8.4.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Feb 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.18.tar.gz', 'name' => 'PHP 8.4.18 (tar.gz)', 'sha256' => '79636f2890976e7507123988c4750e592a6eb35cd407bfa7d2bb35ad15af3a06', 'date' => '12 Feb 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.18.tar.bz2', 'name' => 'PHP 8.4.18 (tar.bz2)', 'sha256' => '586b32d92cebcfbca495c5f6ad1a33640553d0a9c0bfd2e6715334d959cf9858', 'date' => '12 Feb 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.18.tar.xz', 'name' => 'PHP 8.4.18 (tar.xz)', @@ -291,33 +291,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.2' => + '8.5.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Jan 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.2.tar.gz', 'name' => 'PHP 8.5.2 (tar.gz)', 'sha256' => '379ccccefcc85f28286444cf01bc0db017c79d513417267f5bb1d804b8428c22', 'date' => '15 Jan 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.2.tar.bz2', 'name' => 'PHP 8.5.2 (tar.bz2)', 'sha256' => 'f7efdeccc3a810b18920692306536b99a3ba86610dbd0795a296cf77d3fb3a06', 'date' => '15 Jan 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.2.tar.xz', 'name' => 'PHP 8.5.2 (tar.xz)', @@ -327,33 +327,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.17' => + '8.4.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Jan 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.17.tar.gz', 'name' => 'PHP 8.4.17 (tar.gz)', 'sha256' => 'aa0efeb7b47adff31e10bed1fc4ffcd4c0b5a4d41ab0bacfbb549c584939ee90', 'date' => '15 Jan 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.17.tar.bz2', 'name' => 'PHP 8.4.17 (tar.bz2)', 'sha256' => 'ea67d83d72dd6f3abaaeae7f532f78fd12192861d96aba8e9eca3b2ddade42d2', 'date' => '15 Jan 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.17.tar.xz', 'name' => 'PHP 8.4.17 (tar.xz)', @@ -363,34 +363,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.1' => + '8.5.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_1.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.1.tar.gz', 'name' => 'PHP 8.5.1 (tar.gz)', 'sha256' => '915492958081409a5e3ef99df969bcfa5b33bdf9517bd077991747e17fa2c1b7', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.1.tar.bz2', 'name' => 'PHP 8.5.1 (tar.bz2)', 'sha256' => '55f428c426e7241752ea9afff160bb64c32a9321cbd6d17d1c145b8df8823737', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.1.tar.xz', 'name' => 'PHP 8.5.1 (tar.xz)', @@ -400,34 +400,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.29' => + '8.3.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.29.tar.gz', 'name' => 'PHP 8.3.29 (tar.gz)', 'sha256' => '8565fa8733c640b60da5ab4944bf2d4081f859915b39e29b3af26cf23443ed97', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.29.tar.bz2', 'name' => 'PHP 8.3.29 (tar.bz2)', 'sha256' => 'c7337212e655325d499ea8108fa76f69ddde2fff7cb0fad36aa63eed540cb8a5', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.29.tar.xz', 'name' => 'PHP 8.3.29 (tar.xz)', @@ -437,34 +437,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.16' => + '8.4.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.16.tar.gz', 'name' => 'PHP 8.4.16 (tar.gz)', 'sha256' => '8e35d24f148ea7c2a93e9b9bcc329e8bf78b5bb922f3723a727c74c19d184e98', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.16.tar.bz2', 'name' => 'PHP 8.4.16 (tar.bz2)', 'sha256' => '6c48c65eba6a2f7a102925d08772239b1f45110aed2187fdd81b933ed439c692', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.16.tar.xz', 'name' => 'PHP 8.4.16 (tar.xz)', @@ -474,34 +474,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.34' => + '8.1.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_34.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.34.tar.gz', 'name' => 'PHP 8.1.34 (tar.gz)', 'sha256' => '3c5b060ec8e0d5dd1d8237823f3161cc8bc5342aab3c46893eba9857759c4bfa', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.34.tar.bz2', 'name' => 'PHP 8.1.34 (tar.bz2)', 'sha256' => '98e0a08a0fae37d08dfcca2f5ff6664863097dde4b1d360af2acc8c3542f2a0f', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.34.tar.xz', 'name' => 'PHP 8.1.34 (tar.xz)', @@ -511,34 +511,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.33' => + '8.1.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.33.tar.gz', 'name' => 'PHP 8.1.33 (tar.gz)', 'sha256' => 'ee33568a0e2be0b722b3f9a88cecc578316b66b25c90cd0a4f3b1a5cdc3cd826', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.33.tar.bz2', 'name' => 'PHP 8.1.33 (tar.bz2)', 'sha256' => 'b6553451841c1a569865d7fdc83024621ee4434cd8fbfeb0a31588ac9c70685f', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.33.tar.xz', 'name' => 'PHP 8.1.33 (tar.xz)', @@ -548,34 +548,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.15' => + '8.4.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_15.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '20 Nov 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.15.tar.gz', 'name' => 'PHP 8.4.15 (tar.gz)', 'sha256' => '51d23c98073c1e88c98c12b175736a11316cd3d4753f8d060934e53e5a9945c3', 'date' => '20 Nov 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.15.tar.bz2', 'name' => 'PHP 8.4.15 (tar.bz2)', 'sha256' => 'b7155bdd498d60d63e4bc320dc224863976d31b5bd9339699726c961255a3197', 'date' => '20 Nov 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.15.tar.xz', 'name' => 'PHP 8.4.15 (tar.xz)', @@ -585,34 +585,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.29' => + '8.2.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.29.tar.gz', 'name' => 'PHP 8.2.29 (tar.gz)', 'sha256' => '0b27d330769d4bc67b1d8864347c38744b289664a946919c3ddb2235d326b3cd', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.29.tar.bz2', 'name' => 'PHP 8.2.29 (tar.bz2)', 'sha256' => '51979e8d198cbade2aad4ffe9f53dd3f04f9602d3089e5979985e058ade4267c', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.29.tar.xz', 'name' => 'PHP 8.2.29 (tar.xz)', @@ -622,33 +622,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.28' => + '8.3.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_28.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '20 Nov 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.28.tar.gz', 'name' => 'PHP 8.3.28 (tar.gz)', 'sha256' => '2f7dda35bbef2842ec61510aaefe52c78361a61f9cfabd99a7789204d6383d9f', 'date' => '20 Nov 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.28.tar.bz2', 'name' => 'PHP 8.3.28 (tar.bz2)', 'sha256' => 'd5b385ee351ec463c85d47eeb53b51156f3483eaf3ff43a7ad5080c2b6d4c557', 'date' => '20 Nov 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.28.tar.xz', 'name' => 'PHP 8.3.28 (tar.xz)', @@ -658,34 +658,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.0' => + '8.5.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_0.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '20 Nov 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.0.tar.gz', 'name' => 'PHP 8.5.0 (tar.gz)', 'sha256' => 'dc3651369c9b63320dd4ea8e272c6a23f18e50f67c13d10ee368c86961dbd10f', 'date' => '20 Nov 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.0.tar.bz2', 'name' => 'PHP 8.5.0 (tar.bz2)', 'sha256' => 'cd16cb045b34a6cec6a83008e1b335f365c7a832fcc483df82308664c6d021f9', 'date' => '20 Nov 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.0.tar.xz', 'name' => 'PHP 8.5.0 (tar.xz)', @@ -695,34 +695,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.14' => + '8.4.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_14.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '23 Oct 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.14.tar.gz', 'name' => 'PHP 8.4.14 (tar.gz)', 'sha256' => '40341f3e03a36d48facdb6cc2ec600ff887a1af9a5e5fee0b40f40b61488afae', 'date' => '23 Oct 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.14.tar.bz2', 'name' => 'PHP 8.4.14 (tar.bz2)', 'sha256' => 'f2139ce4cb7a6c5643ee98caa34e5c32ba841c2ba293e34a3d0357faa84bb3e7', 'date' => '23 Oct 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.14.tar.xz', 'name' => 'PHP 8.4.14 (tar.xz)', @@ -732,33 +732,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.27' => + '8.3.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Oct 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.27.tar.gz', 'name' => 'PHP 8.3.27 (tar.gz)', 'sha256' => 'bf189e30f81e11526690b1c82e4fb8b286b607cd7afaf4bf27a39003d8f3246f', 'date' => '23 Oct 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.27.tar.bz2', 'name' => 'PHP 8.3.27 (tar.bz2)', 'sha256' => 'a1dd2b51b437c0a6337e019004778a8ef253db4e9aff7d48d88798ca91b7e2a4', 'date' => '23 Oct 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.27.tar.xz', 'name' => 'PHP 8.3.27 (tar.xz)', @@ -768,33 +768,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.26' => + '8.3.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_26.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '25 Sep 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.26.tar.gz', 'name' => 'PHP 8.3.26 (tar.gz)', 'sha256' => 'c96dac9745db9216a299007d144b593f4e4e7d95b4618b2a9591e5e5585200d5', 'date' => '25 Sep 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.26.tar.bz2', 'name' => 'PHP 8.3.26 (tar.bz2)', 'sha256' => '721b63d5349f131f5097537b3be6ba6801e2d8e6faba1f1f2ea95b4fd62e7525', 'date' => '25 Sep 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.26.tar.xz', 'name' => 'PHP 8.3.26 (tar.xz)', @@ -804,34 +804,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.13' => + '8.4.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_13.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '25 Sep 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.13.tar.gz', 'name' => 'PHP 8.4.13 (tar.gz)', 'sha256' => 'ba323619b322125dbd7bf09eefbd572863797359c7d127f986c58a71c872d531', 'date' => '25 Sep 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.13.tar.bz2', 'name' => 'PHP 8.4.13 (tar.bz2)', 'sha256' => '85181ddca7b3e03f148521b043bd62411950d468c667db6400479f1b10812194', 'date' => '25 Sep 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.13.tar.xz', 'name' => 'PHP 8.4.13 (tar.xz)', @@ -841,33 +841,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.25' => + '8.3.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Aug 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.25.tar.gz', 'name' => 'PHP 8.3.25 (tar.gz)', 'sha256' => '86711e98eccffb637dc319f0cdcde9188c1710633910beb1a3cbb3ae5ecc2e05', 'date' => '28 Aug 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.25.tar.bz2', 'name' => 'PHP 8.3.25 (tar.bz2)', 'sha256' => '06e54791e11192f089e4d20c716f25bddcebdde951b570b555edfb5988a8b71a', 'date' => '28 Aug 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.25.tar.xz', 'name' => 'PHP 8.3.25 (tar.xz)', @@ -877,34 +877,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.12' => + '8.4.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_12.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '28 Aug 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.12.tar.gz', 'name' => 'PHP 8.4.12 (tar.gz)', 'sha256' => '4963b0d3a6ca8a391317d1b80309c2cfdebf4318b131ff8e7d19e3ab79da9104', 'date' => '28 Aug 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.12.tar.bz2', 'name' => 'PHP 8.4.12 (tar.bz2)', 'sha256' => '2ebd5382eb090d603087da649ed21de64b079616bc9a02abbc532b89b17e3468', 'date' => '28 Aug 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.12.tar.xz', 'name' => 'PHP 8.4.12 (tar.xz)', @@ -914,33 +914,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.24' => + '8.3.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_24.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '31 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.24.tar.gz', 'name' => 'PHP 8.3.24 (tar.gz)', 'sha256' => 'b827c512b59270c3dc7e19614314fc345022c423e6443c960746310792d0de82', 'date' => '31 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.24.tar.bz2', 'name' => 'PHP 8.3.24 (tar.bz2)', 'sha256' => 'e4e12da490746924624c91406b60b31967e4d7bdeabbab9e8cb5354884ee9964', 'date' => '31 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.24.tar.xz', 'name' => 'PHP 8.3.24 (tar.xz)', @@ -950,34 +950,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.11' => + '8.4.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_11.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '31 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.11.tar.gz', 'name' => 'PHP 8.4.11 (tar.gz)', 'sha256' => '422548cd8cf14ab0264ba510d3586476b0e77a3272356ba486bc82e706dc6cc8', 'date' => '31 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.11.tar.bz2', 'name' => 'PHP 8.4.11 (tar.bz2)', 'sha256' => '2c39c75b54df89b01195b72ad0ee1fcd490c71db18bc52bcd61fb2ffb57b26fa', 'date' => '31 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.11.tar.xz', 'name' => 'PHP 8.4.11 (tar.xz)', @@ -987,34 +987,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.10' => + '8.4.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_10.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.10.tar.gz', 'name' => 'PHP 8.4.10 (tar.gz)', 'sha256' => 'bd25c40ece60d1b3c879c11f517d335b8d6a872174c32ebb088b9494d8bb2cf2', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.10.tar.bz2', 'name' => 'PHP 8.4.10 (tar.bz2)', 'sha256' => '8815d10659cde5f03be4d169205d62b7b29ed0edc7cdd84b6384cda0310c3108', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.10.tar.xz', 'name' => 'PHP 8.4.10 (tar.xz)', @@ -1024,34 +1024,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.23' => + '8.3.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_23.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.23.tar.gz', 'name' => 'PHP 8.3.23 (tar.gz)', 'sha256' => 'ac9f3d6e9bcf1d5c4d66d2d954f89852c17fd4c5eba5811a3a8db08f38c908c7', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.23.tar.bz2', 'name' => 'PHP 8.3.23 (tar.bz2)', 'sha256' => '05488f7b967d90a50932f0674dc356e1b795f522f0298b5ce24b680de233c2d4', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.23.tar.xz', 'name' => 'PHP 8.3.23 (tar.xz)', @@ -1061,33 +1061,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.22' => + '8.3.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '5 Jun 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.22.tar.gz', 'name' => 'PHP 8.3.22 (tar.gz)', 'sha256' => '8fc57c9df455354679e4a127defb60e1af8718ece4cd4827e500f5c7f2449103', 'date' => '5 Jun 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.22.tar.bz2', 'name' => 'PHP 8.3.22 (tar.bz2)', 'sha256' => '99133e2cda2af37baa79db17d8efd414628f14a02ec75f1418a0aa3f6aa6673b', 'date' => '5 Jun 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.22.tar.xz', 'name' => 'PHP 8.3.22 (tar.xz)', @@ -1097,34 +1097,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.32' => + '8.1.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.32.tar.gz', 'name' => 'PHP 8.1.32 (tar.gz)', 'sha256' => '4846836d1de27dbd28e89180f073531087029a77e98e8e019b7b2eddbdb1baff', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.32.tar.bz2', 'name' => 'PHP 8.1.32 (tar.bz2)', 'sha256' => 'a04fdd3df05f948df8a8f2c5d27ab54c1f43822c525f31fd20c19a282452d07c', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.32.tar.xz', 'name' => 'PHP 8.1.32 (tar.xz)', @@ -1134,34 +1134,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.28' => + '8.2.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.28.tar.gz', 'name' => 'PHP 8.2.28 (tar.gz)', 'sha256' => '3318300888de5023720cc84efad5e005e53f30b5f0072fae65a750dabcaf6ec3', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.28.tar.bz2', 'name' => 'PHP 8.2.28 (tar.bz2)', 'sha256' => '2919cc1b92190a58dc17904b92e626600b96ce49a4c72e77513786a4406acce5', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.28.tar.xz', 'name' => 'PHP 8.2.28 (tar.xz)', @@ -1171,33 +1171,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.8' => + '8.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_8.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '5 Jun 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.8.tar.gz', 'name' => 'PHP 8.4.8 (tar.gz)', 'sha256' => '26d5ae014925b7dee3a61ec02422795f008fbb3a36f9355edaee2d9d78b89b07', 'date' => '5 Jun 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.8.tar.bz2', 'name' => 'PHP 8.4.8 (tar.bz2)', 'sha256' => '36569c64dd1499e570c436603b641eee7cde4af576af786597d0ee711b3a3a8a', 'date' => '5 Jun 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.8.tar.xz', 'name' => 'PHP 8.4.8 (tar.xz)', @@ -1207,33 +1207,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.21' => + '8.3.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '8 May 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.21.tar.gz', 'name' => 'PHP 8.3.21 (tar.gz)', 'sha256' => 'e7f1748c1fa3d2bf8ef2e00508bd62325ba68c3b830b253bc561225a9ba5457d', 'date' => '8 May 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.21.tar.bz2', 'name' => 'PHP 8.3.21 (tar.bz2)', 'sha256' => 'd0769e6e11cfa6c59a16de241668be8c7f31a729950a8d06190dfad2d8622b04', 'date' => '8 May 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.21.tar.xz', 'name' => 'PHP 8.3.21 (tar.xz)', @@ -1243,33 +1243,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.7' => + '8.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '8 May 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.7.tar.gz', 'name' => 'PHP 8.4.7 (tar.gz)', 'sha256' => 'fd2be3b9320184e856426e01bd1a428110776ea8e976c3fb6b65808d03fc886a', 'date' => '8 May 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.7.tar.bz2', 'name' => 'PHP 8.4.7 (tar.bz2)', 'sha256' => '6eccb1b06a4dd9cea314dbe70c762d3d4765471cb6ebf925b9da308978bff988', 'date' => '8 May 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.7.tar.xz', 'name' => 'PHP 8.4.7 (tar.xz)', @@ -1279,33 +1279,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.20' => + '8.3.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '10 Apr 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.20.tar.gz', 'name' => 'PHP 8.3.20 (tar.gz)', 'sha256' => '515ed37529df6b7f569ba68d505713bce23a93a58471dedac4ecfd17c44e5650', 'date' => '10 Apr 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.20.tar.bz2', 'name' => 'PHP 8.3.20 (tar.bz2)', 'sha256' => '36b4e6a323cd45673a54f296e9d2666b7f5df57641031c77c4fd8137bc4ebeb3', 'date' => '10 Apr 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.20.tar.xz', 'name' => 'PHP 8.3.20 (tar.xz)', @@ -1315,33 +1315,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.6' => + '8.4.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '10 Apr 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.6.tar.gz', 'name' => 'PHP 8.4.6 (tar.gz)', 'sha256' => '49be0f2f45c9b07c9b921d023bf28b1fc781700c829869725681300e72e3faa8', 'date' => '10 Apr 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.6.tar.bz2', 'name' => 'PHP 8.4.6 (tar.bz2)', 'sha256' => '9cf2734509b603f6589617ab52a9712a03e0fe059951cddd2d4623df4bf7c6c6', 'date' => '10 Apr 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.6.tar.xz', 'name' => 'PHP 8.4.6 (tar.xz)', @@ -1351,34 +1351,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.5' => + '8.4.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_5.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.5.tar.gz', 'name' => 'PHP 8.4.5 (tar.gz)', 'sha256' => 'f05530d350f1ffe279e097c2af7a8d78cab046ef99d91f6b3151b06f0ab05d05', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.5.tar.bz2', 'name' => 'PHP 8.4.5 (tar.bz2)', 'sha256' => '9378c78887d0cd7462fc5c17f2de30c852f20f79d28795e2573fe3250d39436e', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.5.tar.xz', 'name' => 'PHP 8.4.5 (tar.xz)', @@ -1388,34 +1388,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.19' => + '8.3.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_19.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.19.tar.gz', 'name' => 'PHP 8.3.19 (tar.gz)', 'sha256' => 'bb21d1a5eb9a8b27668b2926fa9279a5878bb6fdee55450621f7865e062dcf3a', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.19.tar.bz2', 'name' => 'PHP 8.3.19 (tar.bz2)', 'sha256' => 'ad6902a2a02f94ec3e9982069e2668bba3ce47e2f6bbbab95eb6b7db7bf3d350', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.19.tar.xz', 'name' => 'PHP 8.3.19 (tar.xz)', @@ -1425,33 +1425,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.27' => + '8.2.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '19 Dec 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.27.tar.gz', 'name' => 'PHP 8.2.27 (tar.gz)', 'sha256' => '179cc901760d478ffd545d10702ebc2a1270d8c13471bdda729d20055140809a', 'date' => '19 Dec 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.27.tar.bz2', 'name' => 'PHP 8.2.27 (tar.bz2)', 'sha256' => '6e57dbaf769a7f3deb4f0f48b8c535e671cc0a18022ed7f6ff23b50e941d4b60', 'date' => '19 Dec 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.27.tar.xz', 'name' => 'PHP 8.2.27 (tar.xz)', @@ -1461,34 +1461,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.31' => + '8.1.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.31.tar.gz', 'name' => 'PHP 8.1.31 (tar.gz)', 'sha256' => '618923b407c4575bfee085f00c4aaa16a5cc86d4b1eb893c0f352d61541bbfb1', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.31.tar.bz2', 'name' => 'PHP 8.1.31 (tar.bz2)', 'sha256' => '0b39828b345151caf1b795d9f4b923c9887231776c33076dfc9d90a44390d0dc', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.31.tar.xz', 'name' => 'PHP 8.1.31 (tar.xz)', @@ -1498,33 +1498,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.4' => + '8.4.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Feb 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.4.tar.gz', 'name' => 'PHP 8.4.4 (tar.gz)', 'sha256' => '719551f50a81961f802aa9102bf4a1a0b5a315074330ab37bc8035a15f4be71b', 'date' => '13 Feb 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.4.tar.bz2', 'name' => 'PHP 8.4.4 (tar.bz2)', 'sha256' => '192a325fd3ca09b6c528dd6014ee07d803c3162514d4bb0d3e0981d00ac700ec', 'date' => '13 Feb 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.4.tar.xz', 'name' => 'PHP 8.4.4 (tar.xz)', @@ -1534,33 +1534,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.17' => + '8.3.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Feb 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.17.tar.gz', 'name' => 'PHP 8.3.17 (tar.gz)', 'sha256' => 'e2bbeca5fa62ff27d6ba6241619cf92a80e5346556be187aa962b91bd0eb9df1', 'date' => '13 Feb 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.17.tar.bz2', 'name' => 'PHP 8.3.17 (tar.bz2)', 'sha256' => '4e034dca7ab16fc6062c8c53067528f4ecaa246bf22310e6841f7008094264ac', 'date' => '13 Feb 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.17.tar.xz', 'name' => 'PHP 8.3.17 (tar.xz)', @@ -1570,33 +1570,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.16' => + '8.3.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_16.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Jan 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.16.tar.gz', 'name' => 'PHP 8.3.16 (tar.gz)', 'sha256' => '61441627dca50cf0173e3f054ffe8c4f5db6552555c43cab87a8ecacfd201c7e', 'date' => '16 Jan 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.16.tar.bz2', 'name' => 'PHP 8.3.16 (tar.bz2)', 'sha256' => 'e9208218cbdcb816834b6c5ed8ddc5748fb12ff777cf9e0e03bb4896276608b6', 'date' => '16 Jan 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.16.tar.xz', 'name' => 'PHP 8.3.16 (tar.xz)', @@ -1606,33 +1606,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.3' => + '8.4.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Jan 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.3.tar.gz', 'name' => 'PHP 8.4.3 (tar.gz)', 'sha256' => '45b88555b31487401b42c8bd36f2c45d84992bc93ae4c1a23d93bb3347984ecb', 'date' => '16 Jan 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.3.tar.bz2', 'name' => 'PHP 8.4.3 (tar.bz2)', 'sha256' => 'd6b12379d1f1df216d1932840a31b14fed1e0fc7e8db1e9d1795f75a1e75ead9', 'date' => '16 Jan 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.3.tar.xz', 'name' => 'PHP 8.4.3 (tar.xz)', @@ -1642,33 +1642,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.2' => + '8.4.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '19 Dec 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.2.tar.gz', 'name' => 'PHP 8.4.2 (tar.gz)', 'sha256' => '5d3cf82a7f4cafdcfc4f3d98f3e3ee81077ae57c709a5613cbff5834d78a7747', 'date' => '19 Dec 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.2.tar.bz2', 'name' => 'PHP 8.4.2 (tar.bz2)', 'sha256' => 'ef4fe9921b885ce3b047792ab60260eaf657e22812be511d19d0e45edf984783', 'date' => '19 Dec 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.2.tar.xz', 'name' => 'PHP 8.4.2 (tar.xz)', @@ -1678,33 +1678,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.15' => + '8.3.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '19 Dec 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.15.tar.gz', 'name' => 'PHP 8.3.15 (tar.gz)', 'sha256' => '67073c3c9c56c86461e0715d9e1806af5ddffe8e6e2eb9781f7923bbb5bd67fa', 'date' => '19 Dec 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.15.tar.bz2', 'name' => 'PHP 8.3.15 (tar.bz2)', 'sha256' => 'b1675a4ff730b5811b8e6a7687488c42e835e156a99776aa3e6f017abda3be98', 'date' => '19 Dec 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.15.tar.xz', 'name' => 'PHP 8.3.15 (tar.xz)', @@ -1714,34 +1714,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.1' => + '8.4.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_1.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.1.tar.gz', 'name' => 'PHP 8.4.1 (tar.gz)', 'sha256' => 'c3d1ce4157463ea43004289c01172deb54ce9c5894d8722f4e805461bf9feaec', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.1.tar.bz2', 'name' => 'PHP 8.4.1 (tar.bz2)', 'sha256' => 'ef8a270118ed128b765fc31f198c7f4650c8171411b0f6a3a1a3aba11fcacc23', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.1.tar.xz', 'name' => 'PHP 8.4.1 (tar.xz)', @@ -1751,34 +1751,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.14' => + '8.3.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_14.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.14.tar.gz', 'name' => 'PHP 8.3.14 (tar.gz)', 'sha256' => 'e4ee602c31e2f701c9f0209a2902dd4802727431246a9155bf56dda7bcf7fb4a', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.14.tar.bz2', 'name' => 'PHP 8.3.14 (tar.bz2)', 'sha256' => 'f56fa669ce4c01452a2921f40034d779d8c2b97d0749493ad4781813b9221cf8', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.14.tar.xz', 'name' => 'PHP 8.3.14 (tar.xz)', @@ -1788,34 +1788,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.26' => + '8.2.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.26.tar.gz', 'name' => 'PHP 8.2.26 (tar.gz)', 'sha256' => '04e47b46b347ed6404dcc9e9989486710b075eafc8490500fd271aeeac5d83cb', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.26.tar.bz2', 'name' => 'PHP 8.2.26 (tar.bz2)', 'sha256' => 'be57c347d451c905bcb4336832a864d9928dd0e20989b872705fea0ba6476c6b', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.26.tar.xz', 'name' => 'PHP 8.2.26 (tar.xz)', @@ -1825,34 +1825,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.30' => + '8.1.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.30.tar.gz', 'name' => 'PHP 8.1.30 (tar.gz)', 'sha256' => '80addd302b7e9708e0d106779c3827520eccaf14af1149174b51da33d63e6af7', 'date' => '26 Sep 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.30.tar.bz2', 'name' => 'PHP 8.1.30 (tar.bz2)', 'sha256' => 'cb1625e5ac49b91037477e3e7767bb0624343971aeb992f4791b618af571d23e', 'date' => '26 Sep 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.30.tar.xz', 'name' => 'PHP 8.1.30 (tar.xz)', @@ -1862,33 +1862,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.13' => + '8.3.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Oct 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.13.tar.gz', 'name' => 'PHP 8.3.13 (tar.gz)', 'sha256' => 'ffe34317d2688ed3161809c90ca4135c84ebfdfd12a46880a264d7d1e1d7739a', 'date' => '24 Oct 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.13.tar.bz2', 'name' => 'PHP 8.3.13 (tar.bz2)', 'sha256' => 'c7791c82e1a554ccaf84a40ba71cc1417ba9af67fb5b39780837fd7c7eb6f124', 'date' => '24 Oct 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.13.tar.xz', 'name' => 'PHP 8.3.13 (tar.xz)', @@ -1898,33 +1898,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.25' => + '8.2.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Oct 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.25.tar.gz', 'name' => 'PHP 8.2.25 (tar.gz)', 'sha256' => '7fe7ba6e3e66cd0e61cfa95341e6aefc8790030a7867333f54aef5fb78aad18b', 'date' => '24 Oct 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.25.tar.bz2', 'name' => 'PHP 8.2.25 (tar.bz2)', 'sha256' => '07b41c5e96c60c096510e45f02f818414d11bdd0d5da1b6840ddba2ba7289401', 'date' => '24 Oct 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.25.tar.xz', 'name' => 'PHP 8.2.25 (tar.xz)', @@ -1934,34 +1934,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.24' => + '8.2.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.24.tar.gz', 'name' => 'PHP 8.2.24 (tar.gz)', 'sha256' => '5d26441969279a594e404bb9f2e17b6f74bb10606fe05911e739137673ae6c4c', 'date' => '26 Sep 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.24.tar.bz2', 'name' => 'PHP 8.2.24 (tar.bz2)', 'sha256' => '4cc76ec644eee97d17c92bfe8d0e84714fedf299a538b7dfadc0639dd0dc432f', 'date' => '26 Sep 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.24.tar.xz', 'name' => 'PHP 8.2.24 (tar.xz)', @@ -1971,34 +1971,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.12' => + '8.3.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_12.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.12.tar.gz', 'name' => 'PHP 8.3.12 (tar.gz)', 'sha256' => '7090e551e05b26384546345d6a162c71b74550febf75bdfd16dfd1f0cfa8647c', 'date' => '26 Sep 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.12.tar.bz2', 'name' => 'PHP 8.3.12 (tar.bz2)', 'sha256' => '807633496ccdb370a8905458db82bd67366e98a6d59728914b797b87e9caecbf', 'date' => '26 Sep 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.12.tar.xz', 'name' => 'PHP 8.3.12 (tar.xz)', @@ -2008,34 +2008,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.29' => + '8.1.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Jun 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.29.tar.gz', 'name' => 'PHP 8.1.29 (tar.gz)', 'sha256' => '8b2609bf1d3173aa38269a9af21532c65f730aadd3051f9aae011eea9e246de5', 'date' => '06 Jun 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.29.tar.bz2', 'name' => 'PHP 8.1.29 (tar.bz2)', 'sha256' => '87a60313263f2f533f180e719272ca5e47cd9884d4ec3c93720198eaffae0827', 'date' => '06 Jun 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.29.tar.xz', 'name' => 'PHP 8.1.29 (tar.xz)', @@ -2045,33 +2045,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.23' => + '8.2.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_23.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.23.tar.gz', 'name' => 'PHP 8.2.23 (tar.gz)', 'sha256' => 'f5cb5f0e063bcc632c60a8f26af63b19d5f924f1fc54b4471d88cfaa865d6917', 'date' => '29 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.23.tar.bz2', 'name' => 'PHP 8.2.23 (tar.bz2)', 'sha256' => 'f7c90cda7a3c1de01f3bfb7b469d52dec9eba2f3b83320836004f9c2eecae26b', 'date' => '29 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.23.tar.xz', 'name' => 'PHP 8.2.23 (tar.xz)', @@ -2081,33 +2081,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.11' => + '8.3.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_11.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.11.tar.gz', 'name' => 'PHP 8.3.11 (tar.gz)', 'sha256' => 'b93a69af83a1302543789408194bd1ae9829e116e784d578778200f20f1b72d4', 'date' => '29 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.11.tar.bz2', 'name' => 'PHP 8.3.11 (tar.bz2)', 'sha256' => '6640e2455080a89adc41d4e57bb04f8c2bfb7eec627fe199af973bff34d7f0ee', 'date' => '29 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.11.tar.xz', 'name' => 'PHP 8.3.11 (tar.xz)', @@ -2117,33 +2117,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.10' => + '8.3.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.10.tar.gz', 'name' => 'PHP 8.3.10 (tar.gz)', 'sha256' => 'd0b4dd5ff465053248fd28dacf2fe0bed79deaaef657890cecb6bfcb73996dcd', 'date' => '01 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.10.tar.bz2', 'name' => 'PHP 8.3.10 (tar.bz2)', 'sha256' => 'e584199c350b46343c37069bb9cc20ad893cb04c747c899ef1b05eadc0eea3b0', 'date' => '01 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.10.tar.xz', 'name' => 'PHP 8.3.10 (tar.xz)', @@ -2153,33 +2153,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.22' => + '8.2.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.22.tar.gz', 'name' => 'PHP 8.2.22 (tar.gz)', 'sha256' => '44197016c9eeed5c50523e20eb44adc4dd9d84ac08bdf9e46077e775d467d7d0', 'date' => '01 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.22.tar.bz2', 'name' => 'PHP 8.2.22 (tar.bz2)', 'sha256' => '5aae5964c60533185f9be928cf7d79a13393cc5560cedf1f4b977944cc76a585', 'date' => '01 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.22.tar.xz', 'name' => 'PHP 8.2.22 (tar.xz)', @@ -2189,33 +2189,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.21' => + '8.2.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.21.tar.gz', 'name' => 'PHP 8.2.21 (tar.gz)', 'sha256' => '0c6323699309a4d2e71057f01bc071b199f240973c349287b667a3ab36a496c6', 'date' => '04 Jul 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.21.tar.bz2', 'name' => 'PHP 8.2.21 (tar.bz2)', 'sha256' => 'f9876fe7d4d96d41aced199b58a1f7ae7b6655ddc92673135feded7f6939d77f', 'date' => '04 Jul 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.21.tar.xz', 'name' => 'PHP 8.2.21 (tar.xz)', @@ -2225,33 +2225,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.9' => + '8.3.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_9.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.9.tar.gz', 'name' => 'PHP 8.3.9 (tar.gz)', 'sha256' => 'f484dec6ee005c83f899af02fc021e1bc3b1d7b3f143ca062ef66b0fcee96566', 'date' => '04 Jul 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.9.tar.bz2', 'name' => 'PHP 8.3.9 (tar.bz2)', 'sha256' => '96edc6d82b7503a6650541fc477abd5456df28dfaa8c9388ff9e31d9fe1e3112', 'date' => '04 Jul 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.9.tar.xz', 'name' => 'PHP 8.3.9 (tar.xz)', @@ -2261,34 +2261,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.8' => + '8.3.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Jun 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.8.tar.gz', 'name' => 'PHP 8.3.8 (tar.gz)', 'sha256' => '0ebed9f1471871cf131e504629f3947f2acd38a655cc31b036f99efd0e3dbdeb', 'date' => '06 Jun 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.8.tar.bz2', 'name' => 'PHP 8.3.8 (tar.bz2)', 'sha256' => 'f4a6cb005ae117aba86c2044932cf563899a2e977ac09781aa74b2161ddc563b', 'date' => '06 Jun 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.8.tar.xz', 'name' => 'PHP 8.3.8 (tar.xz)', @@ -2298,34 +2298,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.20' => + '8.2.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Jun 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.20.tar.gz', 'name' => 'PHP 8.2.20 (tar.gz)', 'sha256' => '05a4365f7bc6475ac4fef65dde13886913dbc0036e63895d369c1fc6e8206107', 'date' => '06 Jun 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.20.tar.bz2', 'name' => 'PHP 8.2.20 (tar.bz2)', 'sha256' => '5dec6fa61c7b9c47aa1d76666be651f2642ed2bcf6cd8638c57e3571ce2aac61', 'date' => '06 Jun 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.20.tar.xz', 'name' => 'PHP 8.2.20 (tar.xz)', @@ -2335,33 +2335,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.19' => + '8.2.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 May 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.19.tar.gz', 'name' => 'PHP 8.2.19 (tar.gz)', 'sha256' => '8bfdd20662b41a238a5acd84fab3e05c36a685fcb56e6d8ac18eeb87057ab2bc', 'date' => '09 May 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.19.tar.bz2', 'name' => 'PHP 8.2.19 (tar.bz2)', 'sha256' => '3c18f7ce51b7c7b26b797e1f97079d386b30347eb04e817f5e6c8e9b275e2a6a', 'date' => '09 May 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.19.tar.xz', 'name' => 'PHP 8.2.19 (tar.xz)', @@ -2371,33 +2371,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.7' => + '8.3.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 May 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.7.tar.gz', 'name' => 'PHP 8.3.7 (tar.gz)', 'sha256' => '2e11d10b651459a8767401e66b5d70e3b048e446579fcdeb0b69bcba789af8c4', 'date' => '09 May 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.7.tar.bz2', 'name' => 'PHP 8.3.7 (tar.bz2)', 'sha256' => '01c20cde1c5a5696651875ed22f507849679fba740f8c421616b7d43d7f797da', 'date' => '09 May 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.7.tar.xz', 'name' => 'PHP 8.3.7 (tar.xz)', @@ -2407,34 +2407,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.28' => + '8.1.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '11 Apr 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.28.tar.gz', 'name' => 'PHP 8.1.28 (tar.gz)', 'sha256' => 'a2a9d853f4a4c9ff8631da5dc3a6cec5ab083ef37a214877b0240dcfcdfdefea', 'date' => '11 Apr 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.28.tar.bz2', 'name' => 'PHP 8.1.28 (tar.bz2)', 'sha256' => '8be450096e0153c47d75384e7dd595cc897f1d53ce0060708ce9589bcc3141ee', 'date' => '11 Apr 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.28.tar.xz', 'name' => 'PHP 8.1.28 (tar.xz)', @@ -2444,34 +2444,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.6' => + '8.3.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_6.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '11 Apr 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.6.tar.gz', 'name' => 'PHP 8.3.6 (tar.gz)', 'sha256' => '39695f5bd107892e36fd2ed6b3d3a78140fd4b05d556d6c6531a921633cacb5f', 'date' => '11 Apr 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.6.tar.bz2', 'name' => 'PHP 8.3.6 (tar.bz2)', 'sha256' => '6324b1ddd8eb3025b041034b88dc2bc0b4819b0022129eeaeba37e47803108bc', 'date' => '11 Apr 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.6.tar.xz', 'name' => 'PHP 8.3.6 (tar.xz)', @@ -2481,34 +2481,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.18' => + '8.2.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_18.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '11 Apr 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.18.tar.gz', 'name' => 'PHP 8.2.18 (tar.gz)', 'sha256' => 'b934ca7e8c82945c5cbf0aa2a3f66727eb5b5098e551819e1b090572d6a51ead', 'date' => '11 Apr 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.18.tar.bz2', 'name' => 'PHP 8.2.18 (tar.bz2)', 'sha256' => 'ca0b07c254200320f518ac5b3df540a9cf14d866f3c93edc3013b52e06fac796', 'date' => '11 Apr 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.18.tar.xz', 'name' => 'PHP 8.2.18 (tar.xz)', @@ -2518,33 +2518,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.27' => + '8.1.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Dec 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.27.tar.gz', 'name' => 'PHP 8.1.27 (tar.gz)', 'sha256' => '9aa5d7a29389d799885d90740932697006d5d0f55d1def67678e0c14f6ab7b2d', 'date' => '21 Dec 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.27.tar.bz2', 'name' => 'PHP 8.1.27 (tar.bz2)', 'sha256' => 'a15fd73ea44f2df30b07d24786e07d1948b0ea3eed0b8b845735d500dc28bff1', 'date' => '21 Dec 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.27.tar.xz', 'name' => 'PHP 8.1.27 (tar.xz)', @@ -2554,33 +2554,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.4' => + '8.3.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Mar 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.4.tar.gz', 'name' => 'PHP 8.3.4 (tar.gz)', 'sha256' => '0e2801e47fb1b92d2743204fcf650ce2fcad1a13ef7a44fe05738101a383e4a2', 'date' => '14 Mar 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.4.tar.bz2', 'name' => 'PHP 8.3.4 (tar.bz2)', 'sha256' => '3c5caf18e0c0a243aaec913a39ecb092043195adde4c3fc42e945da5b9277695', 'date' => '14 Mar 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.4.tar.xz', 'name' => 'PHP 8.3.4 (tar.xz)', @@ -2590,33 +2590,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.17' => + '8.2.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Mar 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.17.tar.gz', 'name' => 'PHP 8.2.17 (tar.gz)', 'sha256' => '1d8ab98e1c09518c672c5afcbef0e61f9003173c7638fc686461ae670d12742e', 'date' => '14 Mar 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.17.tar.bz2', 'name' => 'PHP 8.2.17 (tar.bz2)', 'sha256' => '191316c203267d96160b47d22f955d4dc11793de8a5f327e0c2a76275a6894ea', 'date' => '14 Mar 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.17.tar.xz', 'name' => 'PHP 8.2.17 (tar.xz)', @@ -2626,33 +2626,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.3' => + '8.3.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Feb 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.3.tar.gz', 'name' => 'PHP 8.3.3 (tar.gz)', 'sha256' => '61285ae17a93d172c9f2ebfe4280058d05bda17cadab705ca5b51ba3e6f3a5ac', 'date' => '15 Feb 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.3.tar.bz2', 'name' => 'PHP 8.3.3 (tar.bz2)', 'sha256' => 'aafb613ba79594a23fe722f8e90ad473300610bf80e74b8aa52da9cac2dc4e2a', 'date' => '15 Feb 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.3.tar.xz', 'name' => 'PHP 8.3.3 (tar.xz)', @@ -2662,33 +2662,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.16' => + '8.2.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_16.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Feb 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.16.tar.gz', 'name' => 'PHP 8.2.16 (tar.gz)', 'sha256' => '62a92ef7c2c6f44b12e459d8f3d649aa8ebac5e05845f7479fe55a7580cd2dd0', 'date' => '15 Feb 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.16.tar.bz2', 'name' => 'PHP 8.2.16 (tar.bz2)', 'sha256' => '2658c1b8935ab6b53a7f209354602761ab07066e66920bc472b8815fd1b43f71', 'date' => '15 Feb 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.16.tar.xz', 'name' => 'PHP 8.2.16 (tar.xz)', @@ -2698,33 +2698,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.15' => + '8.2.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '18 Jan 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.15.tar.gz', 'name' => 'PHP 8.2.15 (tar.gz)', 'sha256' => 'f9390d23708c65f428e868583dce7ab4a69e88ab6f377137a56643076f966b8f', 'date' => '18 Jan 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.15.tar.bz2', 'name' => 'PHP 8.2.15 (tar.bz2)', 'sha256' => '50c3e220b7aa63a85716233c902eb44cc0a4667ed0b8335722ae2391b1355e7a', 'date' => '18 Jan 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.15.tar.xz', 'name' => 'PHP 8.2.15 (tar.xz)', @@ -2734,33 +2734,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.2' => + '8.3.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '18 Jan 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.2.tar.gz', 'name' => 'PHP 8.3.2 (tar.gz)', 'sha256' => 'decf0f51e5415b21fb6350753e45b6c3be5cc0868e4ec561e5c89326c8e6ef16', 'date' => '18 Jan 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.2.tar.bz2', 'name' => 'PHP 8.3.2 (tar.bz2)', 'sha256' => '582b3c837a8d952efffe274a5e49706c43a88c162830c2a8c358089fe7449284', 'date' => '18 Jan 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.2.tar.xz', 'name' => 'PHP 8.3.2 (tar.xz)', @@ -2770,33 +2770,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.14' => + '8.2.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_14.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Dec 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.14.tar.gz', 'name' => 'PHP 8.2.14 (tar.gz)', 'sha256' => '4c1fbb55a10ece7f4532feba9f3f88b9b211c11320742977588738374c03255f', 'date' => '21 Dec 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.14.tar.bz2', 'name' => 'PHP 8.2.14 (tar.bz2)', 'sha256' => 'f871e131333d60ae6c537b1adddbc2aea54c436c562af986fb8309c060040b9e', 'date' => '21 Dec 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.14.tar.xz', 'name' => 'PHP 8.2.14 (tar.xz)', @@ -2806,33 +2806,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.1' => + '8.3.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Dec 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.1.tar.gz', 'name' => 'PHP 8.3.1 (tar.gz)', 'sha256' => '2b10218b5e81915d1708ab4b6351362d073556ec73a790553c61fd89c119924e', 'date' => '21 Dec 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.1.tar.bz2', 'name' => 'PHP 8.3.1 (tar.bz2)', 'sha256' => 'c40fae9197fa68a532f6a062c316dafe3b04c545136b54b9ead4932fc26c6ae1', 'date' => '21 Dec 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.1.tar.xz', 'name' => 'PHP 8.3.1 (tar.xz)', @@ -2842,33 +2842,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.13' => + '8.2.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Nov 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.13.tar.gz', 'name' => 'PHP 8.2.13 (tar.gz)', 'sha256' => '6a194038f5a9e46d8f70a9d59c072c3b08d6edbdd8e304096e24ccf2225bcf1b', 'date' => '23 Nov 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.13.tar.bz2', 'name' => 'PHP 8.2.13 (tar.bz2)', 'sha256' => '66529f43b213131e6b253c5602bef05f049458d21292730fccd63b48a06d67ba', 'date' => '23 Nov 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.13.tar.xz', 'name' => 'PHP 8.2.13 (tar.xz)', @@ -2878,33 +2878,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.26' => + '8.1.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_26.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Nov 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.26.tar.gz', 'name' => 'PHP 8.1.26 (tar.gz)', 'sha256' => 'd954cecfc3d294c2fccbe2b1a6bef784ce0d6c5d44a9e28f8a527e092825f2cb', 'date' => '23 Nov 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.26.tar.bz2', 'name' => 'PHP 8.1.26 (tar.bz2)', 'sha256' => '83bde249c84aa1a043a8c8d0eea09345c2cae69b9784cdf02229fc916fbb9ea0', 'date' => '23 Nov 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.26.tar.xz', 'name' => 'PHP 8.1.26 (tar.xz)', @@ -2914,33 +2914,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.0' => + '8.3.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Nov 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.0.tar.gz', 'name' => 'PHP 8.3.0 (tar.gz)', 'sha256' => '557ae14650f1d1984d3213e3fcd8d93a5f11418b3f8026d3a2d5022251163951', 'date' => '23 Nov 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.0.tar.bz2', 'name' => 'PHP 8.3.0 (tar.bz2)', 'sha256' => 'de67d0833d42b196e5a66fa1a332f45e296cbe8e9472e9256b2a071c34dc5ed6', 'date' => '23 Nov 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.0.tar.xz', 'name' => 'PHP 8.3.0 (tar.xz)', @@ -2950,34 +2950,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.30' => + '8.0.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.30.tar.gz', 'name' => 'PHP 8.0.30 (tar.gz)', 'sha256' => '449d2048fcb20a314d8c218097c6d1047a9f1c5bb72aa54d5d3eba0a27a4c80c', 'date' => '03 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.30.tar.bz2', 'name' => 'PHP 8.0.30 (tar.bz2)', 'sha256' => '98a9cb6a0e27a6950cdf4b26dcac48f2be2d936d5224a502f066cf3d4cf19b92', 'date' => '03 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.30.tar.xz', 'name' => 'PHP 8.0.30 (tar.xz)', @@ -2987,33 +2987,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.25' => + '8.1.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Oct 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.25.tar.gz', 'name' => 'PHP 8.1.25 (tar.gz)', 'sha256' => '1a8c59d6b3eccb404c229e947558d2bf1220c3dec0b0036690fadc07f39934ab', 'date' => '26 Oct 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.25.tar.bz2', 'name' => 'PHP 8.1.25 (tar.bz2)', 'sha256' => 'a86a88c1840c1bc832bcfd2fbec3b8a1942c8314da5dff53f09f9c98d0c12e8a', 'date' => '26 Oct 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.25.tar.xz', 'name' => 'PHP 8.1.25 (tar.xz)', @@ -3023,33 +3023,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.12' => + '8.2.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_12.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Oct 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.12.tar.gz', 'name' => 'PHP 8.2.12 (tar.gz)', 'sha256' => 'b2b74a91f5fac14ce10ece0ac210f6f5d72f4367a3cb638e80d117d183750a21', 'date' => '26 Oct 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.12.tar.bz2', 'name' => 'PHP 8.2.12 (tar.bz2)', 'sha256' => '704325f56b1b4c17f9f951e1ffef5c64e148896053f34e2626152cbaa2f05893', 'date' => '26 Oct 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.12.tar.xz', 'name' => 'PHP 8.2.12 (tar.xz)', @@ -3059,33 +3059,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.24' => + '8.1.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_24.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Sep 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.24.tar.gz', 'name' => 'PHP 8.1.24 (tar.gz)', 'sha256' => 'd6001a5c16765cd1897609fc71ff083e35db9a28c8874a1ff191cdebe80a6460', 'date' => '28 Sep 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.24.tar.bz2', 'name' => 'PHP 8.1.24 (tar.bz2)', 'sha256' => 'b0ae5804a9ad53a7e28d0a32629495f816f935b10830c71f4ec15827185a73c9', 'date' => '28 Sep 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.24.tar.xz', 'name' => 'PHP 8.1.24 (tar.xz)', @@ -3095,33 +3095,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.11' => + '8.2.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_11.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Sep 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.11.tar.gz', 'name' => 'PHP 8.2.11 (tar.gz)', 'sha256' => '48b1b41279a678a4d4afcd0b256ed921ebf2a91febb0634fdc4449b91c75799f', 'date' => '28 Sep 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.11.tar.bz2', 'name' => 'PHP 8.2.11 (tar.bz2)', 'sha256' => '38192daeffabf4af6c427bf17ac1f82565d9c7522e0dbd32215162944434b28b', 'date' => '28 Sep 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.11.tar.xz', 'name' => 'PHP 8.2.11 (tar.xz)', @@ -3131,33 +3131,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.23' => + '8.1.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_23.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '31 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.23.tar.gz', 'name' => 'PHP 8.1.23 (tar.gz)', 'sha256' => 'ec5330b3978edc8fe2f78830720505bf69d12542622b5cddccee63ae3a0e5b58', 'date' => '31 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.23.tar.bz2', 'name' => 'PHP 8.1.23 (tar.bz2)', 'sha256' => '929a62785177da892ddffca074bab2f1ff578473a0d4adb915c12f5f3e34ec1b', 'date' => '31 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.23.tar.xz', 'name' => 'PHP 8.1.23 (tar.xz)', @@ -3167,33 +3167,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.10' => + '8.2.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '31 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.10.tar.gz', 'name' => 'PHP 8.2.10 (tar.gz)', 'sha256' => '7e3e277d6eab652616f90bc7c75991179c0512953933ceba27496fb5514f7e78', 'date' => '31 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.10.tar.bz2', 'name' => 'PHP 8.2.10 (tar.bz2)', 'sha256' => 'cc9834e8f1b613d7677af8843c3651e9829abca8ebfe9079251d0d85d9a0aa3e', 'date' => '31 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.10.tar.xz', 'name' => 'PHP 8.2.10 (tar.xz)', @@ -3203,34 +3203,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.22' => + '8.1.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_22.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.22.tar.gz', 'name' => 'PHP 8.1.22 (tar.gz)', 'sha256' => 'f5140e94b139b4adec4b29c337537b7b6f1ef023197eb32be909e724e3da157a', 'date' => '03 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.22.tar.bz2', 'name' => 'PHP 8.1.22 (tar.bz2)', 'sha256' => '992354e382c6c618d01ed4be06beea8dec3178b14153df64d3c8c48b85e9fbc2', 'date' => '03 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.22.tar.xz', 'name' => 'PHP 8.1.22 (tar.xz)', @@ -3240,34 +3240,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.9' => + '8.2.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_9.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.9.tar.gz', 'name' => 'PHP 8.2.9 (tar.gz)', 'sha256' => '5fac52041335cacfb5845aeff2303f92403925338a0285f2e160feebcb840f04', 'date' => '03 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.9.tar.bz2', 'name' => 'PHP 8.2.9 (tar.bz2)', 'sha256' => '48460b994ae7eb5096a310f44d13e865de1771104d4a550d53072be58a6f176c', 'date' => '03 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.9.tar.xz', 'name' => 'PHP 8.2.9 (tar.xz)', @@ -3277,33 +3277,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.8' => + '8.2.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_8.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 Jul 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.8.tar.gz', 'name' => 'PHP 8.2.8 (tar.gz)', 'sha256' => '6419b74e9b675c8d5a1afd2788c4d7996a19bbe2be409716ccb2067897af9df1', 'date' => '06 Jul 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.8.tar.bz2', 'name' => 'PHP 8.2.8 (tar.bz2)', 'sha256' => '995ed4009c7917c962d31837a1a3658f36d4af4f357b673c97ffdbe6403f8517', 'date' => '06 Jul 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.8.tar.xz', 'name' => 'PHP 8.2.8 (tar.xz)', @@ -3313,34 +3313,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.29' => + '8.0.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '08 Jun 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.29.tar.gz', 'name' => 'PHP 8.0.29 (tar.gz)', 'sha256' => 'db6ee08df5706365f624cde1cffb20ad6de1effe59d7e886337213a09f2e2684', 'date' => '08 Jun 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.29.tar.bz2', 'name' => 'PHP 8.0.29 (tar.bz2)', 'sha256' => '4801a1f0e17170286723ab54acd045ac78a9656021d56f104a64543eec922e12', 'date' => '08 Jun 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.29.tar.xz', 'name' => 'PHP 8.0.29 (tar.xz)', @@ -3350,33 +3350,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.21' => + '8.1.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 Jul 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.21.tar.gz', 'name' => 'PHP 8.1.21 (tar.gz)', 'sha256' => 'a95f8d35924aa5705ad07a70dc994bf41b5d45126ecdec7aaad6edfbe5e1c37f', 'date' => '06 Jul 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.21.tar.bz2', 'name' => 'PHP 8.1.21 (tar.bz2)', 'sha256' => '6ea49e8335d632177f56b507160aa151c7b020185789a9c14859fce5d4a0776d', 'date' => '06 Jul 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.21.tar.xz', 'name' => 'PHP 8.1.21 (tar.xz)', @@ -3386,34 +3386,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.20' => + '8.1.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '08 Jun 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.20.tar.gz', 'name' => 'PHP 8.1.20 (tar.gz)', 'sha256' => 'b7d3e2a0c5bed37bb39e4627550d0ee5a4a600042b83c63037b0f5f84793cbe6', 'date' => '08 Jun 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.20.tar.bz2', 'name' => 'PHP 8.1.20 (tar.bz2)', 'sha256' => '55578587514a2707500f85319e57c0d4df9b8803cdb26566595ac4bf459dc4dd', 'date' => '08 Jun 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.20.tar.xz', 'name' => 'PHP 8.1.20 (tar.xz)', @@ -3423,34 +3423,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.7' => + '8.2.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_7.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '08 Jun 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.7.tar.gz', 'name' => 'PHP 8.2.7 (tar.gz)', 'sha256' => '7046f939f0e5116285341d55c06af1d50907e107ac2c70defc32ef880f88cde4', 'date' => '08 Jun 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.7.tar.bz2', 'name' => 'PHP 8.2.7 (tar.bz2)', 'sha256' => '5bfb2a35c67921bdcadd5c90cb290ad7537d24da113a5e8bc2d646b02de7488f', 'date' => '08 Jun 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.7.tar.xz', 'name' => 'PHP 8.2.7 (tar.xz)', @@ -3460,33 +3460,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.19' => + '8.1.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 May 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.19.tar.gz', 'name' => 'PHP 8.1.19 (tar.gz)', 'sha256' => '0ebb6b0ecf5d8e355c2f1362807f9b73c6e803d496c5ad3e4fb00be989988372', 'date' => '11 May 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.19.tar.bz2', 'name' => 'PHP 8.1.19 (tar.bz2)', 'sha256' => '64207207fda30be926a2ef1f66ff266bf1fdc7e03339bc99fbba0a1245e4279b', 'date' => '11 May 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.19.tar.xz', 'name' => 'PHP 8.1.19 (tar.xz)', @@ -3496,33 +3496,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.6' => + '8.2.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 May 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.6.tar.gz', 'name' => 'PHP 8.2.6 (tar.gz)', 'sha256' => '1b8463df1f180ed39475cfcded1ff106242ccb823f99c9fc1a407c0b76afa2c8', 'date' => '11 May 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.6.tar.bz2', 'name' => 'PHP 8.2.6 (tar.bz2)', 'sha256' => '44a70c52f537662c10d91eedbf51fd765c9961be6ba2508ed63bf7a26cdd3100', 'date' => '11 May 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.6.tar.xz', 'name' => 'PHP 8.2.6 (tar.xz)', @@ -3532,34 +3532,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.28' => + '8.0.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.28.tar.gz', 'name' => 'PHP 8.0.28 (tar.gz)', 'sha256' => '7432184eae01e4e8e39f03f80e8ec0ca2c8bfebc56e9a7b983541ca8805df22f', 'date' => '14 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.28.tar.bz2', 'name' => 'PHP 8.0.28 (tar.bz2)', 'sha256' => '9d5e74935c900e3b9c7b6bc740596b71933630eb9f63717c0c4923d8c788c62e', 'date' => '14 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.28.tar.xz', 'name' => 'PHP 8.0.28 (tar.xz)', @@ -3569,33 +3569,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.18' => + '8.1.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Apr 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.18.tar.gz', 'name' => 'PHP 8.1.18 (tar.gz)', 'sha256' => '8b6b12902e7d6bdf68668acc067b4d75a3c504722f768098c5f80c7d7bfd2563', 'date' => '13 Apr 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.18.tar.bz2', 'name' => 'PHP 8.1.18 (tar.bz2)', 'sha256' => 'd2ac30d6b574fca594fe0cc01c0693e23585b27443e342b0aab07274cde4416e', 'date' => '13 Apr 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.18.tar.xz', 'name' => 'PHP 8.1.18 (tar.xz)', @@ -3605,33 +3605,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.5' => + '8.2.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Apr 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.5.tar.gz', 'name' => 'PHP 8.2.5 (tar.gz)', 'sha256' => '8974dea2507155471660b13a0bcbdc165ac778eeb845a7dbd65d5ffb92738c0a', 'date' => '13 Apr 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.5.tar.bz2', 'name' => 'PHP 8.2.5 (tar.bz2)', 'sha256' => 'e5a80663cca4f6044ad86a489798147c7af037eca96f6cd357ab36d28cb63757', 'date' => '13 Apr 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.5.tar.xz', 'name' => 'PHP 8.2.5 (tar.xz)', @@ -3641,33 +3641,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.17' => + '8.1.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Mar 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.17.tar.gz', 'name' => 'PHP 8.1.17 (tar.gz)', 'sha256' => 'ef270156291d90a80ce83d68eee812f301cf5e48836a0ff6fd2931913f8e25c5', 'date' => '16 Mar 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.17.tar.bz2', 'name' => 'PHP 8.1.17 (tar.bz2)', 'sha256' => 'f4fb298a0eb091f944ecebac57b76daae768a970c2f51610a5ab24f34d8c0caf', 'date' => '16 Mar 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.17.tar.xz', 'name' => 'PHP 8.1.17 (tar.xz)', @@ -3677,33 +3677,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.4' => + '8.2.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Mar 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.4.tar.gz', 'name' => 'PHP 8.2.4 (tar.gz)', 'sha256' => 'cee7748015a2ddef1739d448b980b095dccd09ed589cf1b6c6ee2d16f5e73c50', 'date' => '16 Mar 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.4.tar.bz2', 'name' => 'PHP 8.2.4 (tar.bz2)', 'sha256' => '79186f94bd510db86e31e535dd448277a1eb92a87878303a1ead44602d8b1197', 'date' => '16 Mar 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.4.tar.xz', 'name' => 'PHP 8.2.4 (tar.xz)', @@ -3713,34 +3713,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.3' => + '8.2.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_3.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.3.tar.gz', 'name' => 'PHP 8.2.3 (tar.gz)', 'sha256' => '7c475bcbe61d28b6878604b1b6f387f39d1a63b5f21fa8156fd7aa615d43e259', 'date' => '14 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.3.tar.bz2', 'name' => 'PHP 8.2.3 (tar.bz2)', 'sha256' => '87bb58865f38f5e2941813029152cea2102fe2961bb4d68b88f831ddd0548d0f', 'date' => '14 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.3.tar.xz', 'name' => 'PHP 8.2.3 (tar.xz)', @@ -3750,34 +3750,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.16' => + '8.1.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.16.tar.gz', 'name' => 'PHP 8.1.16 (tar.gz)', 'sha256' => 'a929fb9ed3bc364a5dea4f64954e8aaaa3408b87df04d7c6f743a190f5594e84', 'date' => '14 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.16.tar.bz2', 'name' => 'PHP 8.1.16 (tar.bz2)', 'sha256' => 'cd9f0ea14d82d9455587a49a0b6c802a7b8d8ff79703f9f48b17db010fb633ce', 'date' => '14 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.16.tar.xz', 'name' => 'PHP 8.1.16 (tar.xz)', @@ -3787,33 +3787,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.15' => + '8.1.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '02 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.15.tar.gz', 'name' => 'PHP 8.1.15 (tar.gz)', 'sha256' => '4035236180efac535ff4f22db9ef3195672f31e3e0aa88f89c38ac0715beca3b', 'date' => '02 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.15.tar.bz2', 'name' => 'PHP 8.1.15 (tar.bz2)', 'sha256' => '18da0a94228f4207f8b9e3e23e881f2b74d0d6caefb908bdb5863d4a01035cc6', 'date' => '02 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.15.tar.xz', 'name' => 'PHP 8.1.15 (tar.xz)', @@ -3823,33 +3823,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.2' => + '8.2.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '02 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.2.tar.gz', 'name' => 'PHP 8.2.2 (tar.gz)', 'sha256' => 'd82dda50356cebf6b6e14dbb576b14bc8b85f0f4476a787f0f50611f11eb37d2', 'date' => '02 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.2.tar.bz2', 'name' => 'PHP 8.2.2 (tar.bz2)', 'sha256' => 'f5223a5274eda8b40c19e47de0de4678c65d64401ccf710e2464962eb8136804', 'date' => '02 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.2.tar.xz', 'name' => 'PHP 8.2.2 (tar.xz)', @@ -3859,34 +3859,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.27' => + '8.0.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_27.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '05 Jan 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.27.tar.gz', 'name' => 'PHP 8.0.27 (tar.gz)', 'sha256' => 'fe2376faaf91c28ead89a36e118c177f4a8c9a7280a189b97265da1af1f4d305', 'date' => '05 Jan 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.27.tar.bz2', 'name' => 'PHP 8.0.27 (tar.bz2)', 'sha256' => '5fd882b14377c158c1b55cc6ace91fb8c19b77c596d5831ad124fbbbc902dbc8', 'date' => '05 Jan 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.27.tar.xz', 'name' => 'PHP 8.0.27 (tar.xz)', @@ -3896,34 +3896,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.14' => + '8.1.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_14.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '05 Jan 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.14.tar.gz', 'name' => 'PHP 8.1.14 (tar.gz)', 'sha256' => '4755af2563ad187ceaf4a3632359c55e3f3be4050e0299e0f713bbb5e0531965', 'date' => '05 Jan 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.14.tar.bz2', 'name' => 'PHP 8.1.14 (tar.bz2)', 'sha256' => '14ca99333dd604a504a2368946485ac35d379c4da96d28dc515d7eb502dffa32', 'date' => '05 Jan 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.14.tar.xz', 'name' => 'PHP 8.1.14 (tar.xz)', @@ -3933,34 +3933,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.1' => + '8.2.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_1.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '05 Jan 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.1.tar.gz', 'name' => 'PHP 8.2.1 (tar.gz)', 'sha256' => '6d7b1b8feb14fd1c65a2bc9d0f72c75589a61a946566cf9c3bf9536a5530b635', 'date' => '05 Jan 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.1.tar.bz2', 'name' => 'PHP 8.2.1 (tar.bz2)', 'sha256' => '75d6f8f365993ec0d1d9c6281d4557e6feec5a26194a468b8b01459d177efb29', 'date' => '05 Jan 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.1.tar.xz', 'name' => 'PHP 8.2.1 (tar.xz)', @@ -3970,33 +3970,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.26' => + '8.0.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_26.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Nov 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.26.tar.gz', 'name' => 'PHP 8.0.26 (tar.gz)', 'sha256' => '3c83a7355a640b2ba436b8202e8597df8f9daadee1ec9241729ece8e578d21cd', 'date' => '24 Nov 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.26.tar.bz2', 'name' => 'PHP 8.0.26 (tar.bz2)', 'sha256' => '6df87af96f275a75889ece6e3fe4a13abd93a767a9992863bdc0e90f1e887ee7', 'date' => '24 Nov 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.26.tar.xz', 'name' => 'PHP 8.0.26 (tar.xz)', @@ -4006,33 +4006,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.0' => + '8.2.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '08 Dec 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.0.tar.gz', 'name' => 'PHP 8.2.0 (tar.gz)', 'sha256' => '435c4c2439db648cdf34236f7cd459f93f943fb788b66723a033610d4a059fc6', 'date' => '08 Dec 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.0.tar.bz2', 'name' => 'PHP 8.2.0 (tar.bz2)', 'sha256' => '1bf4fca663f93d9e0b4909bd6eae0583a1ce383e7f05df126f28f272fa1fd51a', 'date' => '08 Dec 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.0.tar.xz', 'name' => 'PHP 8.2.0 (tar.xz)', @@ -4042,33 +4042,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.13' => + '8.1.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Nov 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.13.tar.gz', 'name' => 'PHP 8.1.13 (tar.gz)', 'sha256' => 'eed1981ce9999d807cb139a9d463ae54bbeda2a57a9a28ad513badf5b99b0073', 'date' => '24 Nov 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.13.tar.bz2', 'name' => 'PHP 8.1.13 (tar.bz2)', 'sha256' => '93fcfdfaaa3d094a0fdb18ce08d20f20d526ee3f07a146a8a8ec82ce00b237ca', 'date' => '24 Nov 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.13.tar.xz', 'name' => 'PHP 8.1.13 (tar.xz)', @@ -4078,34 +4078,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.25' => + '8.0.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_25.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '27 Oct 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.25.tar.gz', 'name' => 'PHP 8.0.25 (tar.gz)', 'sha256' => '349a2b5a01bfccbc9af8afdf183e57bed3349706a084f3c4694aa4c7ff7cb2e9', 'date' => '27 Oct 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.25.tar.bz2', 'name' => 'PHP 8.0.25 (tar.bz2)', 'sha256' => '09d716bceb5b3db76d9023b10c1681ebbe040e51f4c18dfd35f9ff8b73bbcf8c', 'date' => '27 Oct 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.25.tar.xz', 'name' => 'PHP 8.0.25 (tar.xz)', @@ -4115,34 +4115,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.12' => + '8.1.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_12.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '27 Oct 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.12.tar.gz', 'name' => 'PHP 8.1.12 (tar.gz)', 'sha256' => 'e0e7c823c9f9aa4c021f5e34ae1a7acafc2a9f3056ca60eb70a8af8f33da3fdf', 'date' => '27 Oct 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.12.tar.bz2', 'name' => 'PHP 8.1.12 (tar.bz2)', 'sha256' => 'f87d73e917facf78de7bcde53fc2faa4d4dbe0487a9406e1ab68c8ae8f33eb03', 'date' => '27 Oct 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.12.tar.xz', 'name' => 'PHP 8.1.12 (tar.xz)', @@ -4152,34 +4152,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.11' => + '8.1.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_11.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.11.tar.gz', 'name' => 'PHP 8.1.11 (tar.gz)', 'sha256' => '3660e8408321149f5d382bb8eeb9ea7b12ea8dd7ea66069da33f6f7383750ab2', 'date' => '29 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.11.tar.bz2', 'name' => 'PHP 8.1.11 (tar.bz2)', 'sha256' => 'af6250b18b4403b6eeff9b4a02786ac86a12a208141f6f65478f79256f47f246', 'date' => '29 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.11.tar.xz', 'name' => 'PHP 8.1.11 (tar.xz)', @@ -4189,34 +4189,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.24' => + '8.0.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.24.tar.gz', 'name' => 'PHP 8.0.24 (tar.gz)', 'sha256' => '6020843a2f1ce36745d958b3ca17f3fdc42e78a43899f552ab5dbc509ff19232', 'date' => '29 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.24.tar.bz2', 'name' => 'PHP 8.0.24 (tar.bz2)', 'sha256' => '908e17cea331d5abb8506b4a89c6392b962e127c391327777c7485eb4b415d43', 'date' => '29 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.24.tar.xz', 'name' => 'PHP 8.0.24 (tar.xz)', @@ -4226,34 +4226,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.23' => + '8.0.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_23.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.23.tar.gz', 'name' => 'PHP 8.0.23 (tar.gz)', 'sha256' => 'a2dd50e9c4a0328d921b6bc914e8b4e6572f94f09867318f88acca5ac4fa76c7', 'date' => '01 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.23.tar.bz2', 'name' => 'PHP 8.0.23 (tar.bz2)', 'sha256' => '1412db46800a45ced377c2892ec6261b3c412f13dc133bfc998cfb2f147b40cf', 'date' => '01 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.23.tar.xz', 'name' => 'PHP 8.0.23 (tar.xz)', @@ -4263,33 +4263,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.10' => + '8.1.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.10.tar.gz', 'name' => 'PHP 8.1.10 (tar.gz)', 'sha256' => '3ea4f323109dfbc8d2631d08aa0e08602c1f713678e9dc6c750f081ef49eab0f', 'date' => '01 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.10.tar.bz2', 'name' => 'PHP 8.1.10 (tar.bz2)', 'sha256' => '2de8e0402285f7c56887defe651922308aded58ba60befcf3b77720209e31f10', 'date' => '01 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.10.tar.xz', 'name' => 'PHP 8.1.10 (tar.xz)', @@ -4299,33 +4299,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.22' => + '8.0.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Aug 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.22.tar.gz', 'name' => 'PHP 8.0.22 (tar.gz)', 'sha256' => '56fce7529a9798fd0895bca3539d2a65b9cac5d23ffbdf6338419c62ed083519', 'date' => '04 Aug 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.22.tar.bz2', 'name' => 'PHP 8.0.22 (tar.bz2)', 'sha256' => 'e342918d3ecd422f10032df0ac3ffb0e17f568fad6cf8e232b6f7a6a1fdc3c9c', 'date' => '04 Aug 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.22.tar.xz', 'name' => 'PHP 8.0.22 (tar.xz)', @@ -4335,33 +4335,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.9' => + '8.1.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_9.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Aug 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.9.tar.gz', 'name' => 'PHP 8.1.9 (tar.gz)', 'sha256' => '954cf77f7e0a70dc765e7639acdfdccd164be5cd1bce3dbe9d10c58dca631e76', 'date' => '04 Aug 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.9.tar.bz2', 'name' => 'PHP 8.1.9 (tar.bz2)', 'sha256' => '9ebb0e2e571db6fd5930428dcb2d19ed3e050338ec1f1347c282cae92fc086ff', 'date' => '04 Aug 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.9.tar.xz', 'name' => 'PHP 8.1.9 (tar.xz)', @@ -4371,34 +4371,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.8' => + '8.1.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '07 Jul 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.8.tar.gz', 'name' => 'PHP 8.1.8 (tar.gz)', 'sha256' => '889d910558d2492f7f2236921b9bcde620674c8b684ec02d126060f8ca45dc8d', 'date' => '07 Jul 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.8.tar.bz2', 'name' => 'PHP 8.1.8 (tar.bz2)', 'sha256' => 'b8815a5a02431453d4261e3598bd1f28516e4c0354f328c12890f257870e4c01', 'date' => '07 Jul 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.8.tar.xz', 'name' => 'PHP 8.1.8 (tar.xz)', @@ -4408,33 +4408,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.21' => + '8.0.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '07 Jul 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.21.tar.gz', 'name' => 'PHP 8.0.21 (tar.gz)', 'sha256' => '2f51f6e90e2e8efd3a20db08f0dd61d7f8d5a9362f8c7325f1ad28ccea5be0ac', 'date' => '07 Jul 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.21.tar.bz2', 'name' => 'PHP 8.0.21 (tar.bz2)', 'sha256' => '1cb7762d1ffecceaeebafb9f6e24132ca23fb1443cb5630d0fccf53f04cfa126', 'date' => '07 Jul 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.21.tar.xz', 'name' => 'PHP 8.0.21 (tar.xz)', @@ -4444,34 +4444,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.7' => + '8.1.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_7.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jun 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.7.tar.gz', 'name' => 'PHP 8.1.7 (tar.gz)', 'sha256' => '5f0b422a117633c86d48d028934b8dc078309d4247e7565ea34b2686189abdd8', 'date' => '09 Jun 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.7.tar.bz2', 'name' => 'PHP 8.1.7 (tar.bz2)', 'sha256' => 'b816753eb005511e695d90945c27093c3236cc73db1262656d9fadd73ead7e9d', 'date' => '09 Jun 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.7.tar.xz', 'name' => 'PHP 8.1.7 (tar.xz)', @@ -4481,34 +4481,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.20' => + '8.0.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jun 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.20.tar.gz', 'name' => 'PHP 8.0.20 (tar.gz)', 'sha256' => '7e21fd985966264194cde63503b57fd0f0170b32a39bd7af2384c1071b50f164', 'date' => '09 Jun 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.20.tar.bz2', 'name' => 'PHP 8.0.20 (tar.bz2)', 'sha256' => 'cb7666bf67ed9f6c987d4836caf03d4b364537e6a75e56cd5c986760ecc2fdd8', 'date' => '09 Jun 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.20.tar.xz', 'name' => 'PHP 8.0.20 (tar.xz)', @@ -4518,33 +4518,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.19' => + '8.0.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 May 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.19.tar.gz', 'name' => 'PHP 8.0.19 (tar.gz)', 'sha256' => '48e57634d350bcab4745d25d9d94ffa474649bf4f7e879fad163226c0d107bb5', 'date' => '12 May 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.19.tar.bz2', 'name' => 'PHP 8.0.19 (tar.bz2)', 'sha256' => 'eba0e67fdaf6904b2e4b84e064be0a0d61b2cb64a23f81a0ca9b1a51bc3a8330', 'date' => '12 May 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.19.tar.xz', 'name' => 'PHP 8.0.19 (tar.xz)', @@ -4554,33 +4554,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.6' => + '8.1.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 May 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.6.tar.gz', 'name' => 'PHP 8.1.6 (tar.gz)', 'sha256' => 'e847745fd66fc8c57fac993a609fefcded93fddccd225f0620a26bb5ae5753c3', 'date' => '12 May 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.6.tar.bz2', 'name' => 'PHP 8.1.6 (tar.bz2)', 'sha256' => '7b353304b7407554f70d3e101a226a1fc22decae5c4c42ed270c4e389bfa1b66', 'date' => '12 May 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.6.tar.xz', 'name' => 'PHP 8.1.6 (tar.xz)', @@ -4590,33 +4590,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.5' => + '8.1.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Apr 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.5.tar.gz', 'name' => 'PHP 8.1.5 (tar.gz)', 'sha256' => '44d637627746082395d5d3d3d6ae7d71e780b82a8d55a0228887158c4316bf11', 'date' => '14 Apr 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.5.tar.bz2', 'name' => 'PHP 8.1.5 (tar.bz2)', 'sha256' => '827de56771c3ab8313a069812f15f6ec49989d510aebd0dce180839c6d8d6ff3', 'date' => '14 Apr 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.5.tar.xz', 'name' => 'PHP 8.1.5 (tar.xz)', @@ -4626,33 +4626,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.18' => + '8.0.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Apr 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.18.tar.gz', 'name' => 'PHP 8.0.18 (tar.gz)', 'sha256' => 'cd980f5a2f422362f8c52d314ed25140c6f472877c5442c4f3304205f54e192a', 'date' => '14 Apr 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.18.tar.bz2', 'name' => 'PHP 8.0.18 (tar.bz2)', 'sha256' => '826ee34881a1c349678d4f7cc55ff9141fa1411344e4bb8f95d0f9223bceb55a', 'date' => '14 Apr 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.18.tar.xz', 'name' => 'PHP 8.0.18 (tar.xz)', @@ -4662,33 +4662,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.17' => + '8.0.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '17 Mar 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.17.tar.gz', 'name' => 'PHP 8.0.17 (tar.gz)', 'sha256' => 'bdbd792901c156c4d1710c9d266732d3c17f6ff63850d6660b9d8d3411188424', 'date' => '17 Mar 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.17.tar.bz2', 'name' => 'PHP 8.0.17 (tar.bz2)', 'sha256' => '52811ee2dde71660ca32737a4ac696c24591eb22e846dd8e09ee77122660283f', 'date' => '17 Mar 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.17.tar.xz', 'name' => 'PHP 8.0.17 (tar.xz)', @@ -4698,33 +4698,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.4' => + '8.1.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '17 Mar 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.4.tar.gz', 'name' => 'PHP 8.1.4 (tar.gz)', 'sha256' => 'a9951c1c8fd5d2eefde28de0f646c344eb61d751319d220713a6da26f986abde', 'date' => '17 Mar 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.4.tar.bz2', 'name' => 'PHP 8.1.4 (tar.bz2)', 'sha256' => 'b3f688cb69758523838b8e7f509aaef0152133d9b84a84a0b7cf68eeafc1df76', 'date' => '17 Mar 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.4.tar.xz', 'name' => 'PHP 8.1.4 (tar.xz)', @@ -4734,34 +4734,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.3' => + '8.1.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_3.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '17 Feb 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.3.tar.gz', 'name' => 'PHP 8.1.3 (tar.gz)', 'sha256' => '92d74f5a4af7de90cef6cda65bd0c341dc9a1027b32f70e7b8861f6f68a38bb2', 'date' => '17 Feb 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.3.tar.bz2', 'name' => 'PHP 8.1.3 (tar.bz2)', 'sha256' => '354c4e2c506046eca812d1fc2526884a2f54b5e3d20ef0ede919a69eb232d0be', 'date' => '17 Feb 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.3.tar.xz', 'name' => 'PHP 8.1.3 (tar.xz)', @@ -4771,34 +4771,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.16' => + '8.0.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '17 Feb 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.16.tar.gz', 'name' => 'PHP 8.0.16 (tar.gz)', 'sha256' => 'ce0ea32ff9c5af18cfb70197b40caf55824400dc8d5b4258a783ec9168baa5b1', 'date' => '17 Feb 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.16.tar.bz2', 'name' => 'PHP 8.0.16 (tar.bz2)', 'sha256' => 'f49f8181ee29463a0d23a0c65969e92d58fee8ac564df917cff58e48d65e1849', 'date' => '17 Feb 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.16.tar.xz', 'name' => 'PHP 8.0.16 (tar.xz)', @@ -4808,33 +4808,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.2' => + '8.1.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '20 Jan 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.2.tar.gz', 'name' => 'PHP 8.1.2 (tar.gz)', 'sha256' => '9992409c0543e0c8e89914f7307e1485a08c057091146e4731565b59065f8bde', 'date' => '20 Jan 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.2.tar.bz2', 'name' => 'PHP 8.1.2 (tar.bz2)', 'sha256' => '913dc7dd4388427fa33ea4ac89834e856ff5394f4218eace260a3a279f5b53a9', 'date' => '20 Jan 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.2.tar.xz', 'name' => 'PHP 8.1.2 (tar.xz)', @@ -4844,33 +4844,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.15' => + '8.0.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '20 Jan 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.15.tar.gz', 'name' => 'PHP 8.0.15 (tar.gz)', 'sha256' => '47f0be6188b05390bb457eb1968ea19463acada79650afc35ec763348d5c2370', 'date' => '20 Jan 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.15.tar.bz2', 'name' => 'PHP 8.0.15 (tar.bz2)', 'sha256' => '881171c90aba746d28df768f3d99fa3261999e506415be4c7352078a64fe59dc', 'date' => '20 Jan 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.15.tar.xz', 'name' => 'PHP 8.0.15 (tar.xz)', @@ -4880,33 +4880,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.1' => + '8.1.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Dec 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.1.tar.gz', 'name' => 'PHP 8.1.1 (tar.gz)', 'sha256' => '4e4cf3f843a5111f6c55cd21de8f26834ea3cd4a5be77c88357cbcec4a2d671d', 'date' => '16 Dec 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.1.tar.bz2', 'name' => 'PHP 8.1.1 (tar.bz2)', 'sha256' => '8f8bc9cad6cd124edc111f7db0a109745e2f638770a101b3c22a2953f7a9b40e', 'date' => '16 Dec 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.1.tar.xz', 'name' => 'PHP 8.1.1 (tar.xz)', @@ -4916,33 +4916,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.14' => + '8.0.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_14.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Dec 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.14.tar.gz', 'name' => 'PHP 8.0.14 (tar.gz)', 'sha256' => 'e67ebd8c4c77247ad1fa88829e5b95d51a19edf3d87814434de261e20a63ea20', 'date' => '16 Dec 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.14.tar.bz2', 'name' => 'PHP 8.0.14 (tar.bz2)', 'sha256' => 'bb381fdf4817ad7c24c23ea7f77cad68dceb86eb3ac1a37acedadf8ad0a0cd4b', 'date' => '16 Dec 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.14.tar.xz', 'name' => 'PHP 8.0.14 (tar.xz)', @@ -4952,33 +4952,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.0' => + '8.1.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '25 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.0.tar.gz', 'name' => 'PHP 8.1.0 (tar.gz)', 'sha256' => '848705043ea4a6e022246ae12a1bff6afcf5c73ea98c6ac4d2108d6028c5c125', 'date' => '25 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.0.tar.bz2', 'name' => 'PHP 8.1.0 (tar.bz2)', 'sha256' => '0725ed2baea125496a898455d501a77460218b2a0cfad773fa9322f491b82b61', 'date' => '25 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.0.tar.xz', 'name' => 'PHP 8.1.0 (tar.xz)', @@ -4988,34 +4988,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.13' => + '8.0.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_13.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.13.tar.gz', 'name' => 'PHP 8.0.13 (tar.gz)', 'sha256' => 'b4c2d27c954e1b0d84fd4bfef4d252e154ba479e7db11abd89358f2164ee7cc8', 'date' => '18 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.13.tar.bz2', 'name' => 'PHP 8.0.13 (tar.bz2)', 'sha256' => 'c2419d7ba4395f44747043f4e6f5b47fa08125705fb9f88377e453068a815836', 'date' => '18 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.13.tar.xz', 'name' => 'PHP 8.0.13 (tar.xz)', @@ -5025,34 +5025,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.12' => + '8.0.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_12.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Oct 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.12.tar.gz', 'name' => 'PHP 8.0.12 (tar.gz)', 'sha256' => 'a5b78f04a89d3b401465febf449c7ea9de48681f92803dd8dc2bf922812d572b', 'date' => '21 Oct 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.12.tar.bz2', 'name' => 'PHP 8.0.12 (tar.bz2)', 'sha256' => 'b4886db1df322dc8fb128d8b34ae7e94f6fc682ecb29ff4f5a591d4de9feadbf', 'date' => '21 Oct 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.12.tar.xz', 'name' => 'PHP 8.0.12 (tar.xz)', @@ -5062,34 +5062,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.11' => + '8.0.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_11.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Sep 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.11.tar.gz', 'name' => 'PHP 8.0.11 (tar.gz)', 'sha256' => 'c6a461f57b4bcb46cd4dec443253b1e2e8e981466f1280093322b7864afe8be7', 'date' => '23 Sep 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.11.tar.bz2', 'name' => 'PHP 8.0.11 (tar.bz2)', 'sha256' => '70ed874285e4010c1e2e8937bfb56b13b9ed1b3789dcaf274b793b00c1f4403a', 'date' => '23 Sep 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.11.tar.xz', 'name' => 'PHP 8.0.11 (tar.xz)', @@ -5099,34 +5099,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.10' => + '8.0.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_10.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Aug 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.10.tar.gz', 'name' => 'PHP 8.0.10 (tar.gz)', 'sha256' => '4612dca9afe8148801648839175ab588097ace66658c6859e9f283ecdeaf84b3', 'date' => '26 Aug 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.10.tar.bz2', 'name' => 'PHP 8.0.10 (tar.bz2)', 'sha256' => 'c94547271410900845b084ec2bcb3466af363eeca92cb24bd611dcbdc26f1587', 'date' => '26 Aug 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.10.tar.xz', 'name' => 'PHP 8.0.10 (tar.xz)', @@ -5136,33 +5136,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.9' => + '8.0.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_9.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.9.tar.gz', 'name' => 'PHP 8.0.9 (tar.gz)', 'sha256' => '1f0d72e90ab6ad0ae13329a96b281f71bc592563ce4e3a4c816b8da4b5854fb4', 'date' => '29 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.9.tar.bz2', 'name' => 'PHP 8.0.9 (tar.bz2)', 'sha256' => '6ac8edebd295ddc43fb010653c43ccf203cd7cdc40981b210ed5275994040806', 'date' => '29 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.9.tar.xz', 'name' => 'PHP 8.0.9 (tar.xz)', @@ -5172,33 +5172,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.8' => + '8.0.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_8.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.8.tar.gz', 'name' => 'PHP 8.0.8 (tar.gz)', 'sha256' => '084a1e8020e86fb99b663d195fd9ac98a9f37dfcb9ecb5c159054cdb8f388945', 'date' => '01 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.8.tar.bz2', 'name' => 'PHP 8.0.8 (tar.bz2)', 'sha256' => '14bd77d71a98943e14b324da83e31b572781df583cda9650a184fae3214cd16f', 'date' => '01 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.8.tar.xz', 'name' => 'PHP 8.0.8 (tar.xz)', @@ -5208,33 +5208,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.7' => + '8.0.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '03 Jun 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.7.tar.gz', 'name' => 'PHP 8.0.7 (tar.gz)', 'sha256' => '1e7462455bec8062ef3fc7c74f1f496417cb80aa374ce11edb35015de248c3c1', 'date' => '03 Jun 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.7.tar.bz2', 'name' => 'PHP 8.0.7 (tar.bz2)', 'sha256' => '72b2f2c96f35748b1d6e8a71af4ead439b17129aefe611eb0baf1bd313635f79', 'date' => '03 Jun 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.7.tar.xz', 'name' => 'PHP 8.0.7 (tar.xz)', @@ -5244,33 +5244,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.6' => + '8.0.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 May 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.6.tar.gz', 'name' => 'PHP 8.0.6 (tar.gz)', 'sha256' => '51a3dcea6deb8ab82ad035d15baa7f5398980f576ac1968313ef149f7cf20100', 'date' => '06 May 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.6.tar.bz2', 'name' => 'PHP 8.0.6 (tar.bz2)', 'sha256' => '26a8a9dad66012039deb0bcf151c6e22ab1e4b6a91508383ff705da41289526e', 'date' => '06 May 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.6.tar.xz', 'name' => 'PHP 8.0.6 (tar.xz)', @@ -5280,33 +5280,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.5' => + '8.0.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Apr 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.5.tar.gz', 'name' => 'PHP 8.0.5 (tar.gz)', 'sha256' => '50aeac6fe9c2b5577d534369392ebb89c3e7a342b20ef538832b1df996cccb2a', 'date' => '29 Apr 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.5.tar.bz2', 'name' => 'PHP 8.0.5 (tar.bz2)', 'sha256' => '195d934febefaac3b19ac586679149759324a434411ae8aca6f7d87553ef08e0', 'date' => '29 Apr 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.5.tar.xz', 'name' => 'PHP 8.0.5 (tar.xz)', @@ -5316,33 +5316,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.3' => + '8.0.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '4 Mar 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.3.tar.gz', 'name' => 'PHP 8.0.3 (tar.gz)', 'sha256' => 'e7ecfee901e0843377b64b2d8124132eae75bdb71a2675ba7c5c038d6592383d', 'date' => '4 Mar 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.3.tar.bz2', 'name' => 'PHP 8.0.3 (tar.bz2)', 'sha256' => '95f8621d9e34f822d2583564c358598dff7346241f839bfa319bbf65bf2eb012', 'date' => '4 Mar 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.3.tar.xz', 'name' => 'PHP 8.0.3 (tar.xz)', @@ -5352,33 +5352,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.2' => + '8.0.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Feb 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.2.tar.gz', 'name' => 'PHP 8.0.2 (tar.gz)', 'sha256' => 'cc17a32f76beb5f405da39a548218b3b6736710884fcd761838098553df149da', 'date' => '04 Feb 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.2.tar.bz2', 'name' => 'PHP 8.0.2 (tar.bz2)', 'sha256' => '000fa89e3eae317c0b17ee048229cd68a38a3b0fef72c558681fd004057ba3e6', 'date' => '04 Feb 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.2.tar.xz', 'name' => 'PHP 8.0.2 (tar.xz)', @@ -5388,33 +5388,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.1' => + '8.0.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '07 Jan 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.1.tar.gz', 'name' => 'PHP 8.0.1 (tar.gz)', 'sha256' => 'f1fee0429aa2cce6bc5df5d7e65386e266b0aab8a5fad7882d10eb833d2f5376', 'date' => '07 Jan 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.1.tar.bz2', 'name' => 'PHP 8.0.1 (tar.bz2)', 'sha256' => 'c44e76af40d133de64564f9caf5daec52bbe84c1ccb4e4500a62233d614ebdee', 'date' => '07 Jan 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.1.tar.xz', 'name' => 'PHP 8.0.1 (tar.xz)', @@ -5424,33 +5424,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.0' => + '8.0.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Nov 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.0.tar.gz', 'name' => 'PHP 8.0.0 (tar.gz)', 'sha256' => '3ed7b48d64357d3e8fa9e828dbe7416228f84105b8290c2f9779cd66be31ea71', 'date' => '26 Nov 2020', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.0.tar.bz2', 'name' => 'PHP 8.0.0 (tar.bz2)', 'sha256' => '5e832dc37eabf444410b4ea6fb3d66b72e44e7407a3b49caa5746edcf71b9d09', 'date' => '26 Nov 2020', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.0.tar.xz', 'name' => 'PHP 8.0.0 (tar.xz)', @@ -5461,36 +5461,36 @@ $OLDRELEASES = array ( 'museum' => false, ), ), - 7 => + 7 => array ( - '7.4.33' => + '7.4.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Nov 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.33.tar.gz', 'name' => 'PHP 7.4.33 (tar.gz)', 'sha256' => '5a2337996f07c8a097e03d46263b5c98d2c8e355227756351421003bea8f463e', 'date' => '03 Nov 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.33.tar.bz2', 'name' => 'PHP 7.4.33 (tar.bz2)', 'sha256' => '4e8117458fe5a475bf203128726b71bcbba61c42ad463dffadee5667a198a98a', 'date' => '03 Nov 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.33.tar.xz', 'name' => 'PHP 7.4.33 (tar.xz)', @@ -5500,34 +5500,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.32' => + '7.4.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.32.tar.gz', 'name' => 'PHP 7.4.32 (tar.gz)', 'sha256' => '197e3372afd69694eb6b230838305eb9e1cbe5db272e0fa3bbe0d38e329a95bc', 'date' => '29 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.32.tar.bz2', 'name' => 'PHP 7.4.32 (tar.bz2)', 'sha256' => '9b4c3c21ffbb4f35d7b865dbf88538bba1742335248ae1cc2afc303d456e3aa6', 'date' => '29 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.32.tar.xz', 'name' => 'PHP 7.4.32 (tar.xz)', @@ -5537,34 +5537,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.30' => + '7.4.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jun 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.30.tar.gz', 'name' => 'PHP 7.4.30 (tar.gz)', 'sha256' => 'e37ea37e0f79109351ac615da85eb7c2c336101fc5bc802ee79a124a4310dc10', 'date' => '09 Jun 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.30.tar.bz2', 'name' => 'PHP 7.4.30 (tar.bz2)', 'sha256' => 'b601bb12e53720469b60ea816776cac1c0696b09888a11ad2379b2eee835386e', 'date' => '09 Jun 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.30.tar.xz', 'name' => 'PHP 7.4.30 (tar.xz)', @@ -5574,34 +5574,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.29' => + '7.4.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Apr 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.29.tar.gz', 'name' => 'PHP 7.4.29 (tar.gz)', 'sha256' => 'f73f89873bb9447cb99eb4863cf0a0deab4481cb8acf7552c0e70647e6885854', 'date' => '14 Apr 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.29.tar.bz2', 'name' => 'PHP 7.4.29 (tar.bz2)', 'sha256' => '7dde58a02b225c25130c6e2ae2cbba7254bb0340f7fe17291478176d866f9482', 'date' => '14 Apr 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.29.tar.xz', 'name' => 'PHP 7.4.29 (tar.xz)', @@ -5611,34 +5611,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.28' => + '7.4.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '17 Feb 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.28.tar.gz', 'name' => 'PHP 7.4.28 (tar.gz)', 'sha256' => 'a04014cd1646b90547907e2e0ac5371594533960de317b6c7ac70bcb42db92fb', 'date' => '17 Feb 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.28.tar.bz2', 'name' => 'PHP 7.4.28 (tar.bz2)', 'sha256' => '2085086a863444b0e39547de1a4969fd1c40a0c188eb58fab2938b649b0c4b58', 'date' => '17 Feb 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.28.tar.xz', 'name' => 'PHP 7.4.28 (tar.xz)', @@ -5648,33 +5648,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.27' => + '7.4.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Dec 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.27.tar.gz', 'name' => 'PHP 7.4.27 (tar.gz)', 'sha256' => '564fd5bc9850370db0cb4058d9087f2f40177fa4921ce698a375416db9ab43ca', 'date' => '16 Dec 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.27.tar.bz2', 'name' => 'PHP 7.4.27 (tar.bz2)', 'sha256' => '184aaef313fbf28c9987f6aa07b655cd1b0eae9e7e17061775a3e7d880185563', 'date' => '16 Dec 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.27.tar.xz', 'name' => 'PHP 7.4.27 (tar.xz)', @@ -5684,34 +5684,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.26' => + '7.4.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.26.tar.gz', 'name' => 'PHP 7.4.26 (tar.gz)', 'sha256' => '890a7e730f96708a68a77b19fd57fec33cc81573f7249111c870edac42b91a72', 'date' => '18 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.26.tar.bz2', 'name' => 'PHP 7.4.26 (tar.bz2)', 'sha256' => 'd68b88a8f8a437648affcc7793e5e062fa0ec5171f7fd0af385b12c78b1c004d', 'date' => '18 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.26.tar.xz', 'name' => 'PHP 7.4.26 (tar.xz)', @@ -5721,34 +5721,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.33' => + '7.3.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.33.tar.gz', 'name' => 'PHP 7.3.33 (tar.gz)', 'sha256' => '9a369c32c6f52036b0a890f290327f148a1904ee66aa56e2c9a7546da6525ec8', 'date' => '18 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.33.tar.bz2', 'name' => 'PHP 7.3.33 (tar.bz2)', 'sha256' => 'f412487d7d953437e7978a0d7b6ec99bf4a85cf3378014438a8577b89535451a', 'date' => '18 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.33.tar.xz', 'name' => 'PHP 7.3.33 (tar.xz)', @@ -5758,34 +5758,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.32' => + '7.3.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '28 Oct 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.32.tar.gz', 'name' => 'PHP 7.3.32 (tar.gz)', 'sha256' => '4739160cbd8f5d4529429ac01e181cba9705a515666002e76e4e34891c034fcb', 'date' => '28 Oct 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.32.tar.bz2', 'name' => 'PHP 7.3.32 (tar.bz2)', 'sha256' => '7c158b306e53434f1e0a88647aa561814308aaff8713ed7d237ed8f1399c216f', 'date' => '28 Oct 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.32.tar.xz', 'name' => 'PHP 7.3.32 (tar.xz)', @@ -5795,34 +5795,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.25' => + '7.4.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_25.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Oct 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.25.tar.gz', 'name' => 'PHP 7.4.25 (tar.gz)', 'sha256' => '3b2632252c933cac489a20f68b8f4ab769e5a0a3bf22b6ef47427aff6922e31f', 'date' => '21 Oct 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.25.tar.bz2', 'name' => 'PHP 7.4.25 (tar.bz2)', 'sha256' => '27992570caf3e2e5323ab7b37853c44c1529b1d31ea94d9776efa91d5a781313', 'date' => '21 Oct 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.25.tar.xz', 'name' => 'PHP 7.4.25 (tar.xz)', @@ -5832,34 +5832,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.31' => + '7.3.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Sep 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.31.tar.gz', 'name' => 'PHP 7.3.31 (tar.gz)', 'sha256' => '57ca37b08d3eed4cadc3976e78b0f51d0305bb6e60333f6e8c76e8aee07c3f0f', 'date' => '23 Sep 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.31.tar.bz2', 'name' => 'PHP 7.3.31 (tar.bz2)', 'sha256' => '6951f78524684f439186fe039ab14fb2459cea8f47ac829a159724a283f7f32b', 'date' => '23 Sep 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.31.tar.xz', 'name' => 'PHP 7.3.31 (tar.xz)', @@ -5869,34 +5869,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.24' => + '7.4.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Sep 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.24.tar.gz', 'name' => 'PHP 7.4.24 (tar.gz)', 'sha256' => '8cc1758cf7ff45428c17641b1be84cd917a2909ba40c770f06a814d8b7f36333', 'date' => '23 Sep 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.24.tar.bz2', 'name' => 'PHP 7.4.24 (tar.bz2)', 'sha256' => 'f50e32b788864349041f19e31dcc65b1fcc65bc19122918f607526432edf2f32', 'date' => '23 Sep 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.24.tar.xz', 'name' => 'PHP 7.4.24 (tar.xz)', @@ -5906,34 +5906,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.23' => + '7.4.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_23.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Aug 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.23.tar.gz', 'name' => 'PHP 7.4.23 (tar.gz)', 'sha256' => '2aaa481678ad4d2992e7bcf161e0e98c7268f4979f7ca8b3d97dd6de19c205d6', 'date' => '26 Aug 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.23.tar.bz2', 'name' => 'PHP 7.4.23 (tar.bz2)', 'sha256' => 'd1e094fe6e4f832e0a64be9c69464ba5d593fb216f914efa8bbb084e0a7a5727', 'date' => '26 Aug 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.23.tar.xz', 'name' => 'PHP 7.4.23 (tar.xz)', @@ -5943,34 +5943,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.30' => + '7.3.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Aug 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.30.tar.gz', 'name' => 'PHP 7.3.30 (tar.gz)', 'sha256' => '3810a9b631eb7f236ecf02b9a78bab8d957b6cfdb1646a29e3b34e01d36c0510', 'date' => '26 Aug 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.30.tar.bz2', 'name' => 'PHP 7.3.30 (tar.bz2)', 'sha256' => 'ccc532e660761df9b5509b9b913d2dc049b0a9954108fe212aeeb8bc2556b502', 'date' => '26 Aug 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.30.tar.xz', 'name' => 'PHP 7.3.30 (tar.xz)', @@ -5980,33 +5980,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.22' => + '7.4.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.22.tar.gz', 'name' => 'PHP 7.4.22 (tar.gz)', 'sha256' => '4ca2642b99a822237d7f84dc19682be702ad0e2d5d282f7646d84b746d454e34', 'date' => '29 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.22.tar.bz2', 'name' => 'PHP 7.4.22 (tar.bz2)', 'sha256' => '5022bbca661bc1ab5dfaee72873bcd0f0980d9dd34f980a682029496f51caae1', 'date' => '29 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.22.tar.xz', 'name' => 'PHP 7.4.22 (tar.xz)', @@ -6016,34 +6016,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.29' => + '7.3.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.29.tar.gz', 'name' => 'PHP 7.3.29 (tar.gz)', 'sha256' => 'ba4de3955b0cbd33baee55a83568acc4347605e210a54b5654e4c1e09b544659', 'date' => '01 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.29.tar.bz2', 'name' => 'PHP 7.3.29 (tar.bz2)', 'sha256' => 'a83a2878140bd86935f0046bbfe92672c8ab688fbe4ccf9704add6b9605ee4d0', 'date' => '01 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.29.tar.xz', 'name' => 'PHP 7.3.29 (tar.xz)', @@ -6053,33 +6053,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.21' => + '7.4.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.21.tar.gz', 'name' => 'PHP 7.4.21 (tar.gz)', 'sha256' => '4b9623accbe4b8923a801212f371f784069535009185e7bf7e4dec66bbea61db', 'date' => '01 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.21.tar.bz2', 'name' => 'PHP 7.4.21 (tar.bz2)', 'sha256' => '36ec6102e757e2c2b7742057a700bbff77c76fa0ccbe9c860398c3d24e32822a', 'date' => '01 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.21.tar.xz', 'name' => 'PHP 7.4.21 (tar.xz)', @@ -6089,33 +6089,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.20' => + '7.4.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '03 Jun 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.20.tar.gz', 'name' => 'PHP 7.4.20 (tar.gz)', 'sha256' => '84b09e4617e960b36dfa15fdbf2e3cd7141a2e877216ea29391b12ae86963cf4', 'date' => '03 Jun 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.20.tar.bz2', 'name' => 'PHP 7.4.20 (tar.bz2)', 'sha256' => '0ada6bc635e530fa7a4eb55e639dc070077108e5c9885f750b47007fd267b634', 'date' => '03 Jun 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.20.tar.xz', 'name' => 'PHP 7.4.20 (tar.xz)', @@ -6125,34 +6125,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.28' => + '7.3.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Apr 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.28.tar.gz', 'name' => 'PHP 7.3.28 (tar.gz)', 'sha256' => '1f0d9b94e1b11518ffabd19b646c2fee95ea42ca9cd8d337f8d07986fdceede1', 'date' => '29 Apr 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.28.tar.bz2', 'name' => 'PHP 7.3.28 (tar.bz2)', 'sha256' => '8f636e644594388436ea05ff34c9eb135e6dc119c1130199e9488d5795439964', 'date' => '29 Apr 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.28.tar.xz', 'name' => 'PHP 7.3.28 (tar.xz)', @@ -6162,33 +6162,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.19' => + '7.4.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 May 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.19.tar.gz', 'name' => 'PHP 7.4.19 (tar.gz)', 'sha256' => 'd7062457ba9f8334ab8ae7e4fea8efe27e2506763551b25db9e6ab9beea8ed6f', 'date' => '06 May 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.19.tar.bz2', 'name' => 'PHP 7.4.19 (tar.bz2)', 'sha256' => '25d09b8145b284d870431c1b40aba7944e4bf1836278538f8e29780e7f85ddea', 'date' => '06 May 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.19.tar.xz', 'name' => 'PHP 7.4.19 (tar.xz)', @@ -6198,33 +6198,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.18' => + '7.4.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Apr 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.18.tar.gz', 'name' => 'PHP 7.4.18 (tar.gz)', 'sha256' => '31a8a4a6e7d641f014749cef21421a6d1c9aaba6dce884e181a3370a8e69a04d', 'date' => '29 Apr 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.18.tar.bz2', 'name' => 'PHP 7.4.18 (tar.bz2)', 'sha256' => '2e455932e9c6f5889b1dc879f36fdd5744eaf1ff572b1b778958cbb8f5c1842f', 'date' => '29 Apr 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.18.tar.xz', 'name' => 'PHP 7.4.18 (tar.xz)', @@ -6234,33 +6234,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.16' => + '7.4.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_16.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Mar 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.16.tar.gz', 'name' => 'PHP 7.4.16 (tar.gz)', 'sha256' => 'ef2d2b463fc3444895ec599337b663a8832c6ade148d9832417e59aa2b9e93da', 'date' => '04 Mar 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.16.tar.bz2', 'name' => 'PHP 7.4.16 (tar.bz2)', 'sha256' => '85710f007cfd0fae94e13a02a3a036f4e81ef43693260cae8a2e1ca93659ce3e', 'date' => '04 Mar 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.16.tar.xz', 'name' => 'PHP 7.4.16 (tar.xz)', @@ -6270,34 +6270,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.27' => + '7.3.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_27.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '04 Feb 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.27.tar.gz', 'name' => 'PHP 7.3.27 (tar.gz)', 'sha256' => '4b7b9bd0526ad3f2c8d6fd950ea7b0ab2478b5b09755c6a620a4f3bcfbf59154', 'date' => '04 Feb 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.27.tar.bz2', 'name' => 'PHP 7.3.27 (tar.bz2)', 'sha256' => '9d2006f5e835acf5e408e34d8050a4935f2121ab18bda42775a27ed59bdae003', 'date' => '04 Feb 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.27.tar.xz', 'name' => 'PHP 7.3.27 (tar.xz)', @@ -6307,33 +6307,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.15' => + '7.4.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Feb 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.15.tar.gz', 'name' => 'PHP 7.4.15 (tar.gz)', 'sha256' => 'c7403988b69212335dec79e869abe9dbb23d60ea7f6eb16fd6ff99ed6b5f1c87', 'date' => '04 Feb 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.15.tar.bz2', 'name' => 'PHP 7.4.15 (tar.bz2)', 'sha256' => '1bd7be0293446c3d3cbe3c9fae6045119af0798fb0869db61932796dc23a7757', 'date' => '04 Feb 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.15.tar.xz', 'name' => 'PHP 7.4.15 (tar.xz)', @@ -6343,33 +6343,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.14' => + '7.4.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_14.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '07 Jan 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.14.tar.gz', 'name' => 'PHP 7.4.14 (tar.gz)', 'sha256' => 'd359183e2436f4ab30b70d4fbd881b5705a46b2e68cc6069fe91cd63d6e98e13', 'date' => '07 Jan 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.14.tar.bz2', 'name' => 'PHP 7.4.14 (tar.bz2)', 'sha256' => '6889ca0605adee3aa7077508cd79fcef1dbd88461cdf25e7c1a86997b8d0a1f6', 'date' => '07 Jan 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.14.tar.xz', 'name' => 'PHP 7.4.14 (tar.xz)', @@ -6379,34 +6379,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.26' => + '7.3.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '07 Jan 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.26.tar.gz', 'name' => 'PHP 7.3.26 (tar.gz)', 'sha256' => '2b55c2a54d1825e7c3feaf44cf42cdf782b8d5c611314172fbf8e234960b6a99', 'date' => '07 Jan 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.26.tar.bz2', 'name' => 'PHP 7.3.26 (tar.bz2)', 'sha256' => '371e5a7c8154fd3c52b14baace5f7d04c4bbb8e841d356c54a2b6a688db39d4e', 'date' => '07 Jan 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.26.tar.xz', 'name' => 'PHP 7.3.26 (tar.xz)', @@ -6416,33 +6416,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.25' => + '7.3.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Nov 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.25.tar.gz', 'name' => 'PHP 7.3.25 (tar.gz)', 'sha256' => '097c7a2a2f9189b33799d79ee5a8aac68a4d72696c1cd69c66ef5d0941ce28ad', 'date' => '26 Nov 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.25.tar.bz2', 'name' => 'PHP 7.3.25 (tar.bz2)', 'sha256' => '69315a4daa91e3b07c90eef86fe205c8812c4ac5ce119c9953ecc9f42e7702fb', 'date' => '26 Nov 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.25.tar.xz', 'name' => 'PHP 7.3.25 (tar.xz)', @@ -6452,33 +6452,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.13' => + '7.4.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Nov 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.13.tar.gz', 'name' => 'PHP 7.4.13 (tar.gz)', 'sha256' => '0865cff41e7210de2537bcd5750377cfe09a9312b9b44c1a166cf372d5204b8f', 'date' => '26 Nov 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.13.tar.bz2', 'name' => 'PHP 7.4.13 (tar.bz2)', 'sha256' => '15a339857e11c92eb47fddcd0dfe8aaa951a9be7c57ab7230ccd497465a31fda', 'date' => '26 Nov 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.13.tar.xz', 'name' => 'PHP 7.4.13 (tar.xz)', @@ -6488,34 +6488,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.34' => + '7.2.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_34.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.34.tar.gz', 'name' => 'PHP 7.2.34 (tar.gz)', 'sha256' => '8b2777c741e83f188d3ca6d8e98ece7264acafee86787298fae57e05d0dddc78', 'date' => '01 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.34.tar.bz2', 'name' => 'PHP 7.2.34 (tar.bz2)', 'sha256' => '0e5816d668a2bb14aca68cef8c430430bd86c3c5233f6c427d1a54aac127abcf', 'date' => '01 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.34.tar.xz', 'name' => 'PHP 7.2.34 (tar.xz)', @@ -6525,34 +6525,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.24' => + '7.3.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_24.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '29 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.24.tar.bz2', 'name' => 'PHP 7.3.24 (tar.bz2)', 'sha256' => '55b7afbb2037b0f8fefc481a85f8df4f7a278b4b7f0ed9f674c50ec389cca598', 'date' => '29 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.24.tar.gz', 'name' => 'PHP 7.3.24 (tar.gz)', 'sha256' => 'ac06577e2aeb69d4bed3c1532ed84a548f01399e5481c144c3e61d146be8ced6', 'date' => '29 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.24.tar.xz', 'name' => 'PHP 7.3.24 (tar.xz)', @@ -6562,33 +6562,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.12' => + '7.4.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_12.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.12.tar.bz2', 'name' => 'PHP 7.4.12 (tar.bz2)', 'sha256' => '6e6f73cc239edfc462b56a45724019691f85b57b7492e1eb5b4b60f7faa19967', 'date' => '29 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.12.tar.gz', 'name' => 'PHP 7.4.12 (tar.gz)', 'sha256' => 'f056d74409a71f17218f76538c6a2d7b59ee99db9db7685fa0ab9cd0d4c0f286', 'date' => '29 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.12.tar.xz', 'name' => 'PHP 7.4.12 (tar.xz)', @@ -6598,33 +6598,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.11' => + '7.4.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_11.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.11.tar.bz2', 'name' => 'PHP 7.4.11 (tar.bz2)', 'sha256' => '5408f255243bd2292f3fbc2fafc27a2ec083fcd852902728f2ba9a3ea616b8c5', 'date' => '01 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.11.tar.gz', 'name' => 'PHP 7.4.11 (tar.gz)', 'sha256' => 'b4fae5c39ca1eedf5597071996d9c85d0674b83f5003126c39b7b44bbfbcd821', 'date' => '01 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.11.tar.xz', 'name' => 'PHP 7.4.11 (tar.xz)', @@ -6634,34 +6634,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.23' => + '7.3.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_23.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '01 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.23.tar.bz2', 'name' => 'PHP 7.3.23 (tar.bz2)', 'sha256' => 'fd6666ad4605508042c6964151379475daea36c43e03b11b1e79d4ae6b04c04c', 'date' => '01 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.23.tar.gz', 'name' => 'PHP 7.3.23 (tar.gz)', 'sha256' => 'a21094b9ba2d8fe7fa5838e6566e30cf4bfaf2c8a6dce90ff707c45d0d8d494d', 'date' => '01 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.23.tar.xz', 'name' => 'PHP 7.3.23 (tar.xz)', @@ -6671,34 +6671,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.22' => + '7.3.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_22.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '03 Sep 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.22.tar.bz2', 'name' => 'PHP 7.3.22 (tar.bz2)', 'sha256' => 'c790b8172520b2ff773d6cf80774ea0a678a2f16e8ee6b11d68802094448689e', 'date' => '03 Sep 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.22.tar.gz', 'name' => 'PHP 7.3.22 (tar.gz)', 'sha256' => '759426cb4054e3f23316c39710faff0bb8063fd0ea50fc2c5efa590429af1a22', 'date' => '03 Sep 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.22.tar.xz', 'name' => 'PHP 7.3.22 (tar.xz)', @@ -6708,33 +6708,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.10' => + '7.4.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '03 Sep 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.10.tar.bz2', 'name' => 'PHP 7.4.10 (tar.bz2)', 'sha256' => 'e90bfc9ed98d24e53b51ffd4eb636cf5cd9d71ed7c6f8e4b6e9981e9882174e7', 'date' => '03 Sep 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.10.tar.gz', 'name' => 'PHP 7.4.10 (tar.gz)', 'sha256' => 'e720f1286f895ca37f1c75a2ca338ad2f2456664d7097298167181b25b212feb', 'date' => '03 Sep 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.10.tar.xz', 'name' => 'PHP 7.4.10 (tar.xz)', @@ -6744,34 +6744,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.33' => + '7.2.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Aug 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.33.tar.bz2', 'name' => 'PHP 7.2.33 (tar.bz2)', 'sha256' => '03dda3a3a0c8befc9b381bc9cf4638d13862783fc7b8aef43fdd4431ab85854d', 'date' => '06 Aug 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.33.tar.gz', 'name' => 'PHP 7.2.33 (tar.gz)', 'sha256' => '97bb6b88ddfa44f36c4fc84a1a718faef476f61b532d26ea29e3e9f6cd79d839', 'date' => '06 Aug 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.33.tar.xz', 'name' => 'PHP 7.2.33 (tar.xz)', @@ -6781,34 +6781,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.9' => + '7.4.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_9.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Aug 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.9.tar.bz2', 'name' => 'PHP 7.4.9 (tar.bz2)', 'sha256' => '2e270958a4216480da7886743438ccc92b6acf32ea96fefda88d07e0a5095deb', 'date' => '06 Aug 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.9.tar.gz', 'name' => 'PHP 7.4.9 (tar.gz)', 'sha256' => 'c0c657b5769bc463f5f028b1f4fef8814d98ecf3459a402a9e30d41d68b2323e', 'date' => '06 Aug 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.9.tar.xz', 'name' => 'PHP 7.4.9 (tar.xz)', @@ -6818,34 +6818,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.21' => + '7.3.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_21.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Aug 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.21.tar.bz2', 'name' => 'PHP 7.3.21 (tar.bz2)', 'sha256' => 'dbb0ea39e7e4b3814d6d1dd3ac5983aed6c38cdf55464645da11a8b134a9f7a7', 'date' => '06 Aug 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.21.tar.gz', 'name' => 'PHP 7.3.21 (tar.gz)', 'sha256' => 'f5d6e136768522edd025c4a97b9b6a98a2fda20b68445cbc5ca2efce1e73c7d0', 'date' => '06 Aug 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.21.tar.xz', 'name' => 'PHP 7.3.21 (tar.xz)', @@ -6855,34 +6855,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.8' => + '7.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jul 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.8.tar.bz2', 'name' => 'PHP 7.4.8 (tar.bz2)', 'sha256' => '6a48d3a605c003b088984ceb53be5df1e698b8b35ddacadd12fe50f49c0e8062', 'date' => '09 Jul 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.8.tar.gz', 'name' => 'PHP 7.4.8 (tar.gz)', 'sha256' => '649f6bcdb60dc38d5edd7f3a7b2905d15d88c1d13e40307e8972ede347cea6ba', 'date' => '09 Jul 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.8.tar.xz', 'name' => 'PHP 7.4.8 (tar.xz)', @@ -6892,34 +6892,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.20' => + '7.3.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jul 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.20.tar.bz2', 'name' => 'PHP 7.3.20 (tar.bz2)', 'sha256' => 'c6ed7894911acfe075381c01b07745d92e9259fac510a849f742edb6b95c89de', 'date' => '09 Jul 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.20.tar.gz', 'name' => 'PHP 7.3.20 (tar.gz)', 'sha256' => 'd0579b8a6bcdd5e1ae334d83261f2389b0d3d4fd54cc808e20a5031121f97d87', 'date' => '09 Jul 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.20.tar.xz', 'name' => 'PHP 7.3.20 (tar.xz)', @@ -6929,34 +6929,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.32' => + '7.2.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jul 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.32.tar.bz2', 'name' => 'PHP 7.2.32 (tar.bz2)', 'sha256' => '715c0a4274ad17ce449cd0f16b8a7428936e3ba80002d0948a8699a6f75d98a7', 'date' => '09 Jul 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.32.tar.gz', 'name' => 'PHP 7.2.32 (tar.gz)', 'sha256' => 'b3aabb99e574c407dd58ad071fc52e27c489608fe06f1330d688d0fb7349089c', 'date' => '09 Jul 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.32.tar.xz', 'name' => 'PHP 7.2.32 (tar.xz)', @@ -6966,33 +6966,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.7' => + '7.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 June 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.7.tar.bz2', 'name' => 'PHP 7.4.7 (tar.bz2)', 'sha256' => '800e0d01f359c8ec41540925c0d4a24c34d5f21ef6addd6d82ff4a52be23d87a', 'date' => '11 June 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.7.tar.gz', 'name' => 'PHP 7.4.7 (tar.gz)', 'sha256' => 'a554a510190e726ebe7157fb00b4aceabdb50c679430510a3b93cbf5d7546e44', 'date' => '11 June 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.7.tar.xz', 'name' => 'PHP 7.4.7 (tar.xz)', @@ -7002,34 +7002,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.31' => + '7.2.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 May 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.31.tar.bz2', 'name' => 'PHP 7.2.31 (tar.bz2)', 'sha256' => '1ba7559745d704f39764a5deb002eb94f5cb8d9aaa219a6b8b32b94174e8a700', 'date' => '14 May 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.31.tar.gz', 'name' => 'PHP 7.2.31 (tar.gz)', 'sha256' => '796837831ccebf00dc15921ed327cfbac59177da41b33044d9a6c7134cdd250c', 'date' => '14 May 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.31.tar.xz', 'name' => 'PHP 7.2.31 (tar.xz)', @@ -7039,33 +7039,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.19' => + '7.3.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 Jun 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.19.tar.bz2', 'name' => 'PHP 7.3.19 (tar.bz2)', 'sha256' => '0d9c1e31e29fb46ff660b48051d169d50cb0285e611d16591449d578320d34a5', 'date' => '11 Jun 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.19.tar.gz', 'name' => 'PHP 7.3.19 (tar.gz)', 'sha256' => '809126b46d62a1a06c2d5a0f9d7ba61aba40e165f24d2d185396d0f9646d3280', 'date' => '11 Jun 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.19.tar.xz', 'name' => 'PHP 7.3.19 (tar.xz)', @@ -7075,34 +7075,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.6' => + '7.4.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_6.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 May 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.6.tar.bz2', 'name' => 'PHP 7.4.6 (tar.bz2)', 'sha256' => 'a6ed9475695d2056322a3f2c00fee61a122a7fce138a0e25694320c5dd1d2348', 'date' => '14 May 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.6.tar.gz', 'name' => 'PHP 7.4.6 (tar.gz)', 'sha256' => '2a37bab4e308c4e3867083137b7cce4a3f1d996ae231b383c1a83609cec3fed0', 'date' => '14 May 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.6.tar.xz', 'name' => 'PHP 7.4.6 (tar.xz)', @@ -7112,34 +7112,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.18' => + '7.3.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_18.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 May 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.18.tar.bz2', 'name' => 'PHP 7.3.18 (tar.bz2)', 'sha256' => '749d21f65deb57153b575f846705f5db54732c6b672e80612b29dcf1a53be8a4', 'date' => '14 May 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.18.tar.gz', 'name' => 'PHP 7.3.18 (tar.gz)', 'sha256' => '3211d5d6ea8a27c2794498a551bf26e334bc2b986741971809c9bb650eaa47a3', 'date' => '14 May 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.18.tar.xz', 'name' => 'PHP 7.3.18 (tar.xz)', @@ -7149,34 +7149,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.5' => + '7.4.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_5.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '16 Apr 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.5.tar.bz2', 'name' => 'PHP 7.4.5 (tar.bz2)', 'sha256' => '39daa533d5b63c3394da711dc12867dd76c2ec31c940bbba16f14e577df13d6f', 'date' => '16 Apr 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.5.tar.gz', 'name' => 'PHP 7.4.5 (tar.gz)', 'sha256' => '1ef619411b0bd68c0fbfd2a6c622ad6bc524d0bceb8476fb9807a23a0fe9a343', 'date' => '16 Apr 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.5.tar.xz', 'name' => 'PHP 7.4.5 (tar.xz)', @@ -7186,34 +7186,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.17' => + '7.3.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_17.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '16 Apr 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.17.tar.bz2', 'name' => 'PHP 7.3.17 (tar.bz2)', 'sha256' => 'd83e90d9024c999f209933732ed4e1d0e7295a67c66ab79490898ea0a4a29709', 'date' => '16 Apr 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.17.tar.gz', 'name' => 'PHP 7.3.17 (tar.gz)', 'sha256' => '0dd484382b8f17dfa8afd44236a5ccf374e1f03de06ef826ebcbda98eadc7bda', 'date' => '16 Apr 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.17.tar.xz', 'name' => 'PHP 7.3.17 (tar.xz)', @@ -7223,34 +7223,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.30' => + '7.2.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '16 Apr 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.30.tar.bz2', 'name' => 'PHP 7.2.30 (tar.bz2)', 'sha256' => 'c4cf5c9debe8fd8def0a933231cf2fa3a8bdd22555ae57e825bfac6a87a712bf', 'date' => '16 Apr 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.30.tar.gz', 'name' => 'PHP 7.2.30 (tar.gz)', 'sha256' => 'daa53d22510b0fd433904d1c3de460746860a974b776f727ac8acecb44e16e2f', 'date' => '16 Apr 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.30.tar.xz', 'name' => 'PHP 7.2.30 (tar.xz)', @@ -7260,34 +7260,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.29' => + '7.2.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '19 Mar 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.29.tar.bz2', 'name' => 'PHP 7.2.29 (tar.bz2)', 'sha256' => 'eaa1f5503f2bf0c8569ec4ae80ffd8ca8cbc260f01c2503dd0e83dfc9cf0b923', 'date' => '19 Mar 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.29.tar.gz', 'name' => 'PHP 7.2.29 (tar.gz)', 'sha256' => 'ea5c96309394a03a38828cc182058be0c09dde1f00f35809622c2d05c50ee890', 'date' => '19 Mar 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.29.tar.xz', 'name' => 'PHP 7.2.29 (tar.xz)', @@ -7297,34 +7297,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.4' => + '7.4.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_4.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '19 Mar 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.4.tar.bz2', 'name' => 'PHP 7.4.4 (tar.bz2)', 'sha256' => '308e8f4182ec8a2767b0b1b8e1e7c69fb149b37cfb98ee4a37475e082fa9829f', 'date' => '19 Mar 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.4.tar.gz', 'name' => 'PHP 7.4.4 (tar.gz)', 'sha256' => '1581b3e10c7854597e1086937d5753cdf92d132865c06a50aed4f4f407138616', 'date' => '19 Mar 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.4.tar.xz', 'name' => 'PHP 7.4.4 (tar.xz)', @@ -7334,34 +7334,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.16' => + '7.3.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '19 Mar 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.16.tar.bz2', 'name' => 'PHP 7.3.16 (tar.bz2)', 'sha256' => 'b8072d526a283182963b03960b7982392daa43cb31131eca4cf0b996764a042e', 'date' => '19 Mar 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.16.tar.gz', 'name' => 'PHP 7.3.16 (tar.gz)', 'sha256' => 'a01ae4f6baf427413c28f8cfddbae86aeff61cdb88658e75404f2d93d98e3255', 'date' => '19 Mar 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.16.tar.xz', 'name' => 'PHP 7.3.16 (tar.xz)', @@ -7371,34 +7371,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.3' => + '7.4.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_3.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '20 Feb 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.3.tar.bz2', 'name' => 'PHP 7.4.3 (tar.bz2)', 'sha256' => 'c1517ba49578fb2dcc64c73a3edc76d4fc507c4a7ac639981584cc7d3b4c6d14', 'date' => '20 Feb 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.3.tar.gz', 'name' => 'PHP 7.4.3 (tar.gz)', 'sha256' => '58e421a1dba10da8542a014535cac77a78f0271afb901cc2bd363b881895a9ed', 'date' => '20 Feb 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.3.tar.xz', 'name' => 'PHP 7.4.3 (tar.xz)', @@ -7408,34 +7408,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.28' => + '7.2.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '20 Feb 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.28.tar.bz2', 'name' => 'PHP 7.2.28 (tar.bz2)', 'sha256' => '7c953a5b79db3d8d45c65014aef382a48e1c3435cf0c2574e942957f0cdd52a3', 'date' => '20 Feb 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.28.tar.gz', 'name' => 'PHP 7.2.28 (tar.gz)', 'sha256' => 'ed5fede7602ccd8d1294b4e4aef7f92f4e3af58ab040bd349264b3f5dbef3261', 'date' => '20 Feb 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.28.tar.xz', 'name' => 'PHP 7.2.28 (tar.xz)', @@ -7445,34 +7445,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.15' => + '7.3.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_15.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '20 Feb 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.15.tar.bz2', 'name' => 'PHP 7.3.15 (tar.bz2)', 'sha256' => '8dbe1507ea0035f4211faa0db80fe95f39df0e39d8408223820fe9123487043d', 'date' => '20 Feb 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.15.tar.gz', 'name' => 'PHP 7.3.15 (tar.gz)', 'sha256' => 'c606dd09de2edff1e6b6c5b9f0076214a59f6f1a3272e15d681ed16257737ef6', 'date' => '20 Feb 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.15.tar.xz', 'name' => 'PHP 7.3.15 (tar.xz)', @@ -7482,34 +7482,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.2' => + '7.4.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_2.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Jan 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.2.tar.bz2', 'name' => 'PHP 7.4.2 (tar.bz2)', 'sha256' => '02909974be9c70814ed5652a6bdae9c74220d41c1e5ed5ad921e15d028f8e816', 'date' => '23 Jan 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.2.tar.gz', 'name' => 'PHP 7.4.2 (tar.gz)', 'sha256' => 'e1b8dbf561ac1d871362054ff4cd62dca5e19c8c896567996525dda7c4b320f9', 'date' => '23 Jan 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.2.tar.xz', 'name' => 'PHP 7.4.2 (tar.xz)', @@ -7519,34 +7519,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.14' => + '7.3.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_14.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Jan 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.14.tar.bz2', 'name' => 'PHP 7.3.14 (tar.bz2)', 'sha256' => 'b9dfcbbbc929ce67995f976de8636c5f46804593ecae6e110509329b9dc6c272', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.14.tar.gz', 'name' => 'PHP 7.3.14 (tar.gz)', 'sha256' => '6aff532a380b0f30c9e295b67dc91d023fee3b0ae14b4771468bf5dda4cbf108', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.14.tar.xz', 'name' => 'PHP 7.3.14 (tar.xz)', @@ -7556,34 +7556,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.27' => + '7.2.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_27.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Jan 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.27.tar.bz2', 'name' => 'PHP 7.2.27 (tar.bz2)', 'sha256' => '5bc0695b171b870ceb083c5432c6a758d3dbd3830a0cf6cf35bd9b283a627049', 'date' => '23 Jan 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.27.tar.gz', 'name' => 'PHP 7.2.27 (tar.gz)', 'sha256' => 'e00ace5e89cb162cba0aebd17144541e1c4d965589155a44ca706d9f9c5a8981', 'date' => '23 Jan 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.27.tar.xz', 'name' => 'PHP 7.2.27 (tar.xz)', @@ -7593,34 +7593,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.13' => + '7.3.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_13.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.13.tar.bz2', 'name' => 'PHP 7.3.13 (tar.bz2)', 'sha256' => '5c7b89062814f3c3953d1518f63ed463fd452929e3a37110af4170c5d23267bc', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.13.tar.gz', 'name' => 'PHP 7.3.13 (tar.gz)', 'sha256' => '9cf835416a3471d7e6615e9288e76813d55ffaf60e0aa9ce74884a7c228cb6dd', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.13.tar.xz', 'name' => 'PHP 7.3.13 (tar.xz)', @@ -7630,34 +7630,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.26' => + '7.2.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.26.tar.bz2', 'name' => 'PHP 7.2.26 (tar.bz2)', 'sha256' => 'f36d86eecf57ff919d6f67b064e1f41993f62e3991ea4796038d8d99c74e847b', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.26.tar.gz', 'name' => 'PHP 7.2.26 (tar.gz)', 'sha256' => 'e97d0636478bb519cd955a0c17b7970cf173063a840a83fc4afb75c22bc1bf08', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.26.tar.xz', 'name' => 'PHP 7.2.26 (tar.xz)', @@ -7667,33 +7667,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.1' => + '7.4.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '18 Dec 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.1.tar.bz2', 'name' => 'PHP 7.4.1 (tar.bz2)', 'sha256' => '6b1ca0f0b83aa2103f1e454739665e1b2802b90b3137fc79ccaa8c242ae48e4e', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.1.tar.gz', 'name' => 'PHP 7.4.1 (tar.gz)', 'sha256' => '67265d6bd48d828f4725964f71ca5c76c3da63b0d07bec5ec4e5acfdd3708073', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.1.tar.xz', 'name' => 'PHP 7.4.1 (tar.xz)', @@ -7703,33 +7703,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.25' => + '7.2.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Nov 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.25.tar.bz2', 'name' => 'PHP 7.2.25 (tar.bz2)', 'sha256' => '7cb336b1ed0f9d87f46bbcb7b3437ee252d0d5060c0fb1a985adb6cbc73a6b9e', 'date' => '21 Nov 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.25.tar.gz', 'name' => 'PHP 7.2.25 (tar.gz)', 'sha256' => 'b2cb1bd46454d33b2c65c2fd559f464cd14e57dd47b953adf5caa77fdf0de52b', 'date' => '21 Nov 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.25.tar.xz', 'name' => 'PHP 7.2.25 (tar.xz)', @@ -7739,33 +7739,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.12' => + '7.3.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_12.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Nov 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.12.tar.bz2', 'name' => 'PHP 7.3.12 (tar.bz2)', 'sha256' => 'd317b029f991410578cc38ba4b76c9f764ec29c67e7124e1fec57bceb3ad8c39', 'date' => '21 Nov 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.12.tar.gz', 'name' => 'PHP 7.3.12 (tar.gz)', 'sha256' => 'd617e5116f8472a628083f448ebe4afdbc4ac013c9a890b08946649dcbe61b34', 'date' => '21 Nov 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.12.tar.xz', 'name' => 'PHP 7.3.12 (tar.xz)', @@ -7775,33 +7775,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.0' => + '7.4.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Nov 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.0.tar.bz2', 'name' => 'PHP 7.4.0 (tar.bz2)', 'sha256' => 'bf206be96a39e643180013df39ddcd0493966692a2422c4b7d3355b6a15a01c0', 'date' => '28 Nov 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.0.tar.gz', 'name' => 'PHP 7.4.0 (tar.gz)', 'sha256' => '004a1a8176176ee1b5c112e73d705977507803f425f9e48cb4a84f42b22abf22', 'date' => '28 Nov 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.0.tar.xz', 'name' => 'PHP 7.4.0 (tar.xz)', @@ -7811,34 +7811,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.33' => + '7.1.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '24 Oct 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.33.tar.bz2', 'name' => 'PHP 7.1.33 (tar.bz2)', 'sha256' => '95a5e5f2e2b79b376b737a82d9682c91891e60289fa24183463a2aca158f4f4b', 'date' => '24 Oct 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.33.tar.gz', 'name' => 'PHP 7.1.33 (tar.gz)', 'sha256' => '0055f368ffefe51d5a4483755bd17475e88e74302c08b727952831c5b2682ea2', 'date' => '24 Oct 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.33.tar.xz', 'name' => 'PHP 7.1.33 (tar.xz)', @@ -7848,34 +7848,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.24' => + '7.2.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '24 Oct 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.24.tar.bz2', 'name' => 'PHP 7.2.24 (tar.bz2)', 'sha256' => 'a079934db63068bbcc9bbd2e7b916b9891fc97719862697e5f954c639984f603', 'date' => '24 Oct 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.24.tar.gz', 'name' => 'PHP 7.2.24 (tar.gz)', 'sha256' => '01baf7a34c856d2c552121fbad7296a8cde18389ce83db32f18252bc1cee4dd6', 'date' => '24 Oct 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.24.tar.xz', 'name' => 'PHP 7.2.24 (tar.xz)', @@ -7885,34 +7885,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.11' => + '7.3.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_11.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '24 Oct 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.11.tar.bz2', 'name' => 'PHP 7.3.11 (tar.bz2)', 'sha256' => '92d1ff4b13c7093635f1ec338a5e6891ca99b10e65fbcadd527e5bb84d11b5e7', 'date' => '24 Oct 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.11.tar.gz', 'name' => 'PHP 7.3.11 (tar.gz)', 'sha256' => '8f385f5bdf9193791f6c0f6303f518f3c324b6655ac108fdb3c426da7f3cf4d4', 'date' => '24 Oct 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.11.tar.xz', 'name' => 'PHP 7.3.11 (tar.xz)', @@ -7922,34 +7922,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.32' => + '7.1.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.32.tar.bz2', 'name' => 'PHP 7.1.32 (tar.bz2)', 'sha256' => 'd7c7a1adddc75ac17f63349e966db25930b6b3ce736640349bea9e10909cab7a', 'date' => '29 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.32.tar.gz', 'name' => 'PHP 7.1.32 (tar.gz)', 'sha256' => '6e51a2fc610352438b2a1c40310468a1e2b5baf2fff43be77f9f408a9111590c', 'date' => '29 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.32.tar.xz', 'name' => 'PHP 7.1.32 (tar.xz)', @@ -7959,34 +7959,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.10' => + '7.3.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_10.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.10.tar.bz2', 'name' => 'PHP 7.3.10 (tar.bz2)', 'sha256' => '506dd871c0fb8f00f872f53dd3b1dfa5f23a9edb4dfc521e5669c78a78c45448', 'date' => '26 Sep 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.10.tar.gz', 'name' => 'PHP 7.3.10 (tar.gz)', 'sha256' => 'fb670723a9b8fda31c89529f27e0dda289d8af4b6ce9f152c8010876639c0fb4', 'date' => '26 Sep 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.10.tar.xz', 'name' => 'PHP 7.3.10 (tar.xz)', @@ -7996,33 +7996,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.23' => + '7.2.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_23.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Sep 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.23.tar.bz2', 'name' => 'PHP 7.2.23 (tar.bz2)', 'sha256' => 'a17af3643d29d7e730f977e3776dc3e325d5ca00b361e41dbfc2368ebad5430d', 'date' => '26 Sep 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.23.tar.gz', 'name' => 'PHP 7.2.23 (tar.gz)', 'sha256' => 'b32b426c84ff45154d6c11f00aff433bcac831a5c0a09bf0297075eefaea8fcc', 'date' => '26 Sep 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.23.tar.xz', 'name' => 'PHP 7.2.23 (tar.xz)', @@ -8032,34 +8032,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.22' => + '7.2.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_22.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.22.tar.bz2', 'name' => 'PHP 7.2.22 (tar.bz2)', 'sha256' => 'c10a9883b586ada5ef1149f2571625b27efdcc3e70a04fbb9121979633b0f08a', 'date' => '29 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.22.tar.gz', 'name' => 'PHP 7.2.22 (tar.gz)', 'sha256' => '6e2ccc77484c27971d4550b7071a57b79bc910bfb2d4a74a57ae2c18b78c3dc7', 'date' => '29 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.22.tar.xz', 'name' => 'PHP 7.2.22 (tar.xz)', @@ -8069,34 +8069,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.9' => + '7.3.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_9.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.9.tar.bz2', 'name' => 'PHP 7.3.9 (tar.bz2)', 'sha256' => 'a39c9709a8c9eb7ea8ac4933ef7a78b92f7e5735a405c8b8e42ee39541d963c4', 'date' => '29 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.9.tar.gz', 'name' => 'PHP 7.3.9 (tar.gz)', 'sha256' => '5ecc1b1ad7228ed2e99a970c45358871644fcab1d9fd079a7b129326a7bde42d', 'date' => '29 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.9.tar.xz', 'name' => 'PHP 7.3.9 (tar.xz)', @@ -8106,34 +8106,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.31' => + '7.1.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.31.tar.bz2', 'name' => 'PHP 7.1.31 (tar.bz2)', 'sha256' => '767573c2b732e78cc647602ec61fc948941a941a4071db59b522cf5e076825dd', 'date' => '01 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.31.tar.gz', 'name' => 'PHP 7.1.31 (tar.gz)', 'sha256' => 'ea0558735653b9ce63e9cea41dd8f0d0b90dba6c39d39dd9a6aad5cc58b0bdfc', 'date' => '01 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.31.tar.xz', 'name' => 'PHP 7.1.31 (tar.xz)', @@ -8143,34 +8143,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.21' => + '7.2.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_21.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.21.tar.bz2', 'name' => 'PHP 7.2.21 (tar.bz2)', 'sha256' => '343183a1be8336670171885c761d57ffcae99cbbcf1db43da7cb5565056b14ef', 'date' => '01 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.21.tar.gz', 'name' => 'PHP 7.2.21 (tar.gz)', 'sha256' => '8327682bee4a8fd2edf5bbfcc393d986b945bec433fc74458d05e766701b313c', 'date' => '01 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.21.tar.xz', 'name' => 'PHP 7.2.21 (tar.xz)', @@ -8180,34 +8180,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.8' => + '7.3.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.8.tar.bz2', 'name' => 'PHP 7.3.8 (tar.bz2)', 'sha256' => 'd566c630175d9fa84a98d3c9170ec033069e9e20c8d23dea49ae2a976b6c76f5', 'date' => '01 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.8.tar.gz', 'name' => 'PHP 7.3.8 (tar.gz)', 'sha256' => '31af3eff3337fb70733c9b02a3444c3dae662ecab20aeec7fdc3c42e22071490', 'date' => '01 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.8.tar.xz', 'name' => 'PHP 7.3.8 (tar.xz)', @@ -8217,34 +8217,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.30' => + '7.1.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '30 May 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.30.tar.bz2', 'name' => 'PHP 7.1.30 (tar.bz2)', 'sha256' => '664850774fca19d2710b9aa35e9ae91214babbde9cd8d27fd3479cc97171ecb3', 'date' => '30 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.30.tar.gz', 'name' => 'PHP 7.1.30 (tar.gz)', 'sha256' => 'a604edf85d5dfc28e6ff3016dad3954c50b93db69afc42295178b4fdf42e026c', 'date' => '30 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.30.tar.xz', 'name' => 'PHP 7.1.30 (tar.xz)', @@ -8254,33 +8254,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.20' => + '7.2.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.20.tar.bz2', 'name' => 'PHP 7.2.20 (tar.bz2)', 'sha256' => '9fb829e54e54c483ae8892d1db0f7d79115cc698f2f3591a8a5e58d9410dca84', 'date' => '04 Jul 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.20.tar.gz', 'name' => 'PHP 7.2.20 (tar.gz)', 'sha256' => 'd1dbf6f299514c9aa55b2995928b798b27c21811a0447f0688993cdf36be0749', 'date' => '04 Jul 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.20.tar.xz', 'name' => 'PHP 7.2.20 (tar.xz)', @@ -8290,33 +8290,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.7' => + '7.3.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.7.tar.bz2', 'name' => 'PHP 7.3.7 (tar.bz2)', 'sha256' => 'c3608fa7114642725854119ccffe722f42fc7c31e5e4c00d5cb4cb1a0d16bf18', 'date' => '04 Jul 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.7.tar.gz', 'name' => 'PHP 7.3.7 (tar.gz)', 'sha256' => '4230bbc862df712b013369de94b131eddea1e5e946a8c5e286b82d441c313328', 'date' => '04 Jul 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.7.tar.xz', 'name' => 'PHP 7.3.7 (tar.xz)', @@ -8326,29 +8326,29 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.19' => + '7.2.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.19.tar.bz2', 'name' => 'PHP 7.2.19 (tar.bz2)', 'sha256' => 'ebd0b1f375fe07ed4925acc213d2f5ef76a61bd5de174e7b666b98421a90a099', 'date' => '30 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.19.tar.gz', 'name' => 'PHP 7.2.19 (tar.gz)', 'sha256' => '1cd2266a058f3224d3cba594540045542606996f026eeef96747f27f6b3d22b6', 'date' => '30 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.19.tar.xz', 'name' => 'PHP 7.2.19 (tar.xz)', @@ -8358,34 +8358,34 @@ $OLDRELEASES = array ( ), 'date' => '30 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.6' => + '7.3.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.6.tar.bz2', 'name' => 'PHP 7.3.6 (tar.bz2)', 'sha256' => '1e5ac8700154835c0910e3a814517da9b87bb4a82cc7011fea1a82096b6f6f77', 'date' => '30 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.6.tar.gz', 'name' => 'PHP 7.3.6 (tar.gz)', 'sha256' => '72fbf223ff8659a61eed08eebffb4ede0256e7a69d2151ae24affa5377b70bb8', 'date' => '30 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.6.tar.xz', 'name' => 'PHP 7.3.6 (tar.xz)', @@ -8395,34 +8395,34 @@ $OLDRELEASES = array ( ), 'date' => '30 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.29' => + '7.1.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.29.tar.bz2', 'name' => 'PHP 7.1.29 (tar.bz2)', 'sha256' => '8528d17efe82662dc740d96ddb32217f4e161a597d709f19571b0c82fbb88335', 'date' => '02 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.29.tar.gz', 'name' => 'PHP 7.1.29 (tar.gz)', 'sha256' => 'bdd0e1707100c8b87f1be516f5b95a26e3eb4114d4316eaf0663bf292ead35bb', 'date' => '02 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.29.tar.xz', 'name' => 'PHP 7.1.29 (tar.xz)', @@ -8432,34 +8432,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.18' => + '7.2.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.18.tar.bz2', 'name' => 'PHP 7.2.18 (tar.bz2)', 'sha256' => 'fa1a27b12d1173207e81e798a48d4a7f77ba897f5c5200ac0b5d62aa8b4c4b72', 'date' => '02 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.18.tar.gz', 'name' => 'PHP 7.2.18 (tar.gz)', 'sha256' => '48aeb291814f3cd3ba03c52e79e8e61896d0271fd4c228198f80a072e568f84b', 'date' => '02 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.18.tar.xz', 'name' => 'PHP 7.2.18 (tar.xz)', @@ -8469,34 +8469,34 @@ $OLDRELEASES = array ( ), 'date' => '30 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.5' => + '7.3.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.5.tar.bz2', 'name' => 'PHP 7.3.5 (tar.bz2)', 'sha256' => '4380b80ef98267c3823c3416eb05f7729ba7a33de6b3d14ec96013215d62c35e', 'date' => '02 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.5.tar.gz', 'name' => 'PHP 7.3.5 (tar.gz)', 'sha256' => 'c953749b7f3310a3a74f920ef698f6d1c04636d11656ac9ffb3ab10d34e30e1e', 'date' => '02 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.5.tar.xz', 'name' => 'PHP 7.3.5 (tar.xz)', @@ -8506,34 +8506,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.28' => + '7.1.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.28.tar.bz2', 'name' => 'PHP 7.1.28 (tar.bz2)', 'sha256' => '739e8733fe1fc5e69e6226da6dba7a31bacfd2e3871ad2c97a792638f22c54c9', 'date' => '04 Apr 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.28.tar.gz', 'name' => 'PHP 7.1.28 (tar.gz)', 'sha256' => '4df587338d4c5dfe27050c7ac72a6b7583ecaee9d3fbfc03427667a86e081999', 'date' => '04 Apr 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.28.tar.xz', 'name' => 'PHP 7.1.28 (tar.xz)', @@ -8543,34 +8543,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.17' => + '7.2.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.17.tar.bz2', 'name' => 'PHP 7.2.17 (tar.bz2)', 'sha256' => '91a811ab6f6d7acb312159cf6b0a3cffe968676fdebf042e9253245cc6094f75', 'date' => '04 Apr 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.17.tar.gz', 'name' => 'PHP 7.2.17 (tar.gz)', 'sha256' => 'e1c6c2553cdb7edbfa65b89e259690ed01b31b12d57349c90b6ed00a410f62b5', 'date' => '04 Apr 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.17.tar.xz', 'name' => 'PHP 7.2.17 (tar.xz)', @@ -8580,34 +8580,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.4' => + '7.3.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.4.tar.bz2', 'name' => 'PHP 7.3.4 (tar.bz2)', 'sha256' => '2e2c3d8212c83649e443b61efffbd03df4b9edd0f9c7a679081fe4cb2da12b78', 'date' => '04 Apr 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.4.tar.gz', 'name' => 'PHP 7.3.4 (tar.gz)', 'sha256' => 'dd41ecf43fe1172030f41d2581909457a0af7bd137a057c3874e0b0f3c2e8761', 'date' => '04 Apr 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.4.tar.xz', 'name' => 'PHP 7.3.4 (tar.xz)', @@ -8617,34 +8617,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Apr 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.27' => + '7.1.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.27.tar.bz2', 'name' => 'PHP 7.1.27 (tar.bz2)', 'sha256' => 'dad7ecd30941911528e471c555a01911a68aa9219696bfc1e005f8b669f4ec4b', 'date' => '07 Mar 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.27.tar.gz', 'name' => 'PHP 7.1.27 (tar.gz)', 'sha256' => '353b9ed341048388cc95e6fa6dab587eee44a3d4d297989aa297936090864357', 'date' => '07 Mar 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.27.tar.xz', 'name' => 'PHP 7.1.27 (tar.xz)', @@ -8654,34 +8654,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Mar 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.16' => + '7.2.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.16.tar.bz2', 'name' => 'PHP 7.2.16 (tar.bz2)', 'sha256' => '2c0ad10053d58694cd14323248ecd6d9ba71d2733d160973c356ad01d09e7f38', 'date' => '07 Mar 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.16.tar.gz', 'name' => 'PHP 7.2.16 (tar.gz)', 'sha256' => 'fb95e0bb69caba1dfd3bbac4eeef7a0485e5ea3d6191d35ad5657e18243aa02d', 'date' => '07 Mar 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.16.tar.xz', 'name' => 'PHP 7.2.16 (tar.xz)', @@ -8691,34 +8691,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Apr 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.3' => + '7.3.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.3.tar.bz2', 'name' => 'PHP 7.3.3 (tar.bz2)', 'sha256' => '61969e943adfea79701a34b8e701edd3f95be829d16601a4aabeb05f83023ce6', 'date' => '07 Mar 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.3.tar.gz', 'name' => 'PHP 7.3.3 (tar.gz)', 'sha256' => '9bde40cbf8608ae9c595a6643a02cf0c692c131e2b3619af3fd2af8425d8e677', 'date' => '07 Mar 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.3.tar.xz', 'name' => 'PHP 7.3.3 (tar.xz)', @@ -8728,34 +8728,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Mar 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.26' => + '7.1.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.26.tar.bz2', 'name' => 'PHP 7.1.26 (tar.bz2)', 'sha256' => '5b351ca86bc7e4600778aaf1d61ab9e4e38864efa86ab4cc4d5b02ea7f542ae6', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.26.tar.gz', 'name' => 'PHP 7.1.26 (tar.gz)', 'sha256' => '069315d3c3f964fd165bbbb3c2fc56005813e2cf97bed05055318dcc4e775328', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.26.tar.xz', 'name' => 'PHP 7.1.26 (tar.xz)', @@ -8765,34 +8765,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Jan 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.15' => + '7.2.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.15.tar.bz2', 'name' => 'PHP 7.2.15 (tar.bz2)', 'sha256' => 'c93e7616946a463911818c7e9f9e21276c7793fb8c7cb15877188dd0546d0554', 'date' => '07 Feb 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.15.tar.gz', 'name' => 'PHP 7.2.15 (tar.gz)', 'sha256' => '9b13bde9f5a32d6f6bdb8b911bb55bb818d0c4073538f8dc48aa2deb560f55a3', 'date' => '07 Feb 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.15.tar.xz', 'name' => 'PHP 7.2.15 (tar.xz)', @@ -8803,29 +8803,29 @@ $OLDRELEASES = array ( 'date' => '07 Mar 2019', 'museum' => false, ), - '7.3.2' => + '7.3.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.2.tar.bz2', 'name' => 'PHP 7.3.2 (tar.bz2)', 'sha256' => '946f50dacbd2f61e643bb737021cbe8b1816e780ee7ad3e0cd999a1892ab0add', 'date' => '07 Feb 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.2.tar.gz', 'name' => 'PHP 7.3.2 (tar.gz)', 'sha256' => '4597294b00edc1c63a021b6c7838eb43384f62eeb9e392f0b91c38a3c090f499', 'date' => '07 Feb 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.2.tar.xz', 'name' => 'PHP 7.3.2 (tar.xz)', @@ -8836,29 +8836,29 @@ $OLDRELEASES = array ( 'date' => '07 Feb 2019', 'museum' => false, ), - '7.2.14' => + '7.2.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.14.tar.bz2', 'name' => 'PHP 7.2.14 (tar.bz2)', 'sha256' => 'f56132d248c7bf1e0efc8a680a4b598d6ff73fc6b9c84b5d7b539ad8db7a6597', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.14.tar.gz', 'name' => 'PHP 7.2.14 (tar.gz)', 'sha256' => '87e13d80b0c3a66bd463d1cb47dc101335884a0d192ab924f547f8aed7f70c08', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.14.tar.xz', 'name' => 'PHP 7.2.14 (tar.xz)', @@ -8868,34 +8868,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Feb 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.1' => + '7.3.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.1.tar.bz2', 'name' => 'PHP 7.3.1 (tar.bz2)', 'sha256' => 'afef2b0cd7f2641274a1a0aabe67e30f2334970d7c530382dfa9d79cfe74388e', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.1.tar.gz', 'name' => 'PHP 7.3.1 (tar.gz)', 'sha256' => '8006211f7a041dde22fffedc416d142e0ebf22066014077ca936d7e6f655ead5', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.1.tar.xz', 'name' => 'PHP 7.3.1 (tar.xz)', @@ -8905,34 +8905,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Jan 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.33' => + '7.0.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.33.tar.bz2', 'name' => 'PHP 7.0.33 (tar.bz2)', 'sha256' => '4933ea74298a1ba046b0246fe3771415c84dfb878396201b56cb5333abe86f07', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.33.tar.gz', 'name' => 'PHP 7.0.33 (tar.gz)', 'sha256' => 'd71a6ecb6b13dc53fed7532a7f8f949c4044806f067502f8fb6f9facbb40452a', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.33.tar.xz', 'name' => 'PHP 7.0.33 (tar.xz)', @@ -8942,34 +8942,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Jan 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.25' => + '7.1.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.25.tar.bz2', 'name' => 'PHP 7.1.25 (tar.bz2)', 'sha256' => '002cdc880ac7cfaede2c389204d366108847db0f3ac72edf1ba95c0577f9aaac', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.25.tar.gz', 'name' => 'PHP 7.1.25 (tar.gz)', 'sha256' => '7dc40e202140e8b4fb3d992c15a68d98dc06b805e6b218497d260abbe51f5958', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.25.tar.xz', 'name' => 'PHP 7.1.25 (tar.xz)', @@ -8979,34 +8979,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Dec 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.0' => + '7.3.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.0.tar.bz2', 'name' => 'PHP 7.3.0 (tar.bz2)', 'sha256' => '7a267daec9969a997c5c8028c350229646748e0fcc71e2f2dbb157ddcee87c67', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.0.tar.gz', 'name' => 'PHP 7.3.0 (tar.gz)', 'sha256' => '391bd0f91d9bdd01ab47ef9607bad8c65e35bc9bb098fb7777b2556e2c847b11', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.0.tar.xz', 'name' => 'PHP 7.3.0 (tar.xz)', @@ -9017,29 +9017,29 @@ $OLDRELEASES = array ( 'date' => '06 Dec 2018', 'museum' => false, ), - '7.2.13' => + '7.2.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.13.tar.bz2', 'name' => 'PHP 7.2.13 (tar.bz2)', 'sha256' => '5b4a46fb76491bcd3eee1213773382e570f6ecf9b22d623b24e2822298b3e92d', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.13.tar.gz', 'name' => 'PHP 7.2.13 (tar.gz)', 'sha256' => 'e563cee406b1ec96649c22ed2b35796cfe4e9aa9afa6eab6be4cf2fe5d724744', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.13.tar.xz', 'name' => 'PHP 7.2.13 (tar.xz)', @@ -9049,34 +9049,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Dec 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.32' => + '7.0.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.32.tar.bz2', 'name' => 'PHP 7.0.32 (tar.bz2)', 'sha256' => '56e8d8cf9c08178afa8663589805f83bdb01634efd98131977038e24066492e1', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.32.tar.gz', 'name' => 'PHP 7.0.32 (tar.gz)', 'sha256' => '08d13389f611ec55f3b9164347a97e410099238a3dd85946e556a288ce366fbe', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.32.tar.xz', 'name' => 'PHP 7.0.32 (tar.xz)', @@ -9086,34 +9086,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Sep 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.24' => + '7.1.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.24.tar.bz2', 'name' => 'PHP 7.1.24 (tar.bz2)', 'sha256' => '66de24e73c7f6006f090c1b187d6b218c8fa6a513acca4ff5c14b695a7391e0b', 'date' => '08 Nov 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.24.tar.gz', 'name' => 'PHP 7.1.24 (tar.gz)', 'sha256' => '1e780b1af3eeb8fba9e5af6205c960184a0c3a0ef091aaa192e7b7d6b67405d0', 'date' => '08 Nov 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.24.tar.xz', 'name' => 'PHP 7.1.24 (tar.xz)', @@ -9124,29 +9124,29 @@ $OLDRELEASES = array ( 'date' => '08 Nov 2018', 'museum' => false, ), - '7.2.12' => + '7.2.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.12.tar.bz2', 'name' => 'PHP 7.2.12 (tar.bz2)', 'sha256' => 'b724c4c20347b6105be109d98cc395a610174e8aadb506c82e8cb645b65ef6b6', 'date' => '08 Nov 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.12.tar.gz', 'name' => 'PHP 7.2.12 (tar.gz)', 'sha256' => 'd7cabdf4e51db38121daf0d494dc074743b24b6c79e592037eeedd731f1719dd', 'date' => '08 Nov 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.12.tar.xz', 'name' => 'PHP 7.2.12 (tar.xz)', @@ -9157,29 +9157,29 @@ $OLDRELEASES = array ( 'date' => '08 Nov 2018', 'museum' => false, ), - '7.1.23' => + '7.1.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.23.tar.bz2', 'name' => 'PHP 7.1.23 (tar.bz2)', 'sha256' => '2d79aa86d8f0faa760a712a1d7be50b57838a9770c1dff34020876630c2ecc4b', 'date' => '11 Oct 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.23.tar.gz', 'name' => 'PHP 7.1.23 (tar.gz)', 'sha256' => 'b839a4de32e6770d10b87c2495c070d09277fe61008804b2992466f0dcc5f0fa', 'date' => '11 Oct 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.23.tar.xz', 'name' => 'PHP 7.1.23 (tar.xz)', @@ -9190,29 +9190,29 @@ $OLDRELEASES = array ( 'date' => '11 Oct 2018', 'museum' => false, ), - '7.2.11' => + '7.2.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.11.tar.bz2', 'name' => 'PHP 7.2.11 (tar.bz2)', 'sha256' => '4a0d7f402d07966b37a600796283f4ca4079d955d96d5bec024dd02009d8b4c5', 'date' => '11 Oct 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.11.tar.gz', 'name' => 'PHP 7.2.11 (tar.gz)', 'sha256' => '180c63a9647c0a50d438b6bd5c7a8e7a11bceee8ad613a59d3ef15151fc158d4', 'date' => '11 Oct 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.11.tar.xz', 'name' => 'PHP 7.2.11 (tar.xz)', @@ -9223,29 +9223,29 @@ $OLDRELEASES = array ( 'date' => '11 Oct 2018', 'museum' => false, ), - '7.1.22' => + '7.1.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.22.tar.bz2', 'name' => 'PHP 7.1.22 (tar.bz2)', 'sha256' => 'c8e91f19c8aa810ae95f228ff31cf0e4805cb89f4c10870ee12c85491b26e763', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.22.tar.gz', 'name' => 'PHP 7.1.22 (tar.gz)', 'sha256' => '1d275115593a33315647094a5a4ee9bd73c7960c08686cee35dc2e683a68b157', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.22.tar.xz', 'name' => 'PHP 7.1.22 (tar.xz)', @@ -9255,34 +9255,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Sep 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.10' => + '7.2.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.10.tar.bz2', 'name' => 'PHP 7.2.10 (tar.bz2)', 'sha256' => '01b6129a0921a1636b07da9bc598a876669e45a462cef4b5844fc26862dbda9d', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.10.tar.gz', 'name' => 'PHP 7.2.10 (tar.gz)', 'sha256' => 'd2d908b49b6005e65dcc46cdc986603a19b7ff103119fce8ddd4648586d430a4', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.10.tar.xz', 'name' => 'PHP 7.2.10 (tar.xz)', @@ -9292,34 +9292,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Sep 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.21' => + '7.1.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.21.tar.bz2', 'name' => 'PHP 7.1.21 (tar.bz2)', 'sha256' => 'c2409c574bde23763b48a96b93922f530156df044585ff60108bce7b27b19580', 'date' => '17 Aug 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.21.tar.gz', 'name' => 'PHP 7.1.21 (tar.gz)', 'sha256' => '4b448ba9b3c81b88543c1e1fbef465391fecd64d7f19a744df26e9923295dd00', 'date' => '17 Aug 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.21.tar.xz', 'name' => 'PHP 7.1.21 (tar.xz)', @@ -9330,29 +9330,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2018', 'museum' => false, ), - '7.0.31' => + '7.0.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.31.tar.bz2', 'name' => 'PHP 7.0.31 (tar.bz2)', 'sha256' => '7e8bd73eced6e679a179d39571e8fee6c83e51c86f43338f65c2dc88c1106b91', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.31.tar.gz', 'name' => 'PHP 7.0.31 (tar.gz)', 'sha256' => '182f36e5709837158bd4970ce57fe80735bdf79025133c00d6ad882d1c4d98dd', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.31.tar.xz', 'name' => 'PHP 7.0.31 (tar.xz)', @@ -9362,34 +9362,34 @@ $OLDRELEASES = array ( ), 'date' => '19 Jul 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.9' => + '7.2.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.9.tar.bz2', 'name' => 'PHP 7.2.9 (tar.bz2)', 'sha256' => 'e9e3aaa6c317b7fea78246a758b017544366049d2789ad5a44fe9398464c53a8', 'date' => '16 Aug 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.9.tar.gz', 'name' => 'PHP 7.2.9 (tar.gz)', 'sha256' => '23fcc1e4d10e06ddfdbc1163a8f0d147a7813467273f7946eb0de1b825d1d3e6', 'date' => '16 Aug 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.9.tar.xz', 'name' => 'PHP 7.2.9 (tar.xz)', @@ -9400,29 +9400,29 @@ $OLDRELEASES = array ( 'date' => '16 Aug 2018', 'museum' => false, ), - '7.1.20' => + '7.1.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.20.tar.bz2', 'name' => 'PHP 7.1.20 (tar.bz2)', 'sha256' => '3a1b476c88fb81254ea572e891a1d65053ab54068348e00c75e8b54fae691d45', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.20.tar.gz', 'name' => 'PHP 7.1.20 (tar.gz)', 'sha256' => '77a2091f4ab50367a6c68274a0d92e0da9ecdbf428b280c9836c5c6d512da450', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.20.tar.xz', 'name' => 'PHP 7.1.20 (tar.xz)', @@ -9432,34 +9432,34 @@ $OLDRELEASES = array ( ), 'date' => '16 Aug 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.8' => + '7.2.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.8.tar.bz2', 'name' => 'PHP 7.2.8 (tar.bz2)', 'sha256' => '1f8068f520a60fff3db19be1b849f0c02a33a0fd8b34b7ae05556ef682187ee6', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.8.tar.gz', 'name' => 'PHP 7.2.8 (tar.gz)', 'sha256' => 'a0cb9bf2f78498fc090eb553df03cdacc198785dec0818efa7a1804c2b7a8722', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.8.tar.xz', 'name' => 'PHP 7.2.8 (tar.xz)', @@ -9469,34 +9469,34 @@ $OLDRELEASES = array ( ), 'date' => '19 Jul 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.19' => + '7.1.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.19.tar.bz2', 'name' => 'PHP 7.1.19 (tar.bz2)', 'sha256' => '13c43e7be3040ad53f192b0770c7ed99e5b3e348dfc6674666179d557fd770f3', 'date' => '21 Jun 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.19.tar.gz', 'name' => 'PHP 7.1.19 (tar.gz)', 'sha256' => 'e1ae477b72bed02cdcb04f0157b8f8767bd4f6030416ae06408b4f6d85ee66a1', 'date' => '21 Jun 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.19.tar.xz', 'name' => 'PHP 7.1.19 (tar.xz)', @@ -9507,29 +9507,29 @@ $OLDRELEASES = array ( 'date' => '21 Jun 2018', 'museum' => false, ), - '7.0.30' => + '7.0.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.30.tar.bz2', 'name' => 'PHP 7.0.30 (tar.bz2)', 'sha256' => '213f38400c239b8fab2f6f59d6f4d4bd463d0a75bd4edf723dd4d5fea8850b50', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.30.tar.gz', 'name' => 'PHP 7.0.30 (tar.gz)', 'sha256' => '54e7615205123b940b996300bf99c707c2317b6b78388061a204b23ab3388a26', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.30.tar.xz', 'name' => 'PHP 7.0.30 (tar.xz)', @@ -9539,34 +9539,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Apr 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.7' => + '7.2.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.7.tar.bz2', 'name' => 'PHP 7.2.7 (tar.bz2)', 'sha256' => 'cc81675a96af4dd18d8ffc02f26a36c622abadf86af7ecfea7bcde8d3c96d5a3', 'date' => '21 Jun 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.7.tar.gz', 'name' => 'PHP 7.2.7 (tar.gz)', 'sha256' => '014f0560cfa22e6301b0024a6fd888c3612a0dc102ff355fa2b49544d16d43b1', 'date' => '21 Jun 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.7.tar.xz', 'name' => 'PHP 7.2.7 (tar.xz)', @@ -9577,29 +9577,29 @@ $OLDRELEASES = array ( 'date' => '21 Jun 2018', 'museum' => false, ), - '7.1.18' => + '7.1.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.18.tar.bz2', 'name' => 'PHP 7.1.18 (tar.bz2)', 'sha256' => '580e375515ede831a6d82e13c0ec25dd08b225c6d87dfc24d7cd5f3bd542bf8e', 'date' => '24 May 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.18.tar.gz', 'name' => 'PHP 7.1.18 (tar.gz)', 'sha256' => '07c24ae4dd59d81d3dc0ce89025ae667979150e2ee0e9e30dd89e04e31d510fb', 'date' => '24 May 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.18.tar.xz', 'name' => 'PHP 7.1.18 (tar.xz)', @@ -9610,29 +9610,29 @@ $OLDRELEASES = array ( 'date' => '24 May 2018', 'museum' => false, ), - '7.2.6' => + '7.2.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.6.tar.bz2', 'name' => 'PHP 7.2.6 (tar.bz2)', 'sha256' => 'ae5d3e8ada80b9d293d0c8bd643d07c2d988538ff1052a3f7144c6b0cd0ff2c3', 'date' => '24 May 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.6.tar.gz', 'name' => 'PHP 7.2.6 (tar.gz)', 'sha256' => 'a9f30daf6af82ac02e692465cfd65b04a60d56106c961926e264d2621d313f0e', 'date' => '24 May 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.6.tar.xz', 'name' => 'PHP 7.2.6 (tar.xz)', @@ -9643,29 +9643,29 @@ $OLDRELEASES = array ( 'date' => '24 May 2018', 'museum' => false, ), - '7.1.17' => + '7.1.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.17.tar.bz2', 'name' => 'PHP 7.1.17 (tar.bz2)', 'sha256' => 'e124e3ac552c50f3890ed981d07b2ee473cac961885e75186ded0bbb5b78dbcf', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.17.tar.gz', 'name' => 'PHP 7.1.17 (tar.gz)', 'sha256' => 'aba44265bf814a020282afa63321323e1f81da61bd7318ab2b941857a15cb144', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.17.tar.xz', 'name' => 'PHP 7.1.17 (tar.xz)', @@ -9675,34 +9675,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Apr 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.5' => + '7.2.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.5.tar.bz2', 'name' => 'PHP 7.2.5 (tar.bz2)', 'sha256' => 'f3820efa8efa79628b6e1b5b2f8c1b04c08d32e6721fa1654039ce5f89796031', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.5.tar.gz', 'name' => 'PHP 7.2.5 (tar.gz)', 'sha256' => 'c198aedd4cd16db0803e0ef955036722a1f4ce9ad3827546709fac05f1567ba5', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.5.tar.xz', 'name' => 'PHP 7.2.5 (tar.xz)', @@ -9712,34 +9712,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Apr 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.16' => + '7.1.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.16.tar.bz2', 'name' => 'PHP 7.1.16 (tar.bz2)', 'sha256' => '348e2af9c7c0f327a57a972674078777dfde189e2598acbcb8618b9645b0e7e5', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.16.tar.gz', 'name' => 'PHP 7.1.16 (tar.gz)', 'sha256' => 'c8e6fed5b350b29a5b9eaa9fce7c5e8618629346e9a58212f3dc380046065442', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.16.tar.xz', 'name' => 'PHP 7.1.16 (tar.xz)', @@ -9749,34 +9749,34 @@ $OLDRELEASES = array ( ), 'date' => '29 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.29' => + '7.0.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.29.tar.bz2', 'name' => 'PHP 7.0.29 (tar.bz2)', 'sha256' => '989142d5c5ff7a11431254f9c1995235bad61a3364b99c966e11e06aa10d3fbc', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.29.tar.gz', 'name' => 'PHP 7.0.29 (tar.gz)', 'sha256' => '5efe45e345f967cb20f9ff92cd514753872a65feffea1bf311c71864344bd8e8', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.29.tar.xz', 'name' => 'PHP 7.0.29 (tar.xz)', @@ -9786,34 +9786,34 @@ $OLDRELEASES = array ( ), 'date' => '29 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.4' => + '7.2.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.4.tar.bz2', 'name' => 'PHP 7.2.4 (tar.bz2)', 'sha256' => '11658a0d764dc94023b9fb60d4b5eb75d438ad17981efe70abb0d0d09a447ef3', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.4.tar.gz', 'name' => 'PHP 7.2.4 (tar.gz)', 'sha256' => '58e28e978baea0fe9009432bcb436934eaacccfdcb5f5409c7526431a595857b', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.4.tar.xz', 'name' => 'PHP 7.2.4 (tar.xz)', @@ -9823,34 +9823,34 @@ $OLDRELEASES = array ( ), 'date' => '29 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.15' => + '7.1.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.15.tar.bz2', 'name' => 'PHP 7.1.15 (tar.bz2)', 'sha256' => 'e117a54738e9485de5fc75673d39dbe937dd87f0f9cc9e281960ef9b961adcbd', 'date' => '1 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.15.tar.gz', 'name' => 'PHP 7.1.15 (tar.gz)', 'sha256' => '0669c68a52cbd2f1cfa83354918ed03b0bcaa34ed9bafaee7dfd343461b881d4', 'date' => '1 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.15.tar.xz', 'name' => 'PHP 7.1.15 (tar.xz)', @@ -9860,34 +9860,34 @@ $OLDRELEASES = array ( ), 'date' => '1 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.3' => + '7.2.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.3.tar.bz2', 'name' => 'PHP 7.2.3 (tar.bz2)', 'sha256' => '4a735aac0ba764dd8208ea29007d3916396c5292e003ba8d3bec49edcdd5bf92', 'date' => '1 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.3.tar.gz', 'name' => 'PHP 7.2.3 (tar.gz)', 'sha256' => '5dc98f2266db40c5e4d9b5edf5e29e2449e819fff8321a07eb3830cf0b104bbb', 'date' => '1 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.3.tar.xz', 'name' => 'PHP 7.2.3 (tar.xz)', @@ -9897,34 +9897,34 @@ $OLDRELEASES = array ( ), 'date' => '1 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.28' => + '7.0.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.28.tar.bz2', 'name' => 'PHP 7.0.28 (tar.bz2)', 'sha256' => 'ae5491b4613f3710e3d09e688ba3d30d3acc1112c7b96a8703663b8a95063c7f', 'date' => '01 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.28.tar.gz', 'name' => 'PHP 7.0.28 (tar.gz)', 'sha256' => 'cd2fd94feb0d5809ffb9d900138643fa74e70656436e5f2595b03239dd97aa9c', 'date' => '01 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.28.tar.xz', 'name' => 'PHP 7.0.28 (tar.xz)', @@ -9934,34 +9934,34 @@ $OLDRELEASES = array ( ), 'date' => '01 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.14' => + '7.1.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.14.tar.bz2', 'name' => 'PHP 7.1.14 (tar.bz2)', 'sha256' => '63b2fd139ed7656756b0fa290bc42f8fff854723c3d2710a700e646370c581f4', 'date' => '1 Feb 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.14.tar.gz', 'name' => 'PHP 7.1.14 (tar.gz)', 'sha256' => '8c7360209d255ee46d388bdcd43ef1a2d14b370c331be30ea628ece18a1e7683', 'date' => '1 Feb 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.14.tar.xz', 'name' => 'PHP 7.1.14 (tar.xz)', @@ -9972,29 +9972,29 @@ $OLDRELEASES = array ( 'date' => '1 Feb 2018', 'museum' => false, ), - '7.2.2' => + '7.2.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.2.tar.bz2', 'name' => 'PHP 7.2.2 (tar.bz2)', 'sha256' => 'f841ac58e17471f2241ea892b34edb01dc9b93ad9f661ffe4e3f1f476a8f4aee', 'date' => '1 Feb 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.2.tar.gz', 'name' => 'PHP 7.2.2 (tar.gz)', 'sha256' => '5963df05fec21927c03fe9f7bf379be2d1eacde6c0f9dcde6143c7133e55abd4', 'date' => '1 Feb 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.2.tar.xz', 'name' => 'PHP 7.2.2 (tar.xz)', @@ -10005,29 +10005,29 @@ $OLDRELEASES = array ( 'date' => '1 Feb 2018', 'museum' => false, ), - '7.0.27' => + '7.0.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.27.tar.bz2', 'name' => 'PHP 7.0.27 (tar.bz2)', 'sha256' => '99fa2563bb4c4c1cde9febe87cfe97324227d7b4b8828f2e936e507127394131', 'date' => '04 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.27.tar.gz', 'name' => 'PHP 7.0.27 (tar.gz)', 'sha256' => '809c0181e970dd17c6a6cabbf64518e719c7253e7490f8e1279bc1e1fbdf7996', 'date' => '04 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.27.tar.xz', 'name' => 'PHP 7.0.27 (tar.xz)', @@ -10037,34 +10037,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Jan 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.1' => + '7.2.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.1.tar.bz2', 'name' => 'PHP 7.2.1 (tar.bz2)', 'sha256' => 'fe06793f268a4dd29cbc5f4ef415f01e786877152b02221ad7d18dbb6864eb79', 'date' => '4 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.1.tar.gz', 'name' => 'PHP 7.2.1 (tar.gz)', 'sha256' => '8ecb2950571054a00687ccbd023874a4a075ccd1e2ec3dc00fc25ef589a77dba', 'date' => '4 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.1.tar.xz', 'name' => 'PHP 7.2.1 (tar.xz)', @@ -10075,29 +10075,29 @@ $OLDRELEASES = array ( 'date' => '4 Jan 2018', 'museum' => false, ), - '7.1.13' => + '7.1.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.13.tar.bz2', 'name' => 'PHP 7.1.13 (tar.bz2)', 'sha256' => '35fda51d2d44600940185fd5818d336a79e77ab3c98e2bd075091f2f91cf98a1', 'date' => '4 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.13.tar.gz', 'name' => 'PHP 7.1.13 (tar.gz)', 'sha256' => '12fcbf59c9eb9af215ef38815d5da39b9d74549092c34b0dfc31442699740ce9', 'date' => '4 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.13.tar.xz', 'name' => 'PHP 7.1.13 (tar.xz)', @@ -10108,29 +10108,29 @@ $OLDRELEASES = array ( 'date' => '4 Jan 2018', 'museum' => false, ), - '7.2.0' => + '7.2.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.0.tar.bz2', 'name' => 'PHP 7.2.0 (tar.bz2)', 'sha256' => '2bfefae4226b9b97879c9d33078e50bdb5c17f45ff6e255951062a529720c64a', 'date' => '30 Nov 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.0.tar.gz', 'name' => 'PHP 7.2.0 (tar.gz)', 'sha256' => '801876abd52e0dc58a44701344252035fd50702d8f510cda7fdb317ab79897bc', 'date' => '30 Nov 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.0.tar.xz', 'name' => 'PHP 7.2.0 (tar.xz)', @@ -10141,29 +10141,29 @@ $OLDRELEASES = array ( 'date' => '30 Nov 2017', 'museum' => false, ), - '7.1.12' => + '7.1.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.12.tar.bz2', 'name' => 'PHP 7.1.12 (tar.bz2)', 'sha256' => 'f9ce3361ab99dce8f3f2fba663695ac9b18a3579bc8014dc280368d1577d87c4', 'date' => '23 Nov 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.12.tar.gz', 'name' => 'PHP 7.1.12 (tar.gz)', 'sha256' => '188c67d8e424ce7a6fe93475aa64f53182c1d80ca3ac99439651ca91569d969c', 'date' => '23 Nov 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.12.tar.xz', 'name' => 'PHP 7.1.12 (tar.xz)', @@ -10174,29 +10174,29 @@ $OLDRELEASES = array ( 'date' => '23 Nov 2017', 'museum' => false, ), - '7.0.26' => + '7.0.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.26.tar.bz2', 'name' => 'PHP 7.0.26 (tar.bz2)', 'sha256' => '2590d722f7b23b6a903c5a00cf04e7ee728df79d10ae473e3a81ba41588509a7', 'date' => '23 Nov 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.26.tar.gz', 'name' => 'PHP 7.0.26 (tar.gz)', 'sha256' => '04c345f7c9e3f1cd02f275bfec893a4e0290e724073f2f3d7282a219128b537c', 'date' => '23 Nov 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.26.tar.xz', 'name' => 'PHP 7.0.26 (tar.xz)', @@ -10207,29 +10207,29 @@ $OLDRELEASES = array ( 'date' => '23 Nov 2017', 'museum' => false, ), - '7.1.11' => + '7.1.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.11.tar.bz2', 'name' => 'PHP 7.1.11 (tar.bz2)', 'sha256' => '7646d7de701fc969e3305eeeb2eddda3d46af6a88ee20ef4a47270c447228573', 'date' => '26 Oct 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.11.tar.gz', 'name' => 'PHP 7.1.11 (tar.gz)', 'sha256' => 'de41b2c166bc5ec8ea96a337d4dd675c794f7b115a8a47bb04595c03dbbdf425', 'date' => '26 Oct 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.11.tar.xz', 'name' => 'PHP 7.1.11 (tar.xz)', @@ -10240,29 +10240,29 @@ $OLDRELEASES = array ( 'date' => '26 Oct 2017', 'museum' => false, ), - '7.0.25' => + '7.0.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.25.tar.bz2', 'name' => 'PHP 7.0.25 (tar.bz2)', 'sha256' => '95a24d96d126a196e1550e394182b43a6460cdd2026f1a77bef01e422415cc25', 'date' => '26 Oct 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.25.tar.gz', 'name' => 'PHP 7.0.25 (tar.gz)', 'sha256' => '081b46bf588d38c636fd6cd1dab8855b6b3e171550d1e65f770f53aede594ee7', 'date' => '26 Oct 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.25.tar.xz', 'name' => 'PHP 7.0.25 (tar.xz)', @@ -10272,34 +10272,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Oct 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.10' => + '7.1.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.10.tar.bz2', 'name' => 'PHP 7.1.10 (tar.bz2)', 'sha256' => '0ee51b9b1ae7eca3e9558f772ce20cbacd1f76420009b3af630c87027f9a41af', 'date' => '28 Sep 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.10.tar.gz', 'name' => 'PHP 7.1.10 (tar.gz)', 'sha256' => 'edc6a7c3fe89419525ce51969c5f48610e53613235bbef255c3a4db33b458083', 'date' => '28 Sep 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.10.tar.xz', 'name' => 'PHP 7.1.10 (tar.xz)', @@ -10310,29 +10310,29 @@ $OLDRELEASES = array ( 'date' => '28 Sep 2017', 'museum' => false, ), - '7.0.24' => + '7.0.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.24.tar.bz2', 'name' => 'PHP 7.0.24 (tar.bz2)', 'sha256' => '9bf91982694f178821c0aaf03563a20494873ece6933e2eeecfd76f325bdcf19', 'date' => '28 Sep 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.24.tar.gz', 'name' => 'PHP 7.0.24 (tar.gz)', 'sha256' => '151015b578c14a4ab47d1e5894b36c85cf5655237599b805a08d106fe18a8c8e', 'date' => '28 Sep 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.24.tar.xz', 'name' => 'PHP 7.0.24 (tar.xz)', @@ -10343,29 +10343,29 @@ $OLDRELEASES = array ( 'date' => '28 Sep 2017', 'museum' => false, ), - '7.1.9' => + '7.1.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.9.tar.bz2', 'name' => 'PHP 7.1.9 (tar.bz2)', 'sha256' => '314dcc10dfdd7c4443edb4fe1e133a44f2b2a8351be8c9eb6ab9222d45fd9bae', 'date' => '31 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.9.tar.gz', 'name' => 'PHP 7.1.9 (tar.gz)', 'sha256' => '499c31ad19b2ff553ae686ebf53749aa2351af7d955ee9f1986f144089561a4b', 'date' => '31 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.9.tar.xz', 'name' => 'PHP 7.1.9 (tar.xz)', @@ -10376,29 +10376,29 @@ $OLDRELEASES = array ( 'date' => '31 Aug 2017', 'museum' => false, ), - '7.0.23' => + '7.0.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.23.tar.bz2', 'name' => 'PHP 7.0.23 (tar.bz2)', 'sha256' => '6fe94cefc7d2c60ee2c1648b977beed756ad9cd0a7e4ea8bb8cf521d9355a09c', 'date' => '31 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.23.tar.gz', 'name' => 'PHP 7.0.23 (tar.gz)', 'sha256' => 'd511089ecaf386f3ab752efba76558c03558afa6b5b3fe71d84881c76644b466', 'date' => '31 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.23.tar.xz', 'name' => 'PHP 7.0.23 (tar.xz)', @@ -10409,29 +10409,29 @@ $OLDRELEASES = array ( 'date' => '31 Aug 2017', 'museum' => false, ), - '7.1.8' => + '7.1.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.8.tar.bz2', 'name' => 'PHP 7.1.8 (tar.bz2)', 'sha256' => '7064a00a9450565190890c7a4be04e646e0be73b2e0f8c46ae34419f343ca2f8', 'date' => '03 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.8.tar.gz', 'name' => 'PHP 7.1.8 (tar.gz)', 'sha256' => '63517b3264f7cb17fb58e1ce60a6cd8903160239b7cf568d52024e9cf4d6cb04', 'date' => '03 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.8.tar.xz', 'name' => 'PHP 7.1.8 (tar.xz)', @@ -10442,29 +10442,29 @@ $OLDRELEASES = array ( 'date' => '03 Aug 2017', 'museum' => false, ), - '7.0.22' => + '7.0.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.22.tar.bz2', 'name' => 'PHP 7.0.22 (tar.bz2)', 'sha256' => '88e0b27f69abdd12ecde81f000c5a9ea479af7218456ea7f6557edb43c6dfdde', 'date' => '03 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.22.tar.gz', 'name' => 'PHP 7.0.22 (tar.gz)', 'sha256' => '04292eaea0eeb75e9b6a36a3db8e90a3d43f939646fd9d7d1e083e5b70884383', 'date' => '03 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.22.tar.xz', 'name' => 'PHP 7.0.22 (tar.xz)', @@ -10475,29 +10475,29 @@ $OLDRELEASES = array ( 'date' => '03 Aug 2017', 'museum' => false, ), - '7.1.7' => + '7.1.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.7.tar.bz2', 'name' => 'PHP 7.1.7 (tar.bz2)', 'sha256' => '079b6792987f38dc485f92258c04f9e02dedd593f9d260ebe725343f812d1ff8', 'date' => '06 Jul 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.7.tar.gz', 'name' => 'PHP 7.1.7 (tar.gz)', 'sha256' => 'e0dbab8da601ee5119368d6f93dc1a86ad53b799d2f8c1209d6b827a2b259f92', 'date' => '06 Jul 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.7.tar.xz', 'name' => 'PHP 7.1.7 (tar.xz)', @@ -10507,34 +10507,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Jul 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.21' => + '7.0.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.21.tar.bz2', 'name' => 'PHP 7.0.21 (tar.bz2)', 'sha256' => '2ba133c392de6f86aacced8c54e0adefd1c81d3840ac323b9926b8ed3dc6231f', 'date' => '06 Jul 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.21.tar.gz', 'name' => 'PHP 7.0.21 (tar.gz)', 'sha256' => 'f2f05f629dd02c75834ddf033916bd5ff92a720602839d81fd8b6d90e37b6225', 'date' => '06 Jul 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.21.tar.xz', 'name' => 'PHP 7.0.21 (tar.xz)', @@ -10544,34 +10544,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Jul 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.6' => + '7.1.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.6.tar.bz2', 'name' => 'PHP 7.1.6 (tar.bz2)', 'sha256' => '6e3576ca77672a18461a4b089c5790647f1b2c19f82e4f5e94c962609aabffcf', 'date' => '08 Jun 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.6.tar.gz', 'name' => 'PHP 7.1.6 (tar.gz)', 'sha256' => '7ff8c01af791c7e499ee77e1b82e4b1d56e379efe1f706b1203d48751481fd9f', 'date' => '08 Jun 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.6.tar.xz', 'name' => 'PHP 7.1.6 (tar.xz)', @@ -10582,29 +10582,29 @@ $OLDRELEASES = array ( 'date' => '08 Jun 2017', 'museum' => false, ), - '7.0.20' => + '7.0.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.20.tar.bz2', 'name' => 'PHP 7.0.20 (tar.bz2)', 'sha256' => 'cdfddfe01cc615218e333e34a1c761c9ef8fdf5199b27617264a02705eda7fc3', 'date' => '08 Jun 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.20.tar.gz', 'name' => 'PHP 7.0.20 (tar.gz)', 'sha256' => 'b44947f0c1926928d5c2f176506b878c32b5cd09ce3b5b52bbbecf4328ab812d', 'date' => '08 Jun 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.20.tar.xz', 'name' => 'PHP 7.0.20 (tar.xz)', @@ -10615,29 +10615,29 @@ $OLDRELEASES = array ( 'date' => '08 Jun 2017', 'museum' => false, ), - '7.1.5' => + '7.1.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.5.tar.bz2', 'name' => 'PHP 7.1.5 (tar.bz2)', 'sha256' => '28eaa4784f1bd8b7dc71206dc8c4375510199432dc17af6906b14d16b3058697', 'date' => '11 May 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.5.tar.gz', 'name' => 'PHP 7.1.5 (tar.gz)', 'sha256' => 'f7ff8039f5c3a7da4d62a3cce6378280224acfa27ab5a5bee25b7439bce01c17', 'date' => '11 May 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.5.tar.xz', 'name' => 'PHP 7.1.5 (tar.xz)', @@ -10648,29 +10648,29 @@ $OLDRELEASES = array ( 'date' => '11 May 2017', 'museum' => false, ), - '7.0.19' => + '7.0.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.19.tar.bz2', 'name' => 'PHP 7.0.19 (tar.bz2)', 'sha256' => '0f3ac0afc02aec22f6b1659045da9287453e9309439d0499622bc8e94a7f7d59', 'date' => '11 May 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.19.tar.gz', 'name' => 'PHP 7.0.19 (tar.gz)', 'sha256' => '4b4120acdbb8cbf5f7a18625c2eb5cdd2fdb4fc69a4831bc7ffdfd1ee78b1ce0', 'date' => '11 May 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.19.tar.xz', 'name' => 'PHP 7.0.19 (tar.xz)', @@ -10681,29 +10681,29 @@ $OLDRELEASES = array ( 'date' => '11 May 2017', 'museum' => false, ), - '7.1.4' => + '7.1.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.4.tar.bz2', 'name' => 'PHP 7.1.4 (tar.bz2)', 'sha256' => '39bf697836e2760b3a44ea322e9e5f1f5b1f07abeb0111f6495eff7538e25805', 'date' => '13 Apr 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.4.tar.gz', 'name' => 'PHP 7.1.4 (tar.gz)', 'sha256' => 'ed0006c86de503684dde04c6dd811ea2354a3b6d10ebd9f0cb103dcd28f0e70f', 'date' => '13 Apr 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.4.tar.xz', 'name' => 'PHP 7.1.4 (tar.xz)', @@ -10714,29 +10714,29 @@ $OLDRELEASES = array ( 'date' => '13 Apr 2017', 'museum' => false, ), - '7.0.18' => + '7.0.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.18.tar.bz2', 'name' => 'PHP 7.0.18 (tar.bz2)', 'sha256' => 'b20cc63d507032b39d8bb14cb64784e460b0e47997e90a8704b703bcbb233fd1', 'date' => '13 Apr 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.18.tar.gz', 'name' => 'PHP 7.0.18 (tar.gz)', 'sha256' => 'e0fb336749d72e6c9cfcebb9b48497f004fa99f93b68c21cb3eb657053665e1d', 'date' => '13 Apr 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.18.tar.xz', 'name' => 'PHP 7.0.18 (tar.xz)', @@ -10747,29 +10747,29 @@ $OLDRELEASES = array ( 'date' => '13 Apr 2017', 'museum' => false, ), - '7.1.3' => + '7.1.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.3.tar.bz2', 'name' => 'PHP 7.1.3 (tar.bz2)', 'sha256' => 'c145924d91b7a253eccc31f8d22f15b61589cd24d78105e56240c1bb6413b94f', 'date' => '16 Mar 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.3.tar.gz', 'name' => 'PHP 7.1.3 (tar.gz)', 'sha256' => '4bfadd0012b966eced448497272150ffeede13136a961aacb9e71553b8e929ec', 'date' => '16 Mar 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.3.tar.xz', 'name' => 'PHP 7.1.3 (tar.xz)', @@ -10780,29 +10780,29 @@ $OLDRELEASES = array ( 'date' => '16 Mar 2017', 'museum' => false, ), - '7.0.17' => + '7.0.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.17.tar.bz2', 'name' => 'PHP 7.0.17 (tar.bz2)', 'sha256' => 'aee503926b96d807692fac3e0fd64e3259788f5139819a983152679cb6e91d4b', 'date' => '30 Mar 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.17.tar.gz', 'name' => 'PHP 7.0.17 (tar.gz)', 'sha256' => '1f42ffe9895dad746baf4a0e8d81f2272f55fdef66cf298ac911d8791ceb1e80', 'date' => '30 Mar 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.17.tar.xz', 'name' => 'PHP 7.0.17 (tar.xz)', @@ -10813,29 +10813,29 @@ $OLDRELEASES = array ( 'date' => '30 Mar 2017', 'museum' => false, ), - '7.1.2' => + '7.1.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.2.tar.bz2', 'name' => 'PHP 7.1.2 (tar.bz2)', 'sha256' => 'e0f2214e2366434ee231156ba70cfefd0c59790f050d8727a3f1dc2affa67004', 'date' => '16 Feb 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.2.tar.gz', 'name' => 'PHP 7.1.2 (tar.gz)', 'sha256' => 'e6773217c9c719ca22abb104ae3d437d53daceaf31faf2e5eeb1f9f5028005d8', 'date' => '16 Feb 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.2.tar.xz', 'name' => 'PHP 7.1.2 (tar.xz)', @@ -10846,29 +10846,29 @@ $OLDRELEASES = array ( 'date' => '16 Feb 2017', 'museum' => false, ), - '7.0.16' => + '7.0.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.16.tar.bz2', 'name' => 'PHP 7.0.16 (tar.bz2)', 'sha256' => '83c5f57575dc0feca563af529d6f1d60183bf9c2c13e98a6da131fbd0a3597ab', 'date' => '16 Feb 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.16.tar.gz', 'name' => 'PHP 7.0.16 (tar.gz)', 'sha256' => 'bc6709dc7612957d0533c09c9c8a9c2e7c4fd9d64e697707bb1b39670eab61d4', 'date' => '16 Feb 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.16.tar.xz', 'name' => 'PHP 7.0.16 (tar.xz)', @@ -10879,29 +10879,29 @@ $OLDRELEASES = array ( 'date' => '16 Feb 2017', 'museum' => false, ), - '7.1.1' => + '7.1.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.1.tar.bz2', 'name' => 'PHP 7.1.1 (tar.bz2)', 'sha256' => 'd791d39d7b54ec42441a05a5f06d68a495647d843210e3ae4f2c6adb99c675bc', 'date' => '19 Jan 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.1.tar.gz', 'name' => 'PHP 7.1.1 (tar.gz)', 'sha256' => 'c136279d539c3c2c25176bf149c14913670e79bb27ee6b73e1cd69003985a70d', 'date' => '19 Jan 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.1.tar.xz', 'name' => 'PHP 7.1.1 (tar.xz)', @@ -10912,29 +10912,29 @@ $OLDRELEASES = array ( 'date' => '19 Jan 2017', 'museum' => false, ), - '7.0.15' => + '7.0.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.15.tar.bz2', 'name' => 'PHP 7.0.15 (tar.bz2)', 'sha256' => 'a8c8f947335683fa6dd1b7443ed70f2a42bc33e8b6c215f139138cee89e47dd9', 'date' => '19 Jan 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.15.tar.gz', 'name' => 'PHP 7.0.15 (tar.gz)', 'sha256' => 'c24324c6d4bf27e8bc1d12da0aae4f15a43c8374f681e23e9b1e67f5b719c3a6', 'date' => '19 Jan 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.15.tar.xz', 'name' => 'PHP 7.0.15 (tar.xz)', @@ -10944,34 +10944,34 @@ $OLDRELEASES = array ( ), 'date' => '19 Jan 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.14' => + '7.0.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.14.tar.bz2', 'name' => 'PHP 7.0.14 (tar.bz2)', 'sha256' => 'fbc4369a0d42b55fd1ce75eb4f3d17b012da754a67567d8e3288fbfbb7490534', 'date' => '08 Dec 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.14.tar.gz', 'name' => 'PHP 7.0.14 (tar.gz)', 'sha256' => '320cfd2184e7252d3d77eae5d5474554fa04ab9fbee7c6094c07e8bd3b5b632b', 'date' => '08 Dec 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.14.tar.xz', 'name' => 'PHP 7.0.14 (tar.xz)', @@ -10981,34 +10981,34 @@ $OLDRELEASES = array ( ), 'date' => '08 Dec 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.0' => + '7.1.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.0.tar.bz2', 'name' => 'PHP 7.1.0 (tar.bz2)', 'sha256' => '68bcfd7deed5b3474d81dec9f74d122058327e2bed0ac25bbc9ec70995228e61', 'date' => '01 Dec 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.0.tar.gz', 'name' => 'PHP 7.1.0 (tar.gz)', 'sha256' => '9e84c5b13005c56374730edf534fe216f6a2e63792a9703d4b894e770bbccbae', 'date' => '01 Dec 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.0.tar.xz', 'name' => 'PHP 7.1.0 (tar.xz)', @@ -11019,29 +11019,29 @@ $OLDRELEASES = array ( 'date' => '01 Dec 2016', 'museum' => false, ), - '7.0.13' => + '7.0.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.13.tar.bz2', 'name' => 'PHP 7.0.13 (tar.bz2)', 'sha256' => 'd090bb523812117ec0c08d8f0b5c5f0616aa7a29a2eeee0374efe53a7cfe88c1', 'date' => '10 Nov 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.13.tar.gz', 'name' => 'PHP 7.0.13 (tar.gz)', 'sha256' => 'c8d8cf1b29e7f7e89be9ee64f453cb7ef6d20e1d13a83cba037bd654ef2da42c', 'date' => '10 Nov 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.13.tar.xz', 'name' => 'PHP 7.0.13 (tar.xz)', @@ -11051,34 +11051,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Nov 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.12' => + '7.0.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.12.tar.bz2', 'name' => 'PHP 7.0.12 (tar.bz2)', 'sha256' => '38c47294fe8fb239b0230dc63a93c3e4044f472ab93b5dff8b65feb4103a6a27', 'date' => '13 Oct 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.12.tar.gz', 'name' => 'PHP 7.0.12 (tar.gz)', 'sha256' => 'c4693cc363b4bbc7224294cc94faf3598e616cbe8540dd6975f68c7d3c52682f', 'date' => '13 Oct 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.12.tar.xz', 'name' => 'PHP 7.0.12 (tar.xz)', @@ -11088,34 +11088,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Oct 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.11' => + '7.0.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.11.tar.bz2', 'name' => 'PHP 7.0.11 (tar.bz2)', 'sha256' => 'f99b729dc1149858844b18af1e8c0de6dd1cdfdd52e22fbb4de2aa78bf9bf7f1', 'date' => '15 Sep 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.11.tar.gz', 'name' => 'PHP 7.0.11 (tar.gz)', 'sha256' => '02d27b5d140dbad8d400a95af808e1e9ce87aa8d2a2100870734ba26e6700d79', 'date' => '15 Sep 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.11.tar.xz', 'name' => 'PHP 7.0.11 (tar.xz)', @@ -11125,34 +11125,34 @@ $OLDRELEASES = array ( ), 'date' => '15 Sep 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.10' => + '7.0.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.10.tar.bz2', 'name' => 'PHP 7.0.10 (tar.bz2)', 'sha256' => '8055bbe5a736986931c0c6a08b765d6d778271ec7d2d56c50a1ad259ec09f6de', 'date' => '18 Aug 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.10.tar.gz', 'name' => 'PHP 7.0.10 (tar.gz)', 'sha256' => '46216e05db09c0fffbf832e3b64f3722ccbdd6d4ae16d9791e41adf0a4b00641', 'date' => '18 Aug 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.10.tar.xz', 'name' => 'PHP 7.0.10 (tar.xz)', @@ -11162,34 +11162,34 @@ $OLDRELEASES = array ( ), 'date' => '18 Aug 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.9' => + '7.0.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.9.tar.bz2', 'name' => 'PHP 7.0.9 (tar.bz2)', 'sha256' => '2ee6968b5875f2f38700c58a189aad859a6a0b85fc337aa102ec2dc3652c3b7b', 'date' => '21 Jul 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.9.tar.gz', 'name' => 'PHP 7.0.9 (tar.gz)', 'sha256' => '93895a6a610c94751c890e5ee91a7f4bc0eae476b95fe30425d13f7ae88753d5', 'date' => '21 Jul 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.9.tar.xz', 'name' => 'PHP 7.0.9 (tar.xz)', @@ -11199,34 +11199,34 @@ $OLDRELEASES = array ( ), 'date' => '21 Jul 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.8' => + '7.0.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.8.tar.bz2', 'name' => 'PHP 7.0.8 (tar.bz2)', 'sha256' => '66dc7ba388490e07b1313fe3a06b1fa822e1310585fe29f4909995f131e27c8d', 'date' => '23 Jun 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.8.tar.gz', 'name' => 'PHP 7.0.8 (tar.gz)', 'sha256' => '1f024fa6d87594b99fa312e3185c357dcffa42e07d21c726f41d1fa6f773720b', 'date' => '23 Jun 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.8.tar.xz', 'name' => 'PHP 7.0.8 (tar.xz)', @@ -11236,34 +11236,34 @@ $OLDRELEASES = array ( ), 'date' => '23 Jun 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.7' => + '7.0.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.7.tar.bz2', 'name' => 'PHP 7.0.7 (tar.bz2)', 'sha256' => '474f2925c4782b94016e3afbb17b14ff9cc6f4fdb6f6e231b36a378bb18a3d1a', 'date' => '26 May 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.7.tar.gz', 'name' => 'PHP 7.0.7 (tar.gz)', 'sha256' => '66282ff4a9f88fe9607d9574e15bf335885b964245591a1740adb3f79c514a67', 'date' => '26 May 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.7.tar.xz', 'name' => 'PHP 7.0.7 (tar.xz)', @@ -11273,34 +11273,34 @@ $OLDRELEASES = array ( ), 'date' => '26 May 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.6' => + '7.0.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.6.tar.bz2', 'name' => 'PHP 7.0.6 (tar.bz2)', 'sha256' => '14ddf192a9965c858c1e742a61456be2f34a4db87556172c0d76f08de96329b7', 'date' => '28 Apr 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.6.tar.gz', 'name' => 'PHP 7.0.6 (tar.gz)', 'sha256' => 'f6b47cb3e02530d96787ae5c7888aefbd1db6ae4164d68b88808ee6f4da94277', 'date' => '28 Apr 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.6.tar.xz', 'name' => 'PHP 7.0.6 (tar.xz)', @@ -11310,34 +11310,34 @@ $OLDRELEASES = array ( ), 'date' => '28 Apr 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.5' => + '7.0.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.5.tar.bz2', 'name' => 'PHP 7.0.5 (tar.bz2)', 'sha256' => '2c09af7fe64537ea795f098b9b542ead407ef83f7cdc65b3787115ccbbb51de9', 'date' => '31 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.5.tar.gz', 'name' => 'PHP 7.0.5 (tar.gz)', 'sha256' => 'f9d93419031b4df663fc48f03b8a833545de8776225e46637563e2be6029908d', 'date' => '31 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.5.tar.xz', 'name' => 'PHP 7.0.5 (tar.xz)', @@ -11347,34 +11347,34 @@ $OLDRELEASES = array ( ), 'date' => '31 Mar 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.4' => + '7.0.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.4.tar.bz2', 'name' => 'PHP 7.0.4 (tar.bz2)', 'sha256' => 'a246c503709c189ba8e1e22ed2cb22abc27da43a997ff1b3318e181baf529dcc', 'date' => '03 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.4.tar.gz', 'name' => 'PHP 7.0.4 (tar.gz)', 'sha256' => 'f6cdac2fd37da0ac0bbcee0187d74b3719c2f83973dfe883d5cde81c356fe0a8', 'date' => '03 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.4.tar.xz', 'name' => 'PHP 7.0.4 (tar.xz)', @@ -11384,34 +11384,34 @@ $OLDRELEASES = array ( ), 'date' => '03 Mar 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.3' => + '7.0.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.3.tar.bz2', 'name' => 'PHP 7.0.3 (tar.bz2)', 'sha256' => '826823d754f09c779222a99becf9c53a4dc719dba2d777aca7807c6ca68e6fc6', 'date' => '04 Feb 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.3.tar.gz', 'name' => 'PHP 7.0.3 (tar.gz)', 'sha256' => '5521df8db153aba35c90cf1a1829106b6bbdac32425216d440f9cc29f00a7c08', 'date' => '04 Feb 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.3.tar.xz', 'name' => 'PHP 7.0.3 (tar.xz)', @@ -11421,34 +11421,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Feb 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.2' => + '7.0.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.2.tar.bz2', 'name' => 'PHP 7.0.2 (tar.bz2)', 'sha256' => '9b1b75fbd9c92c6b0003b234e550965038826d11ea1f430bf279964da9da2236', 'date' => '07 Jan 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.2.tar.gz', 'name' => 'PHP 7.0.2 (tar.gz)', 'sha256' => '040198aef3dc5f17c253c1282160aabc6a05ca0b18b3d6fc9213970363083412', 'date' => '07 Jan 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.2.tar.xz', 'name' => 'PHP 7.0.2 (tar.xz)', @@ -11458,34 +11458,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Jan 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.1' => + '7.0.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.1.tar.bz2', 'name' => 'PHP 7.0.1 (tar.bz2)', 'sha256' => '04ce3bd1da001397b342c2219a5093be9ecbbc97f022e1e6a0ec2fedc3d93e42', 'date' => '17 Dec 2015', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.1.tar.gz', 'name' => 'PHP 7.0.1 (tar.gz)', 'sha256' => 'd12aaba2bead056322aa53bd5fbe762b27a42d37f451cd42ff2e7a549ca21dbf', 'date' => '17 Dec 2015', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.1.tar.xz', 'name' => 'PHP 7.0.1 (tar.xz)', @@ -11496,29 +11496,29 @@ $OLDRELEASES = array ( 'date' => '17 Dec 2015', 'museum' => false, ), - '7.0.0' => + '7.0.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.0.tar.bz2', 'name' => 'PHP 7.0.0 (tar.bz2)', 'sha256' => 'a92a54306832167a39f7c0ec00524fc6f3f7d985c806caa7632561d0ddedfcea', 'date' => '03 Dec 2015', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.0.tar.gz', 'name' => 'PHP 7.0.0 (tar.gz)', 'sha256' => 'd6ae7b4a2e5c43a9945a97e83b6b3adfb7d0df0b91ef78b647a6dffefaa9c71b', 'date' => '03 Dec 2015', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.0.tar.xz', 'name' => 'PHP 7.0.0 (tar.xz)', @@ -11530,31 +11530,31 @@ $OLDRELEASES = array ( 'museum' => false, ), ), - 5 => + 5 => array ( - '5.6.40' => + '5.6.40' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_40.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.40.tar.bz2', 'name' => 'PHP 5.6.40 (tar.bz2)', 'sha256' => 'ffd025d34623553ab2f7fd8fb21d0c9e6f9fa30dc565ca03a1d7b763023fba00', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.40.tar.gz', 'name' => 'PHP 5.6.40 (tar.gz)', 'sha256' => '56fb9878d12fdd921f6a0897e919f4e980d930160e154cbde2cc6d9206a27cac', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.40.tar.xz', 'name' => 'PHP 5.6.40 (tar.xz)', @@ -11565,29 +11565,29 @@ $OLDRELEASES = array ( 'date' => '10 Jan 2019', 'museum' => false, ), - '5.6.39' => + '5.6.39' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_39.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.39.tar.bz2', 'name' => 'PHP 5.6.39 (tar.bz2)', 'sha256' => 'b3db2345f50c010b01fe041b4e0f66c5aa28eb325135136f153e18da01583ad5', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.39.tar.gz', 'name' => 'PHP 5.6.39 (tar.gz)', 'sha256' => '127b122b7d6c7f3c211c0ffa554979370c3131196137404a51a391d8e2e9c7bb', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.39.tar.xz', 'name' => 'PHP 5.6.39 (tar.xz)', @@ -11598,29 +11598,29 @@ $OLDRELEASES = array ( 'date' => '06 Dec 2018', 'museum' => false, ), - '5.6.38' => + '5.6.38' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_38.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.38.tar.bz2', 'name' => 'PHP 5.6.38 (tar.bz2)', 'sha256' => 'd65b231bbdd63be4439ef5ced965cfd63e62983429dbd4dfcfb49981593ebc03', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.38.tar.gz', 'name' => 'PHP 5.6.38 (tar.gz)', 'sha256' => '3b74d46cd79a45cce90c8059e09d8bd0beeb5de562cbb0cb42f96ff8fa665fd4', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.38.tar.xz', 'name' => 'PHP 5.6.38 (tar.xz)', @@ -11631,29 +11631,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2018', 'museum' => false, ), - '5.6.37' => + '5.6.37' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_37.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.37.tar.bz2', 'name' => 'PHP 5.6.37 (tar.bz2)', 'sha256' => '886ad63d05d94ea3e54322691aadea0cf1d4bcdb4450b02fe300e5b570788b23', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.37.tar.gz', 'name' => 'PHP 5.6.37 (tar.gz)', 'sha256' => 'b7ec077f35ef3a8cdd33c29124140b1761111a1429878b4c463bb20d2a31b184', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.37.tar.xz', 'name' => 'PHP 5.6.37 (tar.xz)', @@ -11664,29 +11664,29 @@ $OLDRELEASES = array ( 'date' => '19 Jul 2018', 'museum' => false, ), - '5.6.36' => + '5.6.36' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_36.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.36.tar.bz2', 'name' => 'PHP 5.6.36 (tar.bz2)', 'sha256' => '626a0e3f5d8a0e686a2b930f0dd3a0601fe3dcb5e43dd0e8c3fab631e64e172a', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.36.tar.gz', 'name' => 'PHP 5.6.36 (tar.gz)', 'sha256' => '06086a8b6a9964ef8009c4d9176b4eeb0c564ea39c1213f015e24f3466d2d69f', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.36.tar.xz', 'name' => 'PHP 5.6.36 (tar.xz)', @@ -11697,29 +11697,29 @@ $OLDRELEASES = array ( 'date' => '26 Apr 2018', 'museum' => false, ), - '5.6.35' => + '5.6.35' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_35.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.35.tar.bz2', 'name' => 'PHP 5.6.35 (tar.bz2)', 'sha256' => 'ee78a7e9ca21d8ea394d037c55effff477a49dbae31c7753c547036f5bd73b92', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.35.tar.gz', 'name' => 'PHP 5.6.35 (tar.gz)', 'sha256' => 'dd0242304f510d48a5216dd2f5796bcf59e8e18366658259aaf205e1d63abf71', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.35.tar.xz', 'name' => 'PHP 5.6.35 (tar.xz)', @@ -11730,29 +11730,29 @@ $OLDRELEASES = array ( 'date' => '29 Mar 2018', 'museum' => false, ), - '5.6.34' => + '5.6.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_34.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.34.tar.bz2', 'name' => 'PHP 5.6.34 (tar.bz2)', 'sha256' => 'e19f499d8cee4b0b0780361ecb6a00c41654772a754803ab9ea866b8d47cf2cd', 'date' => '01 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.34.tar.gz', 'name' => 'PHP 5.6.34 (tar.gz)', 'sha256' => 'de28251ef6d7eb945eb7b770ff668b9f978d9adad52a8c763f6ee409a96732ea', 'date' => '01 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.34.tar.xz', 'name' => 'PHP 5.6.34 (tar.xz)', @@ -11763,29 +11763,29 @@ $OLDRELEASES = array ( 'date' => '01 Mar 2018', 'museum' => false, ), - '5.6.33' => + '5.6.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.33.tar.bz2', 'name' => 'PHP 5.6.33 (tar.bz2)', 'sha256' => '07f696a9761dcd839e2045c95c3a4d2ffb52c54417477cca9d30a14975b831cc', 'date' => '04 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.33.tar.gz', 'name' => 'PHP 5.6.33 (tar.gz)', 'sha256' => 'bedfac81cfaa25961812a1aec458c4109411a14991b43a416343ffb830b8da6a', 'date' => '04 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.33.tar.xz', 'name' => 'PHP 5.6.33 (tar.xz)', @@ -11796,29 +11796,29 @@ $OLDRELEASES = array ( 'date' => '04 Jan 2018', 'museum' => false, ), - '5.6.32' => + '5.6.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.32.tar.bz2', 'name' => 'PHP 5.6.32 (tar.bz2)', 'sha256' => '3ee44e7a5fa42b563652b3ea0d3487bc236fcc9e5ea74b583775cab867abcb51', 'date' => '26 Oct 2017', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.32.tar.gz', 'name' => 'PHP 5.6.32 (tar.gz)', 'sha256' => '7bef1ae8cd633df5b9c5964262d276d2dc21acbfcd94022d1e2084d199315df4', 'date' => '26 Oct 2017', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.32.tar.xz', 'name' => 'PHP 5.6.32 (tar.xz)', @@ -11829,29 +11829,29 @@ $OLDRELEASES = array ( 'date' => '26 Oct 2017', 'museum' => false, ), - '5.6.31' => + '5.6.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.31.tar.bz2', 'name' => 'PHP 5.6.31 (tar.bz2)', 'sha256' => '8f397169cb65f0539f3bcb04060f97770d73e19074a37bd2c58b98ebf6ecb10f', 'date' => '06 Jul 2017', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.31.tar.gz', 'name' => 'PHP 5.6.31 (tar.gz)', 'sha256' => '6687ed2f09150b2ad6b3780ff89715891f83a9c331e69c90241ef699dec4c43f', 'date' => '06 Jul 2017', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.31.tar.xz', 'name' => 'PHP 5.6.31 (tar.xz)', @@ -11862,29 +11862,29 @@ $OLDRELEASES = array ( 'date' => '06 Jul 2017', 'museum' => false, ), - '5.6.30' => + '5.6.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.30.tar.bz2', 'name' => 'PHP 5.6.30 (tar.bz2)', 'sha256' => 'a105c293fa1dbff118b5b0ca74029e6c461f8c78f49b337a2a98be9e32c27906', 'date' => '19 Jan 2017', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.30.tar.gz', 'name' => 'PHP 5.6.30 (tar.gz)', 'sha256' => '8bc7d93e4c840df11e3d9855dcad15c1b7134e8acf0cf3b90b932baea2d0bde2', 'date' => '19 Jan 2017', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.30.tar.xz', 'name' => 'PHP 5.6.30 (tar.xz)', @@ -11895,29 +11895,29 @@ $OLDRELEASES = array ( 'date' => '19 Jan 2017', 'museum' => false, ), - '5.6.29' => + '5.6.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.29.tar.bz2', 'name' => 'PHP 5.6.29 (tar.bz2)', 'sha256' => '499b844c8aa7be064c111692e51a093ba94e54d2d9abb01e70ea76183a1825bb', 'date' => '08 Dec 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.29.tar.gz', 'name' => 'PHP 5.6.29 (tar.gz)', 'sha256' => '0b1b939129a7286c5a474ac2cf845b979477f26dff36639e04022def9e252574', 'date' => '08 Dec 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.29.tar.xz', 'name' => 'PHP 5.6.29 (tar.xz)', @@ -11928,29 +11928,29 @@ $OLDRELEASES = array ( 'date' => '08 Dec 2016', 'museum' => false, ), - '5.6.28' => + '5.6.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.28.tar.bz2', 'name' => 'PHP 5.6.28 (tar.bz2)', 'sha256' => 'c55ea3f4aad5a0b65631d01c4468930fd981ad208ffcd242acdf731bcb47548f', 'date' => '10 Nov 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.28.tar.gz', 'name' => 'PHP 5.6.28 (tar.gz)', 'sha256' => '27a47ac15e0868d51181d3909cfe3c63ae9b643a3ab40dc30a75b5b500bce500', 'date' => '10 Nov 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.28.tar.xz', 'name' => 'PHP 5.6.28 (tar.xz)', @@ -11961,29 +11961,29 @@ $OLDRELEASES = array ( 'date' => '10 Nov 2016', 'museum' => false, ), - '5.6.27' => + '5.6.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.27.tar.bz2', 'name' => 'PHP 5.6.27 (tar.bz2)', 'sha256' => '3b77d3a067b6e9cc7bb282d4d5b0e6eeb0623a828bb0479241e3b030446f2a3c', 'date' => '13 Oct 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.27.tar.gz', 'name' => 'PHP 5.6.27 (tar.gz)', 'sha256' => '3e6cecec615907587a2b35fa8e7f915f038034dc57530734c2b94d381e664a1a', 'date' => '13 Oct 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.27.tar.xz', 'name' => 'PHP 5.6.27 (tar.xz)', @@ -11994,29 +11994,29 @@ $OLDRELEASES = array ( 'date' => '13 Oct 2016', 'museum' => false, ), - '5.6.26' => + '5.6.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.26.tar.bz2', 'name' => 'PHP 5.6.26 (tar.bz2)', 'sha256' => 'd47aab8083a4284b905777e1b45dd7735adc53be827b29f896684750ac8b6236', 'date' => '15 Sep 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.26.tar.gz', 'name' => 'PHP 5.6.26 (tar.gz)', 'sha256' => 'f76b6cc23739d9dabf875aee57d91ae73f15e88ddf78803369b8b4728b19b924', 'date' => '15 Sep 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.26.tar.xz', 'name' => 'PHP 5.6.26 (tar.xz)', @@ -12027,29 +12027,29 @@ $OLDRELEASES = array ( 'date' => '15 Sep 2016', 'museum' => false, ), - '5.6.25' => + '5.6.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.25.tar.bz2', 'name' => 'PHP 5.6.25 (tar.bz2)', 'sha256' => '58ce6032aced7f3e42ced492bd9820e5b3f2a3cd3ef71429aa92fd7b3eb18dde', 'date' => '18 Aug 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.25.tar.gz', 'name' => 'PHP 5.6.25 (tar.gz)', 'sha256' => '733f1c811d51c2d4031a0c058dc94d09d03858d781ca2eb2cce78853bc76db58', 'date' => '18 Aug 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.25.tar.xz', 'name' => 'PHP 5.6.25 (tar.xz)', @@ -12060,29 +12060,29 @@ $OLDRELEASES = array ( 'date' => '18 Aug 2016', 'museum' => false, ), - '5.6.24' => + '5.6.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.24.tar.bz2', 'name' => 'PHP 5.6.24 (tar.bz2)', 'sha256' => 'bf23617ec3ed0a125ec8bde2b7bca9d3804b2ff4df8de192890c84dc9fac38c6', 'date' => '21 Jul 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.24.tar.gz', 'name' => 'PHP 5.6.24 (tar.gz)', 'sha256' => '5f8b2e4e00360fee6eb1b89447266ae45993265955bd1ea9866270d75cdb6ec1', 'date' => '21 Jul 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.24.tar.xz', 'name' => 'PHP 5.6.24 (tar.xz)', @@ -12093,29 +12093,29 @@ $OLDRELEASES = array ( 'date' => '21 Jul 2016', 'museum' => false, ), - '5.5.38' => + '5.5.38' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_38.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.38.tar.bz2', 'name' => 'PHP 5.5.38 (tar.bz2)', 'sha256' => '473c81ebb2e48ca468caee031762266651843d7227c18a824add9b07b9393e38', 'date' => '21 Jul 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.38.tar.gz', 'name' => 'PHP 5.5.38 (tar.gz)', 'sha256' => '4f458c9b504269615715a62f182b7c2f89bb8284f484befc221b56a1571b506e', 'date' => '21 Jul 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.38.tar.xz', 'name' => 'PHP 5.5.38 (tar.xz)', @@ -12126,29 +12126,29 @@ $OLDRELEASES = array ( 'date' => '21 Jul 2016', 'museum' => false, ), - '5.6.23' => + '5.6.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.23.tar.bz2', 'name' => 'PHP 5.6.23 (tar.bz2)', 'sha256' => 'facd280896d277e6f7084b60839e693d4db68318bfc92085d3dc0251fd3558c7', 'date' => '23 Jun 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.23.tar.gz', 'name' => 'PHP 5.6.23 (tar.gz)', 'sha256' => '5f2274a13970887e8c81500c2afe292d51c3524d1a06554b0a87c74ce0a24ffe', 'date' => '23 Jun 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.23.tar.xz', 'name' => 'PHP 5.6.23 (tar.xz)', @@ -12159,29 +12159,29 @@ $OLDRELEASES = array ( 'date' => '23 Jun 2016', 'museum' => false, ), - '5.5.37' => + '5.5.37' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_37.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.37.tar.bz2', 'name' => 'PHP 5.5.37 (tar.bz2)', 'sha256' => 'd2380ebe46caf17f2c4cd055867d00a82e6702dc5f62dc29ce864a5742905d88', 'date' => '23 Jun 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.37.tar.gz', 'name' => 'PHP 5.5.37 (tar.gz)', 'sha256' => '7cef04b549fdbe00c26dc785b6ba10439672a1596db518fc46632ecba45f44b9', 'date' => '23 Jun 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.37.tar.xz', 'name' => 'PHP 5.5.37 (tar.xz)', @@ -12192,29 +12192,29 @@ $OLDRELEASES = array ( 'date' => '23 Jun 2016', 'museum' => false, ), - '5.5.36' => + '5.5.36' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_36.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.36.tar.bz2', 'name' => 'PHP 5.5.36 (tar.bz2)', 'sha256' => '2484edfaa3de606d74f927b55c5206f51b1ae24ea8e428aa9fc15474c7bb71bb', 'date' => '26 May 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.36.tar.gz', 'name' => 'PHP 5.5.36 (tar.gz)', 'sha256' => 'ef829f9a9600a858e2363533b80c4e4773505bdc8ea3692d703fc893f267728a', 'date' => '26 May 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.36.tar.xz', 'name' => 'PHP 5.5.36 (tar.xz)', @@ -12225,29 +12225,29 @@ $OLDRELEASES = array ( 'date' => '26 May 2016', 'museum' => false, ), - '5.6.22' => + '5.6.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.22.tar.bz2', 'name' => 'PHP 5.6.22 (tar.bz2)', 'sha256' => '90da8a80cc52fa699cf2bfa4c6fa737c772df7c92b81ef483460aa3b1e9f88c6', 'date' => '26 May 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.22.tar.gz', 'name' => 'PHP 5.6.22 (tar.gz)', 'sha256' => '4ce0f58c3842332c4e3bb2ec1c936c6817294273abaa37ea0ef7ca2a68cf9b21', 'date' => '26 May 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.22.tar.xz', 'name' => 'PHP 5.6.22 (tar.xz)', @@ -12258,29 +12258,29 @@ $OLDRELEASES = array ( 'date' => '26 May 2016', 'museum' => false, ), - '5.6.21' => + '5.6.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.21.tar.bz2', 'name' => 'PHP 5.6.21 (tar.bz2)', 'sha256' => 'b4ed7ab574b689fd6d6494fde954826c06efc85c505e017b8d776c7c7f479590', 'date' => '28 Apr 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.21.tar.gz', 'name' => 'PHP 5.6.21 (tar.gz)', 'sha256' => '5997668c1f6f2d86a59cf75cc86b4a94687884614dec481fad7e13a76b70fcd5', 'date' => '28 Apr 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.21.tar.xz', 'name' => 'PHP 5.6.21 (tar.xz)', @@ -12291,29 +12291,29 @@ $OLDRELEASES = array ( 'date' => '28 Apr 2016', 'museum' => false, ), - '5.5.35' => + '5.5.35' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_35.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.35.tar.bz2', 'name' => 'PHP 5.5.35 (tar.bz2)', 'sha256' => '2d648dd648e820fd64693ce72f9bf07064d147220e594e39fb9f6310238258d7', 'date' => '28 Apr 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.35.tar.gz', 'name' => 'PHP 5.5.35 (tar.gz)', 'sha256' => '21e10a49c62ab34a7edc976af686a952e70142f19135ca8da67758e1c8c3df30', 'date' => '28 Apr 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.35.tar.xz', 'name' => 'PHP 5.5.35 (tar.xz)', @@ -12324,29 +12324,29 @@ $OLDRELEASES = array ( 'date' => '31 Mar 2016', 'museum' => false, ), - '5.6.20' => + '5.6.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.20.tar.bz2', 'name' => 'PHP 5.6.20 (tar.bz2)', 'sha256' => '5ac7bf7caec7a79b18cf458e786fd1609ad2da771224b80bc15cc6f01b22bf1f', 'date' => '31 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.20.tar.gz', 'name' => 'PHP 5.6.20 (tar.gz)', 'sha256' => '9a7ec6e1080ee93dcbe7df3e49ea1c3c3da5fc2258aff763f39ab3786baf8d56', 'date' => '31 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.20.tar.xz', 'name' => 'PHP 5.6.20 (tar.xz)', @@ -12357,29 +12357,29 @@ $OLDRELEASES = array ( 'date' => '31 Mar 2016', 'museum' => false, ), - '5.5.34' => + '5.5.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_34.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.34.tar.bz2', 'name' => 'PHP 5.5.34 (tar.bz2)', 'sha256' => 'af88884416a92619de842ad0fd23f7f7e8140efb0b9194f98a38a78781e5851c', 'date' => '31 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.34.tar.gz', 'name' => 'PHP 5.5.34 (tar.gz)', 'sha256' => '0e573b406441294b233e35e1f2e12d7896d68457e3e10bf6e1f4825e75271cca', 'date' => '31 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.34.tar.xz', 'name' => 'PHP 5.5.34 (tar.xz)', @@ -12390,29 +12390,29 @@ $OLDRELEASES = array ( 'date' => '31 Mar 2016', 'museum' => false, ), - '5.6.19' => + '5.6.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.19.tar.bz2', 'name' => 'PHP 5.6.19 (tar.bz2)', 'sha256' => '2a24a3f84971680ac0a4c71050067de4f76ee235aa4a041fae21bfa69975c168', 'date' => '03 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.19.tar.gz', 'name' => 'PHP 5.6.19 (tar.gz)', 'sha256' => 'fce49cddac9337f0c83afbafac5acfb82ba9f876a5a880c88240feac8c9b7a22', 'date' => '03 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.19.tar.xz', 'name' => 'PHP 5.6.19 (tar.xz)', @@ -12423,29 +12423,29 @@ $OLDRELEASES = array ( 'date' => '03 Mar 2016', 'museum' => false, ), - '5.5.33' => + '5.5.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.33.tar.bz2', 'name' => 'PHP 5.5.33 (tar.bz2)', 'sha256' => 'c490b1ed4df596b48eb68f630d89ca512945e2650840e7dace1119cc7e600aa9', 'date' => '03 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.33.tar.gz', 'name' => 'PHP 5.5.33 (tar.gz)', 'sha256' => 'd2747bcf2cc94f652ac216f522904863a22042c66fabcf82ad7449d261d7a45b', 'date' => '03 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.33.tar.xz', 'name' => 'PHP 5.5.33 (tar.xz)', @@ -12456,29 +12456,29 @@ $OLDRELEASES = array ( 'date' => '03 Mar 2016', 'museum' => false, ), - '5.6.18' => + '5.6.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.18.tar.bz2', 'name' => 'PHP 5.6.18 (tar.bz2)', 'sha256' => 'c3cd4a29a9562309d36e2b128407d6eaa5c7dde590d2b1a464457383e517f4ed', 'date' => '04 Feb 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.18.tar.gz', 'name' => 'PHP 5.6.18 (tar.gz)', 'sha256' => '76da4150dc2da86b7b63b1aad3c20d1d11964796251ac0dd4d26d0a3f5045015', 'date' => '04 Feb 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.18.tar.xz', 'name' => 'PHP 5.6.18 (tar.xz)', @@ -12489,29 +12489,29 @@ $OLDRELEASES = array ( 'date' => '04 Feb 2016', 'museum' => false, ), - '5.5.32' => + '5.5.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.32.tar.bz2', 'name' => 'PHP 5.5.32 (tar.bz2)', 'sha256' => 'b0f2c108db8e05db9f6366aaba9a754fd0ee31f3f86ee889561b608dfd6e92ee', 'date' => '04 Feb 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.32.tar.gz', 'name' => 'PHP 5.5.32 (tar.gz)', 'sha256' => '419aa62a68a640192799928a29e5cd4cd5b965458223bea2b3209a68c3e95989', 'date' => '04 Feb 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.32.tar.xz', 'name' => 'PHP 5.5.32 (tar.xz)', @@ -12522,29 +12522,29 @@ $OLDRELEASES = array ( 'date' => '04 Feb 2016', 'museum' => false, ), - '5.6.17' => + '5.6.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.17.tar.bz2', 'name' => 'PHP 5.6.17 (tar.bz2)', 'sha256' => '77b45f56a1e63e75bb22b42cfb8b438ec4083c59ce774b4d7c1685544b7add3b', 'date' => '07 Jan 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.17.tar.gz', 'name' => 'PHP 5.6.17 (tar.gz)', 'sha256' => 'f5036535651e919415f4b6589391c95e4ff48f2d391818251c45da216791aac8', 'date' => '07 Jan 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.17.tar.xz', 'name' => 'PHP 5.6.17 (tar.xz)', @@ -12555,29 +12555,29 @@ $OLDRELEASES = array ( 'date' => '07 Jan 2016', 'museum' => false, ), - '5.5.31' => + '5.5.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.31.tar.bz2', 'name' => 'PHP 5.5.31 (tar.bz2)', 'sha256' => 'fb4a382b9a9dceb749b7ef047d8251320bc8d371c843714e5b4f4b70d61ba277', 'date' => '07 Jan 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.31.tar.gz', 'name' => 'PHP 5.5.31 (tar.gz)', 'sha256' => '59a4417029ba5497d17ee02b65f419129ecf9ca8a1d864e0bccd5a3d4407a597', 'date' => '07 Jan 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.31.tar.xz', 'name' => 'PHP 5.5.31 (tar.xz)', @@ -12588,29 +12588,29 @@ $OLDRELEASES = array ( 'date' => '07 Jan 2016', 'museum' => false, ), - '5.6.16' => + '5.6.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.16.tar.bz2', 'name' => 'PHP 5.6.16 (tar.bz2)', 'sha256' => '4fe6f40964c1bfaba05fc144ba20a2cdad33e11685f4f101ea5a48b98bbcd2ae', 'date' => '26 Nov 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.16.tar.gz', 'name' => 'PHP 5.6.16 (tar.gz)', 'sha256' => 'b6618df6b11a275fa28596f1775727679f8492e100f3bd488d8a8bfbfc19349f', 'date' => '26 Nov 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.16.tar.xz', 'name' => 'PHP 5.6.16 (tar.xz)', @@ -12621,29 +12621,29 @@ $OLDRELEASES = array ( 'date' => '26 Nov 2015', 'museum' => false, ), - '5.5.30' => + '5.5.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.30.tar.bz2', 'name' => 'PHP 5.5.30 (tar.bz2)', 'sha256' => 'e7332a713cecdd1cb44a1b1336739885c9789f633f0f51236b25e48ab03c3b29', 'date' => '01 Oct 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.30.tar.gz', 'name' => 'PHP 5.5.30 (tar.gz)', 'sha256' => '8ad57f4317391354e66c83d26752f67515b2e923277eb97b2b420dfeff3c1007', 'date' => '01 Oct 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.30.tar.xz', 'name' => 'PHP 5.5.30 (tar.xz)', @@ -12654,29 +12654,29 @@ $OLDRELEASES = array ( 'date' => '01 Oct 2015', 'museum' => false, ), - '5.6.15' => + '5.6.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.15.tar.bz2', 'name' => 'PHP 5.6.15 (tar.bz2)', 'sha256' => '11a0645c4d4b749e256da1e0d6df89dd886b5b06b83c914d942653661dbd1c38', 'date' => '29 Oct 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.15.tar.gz', 'name' => 'PHP 5.6.15 (tar.gz)', 'sha256' => 'bb2d4c226a4897b7c3659c2538a87aef7ec104f58f5ae930a263dd77fb8ebc40', 'date' => '29 Oct 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.15.tar.xz', 'name' => 'PHP 5.6.15 (tar.xz)', @@ -12687,29 +12687,29 @@ $OLDRELEASES = array ( 'date' => '29 Oct 2015', 'museum' => false, ), - '5.6.14' => + '5.6.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.14.tar.bz2', 'name' => 'PHP 5.6.14 (tar.bz2)', 'sha256' => '36f295f11641c1839a5df00e693f685fd134c65e8a1d46e8ee0abae8662b2eb0', 'date' => '01 Oct 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.14.tar.gz', 'name' => 'PHP 5.6.14 (tar.gz)', 'sha256' => '29baf7ffca644f7f8e86028c40275b9e460342bdf9562d45f8f0498899cb738d', 'date' => '01 Oct 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.14.tar.xz', 'name' => 'PHP 5.6.14 (tar.xz)', @@ -12720,29 +12720,29 @@ $OLDRELEASES = array ( 'date' => '01 Oct 2015', 'museum' => false, ), - '5.6.13' => + '5.6.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.13.tar.bz2', 'name' => 'PHP 5.6.13 (tar.bz2)', 'sha256' => '6358837c9cbab41b91ede59dbf0670ae0fb925a1369ecbc1a44a27212420f893', 'date' => '03 Sep 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.13.tar.gz', 'name' => 'PHP 5.6.13 (tar.gz)', 'sha256' => '92acc6c067f5e015a6881b4119eafec10eca11722e810f2c2083f72e17119bcf', 'date' => '03 Sep 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.13.tar.xz', 'name' => 'PHP 5.6.13 (tar.xz)', @@ -12753,29 +12753,29 @@ $OLDRELEASES = array ( 'date' => '03 Sep 2015', 'museum' => false, ), - '5.5.29' => + '5.5.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.29.tar.bz2', 'name' => 'PHP 5.5.29 (tar.bz2)', 'sha256' => 'fbcee579ecc77cad6960a541116aee669cf145c2cd9a54bf60503a870843b946', 'date' => '03 Sep 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.29.tar.gz', 'name' => 'PHP 5.5.29 (tar.gz)', 'sha256' => 'c25a4c4eae558cc9899d2994813dd272eafff9466926f30821a83edaafe620a9', 'date' => '03 Sep 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.29.tar.xz', 'name' => 'PHP 5.5.29 (tar.xz)', @@ -12786,29 +12786,29 @@ $OLDRELEASES = array ( 'date' => '03 Sep 2015', 'museum' => false, ), - '5.5.28' => + '5.5.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.28.tar.bz2', 'name' => 'PHP 5.5.28 (tar.bz2)', 'sha256' => '197d2c572e030c177e53d3763d59ac6d363d7c78dc22e6cc1e2ac65573d9c2f3', 'date' => '06 Aug 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.28.tar.gz', 'name' => 'PHP 5.5.28 (tar.gz)', 'sha256' => '6084f25a39ab2f79ade46bf0258a1cd6c9bbb09a106b40dd996dbdf8cd3b08f2', 'date' => '06 Aug 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.28.tar.xz', 'name' => 'PHP 5.5.28 (tar.xz)', @@ -12819,29 +12819,29 @@ $OLDRELEASES = array ( 'date' => '06 Aug 2015', 'museum' => false, ), - '5.6.12' => + '5.6.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.12.tar.bz2', 'name' => 'PHP 5.6.12 (tar.bz2)', 'sha256' => '6f27104272af7b2a996f85e4100fac627630fbdaf39d7bd263f16cf529c8853a', 'date' => '06 Aug 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.12.tar.gz', 'name' => 'PHP 5.6.12 (tar.gz)', 'sha256' => '7799b42606c1770d1ad90bfc7521d2b6c294c4c27dcf1a206dee562533b4f984', 'date' => '06 Aug 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.12.tar.xz', 'name' => 'PHP 5.6.12 (tar.xz)', @@ -12852,29 +12852,29 @@ $OLDRELEASES = array ( 'date' => '06 Aug 2015', 'museum' => false, ), - '5.6.11' => + '5.6.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.11.tar.bz2', 'name' => 'PHP 5.6.11 (tar.bz2)', 'sha256' => 'bd6b260816764c267244749ead07482120dbf8d1920ebbbb0dcb2aa411033866', 'date' => '10 Jul 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.11.tar.gz', 'name' => 'PHP 5.6.11 (tar.gz)', 'sha256' => '85916b46c0d1f2a5315c84fb2773293f4084c3676ba4ed420d0432cbb60ff9d8', 'date' => '10 Jul 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.11.tar.xz', 'name' => 'PHP 5.6.11 (tar.xz)', @@ -12885,29 +12885,29 @@ $OLDRELEASES = array ( 'date' => '10 Jul 2015', 'museum' => false, ), - '5.5.27' => + '5.5.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.27.tar.bz2', 'name' => 'PHP 5.5.27 (tar.bz2)', 'sha256' => 'c4b4c6a534c0ca67a9ae39bec4f51e52d13e820135dd016eae230e15337e1f70', 'date' => '09 Jul 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.27.tar.gz', 'name' => 'PHP 5.5.27 (tar.gz)', 'sha256' => '57cc716ebb37a62654c154582e48a282055b08ce91995c79b0be41b9940237f0', 'date' => '09 Jul 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.27.tar.xz', 'name' => 'PHP 5.5.27 (tar.xz)', @@ -12918,29 +12918,29 @@ $OLDRELEASES = array ( 'date' => '09 Jul 2015', 'museum' => false, ), - '5.6.10' => + '5.6.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.10.tar.bz2', 'name' => 'PHP 5.6.10 (tar.bz2)', 'sha256' => '0a579c81c724ea41815eee0caa8ea7d8eeb302458519d8cc4fc5b055577c8c45', 'date' => '11 Jun 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.10.tar.gz', 'name' => 'PHP 5.6.10 (tar.gz)', 'sha256' => '7759d6e178be524085e1482921748c14d11cbd0a133ba8aabb96c391ce7ed3fc', 'date' => '11 Jun 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.10.tar.xz', 'name' => 'PHP 5.6.10 (tar.xz)', @@ -12951,29 +12951,29 @@ $OLDRELEASES = array ( 'date' => '11 Jun 2015', 'museum' => false, ), - '5.5.26' => + '5.5.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.26.tar.bz2', 'name' => 'PHP 5.5.26 (tar.bz2)', 'sha256' => '816afffdb03ff4c542bc172a2f77f9c69b817df82d60cce05c1b4f578c2c926e', 'date' => '11 Jun 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.26.tar.gz', 'name' => 'PHP 5.5.26 (tar.gz)', 'sha256' => 'bee980d433bab99d07ee2bf6f2dcb87d746e49d57adec7d0ce7edb39306695ec', 'date' => '11 Jun 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.26.tar.xz', 'name' => 'PHP 5.5.26 (tar.xz)', @@ -12984,29 +12984,29 @@ $OLDRELEASES = array ( 'date' => '11 Jun 2015', 'museum' => false, ), - '5.6.9' => + '5.6.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.9.tar.bz2', 'name' => 'PHP 5.6.9 (tar.bz2)', 'sha256' => '19d3b87b7b8bba3be24cf6d757d16b723a98881c3af8d15469fd25501e9abcb9', 'date' => '14 May 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.9.tar.gz', 'name' => 'PHP 5.6.9 (tar.gz)', 'sha256' => '49527ba66357fe65bcd463dfb8dcff1b8879419f88b3c334f50696a2aceacb87', 'date' => '14 May 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.9.tar.xz', 'name' => 'PHP 5.6.9 (tar.xz)', @@ -13017,29 +13017,29 @@ $OLDRELEASES = array ( 'date' => '14 May 2015', 'museum' => false, ), - '5.5.25' => + '5.5.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.25.tar.bz2', 'name' => 'PHP 5.5.25 (tar.bz2)', 'sha256' => '68df37e725ddd05675c0df906041038127938ecc52113a54d10e1e4029262c63', 'date' => '14 May 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.25.tar.gz', 'name' => 'PHP 5.5.25 (tar.gz)', 'sha256' => 'c9397f60bff139e0df441c5e2766108c5bc7ad690de136eb9f5b2f9bbf771240', 'date' => '14 May 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.25.tar.xz', 'name' => 'PHP 5.5.25 (tar.xz)', @@ -13050,29 +13050,29 @@ $OLDRELEASES = array ( 'date' => '14 May 2015', 'museum' => false, ), - '5.6.8' => + '5.6.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.8.tar.bz2', 'name' => 'PHP 5.6.8 (tar.bz2)', 'sha256' => '0af0045745d61eeb74a3ea744529a2481b27cb689da720e6c0250675043724e4', 'date' => '16 Apr 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.8.tar.gz', 'name' => 'PHP 5.6.8 (tar.gz)', 'sha256' => 'c5b1c75c5671c239473eb611129f33ac432a55a1c341990b70009a2aa3b8dbc3', 'date' => '16 Apr 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.8.tar.xz', 'name' => 'PHP 5.6.8 (tar.xz)', @@ -13083,29 +13083,29 @@ $OLDRELEASES = array ( 'date' => '16 Apr 2015', 'museum' => false, ), - '5.5.24' => + '5.5.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.24.tar.bz2', 'name' => 'PHP 5.5.24 (tar.bz2)', 'sha256' => '801b5cf2e0c01b07314d4ac3c8a7c28d524bdd8263ebdd0e33a99008251316a2', 'date' => '16 Apr 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.24.tar.gz', 'name' => 'PHP 5.5.24 (tar.gz)', 'sha256' => '43e6b83fe8151f8d2062ca4da915312fc92e47789801049231c705a8b29b05bc', 'date' => '16 Apr 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.24.tar.xz', 'name' => 'PHP 5.5.24 (tar.xz)', @@ -13116,29 +13116,29 @@ $OLDRELEASES = array ( 'date' => '16 Apr 2015', 'museum' => false, ), - '5.6.7' => + '5.6.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.7.tar.bz2', 'name' => 'PHP 5.6.7 (tar.bz2)', 'date' => '19 Mar 2015', 'sha256' => '02954fb74c61a7879d48ebdcd4ecb78aa0056f4215ca9b096232de28eb8f17bc', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.7.tar.gz', 'name' => 'PHP 5.6.7 (tar.gz)', 'date' => '19 Mar 2015', 'sha256' => '11398540a582c876f5e070207231afde975eb49bb2eeae20b052e8ca325c0f47', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.7.tar.xz', 'name' => 'PHP 5.6.7 (tar.xz)', @@ -13149,29 +13149,29 @@ $OLDRELEASES = array ( 'date' => '19 Mar 2015', 'museum' => false, ), - '5.5.23' => + '5.5.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.23.tar.bz2', 'name' => 'PHP 5.5.23 (tar.bz2)', 'date' => '20 Feb 2015', 'sha256' => 'a99ab264dcd40181baa9defeaa4b21eb2c20d4e9316b904cc05f628762e6ada7', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.23.tar.gz', 'name' => 'PHP 5.5.23 (tar.gz)', 'date' => '20 Feb 2015', 'sha256' => 'bf1246d4aca5b1a4e26f5cea273565ad3ee4607f20b7f28a508e3cab1a4d0c82', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.23.tar.xz', 'name' => 'PHP 5.5.23 (tar.xz)', @@ -13182,29 +13182,29 @@ $OLDRELEASES = array ( 'date' => '20 Feb 2015', 'museum' => false, ), - '5.6.6' => + '5.6.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.6.tar.bz2', 'name' => 'PHP 5.6.6 (tar.bz2)', 'date' => '19 Feb 2015', 'sha256' => '09625c9b65e0c8198dc76995a35f0feec0e13ea4489526e64a00954b12adbb4c', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.6.tar.gz', 'name' => 'PHP 5.6.6 (tar.gz)', 'date' => '19 Feb 2015', 'sha256' => '164fb27bab0a0ca4902bc67d5f5638e43466c88153aee3b54546d8ec682ec03b', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.6.tar.xz', 'name' => 'PHP 5.6.6 (tar.xz)', @@ -13215,29 +13215,29 @@ $OLDRELEASES = array ( 'date' => '19 Feb 2015', 'museum' => false, ), - '5.5.22' => + '5.5.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.22.tar.bz2', 'name' => 'PHP 5.5.22 (tar.bz2)', 'date' => '20 Feb 2015', 'sha256' => 'c218c184bef2905bc79fcdda6040f3d1738261395fb706396935d1c6f6e162bb', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.22.tar.gz', 'name' => 'PHP 5.5.22 (tar.gz)', 'date' => '20 Feb 2015', 'sha256' => 'cb6174e1e74de233ec7b461302f823a7eacf7bcc946d347486c930e53f2b7db7', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.22.tar.xz', 'name' => 'PHP 5.5.22 (tar.xz)', @@ -13248,29 +13248,29 @@ $OLDRELEASES = array ( 'date' => '20 Feb 2015', 'museum' => false, ), - '5.6.5' => + '5.6.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.5.tar.bz2', 'name' => 'PHP 5.6.5 (tar.bz2)', 'date' => '22 Jan 2015', 'sha256' => 'adab4c0775512a5ca0ae74e08efdc941d92529b75283e0f44d3f53822cdfd06d', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.5.tar.gz', 'name' => 'PHP 5.6.5 (tar.gz)', 'date' => '22 Jan 2015', 'sha256' => 'f67c480bcf2f6f703ec8d8a772540f4a518f766b08d634d7a919402c13a636cf', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.5.tar.xz', 'name' => 'PHP 5.6.5 (tar.xz)', @@ -13281,29 +13281,29 @@ $OLDRELEASES = array ( 'date' => '22 Jan 2015', 'museum' => false, ), - '5.5.21' => + '5.5.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.21.tar.bz2', 'name' => 'PHP 5.5.21 (tar.bz2)', 'date' => '22 Jan 2015', 'sha256' => '62e9429975c4ca5d7067a5052d5388fbf2ac8c51eeee581d59b04cc5a8da83fe', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.21.tar.gz', 'name' => 'PHP 5.5.21 (tar.gz)', 'date' => '22 Jan 2015', 'sha256' => '45adba5b4d2519f6174b85fd5b07a77389f397603d84084bdd26c44b3d7dc8af', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.21.tar.xz', 'name' => 'PHP 5.5.21 (tar.xz)', @@ -13314,29 +13314,29 @@ $OLDRELEASES = array ( 'date' => '22 Jan 2015', 'museum' => false, ), - '5.6.4' => + '5.6.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.4.tar.bz2', 'name' => 'PHP 5.6.4 (tar.bz2)', 'date' => '18 Dec 2014', 'sha256' => '576f9001b612f5ddc22f447311bbec321e2c959b6a52259d664c4ba04ef044f1', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.4.tar.gz', 'name' => 'PHP 5.6.4 (tar.gz)', 'date' => '18 Dec 2014', 'sha256' => '9c318f10af598e3d0b306a00860cfeb13c34024a9032a59ff53e3cd3c7791e97', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.4.tar.xz', 'name' => 'PHP 5.6.4 (tar.xz)', @@ -13347,29 +13347,29 @@ $OLDRELEASES = array ( 'date' => '18 Dec 2014', 'museum' => false, ), - '5.5.20' => + '5.5.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.20.tar.bz2', 'name' => 'PHP 5.5.20 (tar.bz2)', 'date' => '18 Dec 2014', 'sha256' => 'f28a150d1cd8991bd1a41dce4fdff4e343d1dbe01a48b9b44bea74532ce0391a', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.20.tar.gz', 'name' => 'PHP 5.5.20 (tar.gz)', 'date' => '18 Dec 2014', 'sha256' => '7454e4f2dba3b08b2c88bb178e7bf704ed100f3d7ab6b83ea5046a6e4acb7295', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.20.tar.xz', 'name' => 'PHP 5.5.20 (tar.xz)', @@ -13380,29 +13380,29 @@ $OLDRELEASES = array ( 'date' => '18 Dec 2014', 'museum' => false, ), - '5.6.3' => + '5.6.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.3.tar.bz2', 'name' => 'PHP 5.6.3 (tar.bz2)', 'date' => '13 Nov 2014', 'sha256' => '8986b20124d14430d795165e47801ef065a38d5855bea39d0d47b13ab9ad4009', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.3.tar.gz', 'name' => 'PHP 5.6.3 (tar.gz)', 'date' => '13 Nov 2014', 'sha256' => '7ac79fe7ef50c2d5893375f5d8854909337adf1632e42bb08b36b66a0d8016a7', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.3.tar.xz', 'name' => 'PHP 5.6.3 (tar.xz)', @@ -13413,29 +13413,29 @@ $OLDRELEASES = array ( 'date' => '13 Nov 2014', 'museum' => false, ), - '5.5.19' => + '5.5.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.19.tar.bz2', 'name' => 'PHP 5.5.19 (tar.bz2)', 'date' => '13 Nov 2014', 'sha256' => '4366dbb904cba8c8dd32224ac9408495d20aecaed86a871d78df420f5a23bbff', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.19.tar.gz', 'name' => 'PHP 5.5.19 (tar.gz)', 'date' => '13 Nov 2014', 'sha256' => '8d39f224424f37644da913353f1e773c20b7fc55bb3cc81526c18f91d1d6394e', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.19.tar.xz', 'name' => 'PHP 5.5.19 (tar.xz)', @@ -13446,29 +13446,29 @@ $OLDRELEASES = array ( 'date' => '13 Nov 2014', 'museum' => false, ), - '5.6.2' => + '5.6.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.2.tar.bz2', 'name' => 'PHP 5.6.2 (tar.bz2)', 'date' => '16 Oct 2014', 'sha256' => '671dcf1f636410c63bb9eb015c4c180d904f5436f81217be0adbf52da9becdb5', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.2.tar.gz', 'name' => 'PHP 5.6.2 (tar.gz)', 'date' => '16 Oct 2014', 'sha256' => '4bb316831979317caf738bb9e2c590bf3b7951ce60c69b9ca33f26069d9a2f39', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.2.tar.xz', 'name' => 'PHP 5.6.2 (tar.xz)', @@ -13479,29 +13479,29 @@ $OLDRELEASES = array ( 'date' => '16 Oct 2014', 'museum' => false, ), - '5.5.18' => + '5.5.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.18.tar.bz2', 'name' => 'PHP 5.5.18 (tar.bz2)', 'date' => '16 Oct 2014', 'sha256' => 'f974279927b72b672dda4ef4b4362b4847fd3d19ce1d4f2e982230a4e93bb842', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.18.tar.gz', 'name' => 'PHP 5.5.18 (tar.gz)', 'date' => '16 Oct 2014', 'sha256' => '71f6445cc21c944a3b98592193c62e29a58af3fe26d097312502b4fd400286e4', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.18.tar.xz', 'name' => 'PHP 5.5.18 (tar.xz)', @@ -13512,29 +13512,29 @@ $OLDRELEASES = array ( 'date' => '16 Oct 2014', 'museum' => false, ), - '5.6.1' => + '5.6.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.1.tar.bz2', 'name' => 'PHP 5.6.1 (tar.bz2)', 'date' => '02 Oct 2014', 'sha256' => '82c1ccd17830d697d7a4d75bb60ea12be58fa80b4dba101e97db1a6372ca45f0', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.1.tar.gz', 'name' => 'PHP 5.6.1 (tar.gz)', 'date' => '02 Oct 2014', 'sha256' => 'e34f0ab6b1f431f3115f60094f6d7ded12a90db2361194b8ef9e6eff812db21c', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.1.tar.xz', 'name' => 'PHP 5.6.1 (tar.xz)', @@ -13545,29 +13545,29 @@ $OLDRELEASES = array ( 'date' => '02 Oct 2014', 'museum' => false, ), - '5.5.17' => + '5.5.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.17.tar.bz2', 'name' => 'PHP 5.5.17 (tar.bz2)', 'date' => '18 Sep 2014', 'sha256' => '5d81db0c8b2a68da05715c363d037922b82a45c966785d64a77482e5c01e4e1b', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.17.tar.gz', 'name' => 'PHP 5.5.17 (tar.gz)', 'date' => '18 Sep 2014', 'sha256' => '657169be88ae70625d97bb94dd29140c2b602f1ba8d5e42ca14a400b63cf4720', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.17.tar.xz', 'name' => 'PHP 5.5.17 (tar.xz)', @@ -13578,29 +13578,29 @@ $OLDRELEASES = array ( 'date' => '18 Sep 2014', 'museum' => false, ), - '5.6.0' => + '5.6.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.0.tar.bz2', 'name' => 'PHP 5.6.0 (tar.bz2)', 'date' => '28 Aug 2014', 'sha256' => '097af1be34fc73965e6f8401fd10e73eb56e1969ed4ffd691fb7e91606d0fc09', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.0.tar.gz', 'name' => 'PHP 5.6.0 (tar.gz)', 'date' => '28 Aug 2014', 'sha256' => '284b85376c630a6a7163e5278d64b8526fa1324fe5fd5d21174b54e2c056533f', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.0.tar.xz', 'name' => 'PHP 5.6.0 (tar.xz)', @@ -13611,29 +13611,29 @@ $OLDRELEASES = array ( 'date' => '28 Aug 2014', 'museum' => false, ), - '5.5.16' => + '5.5.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.16.tar.bz2', 'name' => 'PHP 5.5.16 (tar.bz2)', 'date' => '21 Aug 2014', 'sha256' => 'a1d7c4556a80bed744a348211b33bc35303edd56dd0a34e0a75a948c879cc5f6', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.16.tar.gz', 'name' => 'PHP 5.5.16 (tar.gz)', 'date' => '21 Aug 2014', 'sha256' => 'cdea80ab1b0466f4656b46155e341b700799e78569a5cc582eeaededb448086c', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.16.tar.xz', 'name' => 'PHP 5.5.16 (tar.xz)', @@ -13644,29 +13644,29 @@ $OLDRELEASES = array ( 'date' => '21 Aug 2014', 'museum' => false, ), - '5.5.15' => + '5.5.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.15.tar.bz2', 'name' => 'PHP 5.5.15 (tar.bz2)', 'date' => '24 Jul 2014', 'sha256' => '00f24226b12fee27e332383b6304f1b9ed3f4d9173dd728a68c5c3f5a59b8ba7', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.15.tar.gz', 'name' => 'PHP 5.5.15 (tar.gz)', 'date' => '24 Jul 2014', 'sha256' => '578febd686018401c4857699b29502b1aecaf82bf43525d810867f583961ac6e', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.15.tar.xz', 'name' => 'PHP 5.5.15 (tar.xz)', @@ -13677,22 +13677,22 @@ $OLDRELEASES = array ( 'date' => '24 Jul 2014', 'museum' => false, ), - '5.5.14' => + '5.5.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.14.tar.bz2', 'name' => 'PHP 5.5.14 (tar.bz2)', 'date' => '26 Jun 2014', 'sha256' => 'df5a057877f827549e0a60b43fb01e4bd440814bcf04fbd70bacbddf74482610', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.14.tar.gz', 'name' => 'PHP 5.5.14 (tar.gz)', @@ -13703,22 +13703,22 @@ $OLDRELEASES = array ( 'date' => '26 Jun 2014', 'museum' => false, ), - '5.5.13' => + '5.5.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.13.tar.bz2', 'name' => 'PHP 5.5.13 (tar.bz2)', 'date' => '29 May 2014', 'sha256' => 'e58a4a754eb18d2d8b1a120cad5cce4ed24a7db5d49eca5830a40e4c8ca78b9c', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.13.tar.gz', 'name' => 'PHP 5.5.13 (tar.gz)', @@ -13729,22 +13729,22 @@ $OLDRELEASES = array ( 'date' => '29 May 2014', 'museum' => false, ), - '5.5.12' => + '5.5.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.12.tar.bz2', 'name' => 'PHP 5.5.12 (tar.bz2)', 'date' => '30 Apr 2014', 'sha256' => '519ee29e28532782676f3d8e31a808ffbfee383e0279ccc8cbd2b12ed53c2335', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.12.tar.gz', 'name' => 'PHP 5.5.12 (tar.gz)', @@ -13755,22 +13755,22 @@ $OLDRELEASES = array ( 'date' => '30 Apr 2014', 'museum' => false, ), - '5.5.11' => + '5.5.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.11.tar.bz2', 'name' => 'PHP 5.5.11 (tar.bz2)', 'date' => '3 Apr 2014', 'sha256' => '60e14c255f2a461a7a26639b84a2fc448cc2f91c8dead0e9fd00cd8ba27a2e96', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.11.tar.gz', 'name' => 'PHP 5.5.11 (tar.gz)', @@ -13781,22 +13781,22 @@ $OLDRELEASES = array ( 'date' => '3 Apr 2014', 'museum' => false, ), - '5.5.10' => + '5.5.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.10.tar.bz2', 'name' => 'PHP 5.5.10 (tar.bz2)', 'date' => '6 Mar 2014', 'sha256' => 'bb34e61f8e6f56c612867bfe85d144d5045cd5e44497539bc126a4e8c6795419', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.10.tar.gz', 'name' => 'PHP 5.5.10 (tar.gz)', @@ -13807,29 +13807,29 @@ $OLDRELEASES = array ( 'date' => '6 Mar 2014', 'museum' => false, ), - '5.5.9' => + '5.5.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.9.tar.bz2', 'name' => 'PHP 5.5.9 (tar.bz2)', 'date' => '6 Feb 2014', 'sha256' => '9d1dea5195e2bcd928416130a6e19173d02bd36fb76c382522bf145c458fbed3', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.9.tar.gz', 'name' => 'PHP 5.5.9 (tar.gz)', 'date' => '6 Feb 2014', 'sha256' => 'ec1bf0cb3be80240049dbd92c272d4bf242a614fa5f9dcc42a15adb5fd01ccde', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.9.tar.xz', 'name' => 'PHP 5.5.9 (tar.xz)', @@ -13840,22 +13840,22 @@ $OLDRELEASES = array ( 'date' => '6 Feb 2014', 'museum' => false, ), - '5.5.8' => + '5.5.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.8.tar.bz2', 'name' => 'PHP 5.5.8 (tar.bz2)', 'date' => '9 Jan 2014', 'sha256' => '6d5f45659d13383fc8429f185cc9da0b30c7bb72dcae9baf568f0511eb7f8b68', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.8.tar.gz', 'name' => 'PHP 5.5.8 (tar.gz)', @@ -13866,29 +13866,29 @@ $OLDRELEASES = array ( 'date' => '9 Jan 2014', 'museum' => false, ), - '5.5.7' => + '5.5.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.7.tar.bz2', 'name' => 'PHP 5.5.7 (tar.bz2)', 'date' => '12 Dec 2013', 'sha256' => '2cb9425ef514b984dd233097d82a66f4623b9bf48f2ef265bc7ba25d697d6008', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.7.tar.gz', 'name' => 'PHP 5.5.7 (tar.gz)', 'date' => '12 Dec 2013', 'sha256' => '7b954338d7dd538ef6fadbc110e6a0f50d0b39dabec2c12a7f000c17332591b8', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.7.tar.xz', 'name' => 'PHP 5.5.7 (tar.xz)', @@ -13899,36 +13899,36 @@ $OLDRELEASES = array ( 'date' => '12 Dec 2013', 'museum' => false, ), - '5.5.6' => + '5.5.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.6.tar.bz2', 'name' => 'PHP 5.5.6 (tar.bz2)', 'date' => '14 Nov 2013', 'sha256' => 'a9b7d291199d7e6b90ef1d78eb791d738944d66856e76bde9463ce2645b0e4a4', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.6.tar.gz', 'name' => 'PHP 5.5.6 (tar.gz)', 'date' => '14 Nov 2013', 'sha256' => '01f9c45154d4c9a47a825aa662bd64493082bd57dafdc720cf899ee194220a67', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.6.tar.xz', 'name' => 'PHP 5.5.6 (tar.xz)', 'date' => '14 Nov 2013', 'sha256' => '3235a5c15e8fc55498dd80fe43f4aecc51dba35a7fc916aee7ef12d4e1f8767a', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.6 binaries and source', @@ -13937,36 +13937,36 @@ $OLDRELEASES = array ( 'date' => '14 Nov 2013', 'museum' => false, ), - '5.5.5' => + '5.5.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.5.tar.bz2', 'name' => 'PHP 5.5.5 (tar.bz2)', 'date' => '17 Oct 2013', 'sha256' => 'a400b324ae288eb0c9285e550fe5fd7f92c0f4e126496c3b05f9041da6cc04de', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.5.tar.gz', 'name' => 'PHP 5.5.5 (tar.gz)', 'date' => '17 Oct 2013', 'sha256' => '483ff2370fa3a8863e6b023383c4bcfcc3ba462137c30c5fc75043e1755b7d17', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.5.tar.xz', 'name' => 'PHP 5.5.5 (tar.xz)', 'date' => '17 Oct 2013', 'sha256' => '82cc9c88b946354bfe629917a85ed33d8cfc901460d432a75f823667d94f29ee', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.5 binaries and source', @@ -13975,36 +13975,36 @@ $OLDRELEASES = array ( 'date' => '17 Oct 2013', 'museum' => false, ), - '5.5.4' => + '5.5.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.4.tar.bz2', 'name' => 'PHP 5.5.4 (tar.bz2)', 'md5' => '456f2eb1ee36f2a277bd4cc778e720eb', 'date' => '19 Sep 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.4.tar.gz', 'name' => 'PHP 5.5.4 (tar.gz)', 'md5' => 'bf842770ac64a47ff599f463e6cf1334', 'date' => '19 Sep 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.4.tar.xz', 'name' => 'PHP 5.5.4 (tar.xz)', 'md5' => '32c1dc56701d21def91a39a312392b54', 'date' => '19 Sep 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.4 binaries and source', @@ -14013,36 +14013,36 @@ $OLDRELEASES = array ( 'date' => '19 Sep 2013', 'museum' => true, ), - '5.5.3' => + '5.5.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.3.tar.bz2', 'name' => 'PHP 5.5.3 (tar.bz2)', 'md5' => '886b08ee6865d654911a6bb02ae98ee8', 'date' => '22 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.3.tar.gz', 'name' => 'PHP 5.5.3 (tar.gz)', 'md5' => 'a5dfdd41ccf539942db966310f7429da', 'date' => '22 Aug 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.3.tar.xz', 'name' => 'PHP 5.5.3 (tar.xz)', 'md5' => '437e98144ef014dfab0922a9eed36853', 'date' => '22 Aug 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.3 binaries and source', @@ -14051,36 +14051,36 @@ $OLDRELEASES = array ( 'date' => '22 Aug 2013', 'museum' => true, ), - '5.5.2' => + '5.5.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.2.tar.bz2', 'name' => 'PHP 5.5.2 (tar.bz2)', 'md5' => 'caf7f4d86514a568fb3c8021b096a9f0', 'date' => '15 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.2.tar.gz', 'name' => 'PHP 5.5.2 (tar.gz)', 'md5' => '2a90884749f97868071538098b3debc1', 'date' => '15 Aug 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.2.tar.xz', 'name' => 'PHP 5.5.2 (tar.xz)', 'md5' => '95c6d7a4c36c475b10447954dea056a5', 'date' => '15 Aug 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.2 binaries and source', @@ -14089,36 +14089,36 @@ $OLDRELEASES = array ( 'date' => '15 Aug 2013', 'museum' => true, ), - '5.5.1' => + '5.5.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.1.tar.bz2', 'name' => 'PHP 5.5.1 (tar.bz2)', 'md5' => 'e6520ba8f86e03451f1e9226ca2be681', 'date' => '18 Jul 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.1.tar.gz', 'name' => 'PHP 5.5.1 (tar.gz)', 'md5' => 'a7d9598c0e60b47960b8e803e51c4309', 'date' => '18 Jul 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.1.tar.xz', 'name' => 'PHP 5.5.1 (tar.xz)', 'md5' => '365403c216d22255c3aa57fe54944f8e', 'date' => '18 Jul 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.1 binaries and source', @@ -14127,36 +14127,36 @@ $OLDRELEASES = array ( 'date' => '18 Jul 2013', 'museum' => true, ), - '5.5.0' => + '5.5.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.0.tar.bz2', 'name' => 'PHP 5.5.0 (tar.bz2)', 'md5' => 'daf2d54e79def9fd0fb2ac7dfcefb7f3', 'date' => '20 Jun 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.0.tar.gz', 'name' => 'PHP 5.5.0 (tar.gz)', 'md5' => '79c4e7a8cb0f8e2e072120775b92c523', 'date' => '20 Jun 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.0.tar.xz', 'name' => 'PHP 5.5.0 (tar.xz)', 'md5' => 'c7df0cb28cfff4e277fd9cd9b73cebfb', 'date' => '20 Jun 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.0 binaries and source', @@ -14165,29 +14165,29 @@ $OLDRELEASES = array ( 'date' => '20 Jun 2013', 'museum' => true, ), - '5.4.45' => + '5.4.45' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_45.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.45.tar.bz2', 'name' => 'PHP 5.4.45 (tar.bz2)', 'sha256' => '4e0d28b1554c95cfaea6fa2b64aac85433f158ce72bb571bcd5574f98f4c6582', 'date' => '03 Sep 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.45.tar.gz', 'name' => 'PHP 5.4.45 (tar.gz)', 'sha256' => '25bc4723955f4e352935258002af14a14a9810b491a19400d76fcdfa9d04b28f', 'date' => '03 Sep 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.45 binaries and source', @@ -14196,29 +14196,29 @@ $OLDRELEASES = array ( 'date' => '03 Sep 2015', 'museum' => false, ), - '5.4.44' => + '5.4.44' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_44.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.44.tar.bz2', 'name' => 'PHP 5.4.44 (tar.bz2)', 'sha256' => '8dd59e5ce9248cf36ac3de5412a518b8b24c01ace6c46ce3d12e4ce981a3856d', 'date' => '06 Aug 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.44.tar.gz', 'name' => 'PHP 5.4.44 (tar.gz)', 'sha256' => '1799998e48da3d8f34722840628e18789e26ea21741d4e498ade6749b3266602', 'date' => '06 Aug 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.44 binaries and source', @@ -14227,29 +14227,29 @@ $OLDRELEASES = array ( 'date' => '06 Aug 2015', 'museum' => false, ), - '5.4.43' => + '5.4.43' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_43.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.43.tar.bz2', 'name' => 'PHP 5.4.43 (tar.bz2)', 'sha256' => '25d7724fb00ad1b520f5bad2173717031153d0a8e3de2c75e7a084c76f8ecd6b', 'date' => '09 Jul 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.43.tar.gz', 'name' => 'PHP 5.4.43 (tar.gz)', 'sha256' => 'cfc2176adc05f009666ecfab4a1cc66cc546c5d071245b2a048b3d113f67a2af', 'date' => '09 Jul 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.43 binaries and source', @@ -14258,29 +14258,29 @@ $OLDRELEASES = array ( 'date' => '09 Jul 2015', 'museum' => false, ), - '5.4.42' => + '5.4.42' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_42.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.42.tar.bz2', 'name' => 'PHP 5.4.42 (tar.bz2)', 'sha256' => '6285b2e64bfaa69e5d983d7d981b4f254f5259ad3fd591ca832722a4cc1ae0f9', 'date' => '11 Jun 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.42.tar.gz', 'name' => 'PHP 5.4.42 (tar.gz)', 'sha256' => 'f0b40c097a6f11c4c2f5078d34f50fb9428d79b9e9821117bd7d6cca6af78d11', 'date' => '11 Jun 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.42 binaries and source', @@ -14289,29 +14289,29 @@ $OLDRELEASES = array ( 'date' => '11 Jun 2015', 'museum' => false, ), - '5.4.41' => + '5.4.41' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_41.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.41.tar.bz2', 'name' => 'PHP 5.4.41 (tar.bz2)', 'sha256' => '5bc4b45a1280ff80a3cf5b8563716f325cfd0121d7fd25aa54d56ff38b3b8272', 'date' => '14 May 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.41.tar.gz', 'name' => 'PHP 5.4.41 (tar.gz)', 'sha256' => '638cf19c865bc4eba2a4bab8952116a62691d1a72e1e2c9a9a2aadee92d1ce2e', 'date' => '14 May 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.41 binaries and source', @@ -14320,29 +14320,29 @@ $OLDRELEASES = array ( 'date' => '14 May 2015', 'museum' => false, ), - '5.4.40' => + '5.4.40' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_40.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.40.tar.bz2', 'name' => 'PHP 5.4.40 (tar.bz2)', 'sha256' => '4898ffe8ac3ccb2d8cc94f7d76a9ea0414d954f5d4479895ddfccdc2e158a51a', 'date' => '16 Apr 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.40.tar.gz', 'name' => 'PHP 5.4.40 (tar.gz)', 'sha256' => '663f5d06cd648e81ba4f2d6ad621bb580d83de70240c832dae527c97954da33d', 'date' => '16 Apr 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.40 binaries and source', @@ -14351,29 +14351,29 @@ $OLDRELEASES = array ( 'date' => '16 Apr 2015', 'museum' => false, ), - '5.4.39' => + '5.4.39' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_39.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.39.tar.bz2', 'name' => 'PHP 5.4.39 (tar.bz2)', 'date' => '19 Mar 2015', 'sha256' => '7ceb76538e709c74533210ae41148d5c01c330ac8a73220954bbc4fcae69d77e', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.39.tar.gz', 'name' => 'PHP 5.4.39 (tar.gz)', 'date' => '19 Mar 2015', 'sha256' => '9af5d2c3782aa94b7336401755dc44b62dc4ea881bf5e39540a4c7181b54d945', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.39 binaries and source', @@ -14382,29 +14382,29 @@ $OLDRELEASES = array ( 'date' => '19 Mar 2015', 'museum' => false, ), - '5.4.38' => + '5.4.38' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_38.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.38.tar.bz2', 'name' => 'PHP 5.4.38 (tar.bz2)', 'date' => '19 Feb 2015', 'sha256' => 'abf37db0cfadc9bb814f9df35f6aa966ad63f4f4c4475e432ec625568a5d3e88', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.38.tar.gz', 'name' => 'PHP 5.4.38 (tar.gz)', 'date' => '19 Feb 2015', 'sha256' => 'e694b7265f314f73c9df43538e0e54e2495cb72252e8a91c1aec66ffcf47241f', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.38 binaries and source', @@ -14413,29 +14413,29 @@ $OLDRELEASES = array ( 'date' => '19 Feb 2015', 'museum' => false, ), - '5.4.37' => + '5.4.37' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_37.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.37.tar.bz2', 'name' => 'PHP 5.4.37 (tar.bz2)', 'date' => '22 Jan 2015', 'sha256' => '857bf6675eeb0ae9c3cd6f9ccdb2a9b7bf89dcfda7f0a80857638fe023f3a8ad', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.37.tar.gz', 'name' => 'PHP 5.4.37 (tar.gz)', 'date' => '22 Jan 2015', 'sha256' => '6bf3b3ebefa600cfb6dd7f2678f23b17a958e82e8ce2d012286818d7c36dfd31', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.37 binaries and source', @@ -14444,29 +14444,29 @@ $OLDRELEASES = array ( 'date' => '22 Jan 2015', 'museum' => false, ), - '5.4.36' => + '5.4.36' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_36.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.36.tar.bz2', 'name' => 'PHP 5.4.36 (tar.bz2)', 'date' => '18 Dec 2014', 'sha256' => 'b0951608c3e8afb978a624c7f79a889980210f5258f666c1d997bd6491e13241', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.36.tar.gz', 'name' => 'PHP 5.4.36 (tar.gz)', 'date' => '18 Dec 2014', 'sha256' => 'e11851662222765d6ab6e671adc983c657d5358a183856b43a5bad0c612d2959', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.36 binaries and source', @@ -14475,29 +14475,29 @@ $OLDRELEASES = array ( 'date' => '18 Dec 2014', 'museum' => false, ), - '5.4.35' => + '5.4.35' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_35.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.35.tar.bz2', 'name' => 'PHP 5.4.35 (tar.bz2)', 'date' => '13 Nov 2014', 'sha256' => '8cdb4265cd0f778befacd1e6b5939ec23315fff38400e17e77a36e4c55b9746b', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.35.tar.gz', 'name' => 'PHP 5.4.35 (tar.gz)', 'date' => '13 Nov 2014', 'sha256' => '7ecab4ebb880b6d4f68bd4e3e49d837d4704fe26d81dc992b17b74151ee950a7', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.35 binaries and source', @@ -14506,29 +14506,29 @@ $OLDRELEASES = array ( 'date' => '13 Nov 2014', 'museum' => false, ), - '5.4.34' => + '5.4.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_34.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.34.tar.bz2', 'name' => 'PHP 5.4.34 (tar.bz2)', 'date' => '16 Oct 2014', 'sha256' => '57d4ea10f0c18b096a7c8fd0a98dcbe40c8f4dc94453fd3ca0a10e35fb2f8234', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.34.tar.gz', 'name' => 'PHP 5.4.34 (tar.gz)', 'date' => '16 Oct 2014', 'sha256' => 'c8d909062ad7616cedb54dc03d85b40d40f6d4adce986ec8cabd9b8b94872096', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.34 binaries and source', @@ -14537,29 +14537,29 @@ $OLDRELEASES = array ( 'date' => '16 Oct 2014', 'museum' => false, ), - '5.4.33' => + '5.4.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.33.tar.bz2', 'name' => 'PHP 5.4.33 (tar.bz2)', 'sha256' => '1a75b2d0835e74b8886cd3980d9598a0e06691441bb7f91d19b74c2278e40bb5', 'date' => '18 Sep 2014', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.33.tar.gz', 'name' => 'PHP 5.4.33 (tar.gz)', 'sha256' => '74e542dd2f15ebbc123738a71e867d57d2996a6edb40e6ac62fcf5ab85763d19', 'date' => '18 Sep 2014', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.33 binaries and source', @@ -14568,29 +14568,29 @@ $OLDRELEASES = array ( 'date' => '18 Sep 2014', 'museum' => false, ), - '5.4.32' => + '5.4.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.32.tar.bz2', 'name' => 'PHP 5.4.32 (tar.bz2)', 'date' => '21 Aug 2014', 'sha256' => '26d0717669a098f18cd22dc3ae8282101d38508054500c26775ddcc26ca7c826', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.32.tar.gz', 'name' => 'PHP 5.4.32 (tar.gz)', 'date' => '21 Aug 2014', 'sha256' => '80ebdf34f91b8e1d516080363804137177368777aa9ecffee600f2957e8b0f94', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.32 binaries and source', @@ -14599,29 +14599,29 @@ $OLDRELEASES = array ( 'date' => '21 Aug 2014', 'museum' => false, ), - '5.4.31' => + '5.4.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.31.tar.bz2', 'name' => 'PHP 5.4.31 (tar.bz2)', 'date' => '24 Jul 2014', 'sha256' => '5e8e491431fd1d99df925d762b05da05c80b02cb38c9b3db616e8894a307914d', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.31.tar.gz', 'name' => 'PHP 5.4.31 (tar.gz)', 'date' => '24 Jul 2014', 'sha256' => '332f62e4f751482d40ad08544ee97e004170d0382c84d01ce8efe405d0972f66', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.31 binaries and source', @@ -14630,29 +14630,29 @@ $OLDRELEASES = array ( 'date' => '24 Jul 2014', 'museum' => false, ), - '5.4.30' => + '5.4.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.30.tar.bz2', 'name' => 'PHP 5.4.30 (tar.bz2)', 'date' => '26 Jun 2014', 'sha256' => '32b83644e42d57388d6e5ec700c3502cde5f5e1207395b1e361e4cb2ce496ce6', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.30.tar.gz', 'name' => 'PHP 5.4.30 (tar.gz)', 'date' => '26 Jun 2014', 'sha256' => 'c17da64890b728bdc146bdc69b37085412d4e2585fac98848ac2e824bb564c85', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.30 binaries and source', @@ -14661,29 +14661,29 @@ $OLDRELEASES = array ( 'date' => '26 Jun 2014', 'museum' => false, ), - '5.4.29' => + '5.4.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.29.tar.bz2', 'name' => 'PHP 5.4.29 (tar.bz2)', 'date' => '29 May 2014', 'sha256' => '62ce3ca063cf04f6065eeac82117e43b44e20487bc0a0a8d05436e17a0b1e2a7', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.29.tar.gz', 'name' => 'PHP 5.4.29 (tar.gz)', 'date' => '29 May 2014', 'sha256' => '9fa51d3e44783802ea51b910719ad524a8994524f7cf7307f683fe89191bc401', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.29 binaries and source', @@ -14692,29 +14692,29 @@ $OLDRELEASES = array ( 'date' => '29 May 2014', 'museum' => false, ), - '5.4.28' => + '5.4.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.28.tar.bz2', 'name' => 'PHP 5.4.28 (tar.bz2)', 'date' => '2 May 2014', 'sha256' => '3fe780e5179e90c4d37276e79acc0d0692f1bc0911985af694b92c664c0ef3c4', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.28.tar.gz', 'name' => 'PHP 5.4.28 (tar.gz)', 'date' => '2 May 2014', 'sha256' => '5140292c94a0301db7a807e6b3aadf6ee966346d0005aa3d15464bd4c595a786', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.28 binaries and source', @@ -14723,29 +14723,29 @@ $OLDRELEASES = array ( 'date' => '2 May 2014', 'museum' => false, ), - '5.4.27' => + '5.4.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.27.tar.bz2', 'name' => 'PHP 5.4.27 (tar.bz2)', 'date' => '3 Apr 2014', 'sha256' => '09dcc44cded735e1cf1b1b9f2749d1a0fd90e03378b6a70364a662f4740e61e2', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.27.tar.gz', 'name' => 'PHP 5.4.27 (tar.gz)', 'date' => '3 Apr 2014', 'sha256' => 'a70dc68eeed902f8378fded473d53e4e37be645b941554dcf4237559cbda2bb3', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.27 binaries and source', @@ -14754,29 +14754,29 @@ $OLDRELEASES = array ( 'date' => '3 Apr 2014', 'museum' => false, ), - '5.4.26' => + '5.4.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.26.tar.bz2', 'name' => 'PHP 5.4.26 (tar.bz2)', 'date' => '6 Mar 2014', 'sha256' => '5053649317b9331df40bd836c976a32b31dbc5c5d68997d3ae01cb90db22d240', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.26.tar.gz', 'name' => 'PHP 5.4.26 (tar.gz)', 'date' => '6 Mar 2014', 'sha256' => 'ec3f902b5e8cbdd660e01e784b537f1210a12182d9bbd62164776075bc097eca', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.26 binaries and source', @@ -14785,29 +14785,29 @@ $OLDRELEASES = array ( 'date' => '6 Mar 2014', 'museum' => false, ), - '5.4.25' => + '5.4.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.25.tar.bz2', 'name' => 'PHP 5.4.25 (tar.bz2)', 'date' => '6 Feb 2014', 'sha256' => 'b6c18c07c6bf34f75e601b28829d636e44c1c9f4267aac4ed013443c32a2245f', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.25.tar.gz', 'name' => 'PHP 5.4.25 (tar.gz)', 'date' => '6 Feb 2014', 'sha256' => '0c66cec73bfbd31f68c96e5a4d8454599271f0b0462c2ff7dedce4262fda8fe3', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.25 binaries and source', @@ -14816,29 +14816,29 @@ $OLDRELEASES = array ( 'date' => '6 Feb 2014', 'museum' => false, ), - '5.4.24' => + '5.4.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.24.tar.bz2', 'name' => 'PHP 5.4.24 (tar.bz2)', 'date' => '9 Jan 2014', 'sha256' => '97fe70eddaf5b93969714a551870fe03f6b0a387f85b83a6d63a40a76199a327', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.24.tar.gz', 'name' => 'PHP 5.4.24 (tar.gz)', 'date' => '9 Jan 2014', 'sha256' => 'c64d6e3b428e78b44760167557e26cd16a9f83f449a255e69d5e035bdd7057ed', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.24 binaries and source', @@ -14847,29 +14847,29 @@ $OLDRELEASES = array ( 'date' => '9 Jan 2014', 'museum' => false, ), - '5.4.23' => + '5.4.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.23.tar.bz2', 'name' => 'PHP 5.4.23 (tar.bz2)', 'date' => '12 Dec 2013', 'sha256' => 'ae7c070fa9b9e16413ef944d910b68f3ba79192eca4010b0af132b8631bd91cc', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.23.tar.gz', 'name' => 'PHP 5.4.23 (tar.gz)', 'date' => '12 Dec 2013', 'sha256' => 'c9add0e59f41298a253bbb9090c47a03064b099120a563ca8ad289e18fcd1ce7', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.23 binaries and source', @@ -14878,29 +14878,29 @@ $OLDRELEASES = array ( 'date' => '12 Dec 2013', 'museum' => false, ), - '5.4.22' => + '5.4.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.22.tar.bz2', 'name' => 'PHP 5.4.22 (tar.bz2)', 'date' => '14 Nov 2013', 'sha256' => '3b8619b030e372f2b64e3a059d05a3ef3354e81f8a72923ba45475bf222f7cca', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.22.tar.gz', 'name' => 'PHP 5.4.22 (tar.gz)', 'date' => '14 Nov 2013', 'sha256' => 'ca6e52a0ba11e9521c6a26f293a602cdc00cad1adbb4658e35b8d3f41057cbb8', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.22 binaries and source', @@ -14909,29 +14909,29 @@ $OLDRELEASES = array ( 'date' => '14 Nov 2013', 'museum' => false, ), - '5.4.21' => + '5.4.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.21.tar.bz2', 'name' => 'PHP 5.4.21 (tar.bz2)', 'md5' => '3dcf021e89b039409d0b1c346b936b5f', 'date' => '17 Oct 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.21.tar.gz', 'name' => 'PHP 5.4.21 (tar.gz)', 'md5' => 'cc8da0d18683e3a83b332f264af7ca83', 'date' => '17 Oct 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.21 binaries and source', @@ -14940,29 +14940,29 @@ $OLDRELEASES = array ( 'date' => '17 Oct 2013', 'museum' => true, ), - '5.4.20' => + '5.4.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.20.tar.bz2', 'name' => 'PHP 5.4.20 (tar.bz2)', 'md5' => 'e25db5592ed14842b4239be9d990cce8', 'date' => '19 Sep 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.20.tar.gz', 'name' => 'PHP 5.4.20 (tar.gz)', 'md5' => 'e505b63ebe383ef9a378467216ba69d4', 'date' => '19 Sep 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.20 binaries and source', @@ -14971,29 +14971,29 @@ $OLDRELEASES = array ( 'date' => '19 Sep 2013', 'museum' => true, ), - '5.4.19' => + '5.4.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.19.tar.bz2', 'name' => 'PHP 5.4.19 (tar.bz2)', 'md5' => 'f06f99b9872b503758adab5ba7a7e755', 'date' => '22 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.19.tar.gz', 'name' => 'PHP 5.4.19 (tar.gz)', 'md5' => '9e7ad2494ba3de519328f74267de8342', 'date' => '22 Aug 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.19 binaries and source', @@ -15002,29 +15002,29 @@ $OLDRELEASES = array ( 'date' => '22 Aug 2013', 'museum' => true, ), - '5.4.18' => + '5.4.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.18.tar.bz2', 'name' => 'PHP 5.4.18 (tar.bz2)', 'md5' => 'b2e185b46b22a48a385cf21a0dc76e65', 'date' => '15 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.18.tar.gz', 'name' => 'PHP 5.4.18 (tar.gz)', 'md5' => 'd0a3f55deceaec921f45f76d7b4e764b', 'date' => '15 Aug 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.18 binaries and source', @@ -15033,29 +15033,29 @@ $OLDRELEASES = array ( 'date' => '04 Jul 2013', 'museum' => true, ), - '5.4.17' => + '5.4.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.17.tar.bz2', 'name' => 'PHP 5.4.17 (tar.bz2)', 'md5' => '1e027e99e2a874310fd518e87e3947af', 'date' => '04 Jul 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.17.tar.gz', 'name' => 'PHP 5.4.17 (tar.gz)', 'md5' => 'cc698032dcdcb9ad158edcc90fe798d6', 'date' => '04 Jul 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.17 binaries and source', @@ -15064,29 +15064,29 @@ $OLDRELEASES = array ( 'date' => '04 Jul 2013', 'museum' => true, ), - '5.4.16' => + '5.4.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.16.tar.bz2', 'name' => 'PHP 5.4.16 (tar.bz2)', 'md5' => '3d2c694d28861d707b2622c3cc941cff', 'date' => '06 Jun 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.16.tar.gz', 'name' => 'PHP 5.4.16 (tar.gz)', 'md5' => '3940a5295872964495f9c56596272d68', 'date' => '06 Jun 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.16 binaries and source', @@ -15095,29 +15095,29 @@ $OLDRELEASES = array ( 'date' => '09 May 2013', 'museum' => true, ), - '5.4.15' => + '5.4.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.15.tar.bz2', 'name' => 'PHP 5.4.15 (tar.bz2)', 'md5' => '145ea5e845e910443ff1eddb3dbcf56a', 'date' => '09 May 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.15.tar.gz', 'name' => 'PHP 5.4.15 (tar.gz)', 'md5' => '2651b983c18df9d455ec4c69aef45834', 'date' => '09 May 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.15 binaries and source', @@ -15126,29 +15126,29 @@ $OLDRELEASES = array ( 'date' => '09 May 2013', 'museum' => true, ), - '5.4.14' => + '5.4.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.14.tar.bz2', 'name' => 'PHP 5.4.14 (tar.bz2)', 'md5' => 'cfdc044be2c582991a1fe0967898fa38', 'date' => '11 Apr 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.14.tar.gz', 'name' => 'PHP 5.4.14 (tar.gz)', 'md5' => '08df8196af12bc850409a7bff13bf8f0', 'date' => '11 Apr 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.14 binaries and source', @@ -15157,29 +15157,29 @@ $OLDRELEASES = array ( 'date' => '11 Apr 2013', 'museum' => true, ), - '5.4.13' => + '5.4.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.13.tar.bz2', 'name' => 'PHP 5.4.13 (tar.bz2)', 'md5' => 'cacd308e978b7cf9ba4993196612ccf7', 'date' => '14 Mar 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.13.tar.gz', 'name' => 'PHP 5.4.13 (tar.gz)', 'md5' => '445025340677d5bfe22eb670d6db6795', 'date' => '14 Mar 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.13 binaries and source', @@ -15188,29 +15188,29 @@ $OLDRELEASES = array ( 'date' => '14 Mar 2013', 'museum' => true, ), - '5.4.12' => + '5.4.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.12.tar.bz2', 'name' => 'PHP 5.4.12 (tar.bz2)', 'md5' => '5c7b614242ae12e9cacca21c8ab84818', 'date' => '21 Feb 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.12.tar.gz', 'name' => 'PHP 5.4.12 (tar.gz)', 'md5' => '81b20cac4f977b8764ae904302048d84', 'date' => '21 Feb 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.12 binaries and source', @@ -15219,29 +15219,29 @@ $OLDRELEASES = array ( 'date' => '21 Feb 2013', 'museum' => true, ), - '5.4.11' => + '5.4.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.11.tar.bz2', 'name' => 'PHP 5.4.11 (tar.bz2)', 'md5' => '9975e68c22b86b013b934743ad2d2276', 'date' => '17 Jan 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.11.tar.gz', 'name' => 'PHP 5.4.11 (tar.gz)', 'md5' => '32fa16b3abd5527316c3c076b3395914', 'date' => '17 Jan 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.11 binaries and source', @@ -15250,29 +15250,29 @@ $OLDRELEASES = array ( 'date' => '17 Jan 2013', 'museum' => true, ), - '5.4.10' => + '5.4.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.10.tar.bz2', 'name' => 'PHP 5.4.10 (tar.bz2)', 'md5' => 'cb716b657a30570b9b468b9e7bc551a1', 'date' => '20 Dec 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.10.tar.gz', 'name' => 'PHP 5.4.10 (tar.gz)', 'md5' => '1e7fbe418658d5433bd315030584c45c', 'date' => '20 Dec 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.10 binaries and source', @@ -15281,29 +15281,29 @@ $OLDRELEASES = array ( 'date' => '20 Dec 2012', 'museum' => true, ), - '5.4.9' => + '5.4.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.9.tar.bz2', 'name' => 'PHP 5.4.9 (tar.bz2)', 'md5' => '076a9f84d861d3f664a2878d5773ba78', 'date' => '22 Nov 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.9.tar.gz', 'name' => 'PHP 5.4.9 (tar.gz)', 'md5' => 'e1ac28e1cf20738f0aeeba8261aa4537', 'date' => '22 Nov 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.9 binaries and source', @@ -15312,29 +15312,29 @@ $OLDRELEASES = array ( 'date' => '22 Nov 2012', 'museum' => true, ), - '5.4.8' => + '5.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.8.tar.bz2', 'name' => 'PHP 5.4.8 (tar.bz2)', 'md5' => 'bb8c816a9299be8995255ef70c63b800', 'date' => '18 Oct 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.8.tar.gz', 'name' => 'PHP 5.4.8 (tar.gz)', 'md5' => 'b25b735f342efbfdcdaf00b83189f183', 'date' => '18 Oct 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.8 binaries and source', @@ -15343,29 +15343,29 @@ $OLDRELEASES = array ( 'date' => '18 Oct 2012', 'museum' => true, ), - '5.4.7' => + '5.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.7.tar.bz2', 'name' => 'PHP 5.4.7 (tar.bz2)', 'md5' => '9cd421f1cc8fa8e7f215e44a1b06199f', 'date' => '13 Sep 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.7.tar.gz', 'name' => 'PHP 5.4.7 (tar.gz)', 'md5' => '94661b761dcfdfdd5108e8b12e0dd4f8', 'date' => '13 Sep 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.7 binaries and source', @@ -15374,29 +15374,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2012', 'museum' => true, ), - '5.4.6' => + '5.4.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.6.tar.bz2', 'name' => 'PHP 5.4.6 (tar.bz2)', 'md5' => 'c9aa0f4996d1b91ee9e45afcfaeb5d2e', 'date' => '16 Aug 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.6.tar.gz', 'name' => 'PHP 5.4.6 (tar.gz)', 'md5' => 'efe59afb73190c9bd6d50614998ffceb', 'date' => '16 Aug 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.6 binaries and source', @@ -15405,29 +15405,29 @@ $OLDRELEASES = array ( 'date' => '16 Aug 2012', 'museum' => true, ), - '5.4.5' => + '5.4.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.5.tar.bz2', 'name' => 'PHP 5.4.5 (tar.bz2)', 'md5' => 'ffcc7f4dcf2b79d667fe0c110e6cb724', 'date' => '19 July 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.5.tar.gz', 'name' => 'PHP 5.4.5 (tar.gz)', 'md5' => '51fb5bf974d92359f0606dffc810735a', 'date' => '19 July 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.5 binaries and source', @@ -15436,29 +15436,29 @@ $OLDRELEASES = array ( 'date' => '19 July 2012', 'museum' => true, ), - '5.4.4' => + '5.4.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.4.tar.bz2', 'name' => 'PHP 5.4.4 (tar.bz2)', 'md5' => '1fd98dc3f6f3805cd67bff12a26ed77f', 'date' => '14 June 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.4.tar.gz', 'name' => 'PHP 5.4.4 (tar.gz)', 'md5' => '8366c3626f2275ab8c7ef5e2d6bc5bd7', 'date' => '14 June 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.4 binaries and source', @@ -15467,22 +15467,22 @@ $OLDRELEASES = array ( 'date' => '14 June 2012', 'museum' => true, ), - '5.4.3' => + '5.4.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.3.tar.bz2', 'name' => 'PHP 5.4.3 (tar.bz2)', 'md5' => '51f9488bf8682399b802c48656315cac', 'date' => '08 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.3.tar.gz', 'name' => 'PHP 5.4.3 (tar.gz)', @@ -15493,22 +15493,22 @@ $OLDRELEASES = array ( 'date' => '08 May 2012', 'museum' => true, ), - '5.4.2' => + '5.4.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.2.tar.bz2', 'name' => 'PHP 5.4.2 (tar.bz2)', 'md5' => '252a6546db3a26260b419a883c875615', 'date' => '03 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.2.tar.gz', 'name' => 'PHP 5.4.2 (tar.gz)', @@ -15519,22 +15519,22 @@ $OLDRELEASES = array ( 'date' => '03 May 2012', 'museum' => true, ), - '5.4.1' => + '5.4.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.1.tar.bz2', 'name' => 'PHP 5.4.1 (tar.bz2)', 'md5' => '5b9529ed89dbc48c498e9693d1af3caf', 'date' => '26 April 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.1.tar.gz', 'name' => 'PHP 5.4.1 (tar.gz)', @@ -15545,22 +15545,22 @@ $OLDRELEASES = array ( 'date' => '26 April 2012', 'museum' => true, ), - '5.4.0' => + '5.4.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.0.tar.bz2', 'name' => 'PHP 5.4.0 (tar.bz2)', 'md5' => '04bb6f9d71ea86ba05685439d50db074', 'date' => '01 March 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.0.tar.gz', 'name' => 'PHP 5.4.0 (tar.gz)', @@ -15571,36 +15571,36 @@ $OLDRELEASES = array ( 'date' => '01 March 2012', 'museum' => true, ), - '5.3.29' => + '5.3.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.29.tar.bz2', 'name' => 'PHP 5.3.29 (tar.bz2)', 'date' => '14 Aug 2014', 'sha256' => 'c4e1cf6972b2a9c7f2777a18497d83bf713cdbecabb65d3ff62ba441aebb0091', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.29.tar.gz', 'name' => 'PHP 5.3.29 (tar.gz)', 'date' => '14 Aug 2014', 'sha256' => '57cf097de3d6c3152dda342f62b1b2e9c988f4cfe300ccfe3c11f3c207a0e317', ), - 2 => + 2 => array ( 'filename' => 'php-5.3.29.tar.xz', 'name' => 'PHP 5.3.29 (tar.xz)', 'date' => '14 Aug 2014', 'sha256' => '8438c2f14ab8f3d6cd2495aa37de7b559e33b610f9ab264f0c61b531bf0c262d', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.29 binaries and source', @@ -15609,29 +15609,29 @@ $OLDRELEASES = array ( 'date' => '14 Aug 2014', 'museum' => false, ), - '5.3.28' => + '5.3.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.28.tar.bz2', 'name' => 'PHP 5.3.28 (tar.bz2)', 'date' => '12 Dec 2013', 'sha256' => '0cac960c651c4fbb3d21cf2f2b279a06e21948fb35a0d1439b97296cac1d8513', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.28.tar.gz', 'name' => 'PHP 5.3.28 (tar.gz)', 'date' => '12 Dec 2013', 'sha256' => 'ace8fde82a4275d6dcec4e15feb047416e1813fea46e159dfd113298371396d0', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.28 binaries and source', @@ -15640,29 +15640,29 @@ $OLDRELEASES = array ( 'date' => '11 Jul 2013', 'museum' => false, ), - '5.3.27' => + '5.3.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.27.tar.bz2', 'name' => 'PHP 5.3.27 (tar.bz2)', 'date' => '11 Jul 2013', 'sha256' => 'e12db21c623b82a2244c4dd9b06bb75af20868c1b748a105a6829a5acc36b287', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.27.tar.gz', 'name' => 'PHP 5.3.27 (tar.gz)', 'date' => '11 Jul 2013', 'sha256' => '5ecd737fc79ad33b5c79a9784c0b4211d211ba682d4d721ac6ce975907a5b12b', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.27 binaries and source', @@ -15671,29 +15671,29 @@ $OLDRELEASES = array ( 'date' => '11 Jul 2013', 'museum' => false, ), - '5.3.26' => + '5.3.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.26.tar.bz2', 'name' => 'PHP 5.3.26 (tar.bz2)', 'md5' => 'd71db8d92edbb48beb5b645b55471139', 'date' => '06 Jun 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.26.tar.gz', 'name' => 'PHP 5.3.26 (tar.gz)', 'md5' => 'a430a48b8939fe1f8915ee38681b0afa', 'date' => '06 Jun 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.26 binaries and source', @@ -15702,29 +15702,29 @@ $OLDRELEASES = array ( 'date' => '06 Jun 2013', 'museum' => true, ), - '5.3.25' => + '5.3.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.25.tar.bz2', 'name' => 'PHP 5.3.25 (tar.bz2)', 'md5' => 'd71db8d92edbb48beb5b645b55471139', 'date' => '09 May 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.25.tar.gz', 'name' => 'PHP 5.3.25 (tar.gz)', 'md5' => 'a430a48b8939fe1f8915ee38681b0afa', 'date' => '09 May 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.25 binaries and source', @@ -15733,29 +15733,29 @@ $OLDRELEASES = array ( 'date' => '09 May 2013', 'museum' => true, ), - '5.3.24' => + '5.3.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.24.tar.bz2', 'name' => 'PHP 5.3.24 (tar.bz2)', 'md5' => '9820604df98c648297dcd31ffb8214e8', 'date' => '11 Apr 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.24.tar.gz', 'name' => 'PHP 5.3.24 (tar.gz)', 'md5' => 'cb0311a6a5ed6ffff8f41f713f9d8e84', 'date' => '11 Apr 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.24 binaries and source', @@ -15764,29 +15764,29 @@ $OLDRELEASES = array ( 'date' => '11 Apr 2013', 'museum' => true, ), - '5.3.23' => + '5.3.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.23.tar.bz2', 'name' => 'PHP 5.3.23 (tar.bz2)', 'md5' => 'ab7bd1dd3bbc8364cb9fcaa2d79fb502', 'date' => '14 Mar 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.23.tar.gz', 'name' => 'PHP 5.3.23 (tar.gz)', 'md5' => '9cd92b0de2b51dcd372f46fa623984f4', 'date' => '14 Mar 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.23 binaries and source', @@ -15795,29 +15795,29 @@ $OLDRELEASES = array ( 'date' => '14 Mar 2013', 'museum' => true, ), - '5.3.22' => + '5.3.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.22.tar.bz2', 'name' => 'PHP 5.3.22 (tar.bz2)', 'md5' => 'bf351426fc7f97aa13914062958a6100', 'date' => '21 Feb 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.22.tar.gz', 'name' => 'PHP 5.3.22 (tar.gz)', 'md5' => '5008d8e70195d933e30bfbae3651b4ed', 'date' => '21 Feb 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.22 binaries and source', @@ -15826,29 +15826,29 @@ $OLDRELEASES = array ( 'date' => '21 Feb 2013', 'museum' => true, ), - '5.3.21' => + '5.3.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.21.tar.bz2', 'name' => 'PHP 5.3.21 (tar.bz2)', 'md5' => '1b214fc19bb5f5c0902ba27c74d5f4a2', 'date' => '17 Jan 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.21.tar.gz', 'name' => 'PHP 5.3.21 (tar.gz)', 'md5' => 'f47fbe3407520e5d9d895168950aa683', 'date' => '17 Jan 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.21 binaries and source', @@ -15857,29 +15857,29 @@ $OLDRELEASES = array ( 'date' => '17 Jan 2013', 'museum' => true, ), - '5.3.20' => + '5.3.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.20.tar.bz2', 'name' => 'PHP 5.3.20 (tar.bz2)', 'md5' => '00241b9e89e93adf3baac32c56211e4e', 'date' => '20 Dec 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.20.tar.gz', 'name' => 'PHP 5.3.20 (tar.gz)', 'md5' => '1e202851bf2ba1ee96d7dc5b48944119', 'date' => '20 Dec 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.20 binaries and source', @@ -15888,29 +15888,29 @@ $OLDRELEASES = array ( 'date' => '20 Dec 2012', 'museum' => true, ), - '5.3.19' => + '5.3.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.19.tar.bz2', 'name' => 'PHP 5.3.19 (tar.bz2)', 'md5' => 'e1d2a3ec7849d4b3032bd1abf1916aa4', 'date' => '22 Nov 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.19.tar.gz', 'name' => 'PHP 5.3.19 (tar.gz)', 'md5' => 'e1bcda4f14bb39ba041297abbf18f8d1', 'date' => '22 Nov 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.3.19 binaries and source', @@ -15919,29 +15919,29 @@ $OLDRELEASES = array ( 'date' => '22 Nov 2012', 'museum' => true, ), - '5.3.18' => + '5.3.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.18.tar.bz2', 'name' => 'PHP 5.3.18 (tar.bz2)', 'md5' => '52539c19d0f261560af3c030143dfa8f', 'date' => '18 Oct 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.18.tar.gz', 'name' => 'PHP 5.3.18 (tar.gz)', 'md5' => 'ff2009aadc7c4d1444f6cd8e45f39a41', 'date' => '18 Oct 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.18 binaries and source', @@ -15950,29 +15950,29 @@ $OLDRELEASES = array ( 'date' => '18 Oct 2012', 'museum' => true, ), - '5.3.17' => + '5.3.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.17.tar.bz2', 'name' => 'PHP 5.3.17 (tar.bz2)', 'md5' => '29ee79c941ee85d6c1555c176f12f7ef', 'date' => '13 Sep 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.17.tar.gz', 'name' => 'PHP 5.3.17 (tar.gz)', 'md5' => '002e02e36c2cbcada8c49a7e5956d787', 'date' => '13 Sep 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.17 binaries and source', @@ -15981,29 +15981,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2012', 'museum' => true, ), - '5.3.16' => + '5.3.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.16.tar.bz2', 'name' => 'PHP 5.3.16 (tar.bz2)', 'md5' => '99cfd78531643027f60c900e792d21be', 'date' => '16 Aug 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.16.tar.gz', 'name' => 'PHP 5.3.16 (tar.gz)', 'md5' => '59b776edeac2897ebe3712dcc94b6706', 'date' => '16 Aug 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.16 binaries and source', @@ -16012,29 +16012,29 @@ $OLDRELEASES = array ( 'date' => '16 Aug 2012', 'museum' => true, ), - '5.3.15' => + '5.3.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.15.tar.bz2', 'name' => 'PHP 5.3.15 (tar.bz2)', 'md5' => '5cfcfd0fa4c4da7576f397073e7993cc', 'date' => '19 July 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.15.tar.gz', 'name' => 'PHP 5.3.15 (tar.gz)', 'md5' => '7c885c79a611b89f3a1095fce6eae5c6', 'date' => '19 July 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.15 binaries and source', @@ -16043,29 +16043,29 @@ $OLDRELEASES = array ( 'date' => '19 July 2012', 'museum' => true, ), - '5.3.14' => + '5.3.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.14.tar.bz2', 'name' => 'PHP 5.3.14 (tar.bz2)', 'md5' => '370be99c5cdc2e756c82c44d774933c8', 'date' => '14 June 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.14.tar.gz', 'name' => 'PHP 5.3.14 (tar.gz)', 'md5' => '148730865242a031a638ee3bab4a9d4d', 'date' => '14 June 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.14 binaries and source', @@ -16074,22 +16074,22 @@ $OLDRELEASES = array ( 'date' => '14 June 2012', 'museum' => true, ), - '5.3.13' => + '5.3.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.13.tar.bz2', 'name' => 'PHP 5.3.13 (tar.bz2)', 'md5' => '370be99c5cdc2e756c82c44d774933c8', 'date' => '08 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.13.tar.gz', 'name' => 'PHP 5.3.13 (tar.gz)', @@ -16100,22 +16100,22 @@ $OLDRELEASES = array ( 'date' => '08 May 2012', 'museum' => true, ), - '5.3.12' => + '5.3.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.12.tar.bz2', 'name' => 'PHP 5.3.12 (tar.bz2)', 'md5' => 'cf02c29be279c506cbd4ffc2819d7c82', 'date' => '03 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.12.tar.gz', 'name' => 'PHP 5.3.12 (tar.gz)', @@ -16126,22 +16126,22 @@ $OLDRELEASES = array ( 'date' => '03 May 2012', 'museum' => true, ), - '5.3.11' => + '5.3.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.11.tar.bz2', 'name' => 'PHP 5.3.11 (tar.bz2)', 'md5' => '5b9529ed89dbc48c498e9693d1af3caf', 'date' => '26 April 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.11.tar.gz', 'name' => 'PHP 5.3.11 (tar.gz)', @@ -16152,22 +16152,22 @@ $OLDRELEASES = array ( 'date' => '26 April 2012', 'museum' => true, ), - '5.3.10' => + '5.3.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.10.tar.bz2', 'name' => 'PHP 5.3.10 (tar.bz2)', 'md5' => '816259e5ca7d0a7e943e56a3bb32b17f', 'date' => '02 February 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.10.tar.gz', 'name' => 'PHP 5.3.10 (tar.gz)', @@ -16178,22 +16178,22 @@ $OLDRELEASES = array ( 'date' => '02 February 2012', 'museum' => true, ), - '5.3.9' => + '5.3.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.9.tar.bz2', 'name' => 'PHP 5.3.9 (tar.bz2)', 'md5' => 'dd3288ed5c08cd61ac5bf619cb357521', 'date' => '10 January 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.9.tar.gz', 'name' => 'PHP 5.3.9 (tar.gz)', @@ -16204,22 +16204,22 @@ $OLDRELEASES = array ( 'date' => '10 January 2012', 'museum' => true, ), - '5.3.8' => + '5.3.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.8.tar.bz2', 'name' => 'PHP 5.3.8 (tar.bz2)', 'md5' => '704cd414a0565d905e1074ffdc1fadfb', 'date' => '23 August 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.8.tar.gz', 'name' => 'PHP 5.3.8 (tar.gz)', @@ -16230,22 +16230,22 @@ $OLDRELEASES = array ( 'date' => '23 August 2011', 'museum' => true, ), - '5.3.7' => + '5.3.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.7.tar.bz2', 'name' => 'PHP 5.3.7 (tar.bz2)', 'md5' => '2d47d003c96de4e88863ff38da61af33', 'date' => '18 August 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.7.tar.gz', 'name' => 'PHP 5.3.7 (tar.gz)', @@ -16256,22 +16256,22 @@ $OLDRELEASES = array ( 'date' => '18 August 2011', 'museum' => true, ), - '5.3.6' => + '5.3.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.6.tar.bz2', 'name' => 'PHP 5.3.6 (tar.bz2)', 'md5' => '2286f5a82a6e8397955a0025c1c2ad98', 'date' => '19 March 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.6.tar.gz', 'name' => 'PHP 5.3.6 (tar.gz)', @@ -16282,22 +16282,22 @@ $OLDRELEASES = array ( 'date' => '19 March 2011', 'museum' => true, ), - '5.3.5' => + '5.3.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.5.tar.bz2', 'name' => 'PHP 5.3.5 (tar.bz2)', 'md5' => '8aaf20c95e91f25c5b6a591e5d6d61b9', 'date' => '06 January 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.5.tar.gz', 'name' => 'PHP 5.3.5 (tar.gz)', @@ -16308,22 +16308,22 @@ $OLDRELEASES = array ( 'date' => '06 January 2011', 'museum' => true, ), - '5.3.4' => + '5.3.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.4.tar.bz2', 'name' => 'PHP 5.3.4 (tar.bz2)', 'md5' => '2c069d8f690933e3bf6a8741ed818150', 'date' => '09 December 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.4.tar.gz', 'name' => 'PHP 5.3.4 (tar.gz)', @@ -16334,22 +16334,22 @@ $OLDRELEASES = array ( 'date' => '09 December 2010', 'museum' => true, ), - '5.2.17' => + '5.2.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.17.tar.bz2', 'name' => 'PHP 5.2.17 (tar.bz2)', 'md5' => 'b27947f3045220faf16e4d9158cbfe13', 'date' => '06 January 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.17.tar.gz', 'name' => 'PHP 5.2.17 (tar.gz)', @@ -16360,22 +16360,22 @@ $OLDRELEASES = array ( 'date' => '06 January 2011', 'museum' => true, ), - '5.2.16' => + '5.2.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.16.tar.bz2', 'name' => 'PHP 5.2.16 (tar.bz2)', 'md5' => '3b0bd012bd53bac9a5fefca61eccd5c6', 'date' => '16 December 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.16.tar.gz', 'name' => 'PHP 5.2.16 (tar.gz)', @@ -16386,22 +16386,22 @@ $OLDRELEASES = array ( 'date' => '16 December 2010', 'museum' => true, ), - '5.2.15' => + '5.2.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.15.tar.bz2', 'name' => 'PHP 5.2.15 (tar.bz2)', 'md5' => 'd4ccad187b12835024980a0cea362893', 'date' => '09 December 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.15.tar.gz', 'name' => 'PHP 5.2.15 (tar.gz)', @@ -16412,22 +16412,22 @@ $OLDRELEASES = array ( 'date' => '09 December 2010', 'museum' => true, ), - '5.3.3' => + '5.3.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.3.tar.bz2', 'name' => 'PHP 5.3.3 (tar.bz2)', 'md5' => '21ceeeb232813c10283a5ca1b4c87b48', 'date' => '22 July 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.3.tar.gz', 'name' => 'PHP 5.3.3 (tar.gz)', @@ -16438,22 +16438,22 @@ $OLDRELEASES = array ( 'date' => '22 July 2010', 'museum' => true, ), - '5.2.14' => + '5.2.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.14.tar.bz2', 'name' => 'PHP 5.2.14 (tar.bz2)', 'md5' => '21ceeeb232813c10283a5ca1b4c87b48', 'date' => '22 July 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.14.tar.gz', 'name' => 'PHP 5.2.14 (tar.gz)', @@ -16464,22 +16464,22 @@ $OLDRELEASES = array ( 'date' => '22 July 2010', 'museum' => true, ), - '5.3.2' => + '5.3.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.2.tar.bz2', 'name' => 'PHP 5.3.2 (tar.bz2)', 'md5' => '46f500816125202c48a458d0133254a4', 'date' => '04 Mar 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.2.tar.gz', 'name' => 'PHP 5.3.2 (tar.gz)', @@ -16490,22 +16490,22 @@ $OLDRELEASES = array ( 'date' => '04 Mar 2010', 'museum' => true, ), - '5.2.13' => + '5.2.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.13.tar.bz2', 'name' => 'PHP 5.2.13 (tar.bz2)', 'md5' => 'eb4d0766dc4fb9667f05a68b6041e7d1', 'date' => '25 Feb 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.13.tar.gz', 'name' => 'PHP 5.2.13 (tar.gz)', @@ -16513,9 +16513,9 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.13-Win32.zip', 'name' => 'PHP 5.2.13 zip package', @@ -16523,7 +16523,7 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.13-win32-installer.msi', 'name' => 'PHP 5.2.13 installer', @@ -16531,14 +16531,14 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.13-Win32.zip', 'name' => 'PHP 5.2.13 Win32 Debug Pack', 'md5' => 'e3382d5acbb527d21b768766f563a75d', 'date' => '25 Feb 2010', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.13-nts-Win32.zip', 'name' => 'PHP 5.2.13 Non-thread-safe zip package', @@ -16546,14 +16546,14 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.13-nts-win32-installer.msi', 'name' => 'PHP 5.2.13 Non-thread-safe installer', 'md5' => 'd0e502db99565afde77b4f58f13fbad2', 'date' => '25 Feb 2010', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.13-nts-Win32.zip', 'name' => 'PHP 5.2.13 Non-thread-safe Win32 Debug Pack', @@ -16564,22 +16564,22 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'museum' => true, ), - '5.3.1' => + '5.3.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.1.tar.bz2', 'name' => 'PHP 5.3.1 (tar.bz2)', 'md5' => '63e97ad450f0f7259e785100b634c797', 'date' => '19 Nov 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.1.tar.gz', 'name' => 'PHP 5.3.1 (tar.gz)', @@ -16590,22 +16590,22 @@ $OLDRELEASES = array ( 'date' => '19 Nov 2009', 'museum' => true, ), - '5.2.12' => + '5.2.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.12.tar.bz2', 'name' => 'PHP 5.2.12 (tar.bz2)', 'md5' => '5b7077e366c7eeab34da31dd860a1923', 'date' => '17 December 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.12.tar.gz', 'name' => 'PHP 5.2.12 (tar.gz)', @@ -16613,9 +16613,9 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.12-Win32.zip', 'name' => 'PHP 5.2.12 zip package', @@ -16623,7 +16623,7 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.12-win32-installer.msi', 'name' => 'PHP 5.2.12 installer', @@ -16631,14 +16631,14 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.12-Win32.zip', 'name' => 'PHP 5.2.12 Win32 Debug Pack', 'md5' => 'b21a5abb9e5bae4c657d0983986c4434', 'date' => '17 December 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.12-nts-Win32.zip', 'name' => 'PHP 5.2.12 Non-thread-safe zip package', @@ -16646,14 +16646,14 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.12-nts-win32-installer.msi', 'name' => 'PHP 5.2.12 Non-thread-safe installer', 'md5' => '418656307a52c99f2175c748da31a9d8', 'date' => '17 December 2009', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.12-nts-Win32.zip', 'name' => 'PHP 5.2.12 Non-thread-safe Win32 Debug Pack', @@ -16664,22 +16664,22 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'museum' => true, ), - '5.2.11' => + '5.2.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.11.tar.bz2', 'name' => 'PHP 5.2.11 (tar.bz2)', 'md5' => '286bf34630f5643c25ebcedfec5e0a09', 'date' => '17 September 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.11.tar.gz', 'name' => 'PHP 5.2.11 (tar.gz)', @@ -16687,9 +16687,9 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.11-Win32.zip', 'name' => 'PHP 5.2.11 zip package', @@ -16697,7 +16697,7 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.11-win32-installer.msi', 'name' => 'PHP 5.2.11 installer', @@ -16705,14 +16705,14 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.11-Win32.zip', 'name' => 'PHP 5.2.11 Win32 Debug Pack', 'md5' => '38cb1b783dd08dff41f445b582d2ffed', 'date' => '17 September 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.11-nts-Win32.zip', 'name' => 'PHP 5.2.11 Non-thread-safe zip package', @@ -16720,14 +16720,14 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.11-nts-win32-installer.msi', 'name' => 'PHP 5.2.11 Non-thread-safe installer', 'md5' => '4fe1344093e26c2a51a82094bac131ad', 'date' => '17 September 2009', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.11-nts-Win32.zip', 'name' => 'PHP 5.2.11 Non-thread-safe Win32 Debug Pack', @@ -16738,22 +16738,22 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'museum' => true, ), - '5.3.0' => + '5.3.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.0.tar.bz2', 'name' => 'PHP 5.3.0 (tar.bz2)', 'md5' => '846760cd655c98dfd86d6d97c3d964b0', 'date' => '30 June 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.0.tar.gz', 'name' => 'PHP 5.3.0 (tar.gz)', @@ -16764,22 +16764,22 @@ $OLDRELEASES = array ( 'date' => '30 June 2009', 'museum' => true, ), - '5.2.10' => + '5.2.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.10.tar.bz2', 'name' => 'PHP 5.2.10 (tar.bz2)', 'md5' => '15c7b5a87f57332d6fc683528e28247b', 'date' => '18 June 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.10.tar.gz', 'name' => 'PHP 5.2.10 (tar.gz)', @@ -16787,9 +16787,9 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.10-Win32.zip', 'name' => 'PHP 5.2.10 zip package', @@ -16797,7 +16797,7 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.10-win32-installer.msi', 'name' => 'PHP 5.2.10 installer', @@ -16805,14 +16805,14 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.10-Win32.zip', 'name' => 'PHP 5.2.10 Win32 Debug Pack', 'md5' => 'f6bdea0e1f71ca46f78e78c86e86606', 'date' => '18 June 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.10-nts-Win32.zip', 'name' => 'PHP 5.2.10 Non-thread-safe zip package', @@ -16820,14 +16820,14 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.10-nts-win32-installer.msi', 'name' => 'PHP 5.2.10 Non-thread-safe installer', 'md5' => 'e341deb2872d3f8f4589593da88bbede', 'date' => '18 June 2009', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.10-nts-Win32.zip', 'name' => 'PHP 5.2.10 Non-thread-safe Win32 Debug Pack', @@ -16838,22 +16838,22 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'museum' => true, ), - '5.2.9' => + '5.2.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.9.tar.bz2', 'name' => 'PHP 5.2.9 (tar.bz2)', 'md5' => '280d6cda7f72a4fc6de42fda21ac2db7', 'date' => '26 February 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.9.tar.gz', 'name' => 'PHP 5.2.9 (tar.gz)', @@ -16861,9 +16861,9 @@ $OLDRELEASES = array ( 'date' => '26 February 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.9-2-Win32.zip', 'name' => 'PHP 5.2.9-2 zip package', @@ -16871,7 +16871,7 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.9-2-win32-installer.msi', 'name' => 'PHP 5.2.9-2 installer', @@ -16879,14 +16879,14 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.9-2-Win32.zip', 'name' => 'PHP 5.2.9 Win32 Debug Pack', 'md5' => 'b52e9a152e105c7391c832fdfe0fa06f', 'date' => '8 April 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.9-2-nts-Win32.zip', 'name' => 'PHP 5.2.9-2 Non-thread-safe zip package', @@ -16894,7 +16894,7 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.9-2-nts-win32-installer.msi', 'name' => 'PHP 5.2.9-2 Non-thread-safe installer', @@ -16902,7 +16902,7 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.9-2-nts-Win32.zip', 'name' => 'PHP 5.2.9 Non-thread-safe Win32 Debug Pack', @@ -16913,22 +16913,22 @@ $OLDRELEASES = array ( 'date' => '26 February 2009', 'museum' => true, ), - '5.2.8' => + '5.2.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.8.tar.bz2', 'name' => 'PHP 5.2.8 (tar.bz2)', 'md5' => '8760a833cf10433d3e72271ab0d0eccf', 'date' => '08 December 2008', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.8.tar.gz', 'name' => 'PHP 5.2.8 (tar.gz)', @@ -16936,9 +16936,9 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.8-Win32.zip', 'name' => 'PHP 5.2.8 zip package', @@ -16946,7 +16946,7 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.8-win32-installer.msi', 'name' => 'PHP 5.2.8 installer', @@ -16954,14 +16954,14 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.8-Win32.zip', 'name' => 'PHP 5.2.8 Win32 Debug Pack', 'md5' => 'fabc6e79c1c66dc80320165336b5ed54', 'date' => '08 December 2008', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.8-nts-Win32.zip', 'name' => 'PHP 5.2.8 Non-thread-safe zip package', @@ -16969,14 +16969,14 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.8-nts-win32-installer.msi', 'name' => 'PHP 5.2.8 Non-thread-safe installer', 'md5' => 'd4490964818542c416644b3d67f5b350', 'date' => '08 December 2008', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.8-nts-Win32.zip', 'name' => 'PHP 5.2.8 Non-thread-safe Win32 Debug Pack', @@ -16987,22 +16987,22 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'museum' => true, ), - '5.2.6' => + '5.2.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.6.tar.bz2', 'name' => 'PHP 5.2.6 (tar.bz2)', 'md5' => '7380ffecebd95c6edb317ef861229ebd', 'date' => '01 May 2008', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.6.tar.gz', 'name' => 'PHP 5.2.6 (tar.gz)', @@ -17010,9 +17010,9 @@ $OLDRELEASES = array ( 'date' => '01 May 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.6-Win32.zip', 'name' => 'PHP 5.2.6 zip package', @@ -17020,7 +17020,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.6-win32-installer.msi', 'name' => 'PHP 5.2.6 installer', @@ -17028,7 +17028,7 @@ $OLDRELEASES = array ( 'date' => '6 May 2008', 'note' => 'Update May 6th: Added missing XSL and IMAP extension', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.2.6-Win32.zip', 'name' => 'PECL 5.2.6 Win32 binaries', @@ -17036,7 +17036,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 3 => + 3 => array ( 'filename' => 'php-debug-pack-5.2.6-Win32.zip', 'name' => 'PHP 5.2.6 Win32 Debug Pack', @@ -17044,7 +17044,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.6-nts-Win32.zip', 'name' => 'PHP 5.2.6 Non-thread-safe zip package', @@ -17052,7 +17052,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 5 => + 5 => array ( 'filename' => 'php-5.2.6-nts-win32-installer.msi', 'name' => 'PHP 5.2.6 Non-thread-safe installer', @@ -17060,7 +17060,7 @@ $OLDRELEASES = array ( 'date' => '6 May 2008', 'note' => 'Update May 6th: Added missing XSL and IMAP extension', ), - 6 => + 6 => array ( 'filename' => 'php-debug-pack-5.2.6-nts-Win32.zip', 'name' => 'PHP 5.2.6 Win32 Debug Pack', @@ -17068,7 +17068,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 7 => + 7 => array ( 'filename' => 'pecl-5.2.6-nts-Win32.zip', 'name' => 'PECL 5.2.6 Non-thread-safe Win32 binaries', @@ -17080,509 +17080,509 @@ $OLDRELEASES = array ( 'date' => '01 May 2008', 'museum' => true, ), - '5.2.5' => + '5.2.5' => array ( 'date' => '08 November 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.5.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '1fe14ca892460b09f06729941a1bb605', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.5.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '61a0e1661b70760acc77bc4841900b7a', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.5-Win32.zip', 'name' => 'Windows binary', 'md5' => 'a1e31c0d872ab030a2256b1cd6d3b7d1', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.5-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.5', 'md5' => 'a3553b61c9332d08a5044cf9bf89f2df', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_5.php', ), 'museum' => true, ), - '5.2.4' => + '5.2.4' => array ( 'date' => '30 August 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.4.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '55c97a671fdabf462cc7a82971a656d2', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.4.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '0826e231c3148b29fd039d7a8c893ad3', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.4-Win32.zip', 'name' => 'Windows binary', 'md5' => '979b8a305b028b296b97ed72322026b2', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.4-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.4', 'md5' => 'dd98dfe607ceb98e727c394d5bd679fb', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_4.php', ), 'museum' => true, ), - '5.2.3' => + '5.2.3' => array ( 'date' => '31 May 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.3.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => 'eb50b751c8e1ced05bd012d5a0e4dec3', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.3.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => 'df79b04d63fc4c1ccb6d8ea58a9cf3ac', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.3-Win32.zip', 'name' => 'Windows binary', 'md5' => 'ff6e5dc212823009e68f26d66d85cbac', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.3-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.3', 'md5' => '0480ffaf5a5333e83d90d75cece54748', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_3.php', ), 'museum' => true, ), - '5.2.2' => + '5.2.2' => array ( 'date' => '03 May 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.2.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => 'd084337867d70b50a10322577be0e44e', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.2.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '7a920d0096900b2b962b21dc5c55fe3c', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.2-Win32.zip', 'name' => 'Windows binary', 'md5' => '634cf45c34f80dfb1284cabf1bbb1417', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.2-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.2', 'md5' => '5d206368799dfbac983d83954328ae3a', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_2.php', ), 'museum' => true, ), - '5.2.1' => + '5.2.1' => array ( 'date' => '08 Feb 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.1.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '261218e3569a777dbd87c16a15f05c8d', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.1.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '604eaee2b834bb037d2c83e53e300d3f', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.1-Win32.zip', 'name' => 'Windows binary', 'md5' => '682dd66fb03c7dd24c522f474e1b04b6', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.1-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.1', 'md5' => 'dc8b394146faf7effa6f26df02e8e534', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_1.php', ), 'museum' => true, ), - '5.2.0' => + '5.2.0' => array ( 'date' => '02 Nov 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.0.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => 'e6029fafcee029edcfa2ceed7a005333', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.0.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '52d7e8b3d8d7573e75c97340f131f988', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.0-Win32.zip', 'name' => 'Windows binary', 'md5' => '910734e96f41190020272d80b82ce553', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.0-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.0', 'md5' => '638f5997884ae3ce35d2b3ec12f399b2', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_0.php', ), 'museum' => true, ), - '5.1.6' => + '5.1.6' => array ( 'date' => '24 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.6.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.6.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.6-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.1.6-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.6', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_6.php', ), 'museum' => true, ), - '5.1.5' => + '5.1.5' => array ( 'date' => '17 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.5.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.5-installer.exe', 'name' => 'Windows installer', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.1.5-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.5', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_5.php', ), 'museum' => true, ), - '5.1.4' => + '5.1.4' => array ( 'date' => '04 May 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.4.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.4-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.4-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.4', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_4.php', ), 'museum' => true, ), - '5.1.3' => + '5.1.3' => array ( 'date' => '02 May 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.3-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.3-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.3', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_3.php', ), 'museum' => true, ), - '5.1.2' => + '5.1.2' => array ( 'date' => '12 Jan 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.2-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.2-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.2', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_2.php', ), 'museum' => true, ), - '5.1.1' => + '5.1.1' => array ( 'date' => '28 Nov 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.1-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.1-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.1', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_1.php', ), 'museum' => true, ), - '5.1.0' => + '5.1.0' => array ( 'date' => '24 Nov 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_0.php', ), 'museum' => true, ), - '5.0.5' => + '5.0.5' => array ( 'date' => '05 Sep 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.5-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.5-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.5-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.5', @@ -17590,195 +17590,195 @@ $OLDRELEASES = array ( ), 'museum' => true, ), - '5.0.4' => + '5.0.4' => array ( 'date' => '31 Mar 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.4-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.4-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.4', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/55', ), 'museum' => true, ), - '5.0.3' => + '5.0.3' => array ( 'date' => '15 Dec 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.3-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.3-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.3', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/54', ), 'museum' => true, ), - '5.0.2' => + '5.0.2' => array ( 'date' => '23 Sep 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.2-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.2-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.2', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/53', ), 'museum' => true, ), - '5.0.1' => + '5.0.1' => array ( 'date' => '12 Aug 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.0.1-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.1', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/51', ), 'museum' => true, ), - '5.0.0' => + '5.0.0' => array ( 'date' => '13 July 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.0-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.0-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.0', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/50', ), 'museum' => true, ), ), - 4 => + 4 => array ( - '4.4.9' => + '4.4.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.9.tar.bz2', 'name' => 'PHP 4.4.9 (tar.bz2)', 'md5' => '2e3b2a0e27f10cb84fd00e5ecd7a1880', 'date' => '07 August 2008', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.9.tar.gz', 'name' => 'PHP 4.4.9 (tar.gz)', @@ -17786,9 +17786,9 @@ $OLDRELEASES = array ( 'date' => '07 August 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.9-Win32.zip', 'name' => 'PHP 4.4.9 zip package', @@ -17799,22 +17799,22 @@ $OLDRELEASES = array ( 'date' => '07 August 2008', 'museum' => true, ), - '4.4.8' => + '4.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.8.tar.bz2', 'name' => 'PHP 4.4.8 (tar.bz2)', 'md5' => 'ed31e77414e0331e787487b53732dbca', 'date' => '03 January 2008', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.8.tar.gz', 'name' => 'PHP 4.4.8 (tar.gz)', @@ -17822,9 +17822,9 @@ $OLDRELEASES = array ( 'date' => '03 January 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.8-Win32.zip', 'name' => 'PHP 4.4.8 zip package', @@ -17835,22 +17835,22 @@ $OLDRELEASES = array ( 'date' => '03 January 2008', 'museum' => true, ), - '4.4.7' => + '4.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.7.tar.bz2', 'name' => 'PHP 4.4.7 (tar.bz2)', 'md5' => '3f21b44d37a57ca3876d3aea713c700d', 'date' => '03 May 2007', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.7.tar.gz', 'name' => 'PHP 4.4.7 (tar.gz)', @@ -17858,9 +17858,9 @@ $OLDRELEASES = array ( 'date' => '03 May 2007', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.7-Win32.zip', 'name' => 'PHP 4.4.7 zip package', @@ -17872,857 +17872,857 @@ $OLDRELEASES = array ( 'date' => '03 May 2007', 'museum' => true, ), - '4.4.6' => + '4.4.6' => array ( 'date' => '01 Mar 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.6.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '5db283824310c87efb18c76b4735c4bd', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.6.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '07c607fcf12435f0078d72fe0de4e3c0', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.6-Win32.zip', 'name' => 'Windows binary', 'md5' => '486764cefb5f7bde39e95c49b2e38635', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_6.php', ), 'museum' => true, ), - '4.4.5' => + '4.4.5' => array ( 'date' => '14 Feb 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.5.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.5-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_5.php', ), 'museum' => true, ), - '4.4.4' => + '4.4.4' => array ( 'date' => '17 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.4.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.4-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_4.php', ), 'museum' => true, ), - '4.4.3' => + '4.4.3' => array ( 'date' => '03 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.3.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.3-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_3.php', ), 'museum' => true, ), - '4.4.2' => + '4.4.2' => array ( 'date' => '13 Jan 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.2.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.2.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_2.php', ), 'museum' => true, ), - '4.4.1' => + '4.4.1' => array ( 'date' => '31 Oct 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.1.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.1.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_1.php', ), 'museum' => true, ), - '4.4.0' => + '4.4.0' => array ( 'date' => '11 Jul 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.0.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.0.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_0.php', ), 'museum' => true, ), - '4.3.11' => + '4.3.11' => array ( 'date' => '31 Mar 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.11.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.11.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.11-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.11-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_11.php', 'French' => '/releases/4_3_11_fr.php', ), 'museum' => true, ), - '4.3.10' => + '4.3.10' => array ( 'date' => '15 Dec 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.10.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.10.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.10-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.10-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_10.php', 'French' => '/releases/4_3_10_fr.php', ), 'museum' => true, ), - '4.3.9' => + '4.3.9' => array ( 'date' => '22 Sep 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.9.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.9.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.9-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.9-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_9.php', 'French' => '/releases/4_3_9_fr.php', ), 'museum' => true, ), - '4.3.8' => + '4.3.8' => array ( 'date' => '13 July 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.8.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.8-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.8-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_8.php', ), 'museum' => true, ), - '4.3.7' => + '4.3.7' => array ( 'date' => '03 June 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.7.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.7-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.7-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_7.php', 'French' => '/releases/4_3_7_fr.php', ), 'museum' => true, ), - '4.3.6' => + '4.3.6' => array ( 'date' => '15 April 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.6.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.6-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.6-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_6.php', 'French' => '/releases/4_3_6_fr.php', ), 'museum' => true, ), - '4.3.5' => + '4.3.5' => array ( 'date' => '26 March 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.5-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.5-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_5.php', 'French' => '/releases/4_3_5_fr.php', ), 'museum' => true, ), - '4.3.4' => + '4.3.4' => array ( 'date' => '03 November 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.4-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_4.php', 'French' => '/releases/4_3_4_fr.php', ), 'museum' => true, ), - '4.3.3' => + '4.3.3' => array ( 'date' => '25 August 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.3.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.3.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.3-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_3.php', 'French' => '/releases/4_3_3_fr.php', ), 'museum' => true, ), - '4.3.2' => + '4.3.2' => array ( 'date' => '29 May 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.2.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.2.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_2.php', 'French' => '/releases/4_3_2_fr.php', ), 'museum' => true, ), - '4.3.1' => + '4.3.1' => array ( 'date' => '17 February 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_1.php', ), 'museum' => true, ), - '4.3.0' => + '4.3.0' => array ( 'date' => '27 December 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_0.php', 'French' => '/releases/4_3_0_fr.php', ), 'museum' => true, ), - '4.2.3' => + '4.2.3' => array ( 'date' => '6 September 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.3-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/37', ), 'museum' => true, ), - '4.2.2' => + '4.2.2' => array ( 'date' => '22 July 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_2_2.php', 'French' => '/releases/4_2_2_fr.php', ), 'museum' => true, ), - '4.2.1' => + '4.2.1' => array ( 'date' => '13 May 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_2_1.php', 'French' => '/releases/4_2_1_fr.php', ), 'museum' => true, ), - '4.2.0' => + '4.2.0' => array ( 'date' => '22 April 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_2_0.php', 'French' => '/releases/4_2_0_fr.php', ), 'museum' => true, ), - '4.1.2' => + '4.1.2' => array ( 'date' => '12 March 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.1.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_1_2_win32.php', ), 'museum' => true, ), - '4.1.1' => + '4.1.1' => array ( 'date' => '26 Dec 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.1.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_1_1.php', ), 'museum' => true, ), - '4.1.0' => + '4.1.0' => array ( 'date' => '10 Dec 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.0-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_1_0.php', 'French' => '/releases/4_1_0_fr.php', ), 'museum' => true, ), - '4.0.6' => + '4.0.6' => array ( 'date' => '23 June 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.6.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.6-Win32.zip', 'name' => 'Windows binary', @@ -18730,20 +18730,20 @@ $OLDRELEASES = array ( ), 'museum' => true, ), - '4.0.5' => + '4.0.5' => array ( 'date' => '30 April 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.5-Win32.zip', 'name' => 'Windows binary', @@ -18751,185 +18751,185 @@ $OLDRELEASES = array ( ), 'museum' => true, ), - '4.0.4' => + '4.0.4' => array ( 'date' => '19 December 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.4.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.4pl1.tar.gz', 'name' => '4.0.4pl1 Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.4-installer.zip', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'php-4.0.4pl1-Win32.zip', 'name' => '4.0.4pl1 Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/28', ), 'museum' => true, ), - '4.0.3' => + '4.0.3' => array ( 'date' => '11 October 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.3.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.3pl1.tar.gz', 'name' => '4.0.3pl1 Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.3pl1-installer.exe', 'name' => '4.0.3pl1 Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/26', 'English (pl1)' => 'https://news-web.php.net/php.announce/27', ), 'museum' => true, ), - '4.0.2' => + '4.0.2' => array ( 'date' => '29 August 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.2-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/24', ), 'museum' => true, ), - '4.0.1' => + '4.0.1' => array ( 'date' => '28 June 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.1.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.1pl2.tar.gz', 'name' => '4.0.1pl2 Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.1pl1-Win32.zip', 'name' => '4.0.1pl1 Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/23', ), 'museum' => true, ), - '4.0.0' => + '4.0.0' => array ( 'date' => '22 May 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.0-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/22', ), 'museum' => true, ), ), - 3 => + 3 => array ( - '3.0.x (latest)' => + '3.0.x (latest)' => array ( 'date' => '20 Oct 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-3.0.18.tar.gz', 'name' => 'PHP 3.0.18 Source Code', 'md5' => 'b4b8f7f1151ce66d5f3910a066651133', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-3.0.17-win32.zip', 'name' => 'PHP 3.0.17 Windows binary', From a3f281e98888c173ca04d035efd7d2463b5aff64 Mon Sep 17 00:00:00 2001 From: Mark Randall Date: Sat, 6 Jun 2026 21:48:17 +0100 Subject: [PATCH 47/76] Start of structured data --- src/Metadata/ChangeLine.php | 12 ++ src/Metadata/ChangeModule.php | 14 ++ src/Metadata/PointReleaseData.php | 80 ++++++++++++ src/Metadata/ReleaseFile.php | 13 ++ src/Metadata/ReleaseRawDataLoader.php | 87 +++++++++++++ src/Metadata/VersionData.php | 176 ++++++++++++++++++++++++++ src/ProjectGlobals.php | 18 +++ 7 files changed, 400 insertions(+) create mode 100644 src/Metadata/ChangeLine.php create mode 100644 src/Metadata/ChangeModule.php create mode 100644 src/Metadata/PointReleaseData.php create mode 100644 src/Metadata/ReleaseFile.php create mode 100644 src/Metadata/ReleaseRawDataLoader.php create mode 100644 src/Metadata/VersionData.php create mode 100644 src/ProjectGlobals.php diff --git a/src/Metadata/ChangeLine.php b/src/Metadata/ChangeLine.php new file mode 100644 index 0000000000..924fdb5dc1 --- /dev/null +++ b/src/Metadata/ChangeLine.php @@ -0,0 +1,12 @@ + */ + public array $changes, + ) { + + } +} diff --git a/src/Metadata/PointReleaseData.php b/src/Metadata/PointReleaseData.php new file mode 100644 index 0000000000..141b305055 --- /dev/null +++ b/src/Metadata/PointReleaseData.php @@ -0,0 +1,80 @@ +major = $major; + $this->minor = $minor; + $this->patch = $patch; + } + + public VersionData $parent { + get => VersionData::Create($this->major . '.' . $this->minor); + } + + public string $downloadUrl { + get => '/downloads.php?version=' . $this->label; + } + + /** + * @phpstan-import-type ReleaseDataArray from ReleaseRawDataLoader + * @phpstan-return ReleaseRawDataLoader + */ + protected function data(): array + { + return $this->_data ??= ReleaseRawDataLoader::releaseDataForLabel($this->label); + } + + /** + * @var list + */ + public array $sources { + get { + $files = []; + foreach ($this->data()['files'] as $file) { + $files[] = new ReleaseFile(filename: $file['filename'], name: $file['name'], hashes: []); + } + + return $files; + } + } + + /** + * @var array + */ + public array $changedModules { + get { + if ($this->_changedModuleCache === null) { + $path = ProjectGlobals::getIncludeDataPath() + . '/releases/' . $this->major . '.' . $this->minor . '/changelist.inc'; + + if (!file_exists($path)) { + return []; + } + + $source = (require $path)[$this->label] ?? []; + foreach ($source['modules'] as $moduleId => $lines) { + $lx = []; + foreach ($lines as $line) { + $lx[] = new ChangeLine($line['message']); + } + + $this->_changedModuleCache[$moduleId] = new ChangeModule($moduleId, $lx); + } + } + + return $this->_changedModuleCache; + } + } +} diff --git a/src/Metadata/ReleaseFile.php b/src/Metadata/ReleaseFile.php new file mode 100644 index 0000000000..e5aca6cea1 --- /dev/null +++ b/src/Metadata/ReleaseFile.php @@ -0,0 +1,13 @@ +, + * windows?: list + * } + */ +class ReleaseRawDataLoader +{ + /** + * Returns all the revisions structured as $result[8.4][8.4.3] = [ ... ] + * + * @return array + */ + static function allReleaseDataByVersionByLabel(): array + { + static $cache = null; + if (!$cache) { + $flatten = static function (array $source) use (&$cache): void { + foreach ($source as $majorVersions) { + foreach ($majorVersions as $label => $revision) { + $revision['label'] = $label; + [$major, $minor] = explode('.', $label); + $cache[$major . '.' . $minor][$label] = $revision; + } + } + }; + + $flatten($GLOBALS['RELEASES']); + $flatten($GLOBALS['OLDRELEASES']); + + ksort($cache); + } + + return $cache; + } + + /** + * Returns all the revisions structured as $result[8.4.3] = [ ... ] + * + * @return array + */ + static function allReleasesByLabel(): array + { + static $cache = null; + if (!$cache) { + $cache = []; + foreach (self::allReleaseDataByVersionByLabel() as $majorVersions) { + foreach ($majorVersions as $label => $revision) { + $cache[$label] = $revision; + } + } + } + + return $cache; + } + + /** + * @return array + */ + static function allReleasesForVersion(string $version): array + { + return self::allReleaseDataByVersionByLabel()[$version] ?? []; + } + + /** + * @return ReleaseDataArray + */ + static function releaseDataForLabel(string $label): array + { + return self::allReleasesByLabel()[$label] ?? [ + 'announcement' => '', + 'source' => [], + 'windows' => [], + ]; + } +} diff --git a/src/Metadata/VersionData.php b/src/Metadata/VersionData.php new file mode 100644 index 0000000000..028a2a8efa --- /dev/null +++ b/src/Metadata/VersionData.php @@ -0,0 +1,176 @@ +majorVersion = $majorVersion; + $this->minorVersion = $minorVersion; + } + + public static function Create(string $label): VersionData + { + return self::$_cache[$label] ?? new VersionData($label); + } + + /** + * @return array + */ + public static function all(): array + { + if (!self::$_all) { + $flattened = []; + foreach (get_all_branches() as $major => $branches) { + foreach ($branches as $label => $data) { + $flattened[$label] = $data; + } + } + } + + return self::$_all; + } + + /** + * Returns an associative array of the latest versions of PHP + * + * @return array + */ + public static function getSupportedVersions(): array + { + $ready = []; + foreach (get_active_branches() as $versions) { + foreach ($versions as $versionId => $version) { + $ready[$versionId] = self::Create($versionId); + } + } + + return array_reverse($ready); + } + + public ?DateTimeImmutable $bugfixEOL { + get { + if ($this->_bugfixEOL === null) { + $eol = get_branch_bug_eol_date($this->label); + $this->_bugfixEOL = $eol ? DateTimeImmutable::createFromInterface($eol) : null; + } + + return $this->_bugfixEOL; + } + } + + public ?DateTimeImmutable $securityEOL { + get { + if ($this->_securityEOL === null) { + $eol = get_branch_security_eol_date($this->label); + $this->_securityEOL = $eol ? DateTimeImmutable::createFromInterface($eol) : null; + } + + return $this->_securityEOL; + } + } + + public string $logoUrl { + get => '/images/php8/logo_php' .$this->majorVersion . '_' . $this->minorVersion . '.svg'; + } + + public ?string $aboutPageURL { + get { + return '/releases/' . $this->label . '/en.php'; + } + } + + /** + * @var array + */ + public array $releases { + get { + if ($this->_pointReleases === null) { + $releases = []; + foreach (ReleaseRawDataLoader::allReleasesForVersion($this->label) as $label => $data) { + $releases[$label] = new PointReleaseData($label, $data); + } + + $this->_pointReleases = $releases; + } + + return $this->_pointReleases; + } + } + + /** + * Finds the last release associated with this version + */ + public PointReleaseData $latestRelease { + get { + $all = $this->releases; + + return $all[array_key_last($all)]; + } + } + + /** + * Provides an array of code examples that show how code can be upgraded + * to use new functionality in this version. + */ + public array $upgradeSnippets { + /** + * @return list + */ + get { + static $cache = null; + $cache ??= require __DIR__ . '/../../include/releases-comparisons.inc'; + + return $cache[$this->label]; + } + } + + /** + * Returns an array of descriptions about what is particularly special for a new version + * for use on things like the homepage + * + * @return list + */ + public function getMajorFeatureDescriptions(): array + { + static $cache = null; + $cache ??= require __DIR__ . '/../../include/branch-meta.inc'; + + return $cache[$this->label]['features'] ?? []; + } + + /** + * Gets the root-relative URL for the upgrade documentation + */ + public string $migrationUri { + get => '/' . $this->majorVersion . $this->minorVersion; + } + + /** + * Get the root-relative URL for the download page for this version + */ + public string $downloadUri { + get => '/downloads.php?version=' . $this->label; + } +} diff --git a/src/ProjectGlobals.php b/src/ProjectGlobals.php new file mode 100644 index 0000000000..3a7d92a127 --- /dev/null +++ b/src/ProjectGlobals.php @@ -0,0 +1,18 @@ + Date: Sat, 6 Jun 2026 21:48:37 +0100 Subject: [PATCH 48/76] Include GST theme in standard headers --- include/header.inc | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/include/header.inc b/include/header.inc index 92156b4d59..b7a639959a 100644 --- a/include/header.inc +++ b/include/header.inc @@ -1,9 +1,13 @@ $modified): ?> - + - - - - - + + + + + - - + + @@ -98,16 +102,13 @@ if (!isset($config["languages"])) { $modified): ?> - + $modified): ?> - + - - - @@ -131,7 +132,7 @@ if (!isset($config["languages"])) { - +