@ 2013-06-30T20:56:44Z <?php
class EAHashor {
private $right32;
//initialise the class
public function __construct() {
// This is a 32- and 64-bit safe way to get an integer with only the
// right-most 32-bits set
$this->right32 = ~((~0 << 16) << 16);
}
public function eaEncode($string){
$a = "67452301";
$b = "EFCDAB89";
$c = "98BADCFE";
$d = "10325476";
$words = $this->init($string);
for($i = 0, $l = count($words) / 16 - 1; $i <= $l; $i++){
$A = $a;
$B = $b;
$C = $c;
$D = $d;
/* ROUND 1 */
$this->FF ($A, $B, $C, $D, $words[0 + ($i * 16)], 7, "d76aa478");
$this->FF ($D, $A, $B, $C, $words[1 + ($i * 16)], 12, "e8c7b756");
$this->FF ($C, $D, $A, $B, $words[2 + ($i * 16)], 17, "242070db");
$this->FF ($B, $C, $D, $A, $words[3 + ($i * 16)], 22, "c1bdceee");
$this->FF ($A, $B, $C, $D, $words[4 + ($i * 16)], 7, "f57c0faf");
$this->FF ($D, $A, $B, $C, $words[5 + ($i * 16)], 12, "4787c62a");
$this->FF ($C, $D, $A, $B, $words[6 + ($i * 16)], 17, "a8304613");
$this->FF ($B, $C, $D, $A, $words[7 + ($i * 16)], 22, "fd469501");
$this->FF ($A, $B, $C, $D, $words[8 + ($i * 16)], 7, "698098d8");
$this->FF ($D, $A, $B, $C, $words[9 + ($i * 16)], 12, "8b44f7af");
$this->FF ($C, $D, $A, $B, $words[10 + ($i * 16)], 17, "ffff5bb1");
$this->FF ($B, $C, $D, $A, $words[11 + ($i * 16)], 22, "895cd7be");
$this->FF ($A, $B, $C, $D, $words[12 + ($i * 16)], 7, "6b901122");
$this->FF ($D, $A, $B, $C, $words[13 + ($i * 16)], 12, "fd987193");
$this->FF ($C, $D, $A, $B, $words[14 + ($i * 16)], 17, "a679438e");
$this->FF ($B, $C, $D, $A, $words[15 + ($i * 16)], 22, "49b40821");
/* ROUND 2 */
$this->GG ($A, $B, $C, $D, $words[1 + ($i * 16)], 5, "f61e2562");
$this->GG ($D, $A, $B, $C, $words[6 + ($i * 16)], 9, "c040b340");
$this->GG ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "265e5a51");
$this->GG ($B, $C, $D, $A, $words[0 + ($i * 16)], 20, "e9b6c7aa");
$this->GG ($A, $B, $C, $D, $words[5 + ($i * 16)], 5, "d62f105d");
$this->GG ($D, $A, $B, $C, $words[10 + ($i * 16)], 9, "02441453");
$this->GG ($C, $D, $A, $B, $words[15 + ($i * 16)], 14, "d8a1e681");
$this->GG ($B, $C, $D, $A, $words[4 + ($i * 16)], 20, "e7d3fbc8");
$this->GG ($A, $B, $C, $D, $words[9 + ($i * 16)], 5, "21e1cde6");
$this->GG ($D, $A, $B, $C, $words[14 + ($i * 16)], 9, "c33707d6");
$this->GG ($C, $D, $A, $B, $words[3 + ($i * 16)], 14, "f4d50d87");
$this->GG ($B, $C, $D, $A, $words[8 + ($i * 16)], 20, "455a14ed");
$this->GG ($A, $B, $C, $D, $words[13 + ($i * 16)], 5, "a9e3e905");
$this->GG ($D, $A, $B, $C, $words[2 + ($i * 16)], 9, "fcefa3f8");
$this->GG ($C, $D, $A, $B, $words[7 + ($i * 16)], 14, "676f02d9");
$this->GG ($B, $C, $D, $A, $words[12 + ($i * 16)], 20, "8d2a4c8a");
/* ROUND 3 */
$this->HH ($A, $B, $C, $D, $words[5 + ($i * 16)], 4, "fffa3942");
$this->HH ($D, $A, $B, $C, $words[8 + ($i * 16)], 11, "8771f681");
//HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 16, "6d9d6122");
//the line below has been changed to use 14 rather than 16 as seen in the commented line
$this->HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "6d9d6122");
$this->HH ($B, $C, $D, $A, $words[14 + ($i * 16)], 23, "fde5380c");
$this->HH ($A, $B, $C, $D, $words[1 + ($i * 16)], 4, "a4beea44");
$this->HH ($D, $A, $B, $C, $words[4 + ($i * 16)], 11, "4bdecfa9");
$this->HH ($C, $D, $A, $B, $words[7 + ($i * 16)], 16, "f6bb4b60");
$this->HH ($B, $C, $D, $A, $words[10 + ($i * 16)], 23, "bebfbc70");
$this->HH ($A, $B, $C, $D, $words[13 + ($i * 16)], 4, "289b7ec6");
$this->HH ($D, $A, $B, $C, $words[0 + ($i * 16)], 11, "eaa127fa");
$this->HH ($C, $D, $A, $B, $words[3 + ($i * 16)], 16, "d4ef3085");
$this->HH ($B, $C, $D, $A, $words[6 + ($i * 16)], 23, "04881d05");
$this->HH ($A, $B, $C, $D, $words[9 + ($i * 16)], 4, "d9d4d039");
$this->HH ($D, $A, $B, $C, $words[12 + ($i * 16)], 11, "e6db99e5");
$this->HH ($C, $D, $A, $B, $words[15 + ($i * 16)], 16, "1fa27cf8");
$this->HH ($B, $C, $D, $A, $words[2 + ($i * 16)], 23, "c4ac5665");
/* ROUND 4 */
$this->II ($A, $B, $C, $D, $words[0 + ($i * 16)], 6, "f4292244");
$this->II ($D, $A, $B, $C, $words[7 + ($i * 16)], 10, "432aff97");
$this->II ($C, $D, $A, $B, $words[14 + ($i * 16)], 15, "ab9423a7");
$this->II ($B, $C, $D, $A, $words[5 + ($i * 16)], 21, "fc93a039");
$this->II ($A, $B, $C, $D, $words[12 + ($i * 16)], 6, "655b59c3");
$this->II ($D, $A, $B, $C, $words[3 + ($i * 16)], 10, "8f0ccc92");
$this->II ($C, $D, $A, $B, $words[10 + ($i * 16)], 15, "ffeff47d");
$this->II ($B, $C, $D, $A, $words[1 + ($i * 16)], 21, "85845dd1");
$this->II ($A, $B, $C, $D, $words[8 + ($i * 16)], 6, "6fa87e4f");
$this->II ($D, $A, $B, $C, $words[15 + ($i * 16)], 10, "fe2ce6e0");
$this->II ($C, $D, $A, $B, $words[6 + ($i * 16)], 15, "a3014314");
$this->II ($B, $C, $D, $A, $words[13 + ($i * 16)], 21, "4e0811a1");
$this->II ($A, $B, $C, $D, $words[4 + ($i * 16)], 6, "f7537e82");
$this->II ($D, $A, $B, $C, $words[11 + ($i * 16)], 10, "bd3af235");
$this->II ($C, $D, $A, $B, $words[2 + ($i * 16)], 15, "2ad7d2bb");
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
//this last line is used twice
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
$this->addVars($a, $b, $c, $d, $A, $B, $C, $D);
}
$MD5 = '';
foreach (array($a, $b, $c, $d) as $x) {
$MD5 .= implode('', array_reverse(str_split($this->leftpad($x, 8), 2)));
}
return $MD5;
}
/* General functions */
private function hexbin($str){
$hexbinmap = array( "0" => "0000",
"1" => "0001",
"2" => "0010",
"3" => "0011"
, "4" => "0100"
, "5" => "0101"
, "6" => "0110"
, "7" => "0111"
, "8" => "1000"
, "9" => "1001"
, "A" => "1010"
, "a" => "1010"
, "B" => "1011"
, "b" => "1011"
, "C" => "1100"
, "c" => "1100"
, "D" => "1101"
, "d" => "1101"
, "E" => "1110"
, "e" => "1110"
, "F" => "1111"
, "f" => "1111");
$bin = "";
for ($i = 0; $i < strlen($str); $i++){
$bin .= $hexbinmap[$str[$i]];
}
$bin = ltrim($bin, '0');
// echo "Original: ".$str." New: ".$bin."<br />";
return $bin;
}
private function strhex($str){
$hex = "";
for ($i = 0; $i < strlen($str); $i++){
$hex = $hex.$this->leftpad(dechex(ord($str[$i])), 2);
}
return $hex;
}
/* MD5-specific functions */
private function init($string){
$len = strlen($string) * 8;
$hex = $this->strhex($string); // convert ascii string to hex
$bin = $this->leftpad($this->hexbin($hex), $len); // convert hex string to bin
$padded = $this->pad($bin);
$padded = $this->pad($padded, 1, $len);
$block = str_split($padded, 32);
foreach ($block as &$b) {
$b = implode('', array_reverse(str_split($b, 8)));
}
return $block;
}
private function pad($bin, $type=0, $len = 0){
if($type == 0){
$bin = $bin."1";
$buff = strlen($bin) % 512;
if($buff != 448){
while(strlen($bin) % 512 != 448){
$bin = $bin."0";
}
}
}
// append length (b) of string to latter 64 bits
elseif($type == 1){
$bLen = $this->leftpad(decbin($len), 64);
$bin .= implode('', array_reverse(str_split($bLen, 8)));
}
return $bin;
}
/* MD5 base functions */
private function F($X, $Y, $Z){
$X = $this->binarySafeHexDec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z
return $calc;
}
private function G($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z
return $calc;
}
private function H($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($X ^ $Y ^ $Z); // X XOR Y XOR Z
return $calc;
}
private function I($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($Y ^ ($X | (~ $Z))) ; // Y XOR (X OR NOT Z)
return $calc;
}
/* MD5 round functions */
/* $A - hex, $B - hex, $C - hex, $D - hex (F - dec)
$M - binary
$s - decimal
$t - hex
*/
private function FF(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
echo "A: " . $A . "\n";
echo "t: " . $t . "\n";
echo "M: " . $M . "\n";
$A = $this->add($A, $this->F($B, $C, $D), $M, $t) & $this->right32; //decimal
echo "4: " . $A . "\n";
$A = $this->rotate($A, $s);
echo "5: " . $A . "\n";
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "Result: " . $A . "\n";
}
private function GG(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->G($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function HH(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->H($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function II(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->I($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
// shift
private function rotate ($decimal, $bits) { //returns hex
return dechex(($decimal << $bits) | (($decimal >> (32 - $bits)) & ~((~0 << (32 - $bits)) & $this->right32)));
}
private function addVars(&$a, &$b, &$c, &$d, $A, $B, $C, $D){
$A = $this->binarysafehexdec($A);
$B = $this->binarysafehexdec($B);
$C = $this->binarysafehexdec($C);
$D = $this->binarysafehexdec($D);
$aa = $this->binarysafehexdec($a);
$bb = $this->binarysafehexdec($b);
$cc = $this->binarysafehexdec($c);
$dd = $this->binarysafehexdec($d);
$aa = $this->add($aa, $A) & $this->right32;
$bb = $this->add($bb, $B) & $this->right32;
$cc = $this->add($cc, $C) & $this->right32;
$dd = $this->add($dd, $D) & $this->right32;
$a = dechex($aa);
$b = dechex($bb);
$c = dechex($cc);
$d = dechex($dd);
}
private function leftpad($needs_padding, $alignment) {
if (strlen($needs_padding) % $alignment) {
$pad_amount = $alignment - strlen($needs_padding) % $alignment;
$left_pad = implode('', array_fill(0, $pad_amount, '0'));
$needs_padding = $left_pad . $needs_padding;
}
return $needs_padding;
}
public function binarySafeBinDec($bin)
{
$bits = array_reverse(str_split($bin, 1));
$result = 0;
foreach ($bits as $position => $bit) {
$result |= ((int) $bit) << $position;
}
return $result;
}
private function binarySafeHexDec($hex)
{
$h = str_split(str_pad($hex, 8, '0', STR_PAD_LEFT), 2);
return (hexdec($h[0]) << 24) | (hexdec($h[1]) << 16) | (hexdec($h[2]) << 8) | hexdec($h[3]);
}
private function leftShiftByOne($intAsStr) {
$p = unpack('N2', $intAsStr);
return pack('N2', ($p[1] << 1) | (($p[2] >> 32) & 0x00000001), $p[2] << 1);
}
// This is not a true binary addition function. In the context in which it is used
// it works, but it's not a general case routine.
private function binarySafeAddition($a, $b) {
// NB: we don't actually need 64 bits, but 40 bit integers are confusing
$a = "\x00\x00\x00\x00" . pack('N', $a);
$b = "\x00\x00\x00\x00" . pack('N', $b);
$carry = $a & $b;
$result = $a ^ $b;
while ($carry != "\x00\x00\x00\x00\x00\x00\x00\x00") {
$shiftedcarry = $this->leftShiftByOne($carry);
$carry = $result & $shiftedcarry;
$result ^= $shiftedcarry;
}
return current(unpack('N', substr($result, 4)));
}
public function add() {
$result = 0;
foreach (func_get_args() as $int) {
$result = $this->binarySafeAddition($result, $int);
}
return $result;
}
}
$eahashor = new EAHashor();
$hash = $eahashor->eaEncode('test');
echo $hash;
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.006 0.019 16.88 8.3.5 0.009 0.009 17.54 8.3.4 0.014 0.003 18.76 8.3.3 0.007 0.011 18.76 8.3.2 0.005 0.005 19.01 8.3.1 0.003 0.006 20.66 8.3.0 0.008 0.004 17.75 8.2.18 0.015 0.009 16.75 8.2.17 0.006 0.010 22.96 8.2.16 0.010 0.007 21.20 8.2.15 0.000 0.010 24.18 8.2.14 0.010 0.007 24.66 8.2.13 0.008 0.000 26.16 8.2.12 0.000 0.009 19.77 8.2.11 0.003 0.009 20.60 8.2.10 0.007 0.007 18.09 8.2.9 0.003 0.006 19.55 8.2.8 0.003 0.006 18.00 8.2.7 0.007 0.003 17.75 8.2.6 0.008 0.004 18.18 8.2.5 0.010 0.000 18.07 8.2.4 0.000 0.009 18.34 8.2.3 0.003 0.006 18.31 8.2.2 0.009 0.000 17.90 8.2.1 0.006 0.003 18.05 8.2.0 0.006 0.003 18.02 8.1.28 0.013 0.003 25.92 8.1.27 0.009 0.000 24.66 8.1.26 0.003 0.006 26.35 8.1.25 0.006 0.003 28.09 8.1.24 0.008 0.003 22.47 8.1.23 0.007 0.007 17.77 8.1.22 0.005 0.005 17.91 8.1.21 0.009 0.000 18.77 8.1.20 0.003 0.007 17.61 8.1.19 0.009 0.000 17.91 8.1.18 0.003 0.006 18.10 8.1.17 0.003 0.006 19.08 8.1.16 0.004 0.004 19.07 8.1.15 0.006 0.003 18.96 8.1.14 0.008 0.003 17.76 8.1.13 0.000 0.008 18.11 8.1.12 0.003 0.006 17.65 8.1.11 0.003 0.006 17.61 8.1.10 0.006 0.003 17.77 8.1.9 0.000 0.009 17.69 8.1.8 0.003 0.006 17.62 8.1.7 0.003 0.006 17.63 8.1.6 0.003 0.010 17.76 8.1.5 0.007 0.003 17.74 8.1.4 0.000 0.009 17.80 8.1.3 0.000 0.009 17.78 8.1.2 0.005 0.005 17.97 8.1.1 0.005 0.005 17.79 8.1.0 0.009 0.000 17.68 8.0.30 0.006 0.003 18.77 8.0.29 0.003 0.007 16.88 8.0.28 0.003 0.006 18.79 8.0.27 0.003 0.006 17.41 8.0.26 0.003 0.005 17.06 8.0.25 0.003 0.006 17.15 8.0.24 0.000 0.008 17.24 8.0.23 0.004 0.004 17.20 8.0.22 0.000 0.010 17.21 8.0.21 0.004 0.004 17.01 8.0.20 0.000 0.008 17.22 8.0.19 0.000 0.009 17.12 8.0.18 0.006 0.003 17.24 8.0.17 0.004 0.007 17.11 8.0.16 0.000 0.009 17.17 8.0.15 0.007 0.003 17.19 8.0.14 0.007 0.007 17.10 8.0.13 0.000 0.007 13.59 8.0.12 0.003 0.007 17.04 8.0.11 0.005 0.005 17.20 8.0.10 0.005 0.005 17.06 8.0.9 0.003 0.006 17.12 8.0.8 0.010 0.010 17.21 8.0.7 0.004 0.004 17.13 8.0.6 0.000 0.010 17.23 8.0.5 0.003 0.006 17.18 8.0.3 0.013 0.014 17.54 8.0.2 0.019 0.009 17.52 8.0.1 0.003 0.006 17.36 8.0.0 0.008 0.013 17.14 7.4.33 0.003 0.003 13.29 7.4.32 0.003 0.006 16.89 7.4.30 0.000 0.008 16.70 7.4.29 0.011 0.003 16.77 7.4.28 0.003 0.007 16.84 7.4.27 0.003 0.006 16.84 7.4.26 0.000 0.007 13.57 7.4.25 0.007 0.003 16.75 7.4.24 0.004 0.004 16.73 7.4.23 0.004 0.004 16.88 7.4.22 0.010 0.021 16.87 7.4.21 0.009 0.013 16.81 7.4.20 0.003 0.006 16.67 7.4.19 0.000 0.009 17.01 7.4.16 0.010 0.010 16.83 7.4.15 0.003 0.017 16.91 7.4.14 0.014 0.011 16.71 7.4.13 0.011 0.010 16.89 7.4.12 0.007 0.014 16.88 7.4.11 0.013 0.013 16.89 7.4.10 0.000 0.020 16.78 7.4.9 0.009 0.012 16.75 7.4.8 0.015 0.012 16.54 7.4.7 0.010 0.011 16.64 7.4.6 0.006 0.016 16.83 7.4.5 0.000 0.011 16.68 7.4.4 0.003 0.016 16.83 7.4.3 0.009 0.012 16.62 7.4.0 0.004 0.017 15.28 7.3.33 0.000 0.009 13.57 7.3.32 0.004 0.004 13.60 7.3.31 0.003 0.005 16.48 7.3.30 0.000 0.008 16.47 7.3.29 0.010 0.007 16.63 7.3.28 0.011 0.013 16.62 7.3.27 0.016 0.006 16.55 7.3.26 0.005 0.017 16.82 7.3.25 0.017 0.005 16.56 7.3.24 0.007 0.016 16.70 7.3.23 0.015 0.006 16.87 7.3.21 0.011 0.010 16.67 7.3.20 0.008 0.012 19.39 7.3.19 0.022 0.003 16.67 7.3.18 0.013 0.006 16.67 7.3.17 0.010 0.010 16.88 7.3.16 0.019 0.006 16.64 7.3.12 0.007 0.015 14.95 7.3.11 0.000 0.020 15.25 7.3.10 0.006 0.009 15.14 7.3.9 0.007 0.010 15.18 7.3.8 0.003 0.013 15.15 7.3.7 0.007 0.007 15.15 7.3.6 0.005 0.012 15.05 7.3.5 0.007 0.010 15.26 7.3.4 0.007 0.010 14.92 7.3.3 0.003 0.013 14.94 7.3.2 0.009 0.006 16.69 7.3.1 0.007 0.007 16.77 7.3.0 0.006 0.012 16.56 7.2.33 0.011 0.011 17.04 7.2.32 0.010 0.016 16.98 7.2.31 0.015 0.015 17.02 7.2.30 0.017 0.019 16.93 7.2.29 0.007 0.014 17.04 7.2.25 0.003 0.019 15.54 7.2.24 0.010 0.013 15.54 7.2.23 0.004 0.015 15.65 7.2.22 0.004 0.014 15.28 7.2.21 0.003 0.013 15.29 7.2.20 0.006 0.011 15.34 7.2.19 0.003 0.010 15.11 7.2.18 0.003 0.014 15.45 7.2.17 0.003 0.013 15.07 7.2.0 0.007 0.015 19.61 7.1.33 0.003 0.014 16.09 7.1.32 0.010 0.007 15.79 7.1.31 0.006 0.010 15.71 7.1.30 0.000 0.013 15.84 7.1.29 0.006 0.006 15.53 7.1.28 0.006 0.012 15.89 7.1.27 0.004 0.014 15.80 7.1.26 0.007 0.007 15.94 7.1.10 0.004 0.008 18.19 7.1.7 0.003 0.010 17.16 7.1.6 0.009 0.018 19.40 7.1.5 0.012 0.009 16.86 7.1.0 0.007 0.073 22.30 7.0.20 0.006 0.003 16.74 7.0.14 0.010 0.070 22.10 7.0.12 0.007 0.057 21.97 7.0.10 0.023 0.083 20.21 7.0.9 0.037 0.080 20.16 7.0.8 0.033 0.073 20.18 7.0.7 0.030 0.070 20.16 7.0.6 0.023 0.093 20.14 7.0.5 0.030 0.083 20.55 7.0.4 0.003 0.090 20.11 7.0.3 0.007 0.087 20.04 7.0.2 0.007 0.083 20.16 7.0.1 0.010 0.080 20.18 7.0.0 0.010 0.083 20.13 5.6.28 0.003 0.080 21.00 5.6.25 0.017 0.080 20.74 5.6.24 0.010 0.083 20.75 5.6.23 0.017 0.043 20.71 5.6.22 0.017 0.077 20.76 5.6.21 0.013 0.073 20.89 5.6.20 0.020 0.077 21.09 5.6.19 0.007 0.063 21.18 5.6.18 0.003 0.080 21.20 5.6.17 0.010 0.080 21.16 5.6.16 0.003 0.073 21.17 5.6.15 0.010 0.077 21.18 5.6.14 0.007 0.093 21.19 5.6.13 0.007 0.053 21.23 5.6.12 0.010 0.090 21.10 5.6.11 0.017 0.083 21.21 5.6.10 0.013 0.080 21.21 5.6.9 0.013 0.087 21.23 5.6.8 0.013 0.080 20.70 5.6.7 0.013 0.083 20.55 5.6.6 0.007 0.083 20.56 5.6.5 0.013 0.067 20.54 5.6.4 0.007 0.083 20.55 5.6.3 0.007 0.083 20.43 5.6.2 0.010 0.083 20.46 5.6.1 0.010 0.070 20.45 5.6.0 0.010 0.090 20.54 5.5.38 0.013 0.077 20.51 5.5.37 0.000 0.060 20.54 5.5.36 0.010 0.080 20.63 5.5.35 0.007 0.083 20.59 5.5.34 0.003 0.090 21.01 5.5.33 0.010 0.083 21.05 5.5.32 0.010 0.053 20.95 5.5.31 0.010 0.083 20.99 5.5.30 0.003 0.100 21.05 5.5.29 0.007 0.090 21.01 5.5.28 0.003 0.073 20.90 5.5.27 0.017 0.083 20.90 5.5.26 0.003 0.073 20.98 5.5.25 0.000 0.087 20.86 5.5.24 0.007 0.057 20.39 5.5.23 0.003 0.083 20.28 5.5.22 0.003 0.080 20.42 5.5.21 0.010 0.080 20.30 5.5.20 0.000 0.090 20.27 5.5.19 0.007 0.080 20.25 5.5.18 0.003 0.063 20.29 5.5.16 0.003 0.090 20.13 5.5.15 0.000 0.077 20.13 5.5.14 0.010 0.073 20.13 5.5.13 0.010 0.043 20.22 5.5.12 0.013 0.073 20.42 5.5.11 0.017 0.047 20.35 5.5.10 0.013 0.070 20.25 5.5.9 0.010 0.080 20.30 5.5.8 0.010 0.080 20.30 5.5.7 0.007 0.050 20.26 5.5.6 0.003 0.087 20.25 5.5.5 0.013 0.080 20.20 5.5.4 0.007 0.077 20.24 5.5.3 0.010 0.080 20.16 5.5.2 0.010 0.067 20.29 5.5.1 0.000 0.083 20.16 5.5.0 0.003 0.057 20.23 5.4.45 0.017 0.073 19.57 5.4.44 0.010 0.077 19.62 5.4.43 0.013 0.073 19.45 5.4.42 0.010 0.077 19.41 5.4.41 0.007 0.080 19.30 5.4.40 0.000 0.050 19.10 5.4.39 0.007 0.080 19.26 5.4.38 0.003 0.073 19.12 5.4.37 0.007 0.080 19.23 5.4.36 0.017 0.047 19.11 5.4.35 0.017 0.077 18.97 5.4.34 0.010 0.077 19.15 5.4.32 0.013 0.077 18.92 5.4.31 0.013 0.067 18.93 5.4.30 0.007 0.083 19.07 5.4.29 0.013 0.060 19.09 5.4.28 0.007 0.080 19.11 5.4.27 0.003 0.087 19.14 5.4.26 0.007 0.077 19.12 5.4.25 0.020 0.063 18.99 5.4.24 0.010 0.073 19.19 5.4.23 0.007 0.083 19.13 5.4.22 0.013 0.080 19.10 5.4.21 0.007 0.070 19.14 5.4.20 0.013 0.070 19.12 5.4.19 0.000 0.053 19.09 5.4.18 0.003 0.083 19.08 5.4.17 0.007 0.040 19.11 5.4.16 0.013 0.063 18.98 5.4.15 0.010 0.070 18.91 5.4.14 0.003 0.083 16.47 5.4.13 0.007 0.080 16.58 5.4.12 0.007 0.053 16.49 5.4.11 0.003 0.077 16.48 5.4.10 0.010 0.067 16.42 5.4.9 0.007 0.047 16.55 5.4.8 0.017 0.070 16.55 5.4.7 0.007 0.073 16.58 5.4.6 0.003 0.070 16.54 5.4.5 0.000 0.063 16.39 5.4.4 0.007 0.047 16.54 5.4.3 0.003 0.087 16.47 5.4.2 0.003 0.083 16.52 5.4.1 0.003 0.077 16.44 5.4.0 0.010 0.070 16.02 5.3.29 0.007 0.083 15.04 5.3.28 0.007 0.077 14.90 5.3.27 0.007 0.077 14.79 5.3.26 0.020 0.063 14.98 5.3.25 0.007 0.077 14.83 5.3.24 0.007 0.080 14.84 5.3.23 0.013 0.077 14.94 5.3.22 0.013 0.063 14.87 5.3.21 0.007 0.080 14.76 5.3.20 0.007 0.077 14.92 5.3.19 0.007 0.080 14.92 5.3.18 0.023 0.060 14.88 5.3.17 0.010 0.077 14.76 5.3.16 0.013 0.077 14.79 5.3.15 0.007 0.080 14.88 5.3.14 0.007 0.080 14.94 5.3.13 0.020 0.043 14.80 5.3.12 0.007 0.063 14.92 5.3.11 0.013 0.067 14.93 5.3.10 0.013 0.070 14.34 5.3.9 0.010 0.077 14.27 5.3.8 0.007 0.077 14.35 5.3.7 0.010 0.073 14.21 5.3.6 0.013 0.073 14.25 5.3.5 0.003 0.073 14.25 5.3.4 0.000 0.070 14.18 5.3.3 0.007 0.043 14.08 5.3.2 0.007 0.073 13.92 5.3.1 0.000 0.073 13.91 5.3.0 0.003 0.040 14.00
preferences:dark mode live preview
70.46 ms | 401 KiB | 5 Q