<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[51591] trunk/src/wp-includes/sodium_compat/src: Upgrade/Install: Update sodium_compat to v1.17.0.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/51591">51591</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/51591","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2021-08-10 13:03:41 +0000 (Tue, 10 Aug 2021)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Upgrade/Install: Update sodium_compat to v1.17.0.

The latest version of sodium_compat includes fixes for PHP 8.1 compatibility and a fix for PHP 5.6 compatibility.

A full list of changes in this update can be found on GitHub:
https://github.com/paragonie/sodium_compat/compare/v1.16.1...v1.17.0

Follow-up to <a href="https://core.trac.wordpress.org/changeset/49741">[49741]</a>, <a href="https://core.trac.wordpress.org/changeset/51002">[51002]</a>.

Props jrf.
Fixes <a href="https://core.trac.wordpress.org/ticket/53907">#53907</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludessodium_compatsrcCompatphp">trunk/src/wp-includes/sodium_compat/src/Compat.php</a></li>
<li><a href="#trunksrcwpincludessodium_compatsrcCoreChaCha20Ctxphp">trunk/src/wp-includes/sodium_compat/src/Core/ChaCha20/Ctx.php</a></li>
<li><a href="#trunksrcwpincludessodium_compatsrcCoreCurve25519Fephp">trunk/src/wp-includes/sodium_compat/src/Core/Curve25519/Fe.php</a></li>
<li><a href="#trunksrcwpincludessodium_compatsrcCoreCurve25519php">trunk/src/wp-includes/sodium_compat/src/Core/Curve25519.php</a></li>
<li><a href="#trunksrcwpincludessodium_compatsrcCoreUtilphp">trunk/src/wp-includes/sodium_compat/src/Core/Util.php</a></li>
<li><a href="#trunksrcwpincludessodium_compatsrcCore32ChaCha20Ctxphp">trunk/src/wp-includes/sodium_compat/src/Core32/ChaCha20/Ctx.php</a></li>
<li><a href="#trunksrcwpincludessodium_compatsrcCore32Curve25519Fephp">trunk/src/wp-includes/sodium_compat/src/Core32/Curve25519/Fe.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludessodium_compatsrcCompatphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/sodium_compat/src/Compat.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/sodium_compat/src/Compat.php        2021-08-10 12:52:48 UTC (rev 51590)
+++ trunk/src/wp-includes/sodium_compat/src/Compat.php  2021-08-10 13:03:41 UTC (rev 51591)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3013,7 +3013,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     /**
</span><span class="cx" style="display: block; padding: 0 10px">      * DANGER! UNAUTHENTICATED ENCRYPTION!
</span><span class="cx" style="display: block; padding: 0 10px">      *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-     * Unless you are following expert advice, do not used this feature.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+     * Unless you are following expert advice, do not use this feature.
</ins><span class="cx" style="display: block; padding: 0 10px">      *
</span><span class="cx" style="display: block; padding: 0 10px">      * Algorithm: XSalsa20
</span><span class="cx" style="display: block; padding: 0 10px">      *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3112,7 +3112,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     /**
</span><span class="cx" style="display: block; padding: 0 10px">      * DANGER! UNAUTHENTICATED ENCRYPTION!
</span><span class="cx" style="display: block; padding: 0 10px">      *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-     * Unless you are following expert advice, do not used this feature.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+     * Unless you are following expert advice, do not use this feature.
</ins><span class="cx" style="display: block; padding: 0 10px">      *
</span><span class="cx" style="display: block; padding: 0 10px">      * Algorithm: XChaCha20
</span><span class="cx" style="display: block; padding: 0 10px">      *
</span></span></pre></div>
<a id="trunksrcwpincludessodium_compatsrcCoreChaCha20Ctxphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/sodium_compat/src/Core/ChaCha20/Ctx.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/sodium_compat/src/Core/ChaCha20/Ctx.php     2021-08-10 12:52:48 UTC (rev 51590)
+++ trunk/src/wp-includes/sodium_compat/src/Core/ChaCha20/Ctx.php       2021-08-10 13:03:41 UTC (rev 51591)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -69,6 +69,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return void
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetSet($offset, $value)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!is_int($offset)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -86,6 +87,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @param int $offset
</span><span class="cx" style="display: block; padding: 0 10px">      * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetExists($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         return isset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -98,6 +100,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return void
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetUnset($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         unset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -110,6 +113,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return mixed|null
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetGet($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         return isset($this->container[$offset])
</span></span></pre></div>
<a id="trunksrcwpincludessodium_compatsrcCoreCurve25519Fephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/sodium_compat/src/Core/Curve25519/Fe.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/sodium_compat/src/Core/Curve25519/Fe.php    2021-08-10 12:52:48 UTC (rev 51590)
+++ trunk/src/wp-includes/sodium_compat/src/Core/Curve25519/Fe.php      2021-08-10 13:03:41 UTC (rev 51591)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -60,6 +60,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return void
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetSet($offset, $value)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!is_int($value)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -79,6 +80,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetExists($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         return isset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -91,6 +93,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return void
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetUnset($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         unset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -103,6 +106,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return int
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetGet($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!isset($this->container[$offset])) {
</span></span></pre></div>
<a id="trunksrcwpincludessodium_compatsrcCoreCurve25519php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/sodium_compat/src/Core/Curve25519.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/sodium_compat/src/Core/Curve25519.php       2021-08-10 12:52:48 UTC (rev 51590)
+++ trunk/src/wp-includes/sodium_compat/src/Core/Curve25519.php 2021-08-10 13:03:41 UTC (rev 51591)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -122,65 +122,45 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (self::strlen($s) !== 32) {
</span><span class="cx" style="display: block; padding: 0 10px">             throw new RangeException('Expected a 32-byte string.');
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h0 = self::load_4($s);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h1 = self::load_3(self::substr($s, 4, 3)) << 6;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h2 = self::load_3(self::substr($s, 7, 3)) << 5;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h3 = self::load_3(self::substr($s, 10, 3)) << 3;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h4 = self::load_3(self::substr($s, 13, 3)) << 2;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h5 = self::load_4(self::substr($s, 16, 4));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h6 = self::load_3(self::substr($s, 20, 3)) << 7;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h7 = self::load_3(self::substr($s, 23, 3)) << 5;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h8 = self::load_3(self::substr($s, 26, 3)) << 4;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h9 = (self::load_3(self::substr($s, 29, 3)) & 8388607) << 2;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($h9 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 += self::mul($carry9, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 -= $carry9 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = ($h1 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 -= $carry1 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = ($h3 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 -= $carry3 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = ($h5 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 -= $carry5 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($h7 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 -= $carry7 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($h0 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = ($h2 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 -= $carry2 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($h4 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($h6 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 -= $carry6 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($h8 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 -= $carry8 << 26;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -211,89 +191,58 @@
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><span class="cx" style="display: block; padding: 0 10px">     public static function fe_tobytes(ParagonIE_Sodium_Core_Curve25519_Fe $h)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h0 = (int) $h[0];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h1 = (int) $h[1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h2 = (int) $h[2];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h3 = (int) $h[3];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h4 = (int) $h[4];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h5 = (int) $h[5];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h6 = (int) $h[6];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h7 = (int) $h[7];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h8 = (int) $h[8];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h9 = (int) $h[9];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = (self::mul($h9, 19, 5) + (1 << 24)) >> 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h0 + $q) >> 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h1 + $q) >> 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h2 + $q) >> 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h3 + $q) >> 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h4 + $q) >> 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h5 + $q) >> 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h6 + $q) >> 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h7 + $q) >> 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h8 + $q) >> 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $q */
</del><span class="cx" style="display: block; padding: 0 10px">         $q = ($h9 + $q) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 += self::mul($q, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = $h0 >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = $h1 >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 -= $carry1 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = $h2 >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 -= $carry2 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = $h3 >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 -= $carry3 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = $h4 >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = $h5 >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 -= $carry5 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = $h6 >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 -= $carry6 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = $h7 >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 -= $carry7 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = $h8 >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 -= $carry8 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = $h9 >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 -= $carry9 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -393,45 +342,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">         ParagonIE_Sodium_Core_Curve25519_Fe $f,
</span><span class="cx" style="display: block; padding: 0 10px">         ParagonIE_Sodium_Core_Curve25519_Fe $g
</span><span class="cx" style="display: block; padding: 0 10px">     ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f0 = $f[0];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f1 = $f[1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f2 = $f[2];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f3 = $f[3];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f4 = $f[4];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f5 = $f[5];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f6 = $f[6];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f7 = $f[7];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f8 = $f[8];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f9 = $f[9];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g0 = $g[0];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g1 = $g[1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g2 = $g[2];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g3 = $g[3];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g4 = $g[4];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g5 = $g[5];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g6 = $g[6];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g7 = $g[7];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g8 = $g[8];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $g9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $g9 = $g[9];
</span><span class="cx" style="display: block; padding: 0 10px">         $g1_19 = self::mul($g1, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $g2_19 = self::mul($g2, 19, 5);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -442,15 +371,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $g7_19 = self::mul($g7, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $g8_19 = self::mul($g8, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $g9_19 = self::mul($g9, 19, 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f1_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f1_2 = $f1 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f3_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f3_2 = $f3 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f5_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f5_2 = $f5 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f7_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f7_2 = $f7 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f9_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f9_2 = $f9 << 1;
</span><span class="cx" style="display: block; padding: 0 10px">         $f0g0    = self::mul($f0,    $g0, 26);
</span><span class="cx" style="display: block; padding: 0 10px">         $f0g1    = self::mul($f0,    $g1, 25);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -563,57 +487,45 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 = $f0g8 + $f1g7_2  + $f2g6    + $f3g5_2  + $f4g4    + $f5g3_2  + $f6g2    + $f7g1_2  + $f8g0    + $f9g9_38;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 = $f0g9 + $f1g8    + $f2g7    + $f3g6    + $f4g5    + $f5g4    + $f6g3    + $f7g2    + $f8g1    + $f9g0   ;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($h0 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($h4 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = ($h1 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 -= $carry1 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = ($h5 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 -= $carry5 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = ($h2 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 -= $carry2 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($h6 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 -= $carry6 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = ($h3 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 -= $carry3 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($h7 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 -= $carry7 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($h4 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($h8 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 -= $carry8 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($h9 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 += self::mul($carry9, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 -= $carry9 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($h0 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -677,21 +589,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $f8 = (int) $f[8];
</span><span class="cx" style="display: block; padding: 0 10px">         $f9 = (int) $f[9];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f0_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f0_2 = $f0 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f1_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f1_2 = $f1 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f2_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f2_2 = $f2 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f3_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f3_2 = $f3 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f4_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f4_2 = $f4 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f5_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f5_2 = $f5 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f6_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f6_2 = $f6 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f7_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f7_2 = $f7 << 1;
</span><span class="cx" style="display: block; padding: 0 10px">         $f5_38 = self::mul($f5, 38, 6);
</span><span class="cx" style="display: block; padding: 0 10px">         $f6_19 = self::mul($f6, 19, 5);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -698,61 +602,61 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $f7_38 = self::mul($f7, 38, 6);
</span><span class="cx" style="display: block; padding: 0 10px">         $f8_19 = self::mul($f8, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $f9_38 = self::mul($f9, 38, 6);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $f0f0    = self::mul($f0,    $f0,    25);
-        $f0f1_2  = self::mul($f0_2,  $f1,    24);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $f0f0    = self::mul($f0,    $f0,    26);
+        $f0f1_2  = self::mul($f0_2,  $f1,    26);
</ins><span class="cx" style="display: block; padding: 0 10px">         $f0f2_2  = self::mul($f0_2,  $f2,    26);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $f0f3_2  = self::mul($f0_2,  $f3,    24);
-        $f0f4_2  = self::mul($f0_2,  $f4,    25);
-        $f0f5_2  = self::mul($f0_2,  $f5,    25);
-        $f0f6_2  = self::mul($f0_2,  $f6,    25);
-        $f0f7_2  = self::mul($f0_2,  $f7,    24);
-        $f0f8_2  = self::mul($f0_2,  $f8,    25);
-        $f0f9_2  = self::mul($f0_2,  $f9,    25);
-        $f1f1_2  = self::mul($f1_2,  $f1,    24);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $f0f3_2  = self::mul($f0_2,  $f3,    26);
+        $f0f4_2  = self::mul($f0_2,  $f4,    26);
+        $f0f5_2  = self::mul($f0_2,  $f5,    26);
+        $f0f6_2  = self::mul($f0_2,  $f6,    26);
+        $f0f7_2  = self::mul($f0_2,  $f7,    26);
+        $f0f8_2  = self::mul($f0_2,  $f8,    26);
+        $f0f9_2  = self::mul($f0_2,  $f9,    26);
+        $f1f1_2  = self::mul($f1_2,  $f1,    26);
</ins><span class="cx" style="display: block; padding: 0 10px">         $f1f2_2  = self::mul($f1_2,  $f2,    26);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $f1f3_4  = self::mul($f1_2,  $f3_2,  25);
-        $f1f4_2  = self::mul($f1_2,  $f4,    25);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $f1f3_4  = self::mul($f1_2,  $f3_2,  26);
+        $f1f4_2  = self::mul($f1_2,  $f4,    26);
</ins><span class="cx" style="display: block; padding: 0 10px">         $f1f5_4  = self::mul($f1_2,  $f5_2,  26);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $f1f6_2  = self::mul($f1_2,  $f6,    25);
-        $f1f7_4  = self::mul($f1_2,  $f7_2,  25);
-        $f1f8_2  = self::mul($f1_2,  $f8,    25);
-        $f1f9_76 = self::mul($f9_38, $f1_2,  25);
-        $f2f2    = self::mul($f2,    $f2,    26);
-        $f2f3_2  = self::mul($f2_2,  $f3,    24);
-        $f2f4_2  = self::mul($f2_2,  $f4,    25);
-        $f2f5_2  = self::mul($f2_2,  $f5,    25);
-        $f2f6_2  = self::mul($f2_2,  $f6,    25);
-        $f2f7_2  = self::mul($f2_2,  $f7,    25);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $f1f6_2  = self::mul($f1_2,  $f6,    26);
+        $f1f7_4  = self::mul($f1_2,  $f7_2,  26);
+        $f1f8_2  = self::mul($f1_2,  $f8,    26);
+        $f1f9_76 = self::mul($f9_38, $f1_2,  27);
+        $f2f2    = self::mul($f2,    $f2,    27);
+        $f2f3_2  = self::mul($f2_2,  $f3,    27);
+        $f2f4_2  = self::mul($f2_2,  $f4,    27);
+        $f2f5_2  = self::mul($f2_2,  $f5,    27);
+        $f2f6_2  = self::mul($f2_2,  $f6,    27);
+        $f2f7_2  = self::mul($f2_2,  $f7,    27);
</ins><span class="cx" style="display: block; padding: 0 10px">         $f2f8_38 = self::mul($f8_19, $f2_2,  27);
</span><span class="cx" style="display: block; padding: 0 10px">         $f2f9_38 = self::mul($f9_38, $f2,    26);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $f3f3_2  = self::mul($f3_2,  $f3,    25);
-        $f3f4_2  = self::mul($f3_2,  $f4,    25);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $f3f3_2  = self::mul($f3_2,  $f3,    26);
+        $f3f4_2  = self::mul($f3_2,  $f4,    26);
</ins><span class="cx" style="display: block; padding: 0 10px">         $f3f5_4  = self::mul($f3_2,  $f5_2,  26);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $f3f6_2  = self::mul($f3_2,  $f6,    25);
-        $f3f7_76 = self::mul($f7_38, $f3_2,  25);
-        $f3f8_38 = self::mul($f8_19, $f3_2,  25);
-        $f3f9_76 = self::mul($f9_38, $f3_2,  25);
-        $f4f4    = self::mul($f4,    $f4,    25);
-        $f4f5_2  = self::mul($f4_2,  $f5,    25);
-        $f4f6_38 = self::mul($f6_19, $f4_2,  26);
-        $f4f7_38 = self::mul($f7_38, $f4,    25);
-        $f4f8_38 = self::mul($f8_19, $f4_2,  26);
-        $f4f9_38 = self::mul($f9_38, $f4,    25);
-        $f5f5_38 = self::mul($f5_38, $f5,    25);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $f3f6_2  = self::mul($f3_2,  $f6,    26);
+        $f3f7_76 = self::mul($f7_38, $f3_2,  26);
+        $f3f8_38 = self::mul($f8_19, $f3_2,  26);
+        $f3f9_76 = self::mul($f9_38, $f3_2,  26);
+        $f4f4    = self::mul($f4,    $f4,    26);
+        $f4f5_2  = self::mul($f4_2,  $f5,    26);
+        $f4f6_38 = self::mul($f6_19, $f4_2,  27);
+        $f4f7_38 = self::mul($f7_38, $f4,    26);
+        $f4f8_38 = self::mul($f8_19, $f4_2,  27);
+        $f4f9_38 = self::mul($f9_38, $f4,    26);
+        $f5f5_38 = self::mul($f5_38, $f5,    26);
</ins><span class="cx" style="display: block; padding: 0 10px">         $f5f6_38 = self::mul($f6_19, $f5_2,  26);
</span><span class="cx" style="display: block; padding: 0 10px">         $f5f7_76 = self::mul($f7_38, $f5_2,  26);
</span><span class="cx" style="display: block; padding: 0 10px">         $f5f8_38 = self::mul($f8_19, $f5_2,  26);
</span><span class="cx" style="display: block; padding: 0 10px">         $f5f9_76 = self::mul($f9_38, $f5_2,  26);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $f6f6_19 = self::mul($f6_19, $f6,    25);
-        $f6f7_38 = self::mul($f7_38, $f6,    25);
-        $f6f8_38 = self::mul($f8_19, $f6_2,  26);
-        $f6f9_38 = self::mul($f9_38, $f6,    25);
-        $f7f7_38 = self::mul($f7_38, $f7,    24);
-        $f7f8_38 = self::mul($f8_19, $f7_2,  25);
-        $f7f9_76 = self::mul($f9_38, $f7_2,  25);
-        $f8f8_19 = self::mul($f8_19, $f8,    25);
-        $f8f9_38 = self::mul($f9_38, $f8,    25);
-        $f9f9_38 = self::mul($f9_38, $f9,    25);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $f6f6_19 = self::mul($f6_19, $f6,    26);
+        $f6f7_38 = self::mul($f7_38, $f6,    26);
+        $f6f8_38 = self::mul($f8_19, $f6_2,  27);
+        $f6f9_38 = self::mul($f9_38, $f6,    26);
+        $f7f7_38 = self::mul($f7_38, $f7,    26);
+        $f7f8_38 = self::mul($f8_19, $f7_2,  26);
+        $f7f9_76 = self::mul($f9_38, $f7_2,  26);
+        $f8f8_19 = self::mul($f8_19, $f8,    26);
+        $f8f9_38 = self::mul($f9_38, $f8,    26);
+        $f9f9_38 = self::mul($f9_38, $f9,    26);
</ins><span class="cx" style="display: block; padding: 0 10px">         $h0 = $f0f0   + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 = $f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 = $f0f2_2 + $f1f1_2  + $f3f9_76 + $f4f8_38 + $f5f7_76 + $f6f6_19;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -764,57 +668,45 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 = $f0f8_2 + $f1f7_4  + $f2f6_2  + $f3f5_4  + $f4f4    + $f9f9_38;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 = $f0f9_2 + $f1f8_2  + $f2f7_2  + $f3f6_2  + $f4f5_2;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($h0 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($h4 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = ($h1 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 -= $carry1 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = ($h5 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 -= $carry5 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = ($h2 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 -= $carry2 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($h6 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 -= $carry6 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = ($h3 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 -= $carry3 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($h7 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 -= $carry7 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($h4 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($h8 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 -= $carry8 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($h9 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 += self::mul($carry9, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 -= $carry9 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($h0 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -859,21 +751,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $f8 = (int) $f[8];
</span><span class="cx" style="display: block; padding: 0 10px">         $f9 = (int) $f[9];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f0_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f0_2 = $f0 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f1_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f1_2 = $f1 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f2_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f2_2 = $f2 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f3_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f3_2 = $f3 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f4_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f4_2 = $f4 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f5_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f5_2 = $f5 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f6_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f6_2 = $f6 << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $f7_2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $f7_2 = $f7 << 1;
</span><span class="cx" style="display: block; padding: 0 10px">         $f5_38 = self::mul($f5, 38, 6); /* 1.959375*2^30 */
</span><span class="cx" style="display: block; padding: 0 10px">         $f6_19 = self::mul($f6, 19, 5); /* 1.959375*2^30 */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -936,78 +820,56 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $f8f9_38 = self::mul($f9_38, $f8, 24);
</span><span class="cx" style="display: block; padding: 0 10px">         $f9f9_38 = self::mul($f9_38, $f9, 24);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h0 = (int) ($f0f0 + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h1 = (int) ($f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h2 = (int) ($f0f2_2 + $f1f1_2  + $f3f9_76 + $f4f8_38 + $f5f7_76 + $f6f6_19) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h3 = (int) ($f0f3_2 + $f1f2_2  + $f4f9_38 + $f5f8_38 + $f6f7_38) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h4 = (int) ($f0f4_2 + $f1f3_4  + $f2f2    + $f5f9_76 + $f6f8_38 + $f7f7_38) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h5 = (int) ($f0f5_2 + $f1f4_2  + $f2f3_2  + $f6f9_38 + $f7f8_38) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h6 = (int) ($f0f6_2 + $f1f5_4  + $f2f4_2  + $f3f3_2  + $f7f9_76 + $f8f8_19) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h7 = (int) ($f0f7_2 + $f1f6_2  + $f2f5_2  + $f3f4_2  + $f8f9_38) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h8 = (int) ($f0f8_2 + $f1f7_4  + $f2f6_2  + $f3f5_4  + $f4f4    + $f9f9_38) << 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $h9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $h9 = (int) ($f0f9_2 + $f1f8_2  + $f2f7_2  + $f3f6_2  + $f4f5_2) << 1;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($h0 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($h4 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = ($h1 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 -= $carry1 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = ($h5 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 -= $carry5 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = ($h2 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $h2 -= $carry2 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($h6 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $h6 -= $carry6 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = ($h3 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $h3 -= $carry3 << 25;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($h7 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $h7 -= $carry7 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($h4 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $h4 -= $carry4 << 26;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($h8 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $h8 -= $carry8 << 26;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($h9 + (1 << 24)) >> 25;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 += self::mul($carry9, 19, 5);
</span><span class="cx" style="display: block; padding: 0 10px">         $h9 -= $carry9 << 25;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($h0 + (1 << 25)) >> 26;
</span><span class="cx" style="display: block; padding: 0 10px">         $h1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $h0 -= $carry0 << 26;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1790,9 +1652,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             throw new RangeException('Position is out of range [0, 31]');
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $bnegative */
</del><span class="cx" style="display: block; padding: 0 10px">         $bnegative = self::negative($b);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $babs */
</del><span class="cx" style="display: block; padding: 0 10px">         $babs = $b - (((-$bnegative) & $b) << 1);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         $t = self::ge_precomp_0();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2080,7 +1940,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         //            e[i] -= carry * ((signed char) 1 << 4);
</span><span class="cx" style="display: block; padding: 0 10px">         //        }
</span><span class="cx" style="display: block; padding: 0 10px">         $carry = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for ($i = 0; $i < 64; ++$i) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for ($i = 0; $i < 63; ++$i) {
</ins><span class="cx" style="display: block; padding: 0 10px">             $e[$i] += $carry;
</span><span class="cx" style="display: block; padding: 0 10px">             $carry = $e[$i] + 8;
</span><span class="cx" style="display: block; padding: 0 10px">             $carry >>= 4;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2146,23 +2006,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $r = new ParagonIE_Sodium_Core_Curve25519_Ge_P1p1();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         for ($i = 0; $i < 32; ++$i) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            /** @var int $dbl */
</del><span class="cx" style="display: block; padding: 0 10px">             $dbl = (int) $i << 1;
</span><span class="cx" style="display: block; padding: 0 10px">             $e[$dbl] = (int) self::chrToInt($a[$i]) & 15;
</span><span class="cx" style="display: block; padding: 0 10px">             $e[$dbl + 1] = (int) (self::chrToInt($a[$i]) >> 4) & 15;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry = 0;
</span><span class="cx" style="display: block; padding: 0 10px">         for ($i = 0; $i < 63; ++$i) {
</span><span class="cx" style="display: block; padding: 0 10px">             $e[$i] += $carry;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            /** @var int $carry */
</del><span class="cx" style="display: block; padding: 0 10px">             $carry = $e[$i] + 8;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            /** @var int $carry */
</del><span class="cx" style="display: block; padding: 0 10px">             $carry >>= 4;
</span><span class="cx" style="display: block; padding: 0 10px">             $e[$i] -= $carry << 4;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var array<int, int> $e */
</del><span class="cx" style="display: block; padding: 0 10px">         $e[63] += (int) $carry;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         $h = self::ge_p3_0();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2206,79 +2061,43 @@
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><span class="cx" style="display: block; padding: 0 10px">     public static function sc_muladd($a, $b, $c)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a0 = 2097151 & self::load_3(self::substr($a, 0, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a1 = 2097151 & (self::load_4(self::substr($a, 2, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a2 = 2097151 & (self::load_3(self::substr($a, 5, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a3 = 2097151 & (self::load_4(self::substr($a, 7, 4)) >> 7);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a4 = 2097151 & (self::load_4(self::substr($a, 10, 4)) >> 4);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a5 = 2097151 & (self::load_3(self::substr($a, 13, 3)) >> 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a6 = 2097151 & (self::load_4(self::substr($a, 15, 4)) >> 6);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a7 = 2097151 & (self::load_3(self::substr($a, 18, 3)) >> 3);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a8 = 2097151 & self::load_3(self::substr($a, 21, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a9 = 2097151 & (self::load_4(self::substr($a, 23, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a10 = 2097151 & (self::load_3(self::substr($a, 26, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $a11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $a11 = (self::load_4(self::substr($a, 28, 4)) >> 7);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b0 = 2097151 & self::load_3(self::substr($b, 0, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b1 = 2097151 & (self::load_4(self::substr($b, 2, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b2 = 2097151 & (self::load_3(self::substr($b, 5, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b3 = 2097151 & (self::load_4(self::substr($b, 7, 4)) >> 7);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b4 = 2097151 & (self::load_4(self::substr($b, 10, 4)) >> 4);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b5 = 2097151 & (self::load_3(self::substr($b, 13, 3)) >> 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b6 = 2097151 & (self::load_4(self::substr($b, 15, 4)) >> 6);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b7 = 2097151 & (self::load_3(self::substr($b, 18, 3)) >> 3);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b8 = 2097151 & self::load_3(self::substr($b, 21, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b9 = 2097151 & (self::load_4(self::substr($b, 23, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b10 = 2097151 & (self::load_3(self::substr($b, 26, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $b11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $b11 = (self::load_4(self::substr($b, 28, 4)) >> 7);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c0 = 2097151 & self::load_3(self::substr($c, 0, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c1 = 2097151 & (self::load_4(self::substr($c, 2, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c2 = 2097151 & (self::load_3(self::substr($c, 5, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c3 = 2097151 & (self::load_4(self::substr($c, 7, 4)) >> 7);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c4 = 2097151 & (self::load_4(self::substr($c, 10, 4)) >> 4);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c5 = 2097151 & (self::load_3(self::substr($c, 13, 3)) >> 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c6 = 2097151 & (self::load_4(self::substr($c, 15, 4)) >> 6);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c7 = 2097151 & (self::load_3(self::substr($c, 18, 3)) >> 3);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c8 = 2097151 & self::load_3(self::substr($c, 21, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c9 = 2097151 & (self::load_4(self::substr($c, 23, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c10 = 2097151 & (self::load_3(self::substr($c, 26, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $c11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $c11 = (self::load_4(self::substr($c, 28, 4)) >> 7);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         /* Can't really avoid the pyramid here: */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2329,96 +2148,73 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s22 = self::mul($a11, $b11, 24);
</span><span class="cx" style="display: block; padding: 0 10px">         $s23 = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($s0 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $s0 -= $carry0 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = ($s2 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 -= $carry2 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($s4 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 -= $carry4 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($s6 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($s8 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = ($s10 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry12 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry12 = ($s12 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s13 += $carry12;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 -= $carry12 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry14 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry14 = ($s14 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s15 += $carry14;
</span><span class="cx" style="display: block; padding: 0 10px">         $s14 -= $carry14 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry16 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry16 = ($s16 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s17 += $carry16;
</span><span class="cx" style="display: block; padding: 0 10px">         $s16 -= $carry16 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry18 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry18 = ($s18 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s19 += $carry18;
</span><span class="cx" style="display: block; padding: 0 10px">         $s18 -= $carry18 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry20 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry20 = ($s20 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s21 += $carry20;
</span><span class="cx" style="display: block; padding: 0 10px">         $s20 -= $carry20 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry22 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry22 = ($s22 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s23 += $carry22;
</span><span class="cx" style="display: block; padding: 0 10px">         $s22 -= $carry22 << 21;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = ($s1 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 -= $carry1 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = ($s3 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 -= $carry3 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = ($s5 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= $carry5 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($s7 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($s9 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry11 = ($s11 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 += $carry11;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= $carry11 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry13 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry13 = ($s13 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s14 += $carry13;
</span><span class="cx" style="display: block; padding: 0 10px">         $s13 -= $carry13 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry15 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry15 = ($s15 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s16 += $carry15;
</span><span class="cx" style="display: block; padding: 0 10px">         $s15 -= $carry15 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry17 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry17 = ($s17 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s18 += $carry17;
</span><span class="cx" style="display: block; padding: 0 10px">         $s17 -= $carry17 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry19 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry19 = ($s19 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s20 += $carry19;
</span><span class="cx" style="display: block; padding: 0 10px">         $s19 -= $carry19 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry21 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry21 = ($s21 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s22 += $carry21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s21 -= $carry21 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2465,48 +2261,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += self::mul($s18,  136657, 18);
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= self::mul($s18,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($s6 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($s8 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = ($s10 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry12 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry12 = ($s12 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s13 += $carry12;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 -= $carry12 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry14 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry14 = ($s14 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s15 += $carry14;
</span><span class="cx" style="display: block; padding: 0 10px">         $s14 -= $carry14 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry16 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry16 = ($s16 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s17 += $carry16;
</span><span class="cx" style="display: block; padding: 0 10px">         $s16 -= $carry16 << 21;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($s7 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($s9 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry11 = ($s11 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 += $carry11;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= $carry11 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry13 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry13 = ($s13 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s14 += $carry13;
</span><span class="cx" style="display: block; padding: 0 10px">         $s13 -= $carry13 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry15 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry15 = ($s15 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s16 += $carry15;
</span><span class="cx" style="display: block; padding: 0 10px">         $s15 -= $carry15 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2554,52 +2339,40 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= self::mul($s12,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($s0 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $s0 -= $carry0 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = ($s2 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 -= $carry2 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($s4 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 -= $carry4 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($s6 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($s8 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = ($s10 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = ($s1 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 -= $carry1 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = ($s3 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 -= $carry3 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = ($s5 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= $carry5 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($s7 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($s9 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry11 = ($s11 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 += $carry11;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= $carry11 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2612,51 +2385,39 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= self::mul($s12,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = $s0 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $s0 -= $carry0 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = $s1 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 -= $carry1 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = $s2 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 -= $carry2 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = $s3 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 -= $carry3 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = $s4 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 -= $carry4 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = $s5 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= $carry5 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = $s6 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = $s7 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = $s8 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = $s9 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = $s10 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry11 = $s11 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 += $carry11;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= $carry11 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2668,47 +2429,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += self::mul($s12,  136657, 18);
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= self::mul($s12,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = $s0 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $s0 -= $carry0 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = $s1 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 -= $carry1 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = $s2 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 -= $carry2 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = $s3 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 -= $carry3 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = $s4 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 -= $carry4 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = $s5 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= $carry5 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = $s6 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = $s7 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = $s8 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = $s9 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = $s10 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2762,53 +2512,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><span class="cx" style="display: block; padding: 0 10px">     public static function sc_reduce($s)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s0 = 2097151 & self::load_3(self::substr($s, 0, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s1 = 2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s2 = 2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s3 = 2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s4 = 2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s5 = 2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s6 = 2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s7 = 2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s8 = 2097151 & self::load_3(self::substr($s, 21, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s9 = 2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s10 = 2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s11 = 2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s12 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s12 = 2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s13 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s13 = 2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s14 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s14 = 2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s15 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s15 = 2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s16 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s16 = 2097151 & self::load_3(self::substr($s, 42, 3));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s17 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s17 = 2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s18 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s18 = 2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s19 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s19 = 2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s20 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s20 = 2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s21 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s21 = 2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s22 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s22 = 2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $s23 */
</del><span class="cx" style="display: block; padding: 0 10px">         $s23 = (self::load_4(self::substr($s, 60, 4)) >> 3);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += self::mul($s23,  666643, 20);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2853,48 +2579,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += self::mul($s18,  136657, 18);
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= self::mul($s18,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($s6 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($s8 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = ($s10 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry12 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry12 = ($s12 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s13 += $carry12;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 -= $carry12 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry14 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry14 = ($s14 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s15 += $carry14;
</span><span class="cx" style="display: block; padding: 0 10px">         $s14 -= $carry14 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry16 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry16 = ($s16 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s17 += $carry16;
</span><span class="cx" style="display: block; padding: 0 10px">         $s16 -= $carry16 << 21;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($s7 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($s9 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry11 = ($s11 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 += $carry11;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= $carry11 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry13 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry13 = ($s13 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s14 += $carry13;
</span><span class="cx" style="display: block; padding: 0 10px">         $s13 -= $carry13 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry15 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry15 = ($s15 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s16 += $carry15;
</span><span class="cx" style="display: block; padding: 0 10px">         $s15 -= $carry15 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2942,52 +2657,40 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= self::mul($s12,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = ($s0 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $s0 -= $carry0 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = ($s2 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 -= $carry2 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = ($s4 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 -= $carry4 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = ($s6 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = ($s8 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = ($s10 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = ($s1 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 -= $carry1 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = ($s3 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 -= $carry3 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = ($s5 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= $carry5 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = ($s7 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = ($s9 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry11 = ($s11 + (1 << 20)) >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 += $carry11;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= $carry11 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3000,51 +2703,39 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= self::mul($s12,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = $s0 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $s0 -= $carry0 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = $s1 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 -= $carry1 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = $s2 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 -= $carry2 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = $s3 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 -= $carry3 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = $s4 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 -= $carry4 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = $s5 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= $carry5 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = $s6 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = $s7 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = $s8 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = $s9 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = $s10 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry11 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry11 = $s11 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s12 += $carry11;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 -= $carry11 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3056,47 +2747,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += self::mul($s12,  136657, 18);
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= self::mul($s12,  683901, 20);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry0 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry0 = $s0 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 += $carry0;
</span><span class="cx" style="display: block; padding: 0 10px">         $s0 -= $carry0 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry1 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry1 = $s1 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 += $carry1;
</span><span class="cx" style="display: block; padding: 0 10px">         $s1 -= $carry1 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry2 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry2 = $s2 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 += $carry2;
</span><span class="cx" style="display: block; padding: 0 10px">         $s2 -= $carry2 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry3 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry3 = $s3 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 += $carry3;
</span><span class="cx" style="display: block; padding: 0 10px">         $s3 -= $carry3 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry4 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry4 = $s4 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 += $carry4;
</span><span class="cx" style="display: block; padding: 0 10px">         $s4 -= $carry4 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry5 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry5 = $s5 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 += $carry5;
</span><span class="cx" style="display: block; padding: 0 10px">         $s5 -= $carry5 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry6 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry6 = $s6 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 += $carry6;
</span><span class="cx" style="display: block; padding: 0 10px">         $s6 -= $carry6 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry7 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry7 = $s7 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 += $carry7;
</span><span class="cx" style="display: block; padding: 0 10px">         $s7 -= $carry7 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry8 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry8 = $s8 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 += $carry8;
</span><span class="cx" style="display: block; padding: 0 10px">         $s8 -= $carry8 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry9 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry9 = $s9 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 += $carry9;
</span><span class="cx" style="display: block; padding: 0 10px">         $s9 -= $carry9 << 21;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var int $carry10 */
</del><span class="cx" style="display: block; padding: 0 10px">         $carry10 = $s10 >> 21;
</span><span class="cx" style="display: block; padding: 0 10px">         $s11 += $carry10;
</span><span class="cx" style="display: block; padding: 0 10px">         $s10 -= $carry10 << 21;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3149,7 +2829,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><span class="cx" style="display: block; padding: 0 10px">     public static function ge_mul_l(ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        /** @var array<int, int> $aslide */
</del><span class="cx" style="display: block; padding: 0 10px">         $aslide = array(
</span><span class="cx" style="display: block; padding: 0 10px">             13, 0, 0, 0, 0, -1, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0,
</span><span class="cx" style="display: block; padding: 0 10px">             0, 0, 0, -3, 0, 0, 0, 0, -13, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0,
</span></span></pre></div>
<a id="trunksrcwpincludessodium_compatsrcCoreUtilphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/sodium_compat/src/Core/Util.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/sodium_compat/src/Core/Util.php     2021-08-10 12:52:48 UTC (rev 51590)
+++ trunk/src/wp-includes/sodium_compat/src/Core/Util.php       2021-08-10 13:03:41 UTC (rev 51591)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -287,7 +287,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-     * Catch hash_update() failures and throw instead of silently proceding
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+     * Catch hash_update() failures and throw instead of silently proceeding
</ins><span class="cx" style="display: block; padding: 0 10px">      *
</span><span class="cx" style="display: block; padding: 0 10px">      * @param HashContext|resource &$hs
</span><span class="cx" style="display: block; padding: 0 10px">      * @param string $data
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -586,6 +586,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             $a <<= 1;
</span><span class="cx" style="display: block; padding: 0 10px">             $b >>= 1;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $c = (int) @($c & -1);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         /**
</span><span class="cx" style="display: block; padding: 0 10px">          * If $b was negative, we then apply the same value to $c here.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -929,6 +930,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         static $mbstring = null;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">         if ($mbstring === null) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if (!defined('MB_OVERLOAD_STRING')) {
+                $mbstring = false;
+                return $mbstring;
+            }
</ins><span class="cx" style="display: block; padding: 0 10px">             $mbstring = extension_loaded('mbstring')
</span><span class="cx" style="display: block; padding: 0 10px">                 && defined('MB_OVERLOAD_STRING')
</span><span class="cx" style="display: block; padding: 0 10px">                 &&
</span></span></pre></div>
<a id="trunksrcwpincludessodium_compatsrcCore32ChaCha20Ctxphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/sodium_compat/src/Core32/ChaCha20/Ctx.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/sodium_compat/src/Core32/ChaCha20/Ctx.php   2021-08-10 12:52:48 UTC (rev 51590)
+++ trunk/src/wp-includes/sodium_compat/src/Core32/ChaCha20/Ctx.php     2021-08-10 13:03:41 UTC (rev 51591)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -70,6 +70,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @param int|ParagonIE_Sodium_Core32_Int32 $value
</span><span class="cx" style="display: block; padding: 0 10px">      * @return void
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetSet($offset, $value)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!is_int($offset)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -93,6 +94,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetExists($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         return isset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -105,6 +107,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return void
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetUnset($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         unset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -117,6 +120,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return mixed|null
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetGet($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         return isset($this->container[$offset])
</span></span></pre></div>
<a id="trunksrcwpincludessodium_compatsrcCore32Curve25519Fephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/sodium_compat/src/Core32/Curve25519/Fe.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/sodium_compat/src/Core32/Curve25519/Fe.php  2021-08-10 12:52:48 UTC (rev 51590)
+++ trunk/src/wp-includes/sodium_compat/src/Core32/Curve25519/Fe.php    2021-08-10 13:03:41 UTC (rev 51591)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -104,6 +104,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @throws SodiumException
</span><span class="cx" style="display: block; padding: 0 10px">      * @throws TypeError
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetSet($offset, $value)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!($value instanceof ParagonIE_Sodium_Core32_Int32)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -124,6 +125,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetExists($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         return isset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -136,6 +138,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return void
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetUnset($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         unset($this->container[$offset]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -148,6 +151,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">      * @return ParagonIE_Sodium_Core32_Int32
</span><span class="cx" style="display: block; padding: 0 10px">      * @psalm-suppress MixedArrayOffset
</span><span class="cx" style="display: block; padding: 0 10px">      */
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    #[ReturnTypeWillChange]
</ins><span class="cx" style="display: block; padding: 0 10px">     public function offsetGet($offset)
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!isset($this->container[$offset])) {
</span></span></pre>
</div>
</div>

</body>
</html>