@ 2015-12-12T22:09:54Z <?php
function md5_hash($string){
$a = "67452301";
$b = "efcdab89";
$c = "98badcfe";
$d = "10325476";
$A = $a ;
$B = $b ;
$C = $c ;
$D = $d ;
$words = ConvertToArray($string);
for($i = 0; $i <= count($words)/16-1; $i++){
$a = $A;
$b = $B;
$c = $C;
$d = $D;
/* ROUND 1 */
FF ($A, $B, $C, $D, $words[0 + ($i * 16)], 7, "d76aa478");
FF ($D, $A, $B, $C, $words[1 + ($i * 16)], 12, "e8c7b756");
FF ($C, $D, $A, $B, $words[2 + ($i * 16)], 17, "242070db");
FF ($B, $C, $D, $A, $words[3 + ($i * 16)], 22, "c1bdceee");
FF ($A, $B, $C, $D, $words[4 + ($i * 16)], 7, "f57c0faf");
FF ($D, $A, $B, $C, $words[5 + ($i * 16)], 12, "4787c62a");
FF ($C, $D, $A, $B, $words[6 + ($i * 16)], 17, "a8304613");
FF ($B, $C, $D, $A, $words[7 + ($i * 16)], 22, "fd469501");
FF ($A, $B, $C, $D, $words[8 + ($i * 16)], 7, "698098d8");
FF ($D, $A, $B, $C, $words[9 + ($i * 16)], 12, "8b44f7af");
FF ($C, $D, $A, $B, $words[10 + ($i * 16)], 17, "ffff5bb1");
FF ($B, $C, $D, $A, $words[11 + ($i * 16)], 22, "895cd7be");
FF ($A, $B, $C, $D, $words[12 + ($i * 16)], 7, "6b901122");
FF ($D, $A, $B, $C, $words[13 + ($i * 16)], 12, "fd987193");
FF ($C, $D, $A, $B, $words[14 + ($i * 16)], 17, "a679438e");
FF ($B, $C, $D, $A, $words[15 + ($i * 16)], 22, "49b40821");
/* ROUND 2 */
GG ($A, $B, $C, $D, $words[1 + ($i * 16)], 5, "f61e2562");
GG ($D, $A, $B, $C, $words[6 + ($i * 16)], 9, "c040b340");
GG ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "265e5a51");
GG ($B, $C, $D, $A, $words[0 + ($i * 16)], 20, "e9b6c7aa");
GG ($A, $B, $C, $D, $words[5 + ($i * 16)], 5, "d62f105d");
GG ($D, $A, $B, $C, $words[10 + ($i * 16)], 9, "2441453");
GG ($C, $D, $A, $B, $words[15 + ($i * 16)], 14, "d8a1e681");
GG ($B, $C, $D, $A, $words[4 + ($i * 16)], 20, "e7d3fbc8");
GG ($A, $B, $C, $D, $words[9 + ($i * 16)], 5, "21e1cde6");
GG ($D, $A, $B, $C, $words[14 + ($i * 16)], 9, "c33707d6");
GG ($C, $D, $A, $B, $words[3 + ($i * 16)], 14, "f4d50d87");
GG ($B, $C, $D, $A, $words[8 + ($i * 16)], 20, "455a14ed");
GG ($A, $B, $C, $D, $words[13 + ($i * 16)], 5, "a9e3e905");
GG ($D, $A, $B, $C, $words[2 + ($i * 16)], 9, "fcefa3f8");
GG ($C, $D, $A, $B, $words[7 + ($i * 16)], 14, "676f02d9");
GG ($B, $C, $D, $A, $words[12 + ($i * 16)], 20, "8d2a4c8a");
/* ROUND 3 */
HH ($A, $B, $C, $D, $words[5 + ($i * 16)], 4, "fffa3942");
HH ($D, $A, $B, $C, $words[8 + ($i * 16)], 11, "8771f681");
HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 16, "6d9d6122");
HH ($B, $C, $D, $A, $words[14 + ($i * 16)], 23, "fde5380c");
HH ($A, $B, $C, $D, $words[1 + ($i * 16)], 4, "a4beea44");
HH ($D, $A, $B, $C, $words[4 + ($i * 16)], 11, "4bdecfa9");
HH ($C, $D, $A, $B, $words[7 + ($i * 16)], 16, "f6bb4b60");
HH ($B, $C, $D, $A, $words[10 + ($i * 16)], 23, "bebfbc70");
HH ($A, $B, $C, $D, $words[13 + ($i * 16)], 4, "289b7ec6");
HH ($D, $A, $B, $C, $words[0 + ($i * 16)], 11, "eaa127fa");
HH ($C, $D, $A, $B, $words[3 + ($i * 16)], 16, "d4ef3085");
HH ($B, $C, $D, $A, $words[6 + ($i * 16)], 23, "4881d05");
HH ($A, $B, $C, $D, $words[9 + ($i * 16)], 4, "d9d4d039");
HH ($D, $A, $B, $C, $words[12 + ($i * 16)], 11, "e6db99e5");
HH ($C, $D, $A, $B, $words[15 + ($i * 16)], 16, "1fa27cf8");
HH ($B, $C, $D, $A, $words[2 + ($i * 16)], 23, "c4ac5665");
/* ROUND 4 */
II ($A, $B, $C, $D, $words[0 + ($i * 16)], 6, "f4292244");
II ($D, $A, $B, $C, $words[7 + ($i * 16)], 10, "432aff97");
II ($C, $D, $A, $B, $words[14 + ($i * 16)], 15, "ab9423a7");
II ($B, $C, $D, $A, $words[5 + ($i * 16)], 21, "fc93a039");
II ($A, $B, $C, $D, $words[12 + ($i * 16)], 6, "655b59c3");
II ($D, $A, $B, $C, $words[3 + ($i * 16)], 10, "8f0ccc92");
II ($C, $D, $A, $B, $words[10 + ($i * 16)], 15, "ffeff47d");
II ($B, $C, $D, $A, $words[1 + ($i * 16)], 21, "85845dd1");
II ($A, $B, $C, $D, $words[8 + ($i * 16)], 6, "6fa87e4f");
II ($D, $A, $B, $C, $words[15 + ($i * 16)], 10, "fe2ce6e0");
II ($C, $D, $A, $B, $words[6 + ($i * 16)], 15, "a3014314");
II ($B, $C, $D, $A, $words[13 + ($i * 16)], 21, "4e0811a1");
II ($A, $B, $C, $D, $words[4 + ($i * 16)], 6, "f7537e82");
II ($D, $A, $B, $C, $words[11 + ($i * 16)], 10, "bd3af235");
II ($C, $D, $A, $B, $words[2 + ($i * 16)], 15, "2ad7d2bb");
II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
$A=AddUnsigned(hexdec2($A),hexdec2($a));
$B=AddUnsigned(hexdec2($B),hexdec2($b));
$C=AddUnsigned(hexdec2($C),hexdec2($c));
$D=AddUnsigned(hexdec2($D),hexdec2($d));
}
$MD5 = WordToHex($A).WordToHex($B).WordToHex($C).WordToHex($D);
return $MD5;
}
function WordToHex($lValue) {
$WordToHexValue = "";
for ($lCount = 0;$lCount<=3;$lCount++) {
$lByte = (hexdec2($lValue)>>($lCount*8)) & 255;
$C = dechex($lByte);
$WordToHexValue .= (strlen($C)=='1')?"0".dechex($lByte):dechex($lByte);
}
return $WordToHexValue;
}
function F($X, $Y, $Z){
$X = hexdec2($X);
$Y = hexdec2($Y);
$Z = hexdec2($Z);
$calc = (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z
return $calc;
}
function G($X, $Y, $Z){
$X = hexdec2($X);
$Y = hexdec2($Y);
$Z = hexdec2($Z);
$calc = (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z
return $calc;
}
function H($X, $Y, $Z){
$X = hexdec2($X);
$Y = hexdec2($Y);
$Z = hexdec2($Z);
$calc = ($X ^ $Y ^ $Z); // X XOR Y XOR Z
return $calc;
}
function I($X, $Y, $Z){
$X = hexdec2($X);
$Y = hexdec2($Y);
$Z = hexdec2($Z);
$calc = ($Y ^ ($X | (~ $Z))) ; // Y XOR (X OR NOT Z)
return $calc;
}
function AddUnsigned($lX,$lY) {
$lX8 = ($lX & 0x80000000);
$lY8 = ($lY & 0x80000000);
$lX4 = ($lX & 0x40000000);
$lY4 = ($lY & 0x40000000);
$lResult = ($lX & 0x3FFFFFFF)+($lY & 0x3FFFFFFF);
if ($lX4 & $lY4) {
$res = ($lResult ^ 0x80000000 ^ $lX8 ^ $lY8);
if($res < 0)
return '-'.dechex(abs($res));
else
return dechex($res);
}
if ($lX4 | $lY4) {
if ($lResult & 0x40000000) {
$res = ($lResult ^ 0xC0000000 ^ $lX8 ^ $lY8);
if($res < 0)
return '-'.dechex(abs($res));
else
return dechex($res);
} else {
$res = ($lResult ^ 0x40000000 ^ $lX8 ^ $lY8);
if($res < 0)
return '-'.dechex(abs($res));
else
return dechex($res);
}
} else {
$res = ($lResult ^ $lX8 ^ $lY8);
if($res < 0)
return '-'.dechex(abs($res));
else
return dechex($res);
}
}
function hexdec2($hex , $debug = false)
{
if(substr($hex, 0,1) == "-")
{
return doubleval('-'.hexdec("0x". str_replace("-", "", $hex )));
}
return hexdec("0x".$hex);
}
function FF(&$A, $B, $C, $D, $M, $s, $t){
$Level1 = hexdec2(AddUnsigned( F($B, $C, $D) , bindec($M) ));
$level2 = hexdec2(AddUnsigned($Level1, hexdec2($t)));
$A = hexdec2(AddUnsigned(hexdec2($A),$level2));
$A = rotate($A, $s);
$A = AddUnsigned($A , hexdec2($B)) ;
}
function GG(&$A, $B, $C, $D, $M, $s, $t){
$Level1 = hexdec2(AddUnsigned( G($B, $C, $D) , bindec($M) ));
$level2 = hexdec2(AddUnsigned($Level1, hexdec2($t)));
$A = hexdec2(AddUnsigned(hexdec2($A),$level2));
$A = rotate($A, $s);
$A = AddUnsigned($A , hexdec2($B)) ;
}
function HH(&$A, $B, $C, $D, $M, $s, $t){
$Level1 = hexdec2(AddUnsigned( H($B, $C, $D) , bindec($M) ));
$level2 = hexdec2(AddUnsigned($Level1, hexdec2($t)));
$A = hexdec2(AddUnsigned(hexdec2($A),$level2));
$A = rotate($A, $s);
$A = AddUnsigned($A , hexdec2($B)) ;
}
function II(&$A, $B, $C, $D, $M, $s, $t){
$Level1 = hexdec2(AddUnsigned( I($B, $C, $D) , bindec($M) ));
$level2 = hexdec2(AddUnsigned($Level1, hexdec2($t)));
$A = hexdec2(AddUnsigned(hexdec2($A),$level2));
$A = rotate($A, $s);
$A = AddUnsigned($A , hexdec2($B)) ;
}
function rotate ($decimal, $bits , $debug = false) {
return (($decimal << $bits) | shiftright($decimal, (32 - $bits)) & 0xffffffff);
}
function shiftright($decimal , $right)
{
if($decimal < 0)
{
$res = decbin($decimal >> $right);
for ($i=0; $i < $right; $i++) {
$res[$i] = "";
}
return bindec($res) ;
} else
{
return ($decimal >> $right);
}
}
function ConvertToArray($string) {
$lWordCount;
$lMessageLength = strlen($string);
//printf('Message Length = %d'.PHP_EOL, $lMessageLength);
$lNumberOfWords_temp1=$lMessageLength + 8;
$lNumberOfWords_temp2=($lNumberOfWords_temp1-($lNumberOfWords_temp1 % 64))/64;
$lNumberOfWords = ($lNumberOfWords_temp2+1)*16;
$lWordArray=Array("");
$lBytePosition = 0;
$lByteCount = 0;
while ( $lByteCount < $lMessageLength ) {
$lWordCount = ($lByteCount-($lByteCount % 4))/4;
//printf('WordCount = %d'.PHP_EOL, $lWordCount);
$lBytePosition = ($lByteCount % 4)*8;
//printf('Byte Position = %d'.PHP_EOL, $lBytePosition);
if(!isset($lWordArray[$lWordCount]))
$lWordArray[$lWordCount] = 0;
$lWordArray[$lWordCount] = ($lWordArray[$lWordCount] | (ord($string[$lByteCount])<<$lBytePosition));
$lByteCount++;
}
//printf('ByteCount = %d'.PHP_EOL, $lByteCount); //DEBUG
$lWordCount = ($lByteCount-($lByteCount % 4))/4;
$lBytePosition = ($lByteCount % 4)*8;
if(!isset($lWordArray[$lWordCount]))
$lWordArray[$lWordCount] = 0;
//Remove Appending 1 to End
//$lWordArray[$lWordCount] = $lWordArray[$lWordCount] | (0x80<<$lBytePosition);
$lWordArray[$lNumberOfWords-2] = $lMessageLength<<3;
$lWordArray[$lNumberOfWords-1] = $lMessageLength>>29;
for ($i=0; $i < $lNumberOfWords; $i++) {
if(isset($lWordArray[$i]))
$lWordArray[$i] = decbin($lWordArray[$i]);
//This removes Lentgh and Padding of Zeros...
//else
// $lWordArray[$i] = '0';
}
return $lWordArray;
};
echo(md5_hash("asd"));
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.3.6 0.013 0.010 16.88 8.3.5 0.012 0.008 21.26 8.3.4 0.009 0.012 19.17 8.3.3 0.013 0.003 19.13 8.3.2 0.008 0.000 20.41 8.3.1 0.003 0.005 23.70 8.3.0 0.008 0.000 23.36 8.2.18 0.008 0.008 16.75 8.2.17 0.008 0.008 22.96 8.2.16 0.000 0.015 20.82 8.2.15 0.006 0.003 24.18 8.2.14 0.003 0.005 24.66 8.2.13 0.009 0.009 20.96 8.2.12 0.004 0.004 26.35 8.2.11 0.015 0.006 22.10 8.2.10 0.004 0.008 18.18 8.2.9 0.004 0.004 19.44 8.2.8 0.004 0.004 18.30 8.2.7 0.003 0.006 17.88 8.2.6 0.000 0.009 18.18 8.2.5 0.008 0.000 18.07 8.2.4 0.008 0.000 22.28 8.2.3 0.007 0.000 20.95 8.2.2 0.000 0.008 18.00 8.2.1 0.003 0.006 18.32 8.2.0 0.003 0.005 18.37 8.1.28 0.010 0.013 25.92 8.1.27 0.004 0.004 23.79 8.1.26 0.005 0.003 28.09 8.1.25 0.004 0.004 28.09 8.1.24 0.006 0.003 22.15 8.1.23 0.007 0.004 19.35 8.1.22 0.000 0.008 18.04 8.1.21 0.008 0.000 18.77 8.1.20 0.003 0.006 17.60 8.1.19 0.006 0.003 17.50 8.1.18 0.000 0.008 18.10 8.1.17 0.004 0.004 18.59 8.1.16 0.004 0.004 20.94 8.1.15 0.000 0.008 19.14 8.1.14 0.009 0.003 19.84 8.1.13 0.002 0.005 17.94 8.1.12 0.000 0.008 17.75 8.1.11 0.005 0.003 17.75 8.1.10 0.000 0.008 17.63 8.1.9 0.004 0.004 17.72 8.1.8 0.003 0.006 17.77 8.1.7 0.000 0.007 17.60 8.1.6 0.006 0.003 17.87 8.1.5 0.000 0.009 17.82 8.1.4 0.005 0.003 17.69 8.1.3 0.000 0.009 17.90 8.1.2 0.003 0.005 17.86 8.1.1 0.004 0.004 17.79 8.1.0 0.006 0.003 17.64 8.0.30 0.004 0.004 18.77 8.0.29 0.000 0.009 17.00 8.0.28 0.003 0.006 18.56 8.0.27 0.004 0.004 17.45 8.0.26 0.003 0.003 17.48 8.0.25 0.004 0.004 17.25 8.0.24 0.000 0.007 17.26 8.0.23 0.004 0.004 17.31 8.0.22 0.004 0.004 17.18 8.0.21 0.000 0.007 17.18 8.0.20 0.003 0.003 17.30 8.0.19 0.000 0.008 17.20 8.0.18 0.004 0.004 17.23 8.0.17 0.000 0.009 17.20 8.0.16 0.000 0.007 17.14 8.0.15 0.000 0.008 17.03 8.0.14 0.005 0.003 17.02 8.0.13 0.007 0.000 13.61 8.0.12 0.004 0.004 17.21 8.0.11 0.004 0.004 17.19 8.0.10 0.000 0.008 17.07 8.0.9 0.000 0.008 17.04 8.0.8 0.003 0.013 17.13 8.0.7 0.004 0.004 17.10 8.0.6 0.003 0.005 17.07 8.0.5 0.006 0.003 17.09 8.0.3 0.011 0.008 17.33 8.0.2 0.010 0.012 17.40 8.0.1 0.000 0.008 17.18 8.0.0 0.008 0.012 17.12 7.4.33 0.003 0.003 16.85 7.4.32 0.000 0.007 16.71 7.4.30 0.000 0.007 16.85 7.4.29 0.003 0.005 16.76 7.4.28 0.006 0.003 16.60 7.4.27 0.007 0.000 16.77 7.4.26 0.004 0.004 16.82 7.4.25 0.004 0.004 16.70 7.4.24 0.002 0.006 16.69 7.4.23 0.004 0.004 16.80 7.4.22 0.012 0.006 16.87 7.4.21 0.000 0.016 16.67 7.4.20 0.005 0.003 16.75 7.4.16 0.014 0.007 16.91 7.4.15 0.018 0.009 17.40 7.4.14 0.009 0.014 17.86 7.4.13 0.014 0.006 16.82 7.4.12 0.012 0.007 16.77 7.4.11 0.016 0.009 16.96 7.4.10 0.012 0.006 16.76 7.4.9 0.012 0.006 16.83 7.4.8 0.018 0.009 19.39 7.4.7 0.003 0.018 16.80 7.4.6 0.010 0.007 16.73 7.4.5 0.003 0.012 16.48 7.4.4 0.004 0.015 16.74 7.4.3 0.007 0.011 16.73 7.4.0 0.010 0.009 15.21 7.3.33 0.000 0.006 13.64 7.3.32 0.005 0.000 13.53 7.3.31 0.004 0.004 16.70 7.3.30 0.000 0.007 16.66 7.3.29 0.007 0.011 16.63 7.3.28 0.005 0.011 16.66 7.3.27 0.000 0.019 17.40 7.3.26 0.012 0.006 16.78 7.3.25 0.008 0.011 16.73 7.3.24 0.007 0.014 16.64 7.3.23 0.012 0.006 16.76 7.3.21 0.009 0.009 16.67 7.3.20 0.009 0.009 16.93 7.3.19 0.016 0.006 16.68 7.3.18 0.020 0.006 16.65 7.3.17 0.004 0.019 16.72 7.3.16 0.009 0.009 16.74 7.3.12 0.010 0.006 15.26 7.3.11 0.011 0.007 14.96 7.3.10 0.000 0.013 15.17 7.3.9 0.007 0.007 15.29 7.3.8 0.008 0.004 15.25 7.3.7 0.004 0.007 15.22 7.3.6 0.010 0.003 15.19 7.3.5 0.000 0.012 14.84 7.3.4 0.003 0.010 15.14 7.3.3 0.009 0.004 15.05 7.3.2 0.010 0.010 16.72 7.3.1 0.009 0.009 16.73 7.3.0 0.000 0.018 16.53 7.2.33 0.006 0.012 17.06 7.2.32 0.009 0.008 17.00 7.2.31 0.003 0.014 17.07 7.2.30 0.014 0.003 16.76 7.2.29 0.017 0.007 16.74 7.2.25 0.007 0.013 15.07 7.2.24 0.007 0.007 15.50 7.2.23 0.003 0.013 15.31 7.2.22 0.003 0.010 15.50 7.2.21 0.006 0.009 15.53 7.2.20 0.004 0.015 15.07 7.2.19 0.003 0.013 15.29 7.2.18 0.003 0.010 15.40 7.2.17 0.007 0.007 15.45 7.2.8 0.000 0.010 16.75 7.2.6 0.009 0.003 16.73 7.1.33 0.010 0.007 15.63 7.1.32 0.007 0.011 15.57 7.1.31 0.000 0.014 16.00 7.1.30 0.003 0.007 15.70 7.1.29 0.006 0.009 15.73 7.1.28 0.004 0.011 15.73 7.1.27 0.011 0.009 15.82 7.1.26 0.007 0.010 15.66 7.1.20 0.000 0.008 15.99 7.1.7 0.005 0.003 17.22 7.1.6 0.007 0.018 19.52 7.1.5 0.004 0.015 17.15 7.1.0 0.003 0.073 22.36 7.0.20 0.004 0.004 16.86 7.0.10 0.013 0.080 20.18 7.0.9 0.010 0.080 20.21 7.0.8 0.010 0.047 20.36 7.0.7 0.010 0.047 20.17 7.0.6 0.017 0.087 20.16 7.0.5 0.007 0.083 20.55 7.0.4 0.003 0.093 20.01 7.0.3 0.010 0.077 20.04 7.0.2 0.007 0.073 20.00 7.0.1 0.010 0.077 19.94 7.0.0 0.003 0.057 20.14 5.6.28 0.000 0.033 21.11 5.6.25 0.007 0.083 20.71 5.6.24 0.007 0.050 20.81 5.6.23 0.017 0.063 20.66 5.6.22 0.010 0.057 20.61 5.6.21 0.000 0.090 20.82 5.6.20 0.013 0.080 21.07 5.6.19 0.013 0.080 21.21 5.6.18 0.003 0.087 21.18 5.6.17 0.013 0.063 21.30 5.6.16 0.010 0.073 21.14 5.6.15 0.017 0.070 21.20 5.6.14 0.010 0.053 21.14 5.6.13 0.007 0.053 21.08 5.6.12 0.013 0.063 21.25 5.6.11 0.010 0.080 21.13 5.6.10 0.010 0.047 21.16 5.6.9 0.010 0.070 21.15 5.6.8 0.007 0.040 20.60 5.6.7 0.007 0.077 20.54 5.6.6 0.007 0.080 20.62 5.6.5 0.013 0.070 20.61 5.6.4 0.007 0.060 20.51 5.6.3 0.003 0.083 20.40 5.6.2 0.003 0.053 20.48 5.6.1 0.007 0.080 20.49 5.6.0 0.013 0.067 20.48 5.5.38 0.000 0.087 20.52 5.5.37 0.010 0.037 20.50 5.5.36 0.007 0.070 20.56 5.5.35 0.010 0.073 20.55 5.5.34 0.000 0.043 21.02 5.5.33 0.017 0.047 20.88 5.5.32 0.000 0.070 21.05 5.5.31 0.017 0.040 20.89 5.5.30 0.010 0.073 20.95 5.5.29 0.003 0.090 20.72 5.5.28 0.013 0.067 20.88 5.5.27 0.003 0.047 20.91 5.5.26 0.013 0.047 20.86 5.5.25 0.010 0.080 20.85 5.5.24 0.003 0.077 20.29 5.5.23 0.007 0.077 20.26 5.5.22 0.010 0.053 20.27 5.5.21 0.010 0.073 20.42 5.5.20 0.003 0.047 20.37 5.5.19 0.007 0.043 20.36 5.5.18 0.010 0.080 20.38 5.5.16 0.003 0.077 20.21 5.5.15 0.010 0.067 20.27 5.5.14 0.007 0.080 20.38 5.5.13 0.013 0.037 20.30 5.5.12 0.007 0.083 20.36 5.5.11 0.007 0.067 20.24 5.5.10 0.003 0.050 20.10 5.5.9 0.020 0.053 20.13 5.5.8 0.007 0.043 20.17 5.5.7 0.003 0.083 20.12 5.5.6 0.013 0.067 20.18 5.5.5 0.007 0.070 20.22 5.5.4 0.003 0.043 20.21 5.5.3 0.000 0.053 20.17 5.5.2 0.020 0.063 20.08 5.5.1 0.007 0.047 20.24 5.5.0 0.007 0.053 20.16
preferences:dark mode live preview
73.69 ms | 401 KiB | 5 Q