From patchwork Mon Nov 13 16:33:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: MAHESH BODAPATI X-Patchwork-Id: 1863293 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=CLQhm0uH; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4STZmX3wYsz1yRk for ; Tue, 14 Nov 2023 03:35:40 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9DE5A386182F for ; Mon, 13 Nov 2023 16:35:35 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 2894D38582B7 for ; Mon, 13 Nov 2023 16:34:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2894D38582B7 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2894D38582B7 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699893292; cv=none; b=xxOMjm6pyzJWorwuQwrHrFEV8hIb0uuO2AD9EXByPKJjsrogyTog6lT9myY08OeFi+d9V5O5NMoeGPmHCvugzwTTsyFNVjG/NfgycG2+Ui45pz4uNvdtTWXi/3cPsKwkAI1Vu+bwquGmjhzDhPMVy8DSbuxVxw5DURvskI/6hVk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699893292; c=relaxed/simple; bh=zlfieVbK+PFVZHwGIlbWyEd88yCVyvWlwdwTa4CUHwo=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=p6GrVrBdD+CfstYieXJzBTK5filoOizrUCAUA49h1vmoZXbEDWs/8yT9Mp0cwVWEuMnWP67k9Z731x0m30tHM4N/S/tnaa1fjw7LGMemD1+RKgNnK9zwRDJAUS635hUhpdoZnn5C/kMW4SpLLEHJNvT27DtPQf7Uhy0+6BkZJOg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0353728.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3ADGRnMS023108 for ; Mon, 13 Nov 2023 16:34:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : mime-version; s=pp1; bh=x/Ipapq75foJ3oZwKYrtbk/vTtO5CMCytMvKwcrA3gY=; b=CLQhm0uHtOYTlnHMywn/nfosPU8Ej6D4FPsEAPW5LLS8ctyfuKFjlgWYtmdkiv1em2K+ T38xUBG1mzjciSqoHRX/9M+xiUGMrRYUtepLyqY59Rra4BkUj8HLL8S6I+e1yt8ByOUC ZTGDf0R/Eae+04nVBYTjvwtQoDA8KMiUEWyofhq0kaLvafL0+bU/Z/Cvr3nM2KGFmzup oi1skM5ItSJlJO7oqkkI4J4+eblw6Meu5uk9UMhOeiNPq2WWh/fNBo1Vy6nska3lsBHk YSFv6VENPkEhyTuIu+xox29G4AjunJl/pgTJa+zwpA7qPowNln+YgruShwzeiPoMfb6w CA== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3ubqb7r6vn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 13 Nov 2023 16:34:47 +0000 Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3ADE47pX021836 for ; Mon, 13 Nov 2023 16:34:46 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3uanek9xf3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 13 Nov 2023 16:34:46 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3ADGYhPd14222002 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Nov 2023 16:34:43 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0167020043; Mon, 13 Nov 2023 16:34:43 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4CCF820040; Mon, 13 Nov 2023 16:34:42 +0000 (GMT) Received: from ltcden2-lp1.aus.stglabs.ibm.com (unknown [9.3.90.43]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Nov 2023 16:34:42 +0000 (GMT) From: bmahi496@linux.ibm.com To: libc-alpha@sourceware.org Cc: rajis@linux.ibm.com, MAHESH BODAPATI Subject: [PATCH 1/2] powerpc : Add optimized memchr for POWER10 Date: Mon, 13 Nov 2023 10:33:58 -0600 Message-Id: <20231113163359.1468671-2-bmahi496@linux.ibm.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20231113163359.1468671-1-bmahi496@linux.ibm.com> References: <20231113163359.1468671-1-bmahi496@linux.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: xjoeadcGg7pur9m8MenuPYEYxQ1HATmm X-Proofpoint-GUID: xjoeadcGg7pur9m8MenuPYEYxQ1HATmm X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-13_07,2023-11-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 mlxlogscore=934 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2311130135 X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org From: MAHESH BODAPATI Optimized memchr for POWER10 based on existing rawmemchr and strlen. movement of code,dead code elimination and loop unrolling helped in getting better performance. --- sysdeps/powerpc/powerpc64/le/power10/memchr.S | 315 ++++++++++++++++++ sysdeps/powerpc/powerpc64/multiarch/Makefile | 9 +- .../powerpc64/multiarch/ifunc-impl-list.c | 6 + .../powerpc64/multiarch/memchr-power10.S | 28 ++ sysdeps/powerpc/powerpc64/multiarch/memchr.c | 20 +- 5 files changed, 368 insertions(+), 10 deletions(-) create mode 100644 sysdeps/powerpc/powerpc64/le/power10/memchr.S create mode 100644 sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S diff --git a/sysdeps/powerpc/powerpc64/le/power10/memchr.S b/sysdeps/powerpc/powerpc64/le/power10/memchr.S new file mode 100644 index 0000000000..faf293f344 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/le/power10/memchr.S @@ -0,0 +1,315 @@ +/* Optimized memchr implementation for POWER10 LE. + Copyright (C) 2021-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +# ifndef MEMCHR +# define MEMCHR __memchr +# endif +# define M_VREG_ZERO v20 +# define M_OFF_START_LOOP 256 +# define MEMCHR_SUBTRACT_VECTORS \ + vsububm v4,v4,v18; \ + vsububm v5,v5,v18; \ + vsububm v6,v6,v18; \ + vsububm v7,v7,v18; +# define M_TAIL(vreg,increment) \ + vctzlsbb r4,vreg; \ + cmpld r5,r4; \ + ble L(null); \ + addi r4,r4,increment; \ + add r3,r6,r4; \ + blr + +/* TODO: Replace macros by the actual instructions when minimum binutils becomes + >= 2.35. This is used to keep compatibility with older versions. */ +#define M_VEXTRACTBM(rt,vrb) \ + .long(((4)<<(32-6)) \ + | ((rt)<<(32-11)) \ + | ((8)<<(32-16)) \ + | ((vrb)<<(32-21)) \ + | 1602) + +#define M_LXVP(xtp,dq,ra) \ + .long(((6)<<(32-6)) \ + | ((((xtp)-32)>>1)<<(32-10)) \ + | ((1)<<(32-11)) \ + | ((ra)<<(32-16)) \ + | dq) + +#define CHECK16B(vreg,offset,addr,label) \ + lxv vreg+32,offset(addr); \ + vcmpequb. vreg,vreg,v18; \ + bne cr6,L(label); \ + cmpldi r5,16; \ + ble L(null); \ + addi r5,r5,-16; + +/* Load 4 quadwords, merge into one VR for speed and check for NULLs. r6 has # + of bytes already checked. */ +#define CHECK64B(offset,addr,label) \ + M_LXVP(v4+32,offset,addr); \ + M_LXVP(v6+32,offset+32,addr); \ + MEMCHR_SUBTRACT_VECTORS; \ + vminub v14,v4,v5; \ + vminub v15,v6,v7; \ + vminub v16,v14,v15; \ + vcmpequb. v0,v16,M_VREG_ZERO; \ + beq cr6,$+12; \ + li r7,offset; \ + b L(label); \ + cmpldi r5,64; \ + ble L(null); \ + addi r5,r5,-64 + +/* Implements the function + void *[r3] memchr (const void *s [r3], int c [r4], size_t n [r5]). */ + + .machine power9 + +ENTRY_TOCLESS (MEMCHR) + CALL_MCOUNT 3 + + cmpldi r5,0 + beq L(null) + mr r0,r5 + xori r6,r4,0xff + + mtvsrd v18+32,r4 /* matching char in v18 */ + mtvsrd v19+32,r6 /* non matching char in v19 */ + + vspltb v18,v18,7 /* replicate */ + vspltb v19,v19,7 /* replicate */ + vspltisb M_VREG_ZERO,0 + + /* Next 16B-aligned address. Prepare address for L(aligned). */ + addi r6,r3,16 + clrrdi r6,r6,4 + + /* Align data and fill bytes not loaded with non matching char. */ + lvx v0,0,r3 + lvsr v1,0,r3 + vperm v0,v19,v0,v1 + + vcmpequb. v6,v0,v18 + bne cr6,L(found) + sub r4,r6,r3 + cmpld r5,r4 + ble L(null) + sub r5,r5,r4 + + /* Test up to OFF_START_LOOP-16 bytes in 16B chunks. The main loop is + optimized for longer strings, so checking the first bytes in 16B + chunks benefits a lot small strings. */ + .p2align 5 +L(aligned): + cmpldi r5,0 + beq L(null) + + CHECK16B(v0,0,r6,tail1) + CHECK16B(v1,16,r6,tail2) + CHECK16B(v2,32,r6,tail3) + CHECK16B(v3,48,r6,tail4) + CHECK16B(v4,64,r6,tail5) + CHECK16B(v5,80,r6,tail6) + CHECK16B(v6,96,r6,tail7) + CHECK16B(v7,112,r6,tail8) + CHECK16B(v8,128,r6,tail9) + CHECK16B(v9,144,r6,tail10) + CHECK16B(v10,160,r6,tail11) + CHECK16B(v0,176,r6,tail12) + CHECK16B(v1,192,r6,tail13) + CHECK16B(v2,208,r6,tail14) + CHECK16B(v3,224,r6,tail15) + + cmpdi cr5,r4,0 /* Check if c == 0. This will be useful to + choose how we will perform the main loop. */ + + /* Prepare address for the loop. */ + addi r4,r3,M_OFF_START_LOOP + clrrdi r4,r4,6 + sub r6,r4,r3 + sub r5,r0,r6 + addi r6,r4,128 + + /* If c == 0, use the loop without the vsububm. */ + beq cr5,L(loop) + + /* This is very similar to the block after L(loop), the difference is + that here MEMCHR_SUBTRACT_VECTORS is not empty, and we subtract + each byte loaded by the char we are looking for, this way we can keep + using vminub to merge the results and checking for nulls. */ + .p2align 5 +L(memchr_loop): + CHECK64B(0,r4,pre_tail_64b) + CHECK64B(64,r4,pre_tail_64b) + addi r4,r4,256 + + CHECK64B(0,r6,tail_64b) + CHECK64B(64,r6,tail_64b) + addi r6,r6,256 + + CHECK64B(0,r4,pre_tail_64b) + CHECK64B(64,r4,pre_tail_64b) + addi r4,r4,256 + + CHECK64B(0,r6,tail_64b) + CHECK64B(64,r6,tail_64b) + addi r6,r6,256 + + b L(memchr_loop) + /* Switch to a more aggressive approach checking 64B each time. Use 2 + pointers 128B apart and unroll the loop once to make the pointer + updates and usages separated enough to avoid stalls waiting for + address calculation. */ + .p2align 5 +L(loop): +#undef MEMCHR_SUBTRACT_VECTORS +#define MEMCHR_SUBTRACT_VECTORS /* nothing */ + CHECK64B(0,r4,pre_tail_64b) + CHECK64B(64,r4,pre_tail_64b) + addi r4,r4,256 + + CHECK64B(0,r6,tail_64b) + CHECK64B(64,r6,tail_64b) + addi r6,r6,256 + + CHECK64B(0,r4,pre_tail_64b) + CHECK64B(64,r4,pre_tail_64b) + addi r4,r4,256 + + CHECK64B(0,r6,tail_64b) + CHECK64B(64,r6,tail_64b) + addi r6,r6,256 + + b L(loop) + + .p2align 5 +L(pre_tail_64b): + mr r6,r4 +L(tail_64b): + /* OK, we found a null byte. Let's look for it in the current 64-byte + block and mark it in its corresponding VR. lxvp vx,0(ry) puts the + low 16B bytes into vx+1, and the high into vx, so the order here is + v5, v4, v7, v6. */ + vcmpequb v1,v5,M_VREG_ZERO + vcmpequb v2,v4,M_VREG_ZERO + vcmpequb v3,v7,M_VREG_ZERO + vcmpequb v4,v6,M_VREG_ZERO + + /* Take into account the other 64B blocks we had already checked. */ + add r6,r6,r7 + /* Extract first bit of each byte. */ + M_VEXTRACTBM(r8,v1) + M_VEXTRACTBM(r9,v2) + M_VEXTRACTBM(r10,v3) + M_VEXTRACTBM(r11,v4) + + /* Shift each value into their corresponding position. */ + sldi r9,r9,16 + sldi r10,r10,32 + sldi r11,r11,48 + + /* Merge the results. */ + or r8,r8,r9 + or r9,r10,r11 + or r11,r9,r8 + + cnttzd r0,r11 /* Count trailing zeros before the match. */ + cmpld r5,r0 + ble L(null) + add r3,r6,r0 /* Compute final address. */ + blr + + .p2align 5 +L(tail1): + M_TAIL(v0,0) + + .p2align 5 +L(tail2): + M_TAIL(v1,16) + + .p2align 5 +L(tail3): + M_TAIL(v2,32) + + .p2align 5 +L(tail4): + M_TAIL(v3,48) + + .p2align 5 +L(tail5): + M_TAIL(v4,64) + + .p2align 5 +L(tail6): + M_TAIL(v5,80) + + .p2align 5 +L(tail7): + M_TAIL(v6,96) + + .p2align 5 +L(tail8): + M_TAIL(v7,112) + + .p2align 5 +L(tail9): + M_TAIL(v8,128) + + .p2align 5 +L(tail10): + M_TAIL(v9,144) + + .p2align 5 +L(tail11): + M_TAIL(v10,160) + + .p2align 5 +L(tail12): + M_TAIL(v0,176) + + .p2align 5 +L(tail13): + M_TAIL(v1,192) + + .p2align 5 +L(tail14): + M_TAIL(v2,208) + + .p2align 5 +L(tail15): + M_TAIL(v3,224) + + .p2align 5 +L(found): + vctzlsbb r7,v6 + cmpld r5,r7 + ble L(null) + add r3,r3,r7 + blr + + .p2align 5 +L(null): + li r3,0 + blr + +END (MEMCHR) + +weak_alias (__memchr, memchr) +libc_hidden_builtin_def (memchr) diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile index 27d8495503..eb3d72a11c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile @@ -31,10 +31,11 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \ strncase-power8 ifneq (,$(filter %le,$(config-machine))) -sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \ - rawmemchr-power9 rawmemchr-power10 \ - strcmp-power9 strncmp-power9 strcpy-power9 stpcpy-power9 \ - strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10 +sysdep_routines += memchr-power10 memcmp-power10 memcpy-power10 \ + memmove-power10 memset-power10 rawmemchr-power9 \ + rawmemchr-power10 strcmp-power9 strncmp-power9 \ + strcpy-power9 stpcpy-power9 strlen-power9 strncpy-power9 \ + stpncpy-power9 strlen-power10 endif CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c index fc26dd0e17..b353ca4c3a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c @@ -226,6 +226,12 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, /* Support sysdeps/powerpc/powerpc64/multiarch/memchr.c. */ IFUNC_IMPL (i, name, memchr, +#ifdef __LITTLE_ENDIAN__ + IFUNC_IMPL_ADD (array, i, memchr, + hwcap2 & PPC_FEATURE2_ARCH_3_1 + && hwcap & PPC_FEATURE_HAS_VSX, + __memchr_power10) +#endif IFUNC_IMPL_ADD (array, i, memchr, hwcap2 & PPC_FEATURE2_ARCH_2_07 && hwcap & PPC_FEATURE_HAS_ALTIVEC, diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S new file mode 100644 index 0000000000..b9ed792676 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S @@ -0,0 +1,28 @@ +/* Optimized memchr implementation for POWER10/PPC64. + Copyright (C) 2016-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#if defined __LITTLE_ENDIAN__ && IS_IN (libc) +#define MEMCHR __memchr_power10 + +#undef libc_hidden_builtin_def +#define libc_hidden_builtin_def(name) +#undef weak_alias +#define weak_alias(name,alias) + +#include +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr.c b/sysdeps/powerpc/powerpc64/multiarch/memchr.c index a1a8f3eedd..dbb30fe51d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memchr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memchr.c @@ -25,15 +25,23 @@ extern __typeof (__memchr) __memchr_ppc attribute_hidden; extern __typeof (__memchr) __memchr_power7 attribute_hidden; extern __typeof (__memchr) __memchr_power8 attribute_hidden; +# ifdef __LITTLE_ENDIAN__ +extern __typeof (__memchr) __memchr_power10 attribute_hidden; +# endif /* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle ifunc symbol properly. */ libc_ifunc (__memchr, - (hwcap2 & PPC_FEATURE2_ARCH_2_07 - && hwcap & PPC_FEATURE_HAS_ALTIVEC) - ? __memchr_power8 : - (hwcap & PPC_FEATURE_ARCH_2_06) - ? __memchr_power7 - : __memchr_ppc); +# ifdef __LITTLE_ENDIAN__ + (hwcap2 & PPC_FEATURE2_ARCH_3_1 + && hwcap & PPC_FEATURE_HAS_VSX) + ? __memchr_power10 : +# endif + (hwcap2 & PPC_FEATURE2_ARCH_2_07 + && hwcap & PPC_FEATURE_HAS_ALTIVEC) + ? __memchr_power8 : + (hwcap & PPC_FEATURE_ARCH_2_06) + ? __memchr_power7 + : __memchr_ppc); weak_alias (__memchr, memchr) libc_hidden_builtin_def (memchr) From patchwork Mon Nov 13 16:33:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: MAHESH BODAPATI X-Patchwork-Id: 1863295 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=c+Bq2Xxd; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4STZn90JZRz1yRk for ; Tue, 14 Nov 2023 03:36:13 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9FD3B3857016 for ; Mon, 13 Nov 2023 16:36:10 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 214AD3857016 for ; Mon, 13 Nov 2023 16:34:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 214AD3857016 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 214AD3857016 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699893298; cv=none; b=kZ1CYOuaUKPF58aGmcVqFIXbycP+r1/uLzIU+lGjJCCVTCetOa4+jSIMI39QIyN/eGovfbd/oyJfs60ZNrXC71DWWvRR1LT03ZMDKSzX9XaQaNJw/7/Qz/Z+3n45jdenpOCmab/QImcb6lNzdeu7uqQ3wLdEqLp4KztGaUb+dVw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699893298; c=relaxed/simple; bh=6ZU7ENBYdmdmaSjG24CxofS8tqg8p6avjp1RpXCIO64=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=d2K7nJiXygE9mtGA/75zVYRPu0BGL8aeTdYpSsdd4xdsHY/nib42JMFKcnXyQE45V//ca2EMFfLkBkOcR0fMWeEYXGWKbmh1FI77TmEqrxCb1p9dLWD307qIMszteZlox8G1ncZiyPCQPUtDO12s/zon250KwqConE490bBwUIw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3ADGL8Pj001087 for ; Mon, 13 Nov 2023 16:34:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=gvQp37V3C1OaKTa4qlgXtz9elGHYJHOZb+5PWqMDnI0=; b=c+Bq2XxddaCMtF3C+coH8GsWjHJwtIZZZRUp106MGk1DpnKJlL6gyW94u/VsRiYehDRH Nkv0idt40MdqLAsvyiQe6Iil3XsxwceWV7U7MAiUzxefr4dXW/0l6mZt5vtfK22wiuPY 51Ksj2PB5rO3zqRfimaIJz+oO6Vvzy9cOBXpWH6qLzhb8XhVMoy1rSc1xQJer1jw+ADJ XeTNurq4LFqxQrLdOMsGoRvQhGKbK7MN+iJDJ0w76xH4jauKyf7EkdrUe2+jMpm/PAzq c2LsSM3NXao1D/OJvf1DOOkdjZt319TyWOHWIpZDUidmB346dAabRV4J2qkqXlhtDDTo OA== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3ubq86rbwc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 13 Nov 2023 16:34:51 +0000 Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3ADE49AW022542 for ; Mon, 13 Nov 2023 16:34:50 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 3uap5jspjb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 13 Nov 2023 16:34:50 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3ADGYkIv39911942 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Nov 2023 16:34:46 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9A48520043; Mon, 13 Nov 2023 16:34:46 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A668420040; Mon, 13 Nov 2023 16:34:45 +0000 (GMT) Received: from ltcden2-lp1.aus.stglabs.ibm.com (unknown [9.3.90.43]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Nov 2023 16:34:45 +0000 (GMT) From: bmahi496@linux.ibm.com To: libc-alpha@sourceware.org Cc: rajis@linux.ibm.com, MAHESH BODAPATI Subject: [PATCH 2/2] powerpc: memchr benchmarking results with power10 optimized memchr. Date: Mon, 13 Nov 2023 10:33:59 -0600 Message-Id: <20231113163359.1468671-3-bmahi496@linux.ibm.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20231113163359.1468671-1-bmahi496@linux.ibm.com> References: <20231113163359.1468671-1-bmahi496@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: R88q3T3QbGV7zxaYbvI_41uqBxH7jpNE X-Proofpoint-GUID: R88q3T3QbGV7zxaYbvI_41uqBxH7jpNE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-13_06,2023-11-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 bulkscore=0 malwarescore=0 phishscore=0 mlxlogscore=375 lowpriorityscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2311130133 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_ASCII_DIVIDERS, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org From: MAHESH BODAPATI --- memchr_bench_report.txt | 1130 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 1130 insertions(+) create mode 100644 memchr_bench_report.txt diff --git a/memchr_bench_report.txt b/memchr_bench_report.txt new file mode 100644 index 0000000000..bc78e17422 --- /dev/null +++ b/memchr_bench_report.txt @@ -0,0 +1,1130 @@ +Function: memchr +Variant: + __memchr_power10 __memchr_power8 +======================================================================================================================== +align=0, pos=32, len=2048, seek_char=23, invert_pos=0: 1.47 ( 42.59%) 2.57 +align=1, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 49.69%) 3.83 +align=0, pos=32, len=2048, seek_char=0, invert_pos=0: 1.47 ( 40.18%) 2.46 +align=1, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.66%) 3.83 +align=65521, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 35.39%) 2.98 +align=0, pos=64, len=2048, seek_char=23, invert_pos=0: 1.93 ( 34.41%) 2.94 +align=2, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 49.67%) 3.83 +align=0, pos=64, len=2048, seek_char=0, invert_pos=0: 1.93 ( 37.61%) 3.09 +align=2, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.63%) 3.82 +align=65521, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 35.23%) 2.97 +align=0, pos=128, len=2048, seek_char=23, invert_pos=0: 2.95 ( 17.04%) 3.55 +align=3, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 49.66%) 3.83 +align=0, pos=128, len=2048, seek_char=0, invert_pos=0: 2.95 ( 27.55%) 4.07 +align=3, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.62%) 3.82 +align=65521, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 35.21%) 2.97 +align=0, pos=256, len=2048, seek_char=23, invert_pos=0: 5.81 ( -8.78%) 5.34 +align=4, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 50.39%) 3.88 +align=0, pos=256, len=2048, seek_char=0, invert_pos=0: 5.80 ( -4.27%) 5.57 +align=4, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.68%) 3.83 +align=65521, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 35.31%) 2.98 +align=0, pos=512, len=2048, seek_char=23, invert_pos=0: 7.76 (-10.27%) 7.04 +align=5, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 49.65%) 3.83 +align=0, pos=512, len=2048, seek_char=0, invert_pos=0: 7.76 (-10.36%) 7.03 +align=5, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.63%) 3.83 +align=65521, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 35.27%) 2.98 +align=0, pos=1024, len=2048, seek_char=23, invert_pos=0: 11.50 ( -4.86%) 10.97 +align=6, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 49.62%) 3.82 +align=0, pos=1024, len=2048, seek_char=0, invert_pos=0: 11.50 ( -4.80%) 10.98 +align=6, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.66%) 3.83 +align=65521, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 35.25%) 2.98 +align=0, pos=2048, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.15%) 17.05 +align=7, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 49.65%) 3.83 +align=0, pos=2048, len=2048, seek_char=0, invert_pos=0: 18.17 ( -7.68%) 16.88 +align=7, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.65%) 3.83 +align=65521, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 35.17%) 2.97 +align=1, pos=32, len=192, seek_char=23, invert_pos=0: 1.48 ( 40.16%) 2.47 +align=1, pos=32, len=192, seek_char=0, invert_pos=0: 1.48 ( 40.14%) 2.47 +align=1, pos=32, len=256, seek_char=23, invert_pos=0: 1.48 ( 40.06%) 2.47 +align=1, pos=32, len=256, seek_char=0, invert_pos=0: 1.48 ( 40.17%) 2.47 +align=1, pos=32, len=512, seek_char=23, invert_pos=0: 1.48 ( 40.21%) 2.47 +align=1, pos=32, len=512, seek_char=0, invert_pos=0: 1.48 ( 40.12%) 2.47 +align=65521, pos=32, len=256, seek_char=23, invert_pos=0: 1.48 ( 50.27%) 2.98 +align=2, pos=64, len=192, seek_char=23, invert_pos=0: 1.93 ( 49.64%) 3.83 +align=2, pos=64, len=192, seek_char=0, invert_pos=0: 1.93 ( 49.70%) 3.83 +align=2, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 49.66%) 3.83 +align=2, pos=64, len=256, seek_char=0, invert_pos=0: 1.93 ( 49.67%) 3.83 +align=2, pos=64, len=512, seek_char=23, invert_pos=0: 1.93 ( 49.63%) 3.83 +align=2, pos=64, len=512, seek_char=0, invert_pos=0: 1.93 ( 49.63%) 3.83 +align=65521, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 35.23%) 2.97 +align=3, pos=96, len=192, seek_char=23, invert_pos=0: 2.44 ( 36.31%) 3.83 +align=3, pos=96, len=192, seek_char=0, invert_pos=0: 2.44 ( 36.31%) 3.82 +align=3, pos=96, len=256, seek_char=23, invert_pos=0: 2.44 ( 36.35%) 3.83 +align=3, pos=96, len=256, seek_char=0, invert_pos=0: 2.44 ( 36.33%) 3.83 +align=3, pos=96, len=512, seek_char=23, invert_pos=0: 2.44 ( 36.35%) 3.83 +align=3, pos=96, len=512, seek_char=0, invert_pos=0: 2.43 ( 36.32%) 3.82 +align=65521, pos=96, len=256, seek_char=23, invert_pos=0: 2.44 ( 31.33%) 3.55 +align=4, pos=128, len=192, seek_char=23, invert_pos=0: 2.95 ( 33.41%) 4.43 +align=4, pos=128, len=192, seek_char=0, invert_pos=0: 2.95 ( 33.42%) 4.43 +align=4, pos=128, len=256, seek_char=23, invert_pos=0: 2.95 ( 33.42%) 4.43 +align=4, pos=128, len=256, seek_char=0, invert_pos=0: 2.95 ( 33.40%) 4.43 +align=4, pos=128, len=512, seek_char=23, invert_pos=0: 2.95 ( 33.43%) 4.43 +align=4, pos=128, len=512, seek_char=0, invert_pos=0: 2.95 ( 33.46%) 4.43 +align=65521, pos=128, len=256, seek_char=23, invert_pos=0: 2.95 ( 16.84%) 3.54 +align=5, pos=160, len=192, seek_char=23, invert_pos=0: 3.46 ( 21.81%) 4.43 +align=5, pos=160, len=192, seek_char=0, invert_pos=0: 3.46 ( 21.83%) 4.43 +align=5, pos=160, len=256, seek_char=23, invert_pos=0: 3.46 ( 21.81%) 4.43 +align=5, pos=160, len=256, seek_char=0, invert_pos=0: 3.46 ( 21.77%) 4.42 +align=5, pos=160, len=512, seek_char=23, invert_pos=0: 3.46 ( 21.89%) 4.43 +align=5, pos=160, len=512, seek_char=0, invert_pos=0: 3.46 ( 21.84%) 4.43 +align=65521, pos=160, len=256, seek_char=23, invert_pos=0: 6.83 (-30.73%) 5.22 +align=6, pos=192, len=192, seek_char=23, invert_pos=0: 3.97 ( 10.39%) 4.44 +align=6, pos=192, len=192, seek_char=0, invert_pos=0: 3.97 ( 10.39%) 4.43 +align=6, pos=192, len=256, seek_char=23, invert_pos=0: 3.97 ( 21.26%) 5.05 +align=6, pos=192, len=256, seek_char=0, invert_pos=0: 3.97 ( 21.38%) 5.05 +align=6, pos=192, len=512, seek_char=23, invert_pos=0: 3.97 ( 21.22%) 5.04 +align=6, pos=192, len=512, seek_char=0, invert_pos=0: 3.97 ( 21.22%) 5.04 +align=65521, pos=192, len=256, seek_char=23, invert_pos=0: 3.97 ( 3.49%) 4.12 +align=7, pos=224, len=192, seek_char=23, invert_pos=0: 3.97 ( 10.37%) 4.43 +align=7, pos=224, len=192, seek_char=0, invert_pos=0: 3.97 ( 10.20%) 4.43 +align=7, pos=224, len=256, seek_char=23, invert_pos=0: 4.49 ( 10.96%) 5.04 +align=7, pos=224, len=256, seek_char=0, invert_pos=0: 4.49 ( 10.88%) 5.03 +align=7, pos=224, len=512, seek_char=23, invert_pos=0: 4.49 ( 10.89%) 5.03 +align=7, pos=224, len=512, seek_char=0, invert_pos=0: 4.49 ( 10.87%) 5.03 +align=65521, pos=224, len=256, seek_char=23, invert_pos=0: 4.48 ( 1.05%) 4.53 +align=0, pos=1, len=2, seek_char=23, invert_pos=0: 0.91 ( 39.10%) 1.50 +align=0, pos=1, len=2, seek_char=0, invert_pos=0: 0.91 ( 38.78%) 1.49 +align=1, pos=1, len=2, seek_char=23, invert_pos=0: 1.03 ( 30.50%) 1.49 +align=1, pos=1, len=2, seek_char=0, invert_pos=0: 1.03 ( 33.34%) 1.55 +align=0, pos=1, len=0, seek_char=23, invert_pos=0: 1.16 (-13.34%) 1.03 +align=0, pos=1, len=0, seek_char=0, invert_pos=0: 1.16 (-13.29%) 1.03 +align=1, pos=1, len=0, seek_char=23, invert_pos=0: 1.16 (-13.41%) 1.03 +align=1, pos=1, len=0, seek_char=0, invert_pos=0: 1.16 ( 40.45%) 1.95 +align=32768, pos=1, len=2, seek_char=23, invert_pos=0: 1.03 ( 28.84%) 1.45 +align=32768, pos=1, len=2, seek_char=0, invert_pos=0: 1.03 ( 33.32%) 1.55 +align=32769, pos=1, len=2, seek_char=23, invert_pos=0: 1.03 ( 33.33%) 1.55 +align=32769, pos=1, len=2, seek_char=0, invert_pos=0: 1.03 ( 33.35%) 1.55 +align=32768, pos=1, len=0, seek_char=23, invert_pos=0: 1.16 (-13.33%) 1.03 +align=32768, pos=1, len=0, seek_char=0, invert_pos=0: 1.16 (-13.40%) 1.03 +align=32769, pos=1, len=0, seek_char=23, invert_pos=0: 1.16 (-13.39%) 1.03 +align=32769, pos=1, len=0, seek_char=0, invert_pos=0: 1.16 ( 40.42%) 1.95 +align=65521, pos=1, len=0, seek_char=23, invert_pos=0: 1.16 ( 40.39%) 1.95 +align=65521, pos=1, len=0, seek_char=0, invert_pos=0: 1.16 ( 40.30%) 1.95 +align=65521, pos=1, len=2, seek_char=23, invert_pos=0: 1.03 ( 53.14%) 2.21 +align=65521, pos=1, len=2, seek_char=0, invert_pos=0: 1.03 ( 30.57%) 1.49 +align=0, pos=2, len=3, seek_char=23, invert_pos=0: 1.03 ( 28.84%) 1.45 +align=0, pos=2, len=3, seek_char=0, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=2, pos=2, len=3, seek_char=23, invert_pos=0: 1.03 ( 33.29%) 1.55 +align=2, pos=2, len=3, seek_char=0, invert_pos=0: 1.03 ( 33.29%) 1.55 +align=0, pos=2, len=1, seek_char=23, invert_pos=0: 0.91 ( 38.90%) 1.50 +align=0, pos=2, len=1, seek_char=0, invert_pos=0: 1.16 ( 24.96%) 1.55 +align=2, pos=2, len=1, seek_char=23, invert_pos=0: 1.16 ( 25.03%) 1.55 +align=2, pos=2, len=1, seek_char=0, invert_pos=0: 1.16 ( 25.00%) 1.55 +align=32768, pos=2, len=3, seek_char=23, invert_pos=0: 1.03 ( 33.30%) 1.55 +align=32768, pos=2, len=3, seek_char=0, invert_pos=0: 1.03 ( 33.38%) 1.55 +align=32770, pos=2, len=3, seek_char=23, invert_pos=0: 1.03 ( 33.33%) 1.55 +align=32770, pos=2, len=3, seek_char=0, invert_pos=0: 1.03 ( 33.37%) 1.55 +align=32768, pos=2, len=1, seek_char=23, invert_pos=0: 1.16 ( 24.96%) 1.55 +align=32768, pos=2, len=1, seek_char=0, invert_pos=0: 1.16 ( 25.01%) 1.55 +align=32770, pos=2, len=1, seek_char=23, invert_pos=0: 1.16 ( 25.04%) 1.55 +align=32770, pos=2, len=1, seek_char=0, invert_pos=0: 1.16 ( 24.96%) 1.55 +align=65521, pos=2, len=1, seek_char=23, invert_pos=0: 1.16 ( 25.00%) 1.55 +align=65521, pos=2, len=1, seek_char=0, invert_pos=0: 1.16 ( 25.05%) 1.55 +align=65521, pos=2, len=3, seek_char=23, invert_pos=0: 1.04 ( 33.27%) 1.55 +align=65521, pos=2, len=3, seek_char=0, invert_pos=0: 1.03 ( 33.33%) 1.55 +align=0, pos=3, len=4, seek_char=23, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=0, pos=3, len=4, seek_char=0, invert_pos=0: 1.03 ( 33.29%) 1.55 +align=3, pos=3, len=4, seek_char=23, invert_pos=0: 1.03 ( 33.29%) 1.55 +align=3, pos=3, len=4, seek_char=0, invert_pos=0: 1.03 ( 33.29%) 1.55 +align=0, pos=3, len=2, seek_char=23, invert_pos=0: 1.16 ( 24.98%) 1.55 +align=0, pos=3, len=2, seek_char=0, invert_pos=0: 1.16 ( 24.96%) 1.55 +align=3, pos=3, len=2, seek_char=23, invert_pos=0: 1.16 ( 24.95%) 1.55 +align=3, pos=3, len=2, seek_char=0, invert_pos=0: 1.16 ( 25.03%) 1.55 +align=32768, pos=3, len=4, seek_char=23, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=32768, pos=3, len=4, seek_char=0, invert_pos=0: 1.03 ( 33.29%) 1.55 +align=32771, pos=3, len=4, seek_char=23, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=32771, pos=3, len=4, seek_char=0, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=32768, pos=3, len=2, seek_char=23, invert_pos=0: 1.43 ( 7.92%) 1.55 +align=32768, pos=3, len=2, seek_char=0, invert_pos=0: 1.16 ( 25.00%) 1.55 +align=32771, pos=3, len=2, seek_char=23, invert_pos=0: 1.16 ( 25.03%) 1.55 +align=32771, pos=3, len=2, seek_char=0, invert_pos=0: 1.16 ( 25.01%) 1.55 +align=65521, pos=3, len=2, seek_char=23, invert_pos=0: 1.16 ( 25.01%) 1.55 +align=65521, pos=3, len=2, seek_char=0, invert_pos=0: 1.16 ( 25.01%) 1.55 +align=65521, pos=3, len=4, seek_char=23, invert_pos=0: 1.03 ( 33.35%) 1.55 +align=65521, pos=3, len=4, seek_char=0, invert_pos=0: 1.03 ( 33.30%) 1.55 +align=0, pos=4, len=5, seek_char=23, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=0, pos=4, len=5, seek_char=0, invert_pos=0: 1.03 ( 33.33%) 1.55 +align=4, pos=4, len=5, seek_char=23, invert_pos=0: 1.03 ( 38.09%) 1.67 +align=4, pos=4, len=5, seek_char=0, invert_pos=0: 0.91 ( 45.26%) 1.66 +align=0, pos=4, len=3, seek_char=23, invert_pos=0: 1.43 ( 4.54%) 1.50 +align=0, pos=4, len=3, seek_char=0, invert_pos=0: 1.16 ( 24.99%) 1.55 +align=4, pos=4, len=3, seek_char=23, invert_pos=0: 1.16 ( 24.98%) 1.55 +align=4, pos=4, len=3, seek_char=0, invert_pos=0: 1.16 ( 25.05%) 1.55 +align=32768, pos=4, len=5, seek_char=23, invert_pos=0: 1.03 ( 33.35%) 1.55 +align=32768, pos=4, len=5, seek_char=0, invert_pos=0: 1.03 ( 33.33%) 1.55 +align=32772, pos=4, len=5, seek_char=23, invert_pos=0: 1.03 ( 37.80%) 1.66 +align=32772, pos=4, len=5, seek_char=0, invert_pos=0: 1.03 ( 36.90%) 1.64 +align=32768, pos=4, len=3, seek_char=23, invert_pos=0: 1.43 ( 4.47%) 1.50 +align=32768, pos=4, len=3, seek_char=0, invert_pos=0: 1.16 ( 25.00%) 1.55 +align=32772, pos=4, len=3, seek_char=23, invert_pos=0: 1.16 ( 25.02%) 1.55 +align=32772, pos=4, len=3, seek_char=0, invert_pos=0: 1.16 ( 25.08%) 1.55 +align=65521, pos=4, len=3, seek_char=23, invert_pos=0: 1.16 ( 25.01%) 1.55 +align=65521, pos=4, len=3, seek_char=0, invert_pos=0: 1.16 ( 24.99%) 1.55 +align=65521, pos=4, len=5, seek_char=23, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=65521, pos=4, len=5, seek_char=0, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=0, pos=5, len=6, seek_char=23, invert_pos=0: 1.03 ( 33.32%) 1.55 +align=0, pos=5, len=6, seek_char=0, invert_pos=0: 1.03 ( 33.39%) 1.55 +align=5, pos=5, len=6, seek_char=23, invert_pos=0: 1.03 ( 37.80%) 1.66 +align=5, pos=5, len=6, seek_char=0, invert_pos=0: 1.03 ( 36.97%) 1.64 +align=0, pos=5, len=4, seek_char=23, invert_pos=0: 1.43 ( 4.39%) 1.49 +align=0, pos=5, len=4, seek_char=0, invert_pos=0: 1.43 ( 7.92%) 1.55 +align=5, pos=5, len=4, seek_char=23, invert_pos=0: 1.43 ( 15.84%) 1.70 +align=5, pos=5, len=4, seek_char=0, invert_pos=0: 1.43 ( 15.87%) 1.70 +align=32768, pos=5, len=6, seek_char=23, invert_pos=0: 1.03 ( 28.94%) 1.46 +align=32768, pos=5, len=6, seek_char=0, invert_pos=0: 1.23 ( 17.46%) 1.49 +align=32773, pos=5, len=6, seek_char=23, invert_pos=0: 1.03 ( 38.08%) 1.67 +align=32773, pos=5, len=6, seek_char=0, invert_pos=0: 1.03 ( 36.97%) 1.64 +align=32768, pos=5, len=4, seek_char=23, invert_pos=0: 1.16 ( 22.15%) 1.49 +align=32768, pos=5, len=4, seek_char=0, invert_pos=0: 1.16 ( 25.00%) 1.55 +align=32773, pos=5, len=4, seek_char=23, invert_pos=0: 1.16 ( 31.50%) 1.70 +align=32773, pos=5, len=4, seek_char=0, invert_pos=0: 1.16 ( 31.43%) 1.70 +align=65521, pos=5, len=4, seek_char=23, invert_pos=0: 1.16 ( 22.23%) 1.50 +align=65521, pos=5, len=4, seek_char=0, invert_pos=0: 1.16 ( 24.97%) 1.55 +align=65521, pos=5, len=6, seek_char=23, invert_pos=0: 1.03 ( 33.30%) 1.55 +align=65521, pos=5, len=6, seek_char=0, invert_pos=0: 1.03 ( 33.35%) 1.55 +align=0, pos=6, len=7, seek_char=23, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=0, pos=6, len=7, seek_char=0, invert_pos=0: 1.03 ( 33.36%) 1.55 +align=6, pos=6, len=7, seek_char=23, invert_pos=0: 1.03 ( 37.78%) 1.66 +align=6, pos=6, len=7, seek_char=0, invert_pos=0: 1.03 ( 36.96%) 1.64 +align=0, pos=6, len=5, seek_char=23, invert_pos=0: 1.43 ( 4.42%) 1.49 +align=0, pos=6, len=5, seek_char=0, invert_pos=0: 1.16 ( 24.99%) 1.55 +align=6, pos=6, len=5, seek_char=23, invert_pos=0: 1.16 ( 31.40%) 1.70 +align=6, pos=6, len=5, seek_char=0, invert_pos=0: 1.16 ( 31.44%) 1.70 +align=32768, pos=6, len=7, seek_char=23, invert_pos=0: 1.03 ( 28.96%) 1.46 +align=32768, pos=6, len=7, seek_char=0, invert_pos=0: 1.03 ( 33.33%) 1.55 +align=32774, pos=6, len=7, seek_char=23, invert_pos=0: 1.03 ( 36.90%) 1.64 +align=32774, pos=6, len=7, seek_char=0, invert_pos=0: 1.03 ( 36.96%) 1.64 +align=32768, pos=6, len=5, seek_char=23, invert_pos=0: 1.43 ( 4.43%) 1.49 +align=32768, pos=6, len=5, seek_char=0, invert_pos=0: 1.16 ( 24.99%) 1.55 +align=32774, pos=6, len=5, seek_char=23, invert_pos=0: 1.16 ( 31.46%) 1.70 +align=32774, pos=6, len=5, seek_char=0, invert_pos=0: 1.16 ( 31.46%) 1.70 +align=65521, pos=6, len=5, seek_char=23, invert_pos=0: 1.16 ( 22.26%) 1.50 +align=65521, pos=6, len=5, seek_char=0, invert_pos=0: 1.16 ( 24.98%) 1.55 +align=65521, pos=6, len=7, seek_char=23, invert_pos=0: 1.03 ( 33.31%) 1.55 +align=65521, pos=6, len=7, seek_char=0, invert_pos=0: 1.03 ( 33.33%) 1.55 +align=0, pos=7, len=8, seek_char=23, invert_pos=0: 1.03 ( 33.28%) 1.55 +align=0, pos=7, len=8, seek_char=0, invert_pos=0: 1.03 ( 33.28%) 1.55 +align=7, pos=7, len=8, seek_char=23, invert_pos=0: 1.03 ( 37.81%) 1.66 +align=7, pos=7, len=8, seek_char=0, invert_pos=0: 1.03 ( 36.90%) 1.64 +align=0, pos=7, len=6, seek_char=23, invert_pos=0: 1.43 ( 4.49%) 1.50 +align=0, pos=7, len=6, seek_char=0, invert_pos=0: 1.16 ( 25.04%) 1.55 +align=7, pos=7, len=6, seek_char=23, invert_pos=0: 1.16 ( 31.45%) 1.70 +align=7, pos=7, len=6, seek_char=0, invert_pos=0: 1.16 ( 31.46%) 1.70 +align=32768, pos=7, len=8, seek_char=23, invert_pos=0: 1.03 ( 28.90%) 1.45 +align=32768, pos=7, len=8, seek_char=0, invert_pos=0: 1.03 ( 33.36%) 1.55 +align=32775, pos=7, len=8, seek_char=23, invert_pos=0: 1.03 ( 37.75%) 1.66 +align=32775, pos=7, len=8, seek_char=0, invert_pos=0: 1.03 ( 38.06%) 1.67 +align=32768, pos=7, len=6, seek_char=23, invert_pos=0: 1.43 ( 4.34%) 1.49 +align=32768, pos=7, len=6, seek_char=0, invert_pos=0: 1.16 ( 25.00%) 1.55 +align=32775, pos=7, len=6, seek_char=23, invert_pos=0: 1.16 ( 31.46%) 1.70 +align=32775, pos=7, len=6, seek_char=0, invert_pos=0: 1.16 ( 31.42%) 1.70 +align=65521, pos=7, len=6, seek_char=23, invert_pos=0: 1.16 ( 22.20%) 1.50 +align=65521, pos=7, len=6, seek_char=0, invert_pos=0: 1.16 ( 24.99%) 1.55 +align=65521, pos=7, len=8, seek_char=23, invert_pos=0: 1.03 ( 36.93%) 1.64 +align=65521, pos=7, len=8, seek_char=0, invert_pos=0: 1.03 ( 36.86%) 1.64 +align=0, pos=8, len=9, seek_char=23, invert_pos=0: 1.03 ( 36.93%) 1.64 +align=0, pos=8, len=9, seek_char=0, invert_pos=0: 1.03 ( 38.07%) 1.67 +align=8, pos=8, len=9, seek_char=23, invert_pos=0: 1.28 ( 22.06%) 1.64 +align=8, pos=8, len=9, seek_char=0, invert_pos=0: 1.30 ( 20.60%) 1.64 +align=0, pos=8, len=7, seek_char=23, invert_pos=0: 1.43 ( 4.32%) 1.49 +align=0, pos=8, len=7, seek_char=0, invert_pos=0: 1.16 ( 25.00%) 1.55 +align=8, pos=8, len=7, seek_char=23, invert_pos=0: 1.16 ( 24.99%) 1.55 +align=8, pos=8, len=7, seek_char=0, invert_pos=0: 1.16 ( 24.99%) 1.55 +align=32768, pos=8, len=9, seek_char=23, invert_pos=0: 1.03 ( 36.91%) 1.64 +align=32768, pos=8, len=9, seek_char=0, invert_pos=0: 1.03 ( 38.11%) 1.67 +align=32776, pos=8, len=9, seek_char=23, invert_pos=0: 1.30 ( 21.94%) 1.67 +align=32776, pos=8, len=9, seek_char=0, invert_pos=0: 1.30 ( 22.03%) 1.67 +align=32768, pos=8, len=7, seek_char=23, invert_pos=0: 1.43 ( 4.50%) 1.50 +align=32768, pos=8, len=7, seek_char=0, invert_pos=0: 1.43 ( 7.89%) 1.55 +align=32776, pos=8, len=7, seek_char=23, invert_pos=0: 1.43 ( 7.94%) 1.55 +align=32776, pos=8, len=7, seek_char=0, invert_pos=0: 1.43 ( 7.88%) 1.55 +align=65521, pos=8, len=7, seek_char=23, invert_pos=0: 1.43 (-29.96%) 1.10 +align=65521, pos=8, len=7, seek_char=0, invert_pos=0: 1.43 ( -9.59%) 1.30 +align=65521, pos=8, len=9, seek_char=23, invert_pos=0: 1.03 ( 36.90%) 1.64 +align=65521, pos=8, len=9, seek_char=0, invert_pos=0: 1.03 ( 36.92%) 1.64 +align=0, pos=9, len=10, seek_char=23, invert_pos=0: 1.03 ( 38.08%) 1.67 +align=0, pos=9, len=10, seek_char=0, invert_pos=0: 1.03 ( 39.15%) 1.70 +align=9, pos=9, len=10, seek_char=23, invert_pos=0: 1.30 ( 20.44%) 1.64 +align=9, pos=9, len=10, seek_char=0, invert_pos=0: 1.30 ( 21.67%) 1.66 +align=0, pos=9, len=8, seek_char=23, invert_pos=0: 3.44 ( 2.58%) 3.53 +align=0, pos=9, len=8, seek_char=0, invert_pos=0: 3.60 ( -4.96%) 3.43 +align=9, pos=9, len=8, seek_char=23, invert_pos=0: 3.98 ( 9.48%) 4.39 +align=9, pos=9, len=8, seek_char=0, invert_pos=0: 1.22 ( 45.64%) 2.24 +align=32768, pos=9, len=10, seek_char=23, invert_pos=0: 1.80 ( -9.63%) 1.64 +align=32768, pos=9, len=10, seek_char=0, invert_pos=0: 0.91 ( 45.22%) 1.66 +align=32777, pos=9, len=10, seek_char=23, invert_pos=0: 1.30 ( 20.49%) 1.64 +align=32777, pos=9, len=10, seek_char=0, invert_pos=0: 1.46 ( 10.78%) 1.64 +align=32768, pos=9, len=8, seek_char=23, invert_pos=0: 0.91 ( 16.49%) 1.09 +align=32768, pos=9, len=8, seek_char=0, invert_pos=0: 1.16 ( -4.55%) 1.11 +align=32777, pos=9, len=8, seek_char=23, invert_pos=0: 1.42 ( 16.55%) 1.70 +align=32777, pos=9, len=8, seek_char=0, invert_pos=0: 1.42 ( 16.53%) 1.70 +align=65521, pos=9, len=8, seek_char=23, invert_pos=0: 1.16 ( 31.40%) 1.70 +align=65521, pos=9, len=8, seek_char=0, invert_pos=0: 1.16 ( 31.51%) 1.70 +align=65521, pos=9, len=10, seek_char=23, invert_pos=0: 0.91 ( 46.40%) 1.70 +align=65521, pos=9, len=10, seek_char=0, invert_pos=0: 0.91 ( 45.46%) 1.67 +align=0, pos=10, len=11, seek_char=23, invert_pos=0: 0.91 ( 44.49%) 1.64 +align=0, pos=10, len=11, seek_char=0, invert_pos=0: 1.03 ( 36.92%) 1.64 +align=10, pos=10, len=11, seek_char=23, invert_pos=0: 1.30 ( 21.95%) 1.67 +align=10, pos=10, len=11, seek_char=0, invert_pos=0: 1.30 ( 21.99%) 1.67 +align=0, pos=10, len=9, seek_char=23, invert_pos=0: 1.68 ( 0.68%) 1.70 +align=0, pos=10, len=9, seek_char=0, invert_pos=0: 1.62 ( 4.40%) 1.70 +align=10, pos=10, len=9, seek_char=23, invert_pos=0: 1.42 ( 16.56%) 1.70 +align=10, pos=10, len=9, seek_char=0, invert_pos=0: 1.42 ( 16.57%) 1.70 +align=32768, pos=10, len=11, seek_char=23, invert_pos=0: 1.03 ( 38.10%) 1.67 +align=32768, pos=10, len=11, seek_char=0, invert_pos=0: 1.03 ( 39.15%) 1.70 +align=32778, pos=10, len=11, seek_char=23, invert_pos=0: 1.30 ( 21.98%) 1.67 +align=32778, pos=10, len=11, seek_char=0, invert_pos=0: 1.30 ( 22.01%) 1.67 +align=32768, pos=10, len=9, seek_char=23, invert_pos=0: 1.85 ( -2.22%) 1.81 +align=32768, pos=10, len=9, seek_char=0, invert_pos=0: 1.16 ( 31.47%) 1.70 +align=32778, pos=10, len=9, seek_char=23, invert_pos=0: 1.42 ( 16.41%) 1.70 +align=32778, pos=10, len=9, seek_char=0, invert_pos=0: 1.42 ( 28.00%) 1.97 +align=65521, pos=10, len=9, seek_char=23, invert_pos=0: 1.16 ( 31.36%) 1.70 +align=65521, pos=10, len=9, seek_char=0, invert_pos=0: 1.16 ( 31.44%) 1.70 +align=65521, pos=10, len=11, seek_char=23, invert_pos=0: 1.03 ( 36.95%) 1.64 +align=65521, pos=10, len=11, seek_char=0, invert_pos=0: 1.03 ( 36.85%) 1.64 +align=0, pos=11, len=12, seek_char=23, invert_pos=0: 1.03 ( 36.92%) 1.64 +align=0, pos=11, len=12, seek_char=0, invert_pos=0: 1.03 ( 37.78%) 1.66 +align=11, pos=11, len=12, seek_char=23, invert_pos=0: 1.30 ( 20.49%) 1.64 +align=11, pos=11, len=12, seek_char=0, invert_pos=0: 1.30 ( 20.54%) 1.64 +align=0, pos=11, len=10, seek_char=23, invert_pos=0: 1.68 ( 0.73%) 1.70 +align=0, pos=11, len=10, seek_char=0, invert_pos=0: 1.68 ( 0.72%) 1.70 +align=11, pos=11, len=10, seek_char=23, invert_pos=0: 1.42 ( 16.43%) 1.70 +align=11, pos=11, len=10, seek_char=0, invert_pos=0: 1.42 ( 16.56%) 1.70 +align=32768, pos=11, len=12, seek_char=23, invert_pos=0: 1.03 ( 38.06%) 1.67 +align=32768, pos=11, len=12, seek_char=0, invert_pos=0: 1.03 ( 36.89%) 1.64 +align=32779, pos=11, len=12, seek_char=23, invert_pos=0: 1.30 ( 23.29%) 1.70 +align=32779, pos=11, len=12, seek_char=0, invert_pos=0: 1.30 ( 21.95%) 1.67 +align=32768, pos=11, len=10, seek_char=23, invert_pos=0: 1.68 ( 0.73%) 1.70 +align=32768, pos=11, len=10, seek_char=0, invert_pos=0: 1.43 ( 15.87%) 1.70 +align=32779, pos=11, len=10, seek_char=23, invert_pos=0: 1.69 ( 0.64%) 1.70 +align=32779, pos=11, len=10, seek_char=0, invert_pos=0: 1.68 ( 0.68%) 1.70 +align=65521, pos=11, len=10, seek_char=23, invert_pos=0: 1.43 ( 15.79%) 1.70 +align=65521, pos=11, len=10, seek_char=0, invert_pos=0: 1.43 ( 15.77%) 1.70 +align=65521, pos=11, len=12, seek_char=23, invert_pos=0: 1.03 ( 36.94%) 1.64 +align=65521, pos=11, len=12, seek_char=0, invert_pos=0: 1.03 ( 36.90%) 1.64 +align=0, pos=12, len=13, seek_char=23, invert_pos=0: 1.03 ( 36.91%) 1.64 +align=0, pos=12, len=13, seek_char=0, invert_pos=0: 1.03 ( 36.92%) 1.64 +align=12, pos=12, len=13, seek_char=23, invert_pos=0: 1.30 ( 31.08%) 1.89 +align=12, pos=12, len=13, seek_char=0, invert_pos=0: 1.30 ( 31.04%) 1.89 +align=0, pos=12, len=11, seek_char=23, invert_pos=0: 1.68 ( 0.82%) 1.70 +align=0, pos=12, len=11, seek_char=0, invert_pos=0: 1.43 ( 15.74%) 1.70 +align=12, pos=12, len=11, seek_char=23, invert_pos=0: 1.42 ( 16.52%) 1.70 +align=12, pos=12, len=11, seek_char=0, invert_pos=0: 1.42 ( 16.49%) 1.70 +align=32768, pos=12, len=13, seek_char=23, invert_pos=0: 1.03 ( 38.06%) 1.67 +align=32768, pos=12, len=13, seek_char=0, invert_pos=0: 1.03 ( 36.90%) 1.64 +align=32780, pos=12, len=13, seek_char=23, invert_pos=0: 1.30 ( 40.52%) 2.19 +align=32780, pos=12, len=13, seek_char=0, invert_pos=0: 1.30 ( 31.03%) 1.89 +align=32768, pos=12, len=11, seek_char=23, invert_pos=0: 1.68 ( 0.82%) 1.70 +align=32768, pos=12, len=11, seek_char=0, invert_pos=0: 1.68 ( 0.69%) 1.70 +align=32780, pos=12, len=11, seek_char=23, invert_pos=0: 1.68 ( 0.72%) 1.70 +align=32780, pos=12, len=11, seek_char=0, invert_pos=0: 1.42 ( 16.60%) 1.70 +align=65521, pos=12, len=11, seek_char=23, invert_pos=0: 1.68 ( 0.76%) 1.70 +align=65521, pos=12, len=11, seek_char=0, invert_pos=0: 1.43 ( 15.87%) 1.70 +align=65521, pos=12, len=13, seek_char=23, invert_pos=0: 1.03 ( 37.77%) 1.66 +align=65521, pos=12, len=13, seek_char=0, invert_pos=0: 1.03 ( 36.92%) 1.64 +align=0, pos=13, len=14, seek_char=23, invert_pos=0: 1.03 ( 36.94%) 1.64 +align=0, pos=13, len=14, seek_char=0, invert_pos=0: 1.03 ( 36.95%) 1.64 +align=13, pos=13, len=14, seek_char=23, invert_pos=0: 1.30 ( 30.96%) 1.89 +align=13, pos=13, len=14, seek_char=0, invert_pos=0: 1.30 ( 31.00%) 1.89 +align=0, pos=13, len=12, seek_char=23, invert_pos=0: 1.68 ( 0.76%) 1.70 +align=0, pos=13, len=12, seek_char=0, invert_pos=0: 1.43 ( 15.83%) 1.70 +align=13, pos=13, len=12, seek_char=23, invert_pos=0: 1.68 ( 13.63%) 1.95 +align=13, pos=13, len=12, seek_char=0, invert_pos=0: 1.68 ( 13.55%) 1.95 +align=32768, pos=13, len=14, seek_char=23, invert_pos=0: 1.04 ( 36.85%) 1.64 +align=32768, pos=13, len=14, seek_char=0, invert_pos=0: 1.03 ( 36.92%) 1.64 +align=32781, pos=13, len=14, seek_char=23, invert_pos=0: 1.30 ( 31.00%) 1.89 +align=32781, pos=13, len=14, seek_char=0, invert_pos=0: 1.30 ( 31.05%) 1.89 +align=32768, pos=13, len=12, seek_char=23, invert_pos=0: 1.69 ( 0.71%) 1.70 +align=32768, pos=13, len=12, seek_char=0, invert_pos=0: 1.43 ( 15.86%) 1.70 +align=32781, pos=13, len=12, seek_char=23, invert_pos=0: 1.68 ( 13.65%) 1.95 +align=32781, pos=13, len=12, seek_char=0, invert_pos=0: 1.68 ( 13.69%) 1.95 +align=65521, pos=13, len=12, seek_char=23, invert_pos=0: 1.43 ( 15.88%) 1.70 +align=65521, pos=13, len=12, seek_char=0, invert_pos=0: 1.43 ( 15.82%) 1.70 +align=65521, pos=13, len=14, seek_char=23, invert_pos=0: 1.03 ( 37.83%) 1.66 +align=65521, pos=13, len=14, seek_char=0, invert_pos=0: 1.03 ( 38.14%) 1.67 +align=0, pos=14, len=15, seek_char=23, invert_pos=0: 1.03 ( 39.18%) 1.70 +align=0, pos=14, len=15, seek_char=0, invert_pos=0: 1.03 ( 37.78%) 1.66 +align=14, pos=14, len=15, seek_char=23, invert_pos=0: 1.30 ( 31.47%) 1.90 +align=14, pos=14, len=15, seek_char=0, invert_pos=0: 1.30 ( 31.09%) 1.89 +align=0, pos=14, len=13, seek_char=23, invert_pos=0: 2.30 (-17.05%) 1.96 +align=0, pos=14, len=13, seek_char=0, invert_pos=0: 1.16 ( 31.51%) 1.70 +align=14, pos=14, len=13, seek_char=23, invert_pos=0: 1.68 ( 13.69%) 1.95 +align=14, pos=14, len=13, seek_char=0, invert_pos=0: 1.68 ( 13.64%) 1.95 +align=32768, pos=14, len=15, seek_char=23, invert_pos=0: 1.03 ( 36.95%) 1.64 +align=32768, pos=14, len=15, seek_char=0, invert_pos=0: 1.03 ( 36.94%) 1.64 +align=32782, pos=14, len=15, seek_char=23, invert_pos=0: 1.30 ( 30.99%) 1.89 +align=32782, pos=14, len=15, seek_char=0, invert_pos=0: 1.30 ( 30.99%) 1.89 +align=32768, pos=14, len=13, seek_char=23, invert_pos=0: 1.68 ( 0.76%) 1.70 +align=32768, pos=14, len=13, seek_char=0, invert_pos=0: 1.43 ( 15.78%) 1.70 +align=32782, pos=14, len=13, seek_char=23, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=32782, pos=14, len=13, seek_char=0, invert_pos=0: 1.68 ( 13.62%) 1.95 +align=65521, pos=14, len=13, seek_char=23, invert_pos=0: 1.43 ( 15.87%) 1.70 +align=65521, pos=14, len=13, seek_char=0, invert_pos=0: 1.43 ( 15.80%) 1.70 +align=65521, pos=14, len=15, seek_char=23, invert_pos=0: 1.03 ( 38.19%) 1.67 +align=65521, pos=14, len=15, seek_char=0, invert_pos=0: 1.03 ( 38.14%) 1.67 +align=0, pos=15, len=16, seek_char=23, invert_pos=0: 1.03 ( 37.99%) 1.67 +align=0, pos=15, len=16, seek_char=0, invert_pos=0: 1.03 ( 38.17%) 1.67 +align=15, pos=15, len=16, seek_char=23, invert_pos=0: 1.30 ( 31.42%) 1.90 +align=15, pos=15, len=16, seek_char=0, invert_pos=0: 1.30 ( 31.02%) 1.89 +align=0, pos=15, len=14, seek_char=23, invert_pos=0: 1.69 ( 0.69%) 1.70 +align=0, pos=15, len=14, seek_char=0, invert_pos=0: 1.43 ( 15.82%) 1.70 +align=15, pos=15, len=14, seek_char=23, invert_pos=0: 1.68 ( 13.64%) 1.95 +align=15, pos=15, len=14, seek_char=0, invert_pos=0: 1.68 ( 13.59%) 1.95 +align=32768, pos=15, len=16, seek_char=23, invert_pos=0: 1.04 ( 37.80%) 1.66 +align=32768, pos=15, len=16, seek_char=0, invert_pos=0: 1.03 ( 38.12%) 1.67 +align=32783, pos=15, len=16, seek_char=23, invert_pos=0: 1.30 ( 31.44%) 1.90 +align=32783, pos=15, len=16, seek_char=0, invert_pos=0: 1.30 ( 31.06%) 1.89 +align=32768, pos=15, len=14, seek_char=23, invert_pos=0: 1.68 ( 0.81%) 1.70 +align=32768, pos=15, len=14, seek_char=0, invert_pos=0: 1.43 ( 15.83%) 1.70 +align=32783, pos=15, len=14, seek_char=23, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=32783, pos=15, len=14, seek_char=0, invert_pos=0: 1.68 ( 13.71%) 1.95 +align=65521, pos=15, len=14, seek_char=23, invert_pos=0: 1.43 ( 15.83%) 1.70 +align=65521, pos=15, len=14, seek_char=0, invert_pos=0: 1.43 ( 31.07%) 2.07 +align=65521, pos=15, len=16, seek_char=23, invert_pos=0: 1.30 ( 31.04%) 1.89 +align=65521, pos=15, len=16, seek_char=0, invert_pos=0: 1.30 ( 31.05%) 1.89 +align=0, pos=16, len=17, seek_char=23, invert_pos=0: 1.30 ( 30.99%) 1.89 +align=0, pos=16, len=17, seek_char=0, invert_pos=0: 1.30 ( 31.48%) 1.90 +align=16, pos=16, len=17, seek_char=23, invert_pos=0: 1.30 ( 31.02%) 1.89 +align=16, pos=16, len=17, seek_char=0, invert_pos=0: 1.30 ( 31.07%) 1.89 +align=0, pos=16, len=15, seek_char=23, invert_pos=0: 1.68 ( 0.70%) 1.70 +align=0, pos=16, len=15, seek_char=0, invert_pos=0: 1.43 ( 15.76%) 1.69 +align=16, pos=16, len=15, seek_char=23, invert_pos=0: 1.43 ( 15.82%) 1.70 +align=16, pos=16, len=15, seek_char=0, invert_pos=0: 1.43 ( 15.78%) 1.70 +align=32768, pos=16, len=17, seek_char=23, invert_pos=0: 1.30 ( 31.44%) 1.90 +align=32768, pos=16, len=17, seek_char=0, invert_pos=0: 1.30 ( 31.04%) 1.89 +align=32784, pos=16, len=17, seek_char=23, invert_pos=0: 1.30 ( 31.00%) 1.89 +align=32784, pos=16, len=17, seek_char=0, invert_pos=0: 1.30 ( 31.01%) 1.89 +align=32768, pos=16, len=15, seek_char=23, invert_pos=0: 1.43 ( 15.83%) 1.70 +align=32768, pos=16, len=15, seek_char=0, invert_pos=0: 1.43 ( 15.86%) 1.70 +align=32784, pos=16, len=15, seek_char=23, invert_pos=0: 1.43 ( 15.77%) 1.70 +align=32784, pos=16, len=15, seek_char=0, invert_pos=0: 1.43 ( 15.87%) 1.70 +align=65521, pos=16, len=15, seek_char=23, invert_pos=0: 1.42 (-10.93%) 1.28 +align=65521, pos=16, len=15, seek_char=0, invert_pos=0: 1.43 ( -5.51%) 1.35 +align=65521, pos=16, len=17, seek_char=23, invert_pos=0: 1.30 ( 32.30%) 1.92 +align=65521, pos=16, len=17, seek_char=0, invert_pos=0: 1.30 ( 32.57%) 1.93 +align=0, pos=17, len=18, seek_char=23, invert_pos=0: 1.30 ( 32.57%) 1.93 +align=0, pos=17, len=18, seek_char=0, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=17, pos=17, len=18, seek_char=23, invert_pos=0: 1.30 ( 32.58%) 1.93 +align=17, pos=17, len=18, seek_char=0, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=0, pos=17, len=16, seek_char=23, invert_pos=0: 1.43 ( 14.46%) 1.67 +align=0, pos=17, len=16, seek_char=0, invert_pos=0: 1.43 ( 0.01%) 1.43 +align=17, pos=17, len=16, seek_char=23, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=17, pos=17, len=16, seek_char=0, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=32768, pos=17, len=18, seek_char=23, invert_pos=0: 1.30 ( 31.02%) 1.89 +align=32768, pos=17, len=18, seek_char=0, invert_pos=0: 1.30 ( 31.01%) 1.89 +align=32785, pos=17, len=18, seek_char=23, invert_pos=0: 1.30 ( 40.75%) 2.20 +align=32785, pos=17, len=18, seek_char=0, invert_pos=0: 1.30 ( 30.98%) 1.89 +align=32768, pos=17, len=16, seek_char=23, invert_pos=0: 1.43 ( 0.00%) 1.43 +align=32768, pos=17, len=16, seek_char=0, invert_pos=0: 1.43 ( 0.02%) 1.43 +align=32785, pos=17, len=16, seek_char=23, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=32785, pos=17, len=16, seek_char=0, invert_pos=0: 1.68 ( 13.63%) 1.95 +align=65521, pos=17, len=16, seek_char=23, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=65521, pos=17, len=16, seek_char=0, invert_pos=0: 1.68 ( 13.67%) 1.95 +align=65521, pos=17, len=18, seek_char=23, invert_pos=0: 1.30 ( 31.01%) 1.89 +align=65521, pos=17, len=18, seek_char=0, invert_pos=0: 1.30 ( 31.02%) 1.89 +align=0, pos=18, len=19, seek_char=23, invert_pos=0: 1.30 ( 31.06%) 1.89 +align=0, pos=18, len=19, seek_char=0, invert_pos=0: 1.30 ( 32.45%) 1.93 +align=18, pos=18, len=19, seek_char=23, invert_pos=0: 1.30 ( 31.07%) 1.89 +align=18, pos=18, len=19, seek_char=0, invert_pos=0: 1.30 ( 31.03%) 1.89 +align=0, pos=18, len=17, seek_char=23, invert_pos=0: 1.68 ( 13.65%) 1.95 +align=0, pos=18, len=17, seek_char=0, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=18, pos=18, len=17, seek_char=23, invert_pos=0: 1.68 ( 13.63%) 1.95 +align=18, pos=18, len=17, seek_char=0, invert_pos=0: 1.68 ( 13.67%) 1.95 +align=32768, pos=18, len=19, seek_char=23, invert_pos=0: 1.30 ( 31.46%) 1.90 +align=32768, pos=18, len=19, seek_char=0, invert_pos=0: 1.30 ( 31.03%) 1.89 +align=32786, pos=18, len=19, seek_char=23, invert_pos=0: 1.30 ( 31.06%) 1.89 +align=32786, pos=18, len=19, seek_char=0, invert_pos=0: 1.30 ( 31.02%) 1.89 +align=32768, pos=18, len=17, seek_char=23, invert_pos=0: 1.68 ( 13.78%) 1.95 +align=32768, pos=18, len=17, seek_char=0, invert_pos=0: 1.68 ( 13.67%) 1.95 +align=32786, pos=18, len=17, seek_char=23, invert_pos=0: 1.68 ( 13.74%) 1.95 +align=32786, pos=18, len=17, seek_char=0, invert_pos=0: 1.68 ( 13.62%) 1.95 +align=65521, pos=18, len=17, seek_char=23, invert_pos=0: 1.68 ( 13.63%) 1.95 +align=65521, pos=18, len=17, seek_char=0, invert_pos=0: 1.68 ( 13.61%) 1.95 +align=65521, pos=18, len=19, seek_char=23, invert_pos=0: 1.30 ( 31.10%) 1.89 +align=65521, pos=18, len=19, seek_char=0, invert_pos=0: 1.30 ( 31.00%) 1.89 +align=0, pos=19, len=20, seek_char=23, invert_pos=0: 1.30 ( 31.42%) 1.90 +align=0, pos=19, len=20, seek_char=0, invert_pos=0: 1.30 ( 31.05%) 1.89 +align=19, pos=19, len=20, seek_char=23, invert_pos=0: 1.30 ( 31.02%) 1.89 +align=19, pos=19, len=20, seek_char=0, invert_pos=0: 1.30 ( 31.01%) 1.89 +align=0, pos=19, len=18, seek_char=23, invert_pos=0: 1.68 ( 13.62%) 1.95 +align=0, pos=19, len=18, seek_char=0, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=19, pos=19, len=18, seek_char=23, invert_pos=0: 1.68 ( 13.60%) 1.95 +align=19, pos=19, len=18, seek_char=0, invert_pos=0: 1.68 ( 13.61%) 1.95 +align=32768, pos=19, len=20, seek_char=23, invert_pos=0: 1.30 ( 31.06%) 1.89 +align=32768, pos=19, len=20, seek_char=0, invert_pos=0: 1.30 ( 31.06%) 1.89 +align=32787, pos=19, len=20, seek_char=23, invert_pos=0: 1.30 ( 31.05%) 1.89 +align=32787, pos=19, len=20, seek_char=0, invert_pos=0: 1.30 ( 31.46%) 1.90 +align=32768, pos=19, len=18, seek_char=23, invert_pos=0: 1.68 ( 13.67%) 1.95 +align=32768, pos=19, len=18, seek_char=0, invert_pos=0: 1.68 ( 13.63%) 1.95 +align=32787, pos=19, len=18, seek_char=23, invert_pos=0: 1.68 ( 13.64%) 1.95 +align=32787, pos=19, len=18, seek_char=0, invert_pos=0: 1.68 ( 13.63%) 1.95 +align=65521, pos=19, len=18, seek_char=23, invert_pos=0: 1.68 ( 13.59%) 1.95 +align=65521, pos=19, len=18, seek_char=0, invert_pos=0: 1.68 ( 13.70%) 1.95 +align=65521, pos=19, len=20, seek_char=23, invert_pos=0: 1.30 ( 31.05%) 1.89 +align=65521, pos=19, len=20, seek_char=0, invert_pos=0: 1.30 ( 31.03%) 1.89 +align=0, pos=20, len=21, seek_char=23, invert_pos=0: 1.30 ( 31.42%) 1.90 +align=0, pos=20, len=21, seek_char=0, invert_pos=0: 1.30 ( 30.98%) 1.89 +align=20, pos=20, len=21, seek_char=23, invert_pos=0: 1.30 ( 39.89%) 2.17 +align=20, pos=20, len=21, seek_char=0, invert_pos=0: 1.30 ( 38.76%) 2.13 +align=0, pos=20, len=19, seek_char=23, invert_pos=0: 1.68 ( 13.72%) 1.95 +align=0, pos=20, len=19, seek_char=0, invert_pos=0: 1.68 ( 13.72%) 1.95 +align=20, pos=20, len=19, seek_char=23, invert_pos=0: 1.68 ( 13.71%) 1.95 +align=20, pos=20, len=19, seek_char=0, invert_pos=0: 1.68 ( 13.73%) 1.95 +align=32768, pos=20, len=21, seek_char=23, invert_pos=0: 1.30 ( 32.58%) 1.93 +align=32768, pos=20, len=21, seek_char=0, invert_pos=0: 1.30 ( 32.59%) 1.93 +align=32788, pos=20, len=21, seek_char=23, invert_pos=0: 1.30 ( 39.87%) 2.17 +align=32788, pos=20, len=21, seek_char=0, invert_pos=0: 1.30 ( 38.76%) 2.13 +align=32768, pos=20, len=19, seek_char=23, invert_pos=0: 1.67 ( 14.31%) 1.95 +align=32768, pos=20, len=19, seek_char=0, invert_pos=0: 1.68 ( 13.60%) 1.95 +align=32788, pos=20, len=19, seek_char=23, invert_pos=0: 1.68 ( 13.69%) 1.95 +align=32788, pos=20, len=19, seek_char=0, invert_pos=0: 1.68 ( 13.62%) 1.95 +align=65521, pos=20, len=19, seek_char=23, invert_pos=0: 1.68 ( 13.71%) 1.95 +align=65521, pos=20, len=19, seek_char=0, invert_pos=0: 1.68 ( 13.71%) 1.95 +align=65521, pos=20, len=21, seek_char=23, invert_pos=0: 1.30 ( 32.60%) 1.93 +align=65521, pos=20, len=21, seek_char=0, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=0, pos=21, len=22, seek_char=23, invert_pos=0: 1.30 ( 32.59%) 1.93 +align=0, pos=21, len=22, seek_char=0, invert_pos=0: 1.30 ( 32.57%) 1.93 +align=21, pos=21, len=22, seek_char=23, invert_pos=0: 1.30 ( 38.49%) 2.12 +align=21, pos=21, len=22, seek_char=0, invert_pos=0: 1.30 ( 38.44%) 2.12 +align=0, pos=21, len=20, seek_char=23, invert_pos=0: 1.68 ( 13.75%) 1.95 +align=0, pos=21, len=20, seek_char=0, invert_pos=0: 1.68 ( 13.58%) 1.95 +align=21, pos=21, len=20, seek_char=23, invert_pos=0: 1.68 ( 22.76%) 2.18 +align=21, pos=21, len=20, seek_char=0, invert_pos=0: 1.68 ( 22.74%) 2.18 +align=32768, pos=21, len=22, seek_char=23, invert_pos=0: 1.30 ( 32.59%) 1.93 +align=32768, pos=21, len=22, seek_char=0, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=32789, pos=21, len=22, seek_char=23, invert_pos=0: 1.30 ( 38.49%) 2.12 +align=32789, pos=21, len=22, seek_char=0, invert_pos=0: 1.30 ( 39.87%) 2.17 +align=32768, pos=21, len=20, seek_char=23, invert_pos=0: 1.68 ( 13.77%) 1.95 +align=32768, pos=21, len=20, seek_char=0, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=32789, pos=21, len=20, seek_char=23, invert_pos=0: 1.68 ( 22.76%) 2.18 +align=32789, pos=21, len=20, seek_char=0, invert_pos=0: 1.68 ( 22.78%) 2.18 +align=65521, pos=21, len=20, seek_char=23, invert_pos=0: 1.68 ( 13.70%) 1.95 +align=65521, pos=21, len=20, seek_char=0, invert_pos=0: 1.68 ( 13.70%) 1.95 +align=65521, pos=21, len=22, seek_char=23, invert_pos=0: 1.30 ( 32.58%) 1.93 +align=65521, pos=21, len=22, seek_char=0, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=0, pos=22, len=23, seek_char=23, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=0, pos=22, len=23, seek_char=0, invert_pos=0: 1.30 ( 32.57%) 1.93 +align=22, pos=22, len=23, seek_char=23, invert_pos=0: 1.36 ( 35.96%) 2.12 +align=22, pos=22, len=23, seek_char=0, invert_pos=0: 1.30 ( 43.38%) 2.30 +align=0, pos=22, len=21, seek_char=23, invert_pos=0: 1.68 ( 13.59%) 1.95 +align=0, pos=22, len=21, seek_char=0, invert_pos=0: 1.48 ( 24.16%) 1.95 +align=22, pos=22, len=21, seek_char=23, invert_pos=0: 1.48 ( 32.12%) 2.18 +align=22, pos=22, len=21, seek_char=0, invert_pos=0: 1.48 ( 32.13%) 2.18 +align=32768, pos=22, len=23, seek_char=23, invert_pos=0: 1.30 ( 32.59%) 1.93 +align=32768, pos=22, len=23, seek_char=0, invert_pos=0: 1.30 ( 32.57%) 1.93 +align=32790, pos=22, len=23, seek_char=23, invert_pos=0: 1.30 ( 38.39%) 2.11 +align=32790, pos=22, len=23, seek_char=0, invert_pos=0: 1.30 ( 38.53%) 2.12 +align=32768, pos=22, len=21, seek_char=23, invert_pos=0: 1.68 ( 13.70%) 1.95 +align=32768, pos=22, len=21, seek_char=0, invert_pos=0: 1.48 ( 24.20%) 1.95 +align=32790, pos=22, len=21, seek_char=23, invert_pos=0: 1.48 ( 32.19%) 2.18 +align=32790, pos=22, len=21, seek_char=0, invert_pos=0: 1.48 ( 32.14%) 2.18 +align=65521, pos=22, len=21, seek_char=23, invert_pos=0: 1.48 ( 24.14%) 1.95 +align=65521, pos=22, len=21, seek_char=0, invert_pos=0: 1.48 ( 24.15%) 1.95 +align=65521, pos=22, len=23, seek_char=23, invert_pos=0: 1.30 ( 32.58%) 1.93 +align=65521, pos=22, len=23, seek_char=0, invert_pos=0: 1.30 ( 32.60%) 1.93 +align=0, pos=23, len=24, seek_char=23, invert_pos=0: 1.30 ( 32.59%) 1.93 +align=0, pos=23, len=24, seek_char=0, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=23, pos=23, len=24, seek_char=23, invert_pos=0: 1.30 ( 38.42%) 2.12 +align=23, pos=23, len=24, seek_char=0, invert_pos=0: 1.30 ( 38.43%) 2.12 +align=0, pos=23, len=22, seek_char=23, invert_pos=0: 1.68 ( 13.64%) 1.95 +align=0, pos=23, len=22, seek_char=0, invert_pos=0: 1.48 ( 24.15%) 1.95 +align=23, pos=23, len=22, seek_char=23, invert_pos=0: 1.48 ( 32.12%) 2.18 +align=23, pos=23, len=22, seek_char=0, invert_pos=0: 1.48 ( 32.12%) 2.18 +align=32768, pos=23, len=24, seek_char=23, invert_pos=0: 1.30 ( 32.59%) 1.93 +align=32768, pos=23, len=24, seek_char=0, invert_pos=0: 1.30 ( 32.56%) 1.93 +align=32791, pos=23, len=24, seek_char=23, invert_pos=0: 1.30 ( 38.78%) 2.13 +align=32791, pos=23, len=24, seek_char=0, invert_pos=0: 1.30 ( 38.51%) 2.12 +align=32768, pos=23, len=22, seek_char=23, invert_pos=0: 1.68 ( 13.66%) 1.95 +align=32768, pos=23, len=22, seek_char=0, invert_pos=0: 1.48 ( 24.12%) 1.95 +align=32791, pos=23, len=22, seek_char=23, invert_pos=0: 1.48 ( 32.18%) 2.18 +align=32791, pos=23, len=22, seek_char=0, invert_pos=0: 1.48 ( 32.12%) 2.18 +align=65521, pos=23, len=22, seek_char=23, invert_pos=0: 1.48 ( 24.09%) 1.95 +align=65521, pos=23, len=22, seek_char=0, invert_pos=0: 1.48 ( 24.10%) 1.95 +align=65521, pos=23, len=24, seek_char=23, invert_pos=0: 1.30 ( 39.72%) 2.16 +align=65521, pos=23, len=24, seek_char=0, invert_pos=0: 1.30 ( 38.44%) 2.12 +align=0, pos=24, len=25, seek_char=23, invert_pos=0: 1.30 ( 38.43%) 2.12 +align=0, pos=24, len=25, seek_char=0, invert_pos=0: 1.30 ( 38.46%) 2.12 +align=24, pos=24, len=25, seek_char=23, invert_pos=0: 1.47 ( 30.35%) 2.12 +align=24, pos=24, len=25, seek_char=0, invert_pos=0: 1.48 ( 30.15%) 2.12 +align=0, pos=24, len=23, seek_char=23, invert_pos=0: 1.92 ( 1.88%) 1.95 +align=0, pos=24, len=23, seek_char=0, invert_pos=0: 1.48 ( 24.10%) 1.95 +align=24, pos=24, len=23, seek_char=23, invert_pos=0: 1.48 ( 24.13%) 1.95 +align=24, pos=24, len=23, seek_char=0, invert_pos=0: 1.48 ( 24.12%) 1.95 +align=32768, pos=24, len=25, seek_char=23, invert_pos=0: 1.30 ( 38.75%) 2.13 +align=32768, pos=24, len=25, seek_char=0, invert_pos=0: 1.30 ( 38.47%) 2.12 +align=32792, pos=24, len=25, seek_char=23, invert_pos=0: 1.48 ( 30.18%) 2.12 +align=32792, pos=24, len=25, seek_char=0, invert_pos=0: 1.48 ( 30.17%) 2.12 +align=32768, pos=24, len=23, seek_char=23, invert_pos=0: 1.92 ( 1.74%) 1.95 +align=32768, pos=24, len=23, seek_char=0, invert_pos=0: 1.68 ( 13.63%) 1.95 +align=32792, pos=24, len=23, seek_char=23, invert_pos=0: 1.68 ( 13.65%) 1.95 +align=32792, pos=24, len=23, seek_char=0, invert_pos=0: 1.68 ( 13.60%) 1.95 +align=65521, pos=24, len=23, seek_char=23, invert_pos=0: 1.68 ( -0.77%) 1.67 +align=65521, pos=24, len=23, seek_char=0, invert_pos=0: 1.68 ( -0.88%) 1.67 +align=65521, pos=24, len=25, seek_char=23, invert_pos=0: 1.30 ( 39.81%) 2.16 +align=65521, pos=24, len=25, seek_char=0, invert_pos=0: 1.30 ( 38.44%) 2.12 +align=0, pos=25, len=26, seek_char=23, invert_pos=0: 1.30 ( 38.48%) 2.12 +align=0, pos=25, len=26, seek_char=0, invert_pos=0: 1.30 ( 39.80%) 2.16 +align=25, pos=25, len=26, seek_char=23, invert_pos=0: 1.48 ( 30.07%) 2.11 +align=25, pos=25, len=26, seek_char=0, invert_pos=0: 1.48 ( 30.15%) 2.12 +align=0, pos=25, len=24, seek_char=23, invert_pos=0: 1.68 (-10.34%) 1.53 +align=0, pos=25, len=24, seek_char=0, invert_pos=0: 1.68 (-10.29%) 1.53 +align=25, pos=25, len=24, seek_char=23, invert_pos=0: 1.43 ( 34.64%) 2.18 +align=25, pos=25, len=24, seek_char=0, invert_pos=0: 1.55 ( 28.81%) 2.18 +align=32768, pos=25, len=26, seek_char=23, invert_pos=0: 1.30 ( 39.84%) 2.17 +align=32768, pos=25, len=26, seek_char=0, invert_pos=0: 1.30 ( 38.74%) 2.13 +align=32793, pos=25, len=26, seek_char=23, invert_pos=0: 1.48 ( 30.05%) 2.12 +align=32793, pos=25, len=26, seek_char=0, invert_pos=0: 1.48 ( 30.44%) 2.13 +align=32768, pos=25, len=24, seek_char=23, invert_pos=0: 1.95 (-16.97%) 1.67 +align=32768, pos=25, len=24, seek_char=0, invert_pos=0: 1.95 (-17.01%) 1.67 +align=32793, pos=25, len=24, seek_char=23, invert_pos=0: 1.55 ( 28.82%) 2.18 +align=32793, pos=25, len=24, seek_char=0, invert_pos=0: 1.55 ( 28.85%) 2.18 +align=65521, pos=25, len=24, seek_char=23, invert_pos=0: 1.95 ( 10.38%) 2.18 +align=65521, pos=25, len=24, seek_char=0, invert_pos=0: 1.95 ( 10.40%) 2.18 +align=65521, pos=25, len=26, seek_char=23, invert_pos=0: 1.30 ( 39.83%) 2.16 +align=65521, pos=25, len=26, seek_char=0, invert_pos=0: 1.30 ( 38.48%) 2.12 +align=0, pos=26, len=27, seek_char=23, invert_pos=0: 1.30 ( 39.84%) 2.16 +align=0, pos=26, len=27, seek_char=0, invert_pos=0: 1.30 ( 38.48%) 2.12 +align=26, pos=26, len=27, seek_char=23, invert_pos=0: 1.48 ( 31.64%) 2.16 +align=26, pos=26, len=27, seek_char=0, invert_pos=0: 1.48 ( 30.15%) 2.12 +align=0, pos=26, len=25, seek_char=23, invert_pos=0: 1.95 ( 10.40%) 2.18 +align=0, pos=26, len=25, seek_char=0, invert_pos=0: 1.95 ( 10.39%) 2.18 +align=26, pos=26, len=25, seek_char=23, invert_pos=0: 1.55 ( 28.81%) 2.18 +align=26, pos=26, len=25, seek_char=0, invert_pos=0: 1.55 ( 28.85%) 2.18 +align=32768, pos=26, len=27, seek_char=23, invert_pos=0: 1.30 ( 38.52%) 2.12 +align=32768, pos=26, len=27, seek_char=0, invert_pos=0: 1.30 ( 38.79%) 2.13 +align=32794, pos=26, len=27, seek_char=23, invert_pos=0: 1.48 ( 30.05%) 2.12 +align=32794, pos=26, len=27, seek_char=0, invert_pos=0: 1.48 ( 30.22%) 2.12 +align=32768, pos=26, len=25, seek_char=23, invert_pos=0: 1.95 ( 10.41%) 2.18 +align=32768, pos=26, len=25, seek_char=0, invert_pos=0: 1.68 ( 22.75%) 2.18 +align=32794, pos=26, len=25, seek_char=23, invert_pos=0: 1.55 ( 28.80%) 2.18 +align=32794, pos=26, len=25, seek_char=0, invert_pos=0: 1.63 ( 25.30%) 2.18 +align=65521, pos=26, len=25, seek_char=23, invert_pos=0: 1.95 ( 10.40%) 2.18 +align=65521, pos=26, len=25, seek_char=0, invert_pos=0: 1.68 ( 22.70%) 2.18 +align=65521, pos=26, len=27, seek_char=23, invert_pos=0: 1.30 ( 38.47%) 2.12 +align=65521, pos=26, len=27, seek_char=0, invert_pos=0: 1.30 ( 38.76%) 2.13 +align=0, pos=27, len=28, seek_char=23, invert_pos=0: 1.30 ( 38.54%) 2.12 +align=0, pos=27, len=28, seek_char=0, invert_pos=0: 1.30 ( 38.50%) 2.12 +align=27, pos=27, len=28, seek_char=23, invert_pos=0: 1.48 ( 31.64%) 2.16 +align=27, pos=27, len=28, seek_char=0, invert_pos=0: 1.48 ( 30.11%) 2.12 +align=0, pos=27, len=26, seek_char=23, invert_pos=0: 1.95 ( 10.44%) 2.18 +align=0, pos=27, len=26, seek_char=0, invert_pos=0: 1.68 ( 22.67%) 2.18 +align=27, pos=27, len=26, seek_char=23, invert_pos=0: 1.55 ( 28.84%) 2.18 +align=27, pos=27, len=26, seek_char=0, invert_pos=0: 1.55 ( 28.81%) 2.18 +align=32768, pos=27, len=28, seek_char=23, invert_pos=0: 1.55 ( 26.73%) 2.12 +align=32768, pos=27, len=28, seek_char=0, invert_pos=0: 1.55 ( 26.73%) 2.12 +align=32795, pos=27, len=28, seek_char=23, invert_pos=0: 1.48 ( 30.16%) 2.12 +align=32795, pos=27, len=28, seek_char=0, invert_pos=0: 1.48 ( 31.67%) 2.16 +align=32768, pos=27, len=26, seek_char=23, invert_pos=0: 1.95 ( 10.48%) 2.18 +align=32768, pos=27, len=26, seek_char=0, invert_pos=0: 1.68 ( 22.73%) 2.18 +align=32795, pos=27, len=26, seek_char=23, invert_pos=0: 1.81 ( 17.05%) 2.18 +align=32795, pos=27, len=26, seek_char=0, invert_pos=0: 1.55 ( 28.88%) 2.18 +align=65521, pos=27, len=26, seek_char=23, invert_pos=0: 1.95 ( 10.40%) 2.18 +align=65521, pos=27, len=26, seek_char=0, invert_pos=0: 1.95 ( 10.38%) 2.18 +align=65521, pos=27, len=28, seek_char=23, invert_pos=0: 1.55 ( 26.81%) 2.12 +align=65521, pos=27, len=28, seek_char=0, invert_pos=0: 1.55 ( 26.82%) 2.12 +align=0, pos=28, len=29, seek_char=23, invert_pos=0: 1.55 ( 26.66%) 2.12 +align=0, pos=28, len=29, seek_char=0, invert_pos=0: 1.55 ( 26.80%) 2.12 +align=28, pos=28, len=29, seek_char=23, invert_pos=0: 1.48 ( 36.36%) 2.32 +align=28, pos=28, len=29, seek_char=0, invert_pos=0: 1.48 ( 36.71%) 2.34 +align=0, pos=28, len=27, seek_char=23, invert_pos=0: 1.95 ( 10.38%) 2.18 +align=0, pos=28, len=27, seek_char=0, invert_pos=0: 1.95 ( 10.44%) 2.18 +align=28, pos=28, len=27, seek_char=23, invert_pos=0: 1.81 ( 17.03%) 2.18 +align=28, pos=28, len=27, seek_char=0, invert_pos=0: 1.55 ( 28.85%) 2.18 +align=32768, pos=28, len=29, seek_char=23, invert_pos=0: 1.55 ( 26.82%) 2.12 +align=32768, pos=28, len=29, seek_char=0, invert_pos=0: 1.55 ( 28.49%) 2.17 +align=32796, pos=28, len=29, seek_char=23, invert_pos=0: 1.48 ( 36.25%) 2.32 +align=32796, pos=28, len=29, seek_char=0, invert_pos=0: 1.48 ( 36.28%) 2.32 +align=32768, pos=28, len=27, seek_char=23, invert_pos=0: 1.95 ( 10.37%) 2.18 +align=32768, pos=28, len=27, seek_char=0, invert_pos=0: 1.68 ( 22.75%) 2.18 +align=32796, pos=28, len=27, seek_char=23, invert_pos=0: 1.81 ( 17.02%) 2.18 +align=32796, pos=28, len=27, seek_char=0, invert_pos=0: 1.55 ( 28.87%) 2.18 +align=65521, pos=28, len=27, seek_char=23, invert_pos=0: 1.95 ( 10.44%) 2.18 +align=65521, pos=28, len=27, seek_char=0, invert_pos=0: 1.68 ( 22.78%) 2.18 +align=65521, pos=28, len=29, seek_char=23, invert_pos=0: 1.55 ( 26.81%) 2.12 +align=65521, pos=28, len=29, seek_char=0, invert_pos=0: 1.55 ( 26.76%) 2.12 +align=0, pos=29, len=30, seek_char=23, invert_pos=0: 1.30 ( 38.50%) 2.12 +align=0, pos=29, len=30, seek_char=0, invert_pos=0: 1.30 ( 38.43%) 2.12 +align=29, pos=29, len=30, seek_char=23, invert_pos=0: 1.48 ( 36.26%) 2.32 +align=29, pos=29, len=30, seek_char=0, invert_pos=0: 1.48 ( 36.28%) 2.32 +align=0, pos=29, len=28, seek_char=23, invert_pos=0: 1.95 ( 10.42%) 2.18 +align=0, pos=29, len=28, seek_char=0, invert_pos=0: 1.68 ( 22.77%) 2.18 +align=29, pos=29, len=28, seek_char=23, invert_pos=0: 1.81 ( 24.20%) 2.39 +align=29, pos=29, len=28, seek_char=0, invert_pos=0: 1.55 ( 34.98%) 2.38 +align=32768, pos=29, len=30, seek_char=23, invert_pos=0: 1.55 ( 28.48%) 2.17 +align=32768, pos=29, len=30, seek_char=0, invert_pos=0: 1.55 ( 26.80%) 2.12 +align=32797, pos=29, len=30, seek_char=23, invert_pos=0: 1.48 ( 36.83%) 2.34 +align=32797, pos=29, len=30, seek_char=0, invert_pos=0: 1.48 ( 36.26%) 2.32 +align=32768, pos=29, len=28, seek_char=23, invert_pos=0: 1.95 ( 10.44%) 2.18 +align=32768, pos=29, len=28, seek_char=0, invert_pos=0: 1.68 ( 22.75%) 2.18 +align=32797, pos=29, len=28, seek_char=23, invert_pos=0: 1.81 ( 24.16%) 2.39 +align=32797, pos=29, len=28, seek_char=0, invert_pos=0: 1.55 ( 35.00%) 2.39 +align=65521, pos=29, len=28, seek_char=23, invert_pos=0: 1.95 ( 10.47%) 2.18 +align=65521, pos=29, len=28, seek_char=0, invert_pos=0: 1.95 ( 10.39%) 2.18 +align=65521, pos=29, len=30, seek_char=23, invert_pos=0: 1.55 ( 26.78%) 2.12 +align=65521, pos=29, len=30, seek_char=0, invert_pos=0: 1.30 ( 38.53%) 2.12 +align=0, pos=30, len=31, seek_char=23, invert_pos=0: 1.55 ( 26.75%) 2.12 +align=0, pos=30, len=31, seek_char=0, invert_pos=0: 1.55 ( 28.43%) 2.17 +align=30, pos=30, len=31, seek_char=23, invert_pos=0: 1.48 ( 36.26%) 2.32 +align=30, pos=30, len=31, seek_char=0, invert_pos=0: 1.48 ( 36.32%) 2.32 +align=0, pos=30, len=29, seek_char=23, invert_pos=0: 1.95 ( 10.42%) 2.18 +align=0, pos=30, len=29, seek_char=0, invert_pos=0: 1.68 ( 22.69%) 2.18 +align=30, pos=30, len=29, seek_char=23, invert_pos=0: 1.81 ( 24.25%) 2.39 +align=30, pos=30, len=29, seek_char=0, invert_pos=0: 1.55 ( 35.08%) 2.39 +align=32768, pos=30, len=31, seek_char=23, invert_pos=0: 1.55 ( 26.69%) 2.12 +align=32768, pos=30, len=31, seek_char=0, invert_pos=0: 1.55 ( 26.75%) 2.12 +align=32798, pos=30, len=31, seek_char=23, invert_pos=0: 1.48 ( 36.31%) 2.32 +align=32798, pos=30, len=31, seek_char=0, invert_pos=0: 1.48 ( 36.32%) 2.32 +align=32768, pos=30, len=29, seek_char=23, invert_pos=0: 1.95 ( 10.37%) 2.18 +align=32768, pos=30, len=29, seek_char=0, invert_pos=0: 1.68 ( 22.73%) 2.18 +align=32798, pos=30, len=29, seek_char=23, invert_pos=0: 1.81 ( 24.24%) 2.39 +align=32798, pos=30, len=29, seek_char=0, invert_pos=0: 1.55 ( 35.00%) 2.39 +align=65521, pos=30, len=29, seek_char=23, invert_pos=0: 1.95 ( 10.39%) 2.18 +align=65521, pos=30, len=29, seek_char=0, invert_pos=0: 1.68 ( 22.72%) 2.18 +align=65521, pos=30, len=31, seek_char=23, invert_pos=0: 1.55 ( 28.34%) 2.16 +align=65521, pos=30, len=31, seek_char=0, invert_pos=0: 1.55 ( 28.35%) 2.16 +align=0, pos=31, len=32, seek_char=23, invert_pos=0: 1.55 ( 26.81%) 2.12 +align=0, pos=31, len=32, seek_char=0, invert_pos=0: 1.55 ( 26.75%) 2.12 +align=31, pos=31, len=32, seek_char=23, invert_pos=0: 1.48 ( 36.27%) 2.32 +align=31, pos=31, len=32, seek_char=0, invert_pos=0: 1.48 ( 36.29%) 2.32 +align=0, pos=31, len=30, seek_char=23, invert_pos=0: 1.95 ( 10.41%) 2.18 +align=0, pos=31, len=30, seek_char=0, invert_pos=0: 1.68 ( 22.78%) 2.18 +align=31, pos=31, len=30, seek_char=23, invert_pos=0: 1.55 ( 35.05%) 2.39 +align=31, pos=31, len=30, seek_char=0, invert_pos=0: 1.55 ( 35.03%) 2.39 +align=32768, pos=31, len=32, seek_char=23, invert_pos=0: 1.55 ( 26.78%) 2.12 +align=32768, pos=31, len=32, seek_char=0, invert_pos=0: 1.55 ( 26.80%) 2.12 +align=32799, pos=31, len=32, seek_char=23, invert_pos=0: 1.48 ( 36.24%) 2.32 +align=32799, pos=31, len=32, seek_char=0, invert_pos=0: 1.48 ( 36.37%) 2.32 +align=32768, pos=31, len=30, seek_char=23, invert_pos=0: 1.95 ( 10.47%) 2.18 +align=32768, pos=31, len=30, seek_char=0, invert_pos=0: 1.68 ( 22.69%) 2.18 +align=32799, pos=31, len=30, seek_char=23, invert_pos=0: 1.81 ( 24.25%) 2.39 +align=32799, pos=31, len=30, seek_char=0, invert_pos=0: 1.55 ( 35.04%) 2.39 +align=65521, pos=31, len=30, seek_char=23, invert_pos=0: 1.95 ( 10.40%) 2.18 +align=65521, pos=31, len=30, seek_char=0, invert_pos=0: 1.95 ( 10.43%) 2.18 +align=65521, pos=31, len=32, seek_char=23, invert_pos=0: 1.48 ( 37.27%) 2.36 +align=65521, pos=31, len=32, seek_char=0, invert_pos=0: 1.49 ( 36.67%) 2.36 +align=0, pos=16, len=16, seek_char=23, invert_pos=0: 1.16 ( 18.59%) 1.43 +align=0, pos=16, len=16, seek_char=23, invert_pos=0: 1.16 ( 18.58%) 1.43 +align=0, pos=16, len=16, seek_char=23, invert_pos=0: 1.16 ( 18.54%) 1.43 +align=0, pos=16, len=16, seek_char=23, invert_pos=0: 1.16 ( 18.50%) 1.43 +align=0, pos=48, len=16, seek_char=23, invert_pos=0: 1.16 ( 18.55%) 1.43 +align=0, pos=16, len=48, seek_char=23, invert_pos=0: 1.81 ( 3.14%) 1.87 +align=0, pos=80, len=16, seek_char=23, invert_pos=0: 1.43 (-11.95%) 1.28 +align=0, pos=16, len=80, seek_char=23, invert_pos=0: 1.30 ( 47.16%) 2.46 +align=0, pos=112, len=16, seek_char=23, invert_pos=0: 1.43 ( -0.00%) 1.43 +align=0, pos=16, len=112, seek_char=23, invert_pos=0: 1.55 ( 37.06%) 2.46 +align=0, pos=144, len=16, seek_char=23, invert_pos=0: 1.43 ( 0.02%) 1.43 +align=0, pos=16, len=144, seek_char=23, invert_pos=0: 1.55 ( 37.09%) 2.46 +align=0, pos=176, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.16%) 1.68 +align=0, pos=16, len=176, seek_char=23, invert_pos=0: 1.55 ( 37.06%) 2.46 +align=0, pos=208, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.23%) 1.68 +align=0, pos=16, len=208, seek_char=23, invert_pos=0: 1.55 ( 37.08%) 2.46 +align=0, pos=240, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.20%) 1.68 +align=0, pos=16, len=240, seek_char=23, invert_pos=0: 1.55 ( 37.04%) 2.46 +align=0, pos=272, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.16%) 1.68 +align=0, pos=16, len=272, seek_char=23, invert_pos=0: 1.55 ( 37.00%) 2.46 +align=0, pos=304, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.23%) 1.68 +align=0, pos=16, len=304, seek_char=23, invert_pos=0: 1.55 ( 37.08%) 2.47 +align=0, pos=336, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.20%) 1.68 +align=0, pos=16, len=336, seek_char=23, invert_pos=0: 1.55 ( 37.09%) 2.46 +align=0, pos=368, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.18%) 1.68 +align=0, pos=16, len=368, seek_char=23, invert_pos=0: 1.55 ( 37.07%) 2.46 +align=0, pos=400, len=16, seek_char=23, invert_pos=0: 1.43 ( 15.19%) 1.68 +align=0, pos=16, len=400, seek_char=23, invert_pos=0: 1.30 ( 47.05%) 2.46 +align=0, pos=32, len=32, seek_char=23, invert_pos=0: 1.30 ( 29.29%) 1.84 +align=0, pos=32, len=32, seek_char=23, invert_pos=0: 1.30 ( 27.90%) 1.81 +align=0, pos=32, len=32, seek_char=23, invert_pos=0: 1.30 ( 29.32%) 1.84 +align=0, pos=32, len=32, seek_char=23, invert_pos=0: 1.30 ( 27.94%) 1.81 +align=0, pos=64, len=32, seek_char=23, invert_pos=0: 1.30 ( 29.38%) 1.84 +align=0, pos=32, len=64, seek_char=23, invert_pos=0: 1.48 ( 28.84%) 2.08 +align=0, pos=96, len=32, seek_char=23, invert_pos=0: 1.55 ( 14.12%) 1.81 +align=0, pos=32, len=96, seek_char=23, invert_pos=0: 1.48 ( 40.07%) 2.47 +align=0, pos=128, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.86%) 1.84 +align=0, pos=32, len=128, seek_char=23, invert_pos=0: 1.48 ( 40.03%) 2.46 +align=0, pos=160, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.83%) 1.84 +align=0, pos=32, len=160, seek_char=23, invert_pos=0: 1.48 ( 39.96%) 2.46 +align=0, pos=192, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.86%) 1.84 +align=0, pos=32, len=192, seek_char=23, invert_pos=0: 1.48 ( 39.99%) 2.46 +align=0, pos=224, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.79%) 1.84 +align=0, pos=32, len=224, seek_char=23, invert_pos=0: 1.48 ( 39.97%) 2.46 +align=0, pos=256, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.83%) 1.84 +align=0, pos=32, len=256, seek_char=23, invert_pos=0: 1.48 ( 40.01%) 2.46 +align=0, pos=288, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.81%) 1.84 +align=0, pos=32, len=288, seek_char=23, invert_pos=0: 1.48 ( 39.92%) 2.46 +align=0, pos=320, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.92%) 1.84 +align=0, pos=32, len=320, seek_char=23, invert_pos=0: 1.48 ( 40.00%) 2.46 +align=0, pos=352, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.83%) 1.84 +align=0, pos=32, len=352, seek_char=23, invert_pos=0: 1.48 ( 39.91%) 2.46 +align=0, pos=384, len=32, seek_char=23, invert_pos=0: 1.55 ( 14.21%) 1.81 +align=0, pos=32, len=384, seek_char=23, invert_pos=0: 1.48 ( 39.96%) 2.46 +align=0, pos=416, len=32, seek_char=23, invert_pos=0: 1.55 ( 14.15%) 1.81 +align=0, pos=32, len=416, seek_char=23, invert_pos=0: 1.48 ( 39.98%) 2.46 +align=0, pos=64, len=64, seek_char=23, invert_pos=0: 1.67 ( 16.52%) 2.00 +align=0, pos=64, len=64, seek_char=23, invert_pos=0: 1.67 ( 15.56%) 1.98 +align=0, pos=64, len=64, seek_char=23, invert_pos=0: 1.67 ( 15.63%) 1.98 +align=0, pos=64, len=64, seek_char=23, invert_pos=0: 1.67 ( 15.64%) 1.98 +align=0, pos=96, len=64, seek_char=23, invert_pos=0: 1.67 ( 16.53%) 2.00 +align=0, pos=64, len=96, seek_char=23, invert_pos=0: 1.93 ( 21.57%) 2.46 +align=0, pos=32, len=64, seek_char=23, invert_pos=0: 1.48 ( 30.31%) 2.12 +align=0, pos=64, len=32, seek_char=23, invert_pos=0: 1.55 ( 15.89%) 1.84 +align=0, pos=128, len=64, seek_char=23, invert_pos=0: 1.67 ( 15.57%) 1.98 +align=0, pos=64, len=128, seek_char=23, invert_pos=0: 1.93 ( 35.15%) 2.97 +align=0, pos=160, len=64, seek_char=23, invert_pos=0: 1.67 ( 15.65%) 1.98 +align=0, pos=64, len=160, seek_char=23, invert_pos=0: 1.93 ( 35.19%) 2.97 +align=0, pos=192, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.23%) 2.20 +align=0, pos=64, len=192, seek_char=23, invert_pos=0: 1.93 ( 35.16%) 2.97 +align=0, pos=224, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.20%) 2.20 +align=0, pos=64, len=224, seek_char=23, invert_pos=0: 1.93 ( 35.20%) 2.97 +align=0, pos=256, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.24%) 2.20 +align=0, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 35.16%) 2.97 +align=0, pos=288, len=64, seek_char=23, invert_pos=0: 1.83 ( 16.59%) 2.20 +align=0, pos=64, len=288, seek_char=23, invert_pos=0: 1.93 ( 35.16%) 2.97 +align=0, pos=320, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.20%) 2.20 +align=0, pos=64, len=320, seek_char=23, invert_pos=0: 1.93 ( 35.14%) 2.97 +align=0, pos=352, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.23%) 2.20 +align=0, pos=64, len=352, seek_char=23, invert_pos=0: 1.93 ( 35.16%) 2.97 +align=0, pos=384, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.21%) 2.20 +align=0, pos=64, len=384, seek_char=23, invert_pos=0: 1.93 ( 35.19%) 2.97 +align=0, pos=416, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.19%) 2.20 +align=0, pos=64, len=416, seek_char=23, invert_pos=0: 1.93 ( 35.18%) 2.97 +align=0, pos=448, len=64, seek_char=23, invert_pos=0: 1.67 ( 24.18%) 2.20 +align=0, pos=64, len=448, seek_char=23, invert_pos=0: 1.93 ( 35.18%) 2.97 +align=0, pos=128, len=128, seek_char=23, invert_pos=0: 2.69 ( 0.81%) 2.71 +align=0, pos=128, len=128, seek_char=23, invert_pos=0: 2.69 ( 9.07%) 2.96 +align=0, pos=128, len=128, seek_char=23, invert_pos=0: 2.69 ( 9.09%) 2.96 +align=0, pos=128, len=128, seek_char=23, invert_pos=0: 2.69 ( 9.05%) 2.96 +align=0, pos=160, len=128, seek_char=23, invert_pos=0: 2.79 ( 5.72%) 2.96 +align=0, pos=128, len=160, seek_char=23, invert_pos=0: 2.95 ( -0.44%) 2.94 +align=0, pos=96, len=128, seek_char=23, invert_pos=0: 2.44 ( 17.11%) 2.94 +align=0, pos=128, len=96, seek_char=23, invert_pos=0: 2.18 ( 11.58%) 2.47 +align=0, pos=192, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.17%) 3.10 +align=0, pos=128, len=192, seek_char=23, invert_pos=0: 2.95 ( 26.61%) 4.02 +align=0, pos=64, len=128, seek_char=23, invert_pos=0: 1.93 ( 34.42%) 2.94 +align=0, pos=128, len=64, seek_char=23, invert_pos=0: 1.67 ( 15.62%) 1.98 +align=0, pos=224, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.17%) 3.10 +align=0, pos=128, len=224, seek_char=23, invert_pos=0: 2.95 ( 25.70%) 3.97 +align=0, pos=32, len=128, seek_char=23, invert_pos=0: 1.48 ( 40.01%) 2.46 +align=0, pos=128, len=32, seek_char=23, invert_pos=0: 1.30 ( 27.84%) 1.81 +align=0, pos=256, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.16%) 3.10 +align=0, pos=128, len=256, seek_char=23, invert_pos=0: 2.95 ( 19.11%) 3.64 +align=0, pos=288, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.16%) 3.10 +align=0, pos=128, len=288, seek_char=23, invert_pos=0: 2.95 ( 19.07%) 3.64 +align=0, pos=320, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.19%) 3.10 +align=0, pos=128, len=320, seek_char=23, invert_pos=0: 2.95 ( 19.13%) 3.65 +align=0, pos=352, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.17%) 3.10 +align=0, pos=128, len=352, seek_char=23, invert_pos=0: 2.95 ( 19.11%) 3.64 +align=0, pos=384, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.16%) 3.10 +align=0, pos=128, len=384, seek_char=23, invert_pos=0: 2.95 ( 19.14%) 3.65 +align=0, pos=416, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.18%) 3.10 +align=0, pos=128, len=416, seek_char=23, invert_pos=0: 2.95 ( 19.08%) 3.64 +align=0, pos=448, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.15%) 3.10 +align=0, pos=128, len=448, seek_char=23, invert_pos=0: 2.95 ( 19.04%) 3.64 +align=0, pos=480, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.17%) 3.10 +align=0, pos=128, len=480, seek_char=23, invert_pos=0: 2.95 ( 19.11%) 3.64 +align=0, pos=512, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.18%) 3.10 +align=0, pos=128, len=512, seek_char=23, invert_pos=0: 2.95 ( 19.08%) 3.64 +align=0, pos=256, len=256, seek_char=23, invert_pos=0: 4.74 ( 1.06%) 4.79 +align=0, pos=256, len=256, seek_char=23, invert_pos=0: 4.74 ( 3.91%) 4.93 +align=0, pos=256, len=256, seek_char=23, invert_pos=0: 4.74 ( 3.85%) 4.93 +align=0, pos=256, len=256, seek_char=23, invert_pos=0: 4.74 ( 3.99%) 4.94 +align=0, pos=288, len=256, seek_char=23, invert_pos=0: 4.74 ( 3.96%) 4.94 +align=0, pos=256, len=288, seek_char=23, invert_pos=0: 5.81 (-27.17%) 4.57 +align=0, pos=224, len=256, seek_char=23, invert_pos=0: 4.49 ( -7.31%) 4.18 +align=0, pos=256, len=224, seek_char=23, invert_pos=0: 4.23 (-23.95%) 3.41 +align=0, pos=320, len=256, seek_char=23, invert_pos=0: 4.74 ( 3.82%) 4.93 +align=0, pos=256, len=320, seek_char=23, invert_pos=0: 5.80 (-20.46%) 4.82 +align=0, pos=192, len=256, seek_char=23, invert_pos=0: 3.97 ( 10.12%) 4.42 +align=0, pos=256, len=192, seek_char=23, invert_pos=0: 3.72 ( 10.13%) 4.14 +align=0, pos=352, len=256, seek_char=23, invert_pos=0: 4.74 ( 3.90%) 4.93 +align=0, pos=256, len=352, seek_char=23, invert_pos=0: 5.80 (-20.56%) 4.81 +align=0, pos=160, len=256, seek_char=23, invert_pos=0: 3.46 ( -0.90%) 3.43 +align=0, pos=256, len=160, seek_char=23, invert_pos=0: 3.20 ( -8.80%) 2.95 +align=0, pos=384, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.42%) 4.37 +align=0, pos=256, len=384, seek_char=23, invert_pos=0: 5.81 (-20.57%) 4.82 +align=0, pos=128, len=256, seek_char=23, invert_pos=0: 2.95 ( 17.10%) 3.56 +align=0, pos=256, len=128, seek_char=23, invert_pos=0: 2.69 ( 13.22%) 3.10 +align=0, pos=416, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.47%) 4.37 +align=0, pos=256, len=416, seek_char=23, invert_pos=0: 5.80 (-14.73%) 5.06 +align=0, pos=96, len=256, seek_char=23, invert_pos=0: 2.44 ( 17.03%) 2.94 +align=0, pos=256, len=96, seek_char=23, invert_pos=0: 2.18 ( 11.74%) 2.47 +align=0, pos=448, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.45%) 4.37 +align=0, pos=256, len=448, seek_char=23, invert_pos=0: 5.80 (-20.57%) 4.81 +align=0, pos=64, len=256, seek_char=23, invert_pos=0: 1.93 ( 34.44%) 2.94 +align=0, pos=256, len=64, seek_char=23, invert_pos=0: 1.67 ( 15.62%) 1.98 +align=0, pos=480, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.44%) 4.37 +align=0, pos=256, len=480, seek_char=23, invert_pos=0: 5.81 (-14.50%) 5.07 +align=0, pos=32, len=256, seek_char=23, invert_pos=0: 1.48 ( 40.05%) 2.47 +align=0, pos=256, len=32, seek_char=23, invert_pos=0: 1.30 ( 27.92%) 1.81 +align=0, pos=512, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.47%) 4.37 +align=0, pos=256, len=512, seek_char=23, invert_pos=0: 5.80 (-20.38%) 4.82 +align=0, pos=544, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.46%) 4.37 +align=0, pos=256, len=544, seek_char=23, invert_pos=0: 5.80 (-14.15%) 5.08 +align=0, pos=576, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.44%) 4.37 +align=0, pos=256, len=576, seek_char=23, invert_pos=0: 5.80 (-20.59%) 4.81 +align=0, pos=608, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.45%) 4.37 +align=0, pos=256, len=608, seek_char=23, invert_pos=0: 5.93 (-17.33%) 5.05 +align=0, pos=640, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.45%) 4.37 +align=0, pos=256, len=640, seek_char=23, invert_pos=0: 5.80 (-20.53%) 4.82 +align=0, pos=512, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.44%) 6.86 +align=0, pos=512, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.45%) 6.86 +align=0, pos=512, len=512, seek_char=23, invert_pos=0: 6.77 ( 1.79%) 6.89 +align=0, pos=512, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.93%) 6.89 +align=0, pos=544, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.92%) 6.89 +align=0, pos=512, len=544, seek_char=23, invert_pos=0: 7.77 (-14.07%) 6.81 +align=0, pos=480, len=512, seek_char=23, invert_pos=0: 7.25 (-17.75%) 6.16 +align=0, pos=512, len=480, seek_char=23, invert_pos=0: 7.23 (-14.30%) 6.33 +align=0, pos=576, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.90%) 6.89 +align=0, pos=512, len=576, seek_char=23, invert_pos=0: 7.76 (-19.10%) 6.52 +align=0, pos=448, len=512, seek_char=23, invert_pos=0: 7.36 (-14.57%) 6.43 +align=0, pos=512, len=448, seek_char=23, invert_pos=0: 6.13 ( 2.88%) 6.31 +align=0, pos=608, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.90%) 6.89 +align=0, pos=512, len=608, seek_char=23, invert_pos=0: 7.77 (-18.82%) 6.54 +align=0, pos=416, len=512, seek_char=23, invert_pos=0: 6.79 ( -3.25%) 6.58 +align=0, pos=512, len=416, seek_char=23, invert_pos=0: 6.77 (-19.54%) 5.66 +align=0, pos=640, len=512, seek_char=23, invert_pos=0: 6.62 ( 1.53%) 6.72 +align=0, pos=512, len=640, seek_char=23, invert_pos=0: 7.76 (-18.82%) 6.53 +align=0, pos=384, len=512, seek_char=23, invert_pos=0: 6.79 ( -5.44%) 6.44 +align=0, pos=512, len=384, seek_char=23, invert_pos=0: 5.70 ( 11.27%) 6.43 +align=0, pos=672, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.98%) 6.90 +align=0, pos=512, len=672, seek_char=23, invert_pos=0: 7.77 (-19.32%) 6.51 +align=0, pos=352, len=512, seek_char=23, invert_pos=0: 6.29 ( -7.16%) 5.87 +align=0, pos=512, len=352, seek_char=23, invert_pos=0: 6.39 (-31.82%) 4.85 +align=0, pos=704, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.51%) 6.86 +align=0, pos=512, len=704, seek_char=23, invert_pos=0: 7.73 (-16.65%) 6.63 +align=0, pos=320, len=512, seek_char=23, invert_pos=0: 6.29 ( -7.27%) 5.86 +align=0, pos=512, len=320, seek_char=23, invert_pos=0: 5.27 ( 1.88%) 5.38 +align=0, pos=736, len=512, seek_char=23, invert_pos=0: 6.60 ( 4.26%) 6.89 +align=0, pos=512, len=736, seek_char=23, invert_pos=0: 7.76 (-16.98%) 6.64 +align=0, pos=288, len=512, seek_char=23, invert_pos=0: 5.80 (-14.13%) 5.09 +align=0, pos=512, len=288, seek_char=23, invert_pos=0: 5.79 (-48.42%) 3.90 +align=0, pos=768, len=512, seek_char=23, invert_pos=0: 6.59 ( 3.58%) 6.84 +align=0, pos=512, len=768, seek_char=23, invert_pos=0: 7.77 (-18.94%) 6.54 +align=0, pos=256, len=512, seek_char=23, invert_pos=0: 5.81 (-14.67%) 5.06 +align=0, pos=512, len=256, seek_char=23, invert_pos=0: 4.74 ( -8.43%) 4.37 +align=0, pos=800, len=512, seek_char=23, invert_pos=0: 6.59 ( 3.78%) 6.85 +align=0, pos=512, len=800, seek_char=23, invert_pos=0: 7.77 (-18.93%) 6.53 +align=0, pos=224, len=512, seek_char=23, invert_pos=0: 4.49 ( -1.45%) 4.42 +align=0, pos=512, len=224, seek_char=23, invert_pos=0: 4.23 (-21.06%) 3.49 +align=0, pos=832, len=512, seek_char=23, invert_pos=0: 6.59 ( 3.73%) 6.85 +align=0, pos=512, len=832, seek_char=23, invert_pos=0: 7.77 (-19.30%) 6.51 +align=0, pos=192, len=512, seek_char=23, invert_pos=0: 3.97 ( 10.18%) 4.42 +align=0, pos=512, len=192, seek_char=23, invert_pos=0: 3.72 ( 3.67%) 3.86 +align=0, pos=864, len=512, seek_char=23, invert_pos=0: 6.62 ( 3.90%) 6.89 +align=0, pos=512, len=864, seek_char=23, invert_pos=0: 7.76 (-18.92%) 6.53 +align=0, pos=160, len=512, seek_char=23, invert_pos=0: 3.46 ( 2.72%) 3.56 +align=0, pos=512, len=160, seek_char=23, invert_pos=0: 3.20 ( -9.03%) 2.94 +align=0, pos=896, len=512, seek_char=23, invert_pos=0: 6.62 ( 1.40%) 6.71 +align=0, pos=512, len=896, seek_char=23, invert_pos=0: 7.77 (-18.84%) 6.54 +align=0, pos=128, len=512, seek_char=23, invert_pos=0: 2.95 ( 17.19%) 3.56 +align=0, pos=512, len=128, seek_char=23, invert_pos=0: 2.69 ( 9.05%) 2.96 +align=0, pos=1024, len=1024, seek_char=23, invert_pos=0: 10.42 ( -6.46%) 9.78 +align=0, pos=1024, len=1024, seek_char=23, invert_pos=0: 10.43 ( 1.24%) 10.56 +align=0, pos=1024, len=1024, seek_char=23, invert_pos=0: 10.43 ( -6.62%) 9.78 +align=0, pos=1024, len=1024, seek_char=23, invert_pos=0: 10.43 ( 1.30%) 10.57 +align=0, pos=1056, len=1024, seek_char=23, invert_pos=0: 10.45 ( -6.73%) 9.79 +align=0, pos=1024, len=1056, seek_char=23, invert_pos=0: 11.51 (-10.21%) 10.44 +align=0, pos=992, len=1024, seek_char=23, invert_pos=0: 11.05 ( -9.43%) 10.10 +align=0, pos=1024, len=992, seek_char=23, invert_pos=0: 11.01 ( -8.27%) 10.17 +align=0, pos=1088, len=1024, seek_char=23, invert_pos=0: 10.42 ( -0.46%) 10.37 +align=0, pos=1024, len=1088, seek_char=23, invert_pos=0: 11.50 ( -9.66%) 10.49 +align=0, pos=960, len=1024, seek_char=23, invert_pos=0: 11.03 ( -6.84%) 10.33 +align=0, pos=1024, len=960, seek_char=23, invert_pos=0: 9.97 ( 0.61%) 10.03 +align=0, pos=1120, len=1024, seek_char=23, invert_pos=0: 10.42 ( -0.44%) 10.37 +align=0, pos=1024, len=1120, seek_char=23, invert_pos=0: 11.50 ( -6.25%) 10.83 +align=0, pos=928, len=1024, seek_char=23, invert_pos=0: 10.57 ( -6.46%) 9.92 +align=0, pos=1024, len=928, seek_char=23, invert_pos=0: 10.54 (-10.13%) 9.57 +align=0, pos=1152, len=1024, seek_char=23, invert_pos=0: 10.42 ( -6.55%) 9.78 +align=0, pos=1024, len=1152, seek_char=23, invert_pos=0: 11.50 (-12.53%) 10.22 +align=0, pos=896, len=1024, seek_char=23, invert_pos=0: 10.56 ( -6.39%) 9.93 +align=0, pos=1024, len=896, seek_char=23, invert_pos=0: 9.48 ( 2.04%) 9.68 +align=0, pos=1184, len=1024, seek_char=23, invert_pos=0: 10.42 ( 1.50%) 10.57 +align=0, pos=1024, len=1184, seek_char=23, invert_pos=0: 11.50 ( -9.66%) 10.49 +align=0, pos=864, len=1024, seek_char=23, invert_pos=0: 10.13 ( -6.12%) 9.54 +align=0, pos=1024, len=864, seek_char=23, invert_pos=0: 10.10 ( -7.61%) 9.39 +align=0, pos=1216, len=1024, seek_char=23, invert_pos=0: 10.41 ( 1.57%) 10.58 +align=0, pos=1024, len=1216, seek_char=23, invert_pos=0: 11.50 ( -9.73%) 10.48 +align=0, pos=832, len=1024, seek_char=23, invert_pos=0: 10.13 ( -6.10%) 9.54 +align=0, pos=1024, len=832, seek_char=23, invert_pos=0: 9.01 ( -3.04%) 8.75 +align=0, pos=1248, len=1024, seek_char=23, invert_pos=0: 10.41 ( -6.70%) 9.76 +align=0, pos=1024, len=1248, seek_char=23, invert_pos=0: 11.51 ( -9.70%) 10.49 +align=0, pos=800, len=1024, seek_char=23, invert_pos=0: 9.63 ( 22.00%) 12.34 +align=0, pos=1024, len=800, seek_char=23, invert_pos=0: 9.61 ( -7.98%) 8.90 +align=0, pos=1280, len=1024, seek_char=23, invert_pos=0: 10.42 ( 1.47%) 10.57 +align=0, pos=1024, len=1280, seek_char=23, invert_pos=0: 11.50 ( -6.28%) 10.82 +align=0, pos=768, len=1024, seek_char=23, invert_pos=0: 9.80 ( 22.53%) 12.66 +align=0, pos=1024, len=768, seek_char=23, invert_pos=0: 8.52 ( 4.58%) 8.92 +align=0, pos=1312, len=1024, seek_char=23, invert_pos=0: 10.42 ( 1.49%) 10.57 +align=0, pos=1024, len=1312, seek_char=23, invert_pos=0: 11.50 ( -9.64%) 10.49 +align=0, pos=736, len=1024, seek_char=23, invert_pos=0: 9.16 (-16.99%) 7.83 +align=0, pos=1024, len=736, seek_char=23, invert_pos=0: 9.28 (-21.76%) 7.62 +align=0, pos=1344, len=1024, seek_char=23, invert_pos=0: 10.41 ( -6.42%) 9.79 +align=0, pos=1024, len=1344, seek_char=23, invert_pos=0: 11.51 ( -9.67%) 10.49 +align=0, pos=704, len=1024, seek_char=23, invert_pos=0: 9.15 ( -4.59%) 8.75 +align=0, pos=1024, len=704, seek_char=23, invert_pos=0: 8.06 ( 0.92%) 8.14 +align=0, pos=1376, len=1024, seek_char=23, invert_pos=0: 10.42 ( 1.53%) 10.58 +align=0, pos=1024, len=1376, seek_char=23, invert_pos=0: 11.50 ( -9.65%) 10.49 +align=0, pos=672, len=1024, seek_char=23, invert_pos=0: 8.70 ( -6.79%) 8.15 +align=0, pos=1024, len=672, seek_char=23, invert_pos=0: 8.68 (-20.37%) 7.21 +align=0, pos=1408, len=1024, seek_char=23, invert_pos=0: 10.42 ( -0.30%) 10.38 +align=0, pos=1024, len=1408, seek_char=23, invert_pos=0: 11.51 ( -6.38%) 10.82 +align=0, pos=640, len=1024, seek_char=23, invert_pos=0: 8.71 ( -6.84%) 8.15 +align=0, pos=1024, len=640, seek_char=23, invert_pos=0: 7.61 ( 0.90%) 7.68 +align=0, pos=2048, len=2048, seek_char=23, invert_pos=0: 17.93 ( -5.51%) 16.99 +align=0, pos=2048, len=2048, seek_char=23, invert_pos=0: 17.92 ( -6.09%) 16.89 +align=0, pos=2048, len=2048, seek_char=23, invert_pos=0: 18.01 ( -5.80%) 17.02 +align=0, pos=2048, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.49%) 16.99 +align=0, pos=2080, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.50%) 16.99 +align=0, pos=2048, len=2080, seek_char=23, invert_pos=0: 19.08 ( -9.51%) 17.42 +align=0, pos=2016, len=2048, seek_char=23, invert_pos=0: 18.70 ( 13.66%) 21.66 +align=0, pos=2048, len=2016, seek_char=23, invert_pos=0: 18.69 (-10.90%) 16.85 +align=0, pos=2112, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.50%) 16.99 +align=0, pos=2048, len=2112, seek_char=23, invert_pos=0: 19.07 ( -6.48%) 17.91 +align=0, pos=1984, len=2048, seek_char=23, invert_pos=0: 18.71 ( 15.61%) 22.17 +align=0, pos=2048, len=1984, seek_char=23, invert_pos=0: 17.47 ( -5.68%) 16.53 +align=0, pos=2144, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.57%) 16.98 +align=0, pos=2048, len=2144, seek_char=23, invert_pos=0: 19.08 ( -6.63%) 17.89 +align=0, pos=1952, len=2048, seek_char=23, invert_pos=0: 18.14 ( 16.14%) 21.64 +align=0, pos=2048, len=1952, seek_char=23, invert_pos=0: 18.05 (-10.24%) 16.37 +align=0, pos=2176, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.51%) 16.99 +align=0, pos=2048, len=2176, seek_char=23, invert_pos=0: 19.07 ( -5.77%) 18.03 +align=0, pos=1920, len=2048, seek_char=23, invert_pos=0: 18.14 ( 15.45%) 21.46 +align=0, pos=2048, len=1920, seek_char=23, invert_pos=0: 16.99 ( -5.31%) 16.13 +align=0, pos=2208, len=2048, seek_char=23, invert_pos=0: 17.93 ( -5.50%) 17.00 +align=0, pos=2048, len=2208, seek_char=23, invert_pos=0: 19.08 ( -6.60%) 17.90 +align=0, pos=1888, len=2048, seek_char=23, invert_pos=0: 17.62 ( -7.15%) 16.44 +align=0, pos=2048, len=1888, seek_char=23, invert_pos=0: 17.78 (-11.78%) 15.91 +align=0, pos=2240, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.42%) 17.00 +align=0, pos=2048, len=2240, seek_char=23, invert_pos=0: 19.08 ( -6.68%) 17.88 +align=0, pos=1856, len=2048, seek_char=23, invert_pos=0: 17.62 ( -7.10%) 16.45 +align=0, pos=2048, len=1856, seek_char=23, invert_pos=0: 16.53 ( -6.91%) 15.46 +align=0, pos=2272, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.57%) 16.98 +align=0, pos=2048, len=2272, seek_char=23, invert_pos=0: 19.08 ( -6.58%) 17.90 +align=0, pos=1824, len=2048, seek_char=23, invert_pos=0: 17.23 ( -6.92%) 16.11 +align=0, pos=2048, len=1824, seek_char=23, invert_pos=0: 17.27 (-11.89%) 15.44 +align=0, pos=2304, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.44%) 17.00 +align=0, pos=2048, len=2304, seek_char=23, invert_pos=0: 19.07 ( -6.55%) 17.90 +align=0, pos=1792, len=2048, seek_char=23, invert_pos=0: 17.22 ( -7.80%) 15.97 +align=0, pos=2048, len=1792, seek_char=23, invert_pos=0: 16.16 ( -6.47%) 15.18 +align=0, pos=2336, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.68%) 16.96 +align=0, pos=2048, len=2336, seek_char=23, invert_pos=0: 19.07 ( -6.52%) 17.90 +align=0, pos=1760, len=2048, seek_char=23, invert_pos=0: 16.81 ( -8.40%) 15.51 +align=0, pos=2048, len=1760, seek_char=23, invert_pos=0: 16.77 (-12.25%) 14.94 +align=0, pos=2368, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.75%) 16.95 +align=0, pos=2048, len=2368, seek_char=23, invert_pos=0: 19.07 ( -5.98%) 18.00 +align=0, pos=1728, len=2048, seek_char=23, invert_pos=0: 16.79 ( -8.32%) 15.50 +align=0, pos=2048, len=1728, seek_char=23, invert_pos=0: 15.63 ( -5.39%) 14.83 +align=0, pos=2400, len=2048, seek_char=23, invert_pos=0: 17.92 ( -5.73%) 16.95 +align=0, pos=2048, len=2400, seek_char=23, invert_pos=0: 19.06 ( -6.43%) 17.91 +align=0, pos=1696, len=2048, seek_char=23, invert_pos=0: 16.35 ( -8.76%) 15.04 +align=0, pos=2048, len=1696, seek_char=23, invert_pos=0: 16.24 (-11.59%) 14.55 +align=0, pos=2432, len=2048, seek_char=23, invert_pos=0: 17.92 ( -6.01%) 16.90 +align=0, pos=2048, len=2432, seek_char=23, invert_pos=0: 19.07 ( -6.43%) 17.92 +align=0, pos=1664, len=2048, seek_char=23, invert_pos=0: 16.17 ( -7.71%) 15.01 +align=0, pos=2048, len=1664, seek_char=23, invert_pos=0: 15.28 ( -5.18%) 14.53 +align=0, pos=4096, len=4096, seek_char=23, invert_pos=0: 33.09 ( 9.41%) 36.53 +align=0, pos=4096, len=4096, seek_char=23, invert_pos=0: 32.95 ( 9.75%) 36.51 +align=0, pos=4096, len=4096, seek_char=23, invert_pos=0: 32.93 ( 9.83%) 36.52 +align=0, pos=4096, len=4096, seek_char=23, invert_pos=0: 32.94 ( 9.72%) 36.49 +align=0, pos=4128, len=4096, seek_char=23, invert_pos=0: 32.94 ( 10.14%) 36.66 +align=0, pos=4096, len=4128, seek_char=23, invert_pos=0: 34.66 ( 5.23%) 36.57 +align=0, pos=4064, len=4096, seek_char=23, invert_pos=0: 34.76 ( 6.82%) 37.31 +align=0, pos=4096, len=4064, seek_char=23, invert_pos=0: 34.77 ( 3.61%) 36.07 +align=0, pos=4160, len=4096, seek_char=23, invert_pos=0: 32.94 ( 10.36%) 36.75 +align=0, pos=4096, len=4160, seek_char=23, invert_pos=0: 34.63 ( 8.36%) 37.79 +align=0, pos=4032, len=4096, seek_char=23, invert_pos=0: 34.86 ( 6.59%) 37.31 +align=0, pos=4096, len=4032, seek_char=23, invert_pos=0: 32.52 ( 10.32%) 36.26 +align=0, pos=4192, len=4096, seek_char=23, invert_pos=0: 32.94 ( 10.34%) 36.73 +align=0, pos=4096, len=4192, seek_char=23, invert_pos=0: 34.84 ( 7.20%) 37.54 +align=0, pos=4000, len=4096, seek_char=23, invert_pos=0: 34.23 ( 7.68%) 37.07 +align=0, pos=4096, len=4000, seek_char=23, invert_pos=0: 33.52 ( 5.25%) 35.38 +align=0, pos=4224, len=4096, seek_char=23, invert_pos=0: 32.94 ( 10.10%) 36.64 +align=0, pos=4096, len=4224, seek_char=23, invert_pos=0: 34.74 ( 7.66%) 37.62 +align=0, pos=3968, len=4096, seek_char=23, invert_pos=0: 34.17 ( 7.88%) 37.09 +align=0, pos=4096, len=3968, seek_char=23, invert_pos=0: 32.27 ( 9.69%) 35.73 +align=0, pos=4256, len=4096, seek_char=23, invert_pos=0: 32.93 ( 10.55%) 36.81 +align=0, pos=4096, len=4256, seek_char=23, invert_pos=0: 34.72 ( 7.68%) 37.61 +align=0, pos=3936, len=4096, seek_char=23, invert_pos=0: 36.41 ( 0.93%) 36.76 +align=0, pos=4096, len=3936, seek_char=23, invert_pos=0: 36.49 ( -5.41%) 34.62 +align=0, pos=4288, len=4096, seek_char=23, invert_pos=0: 32.94 ( 10.32%) 36.72 +align=0, pos=4096, len=4288, seek_char=23, invert_pos=0: 34.69 ( 8.36%) 37.86 +align=0, pos=3904, len=4096, seek_char=23, invert_pos=0: 36.43 ( 1.33%) 36.92 +align=0, pos=4096, len=3904, seek_char=23, invert_pos=0: 34.89 ( 0.26%) 34.98 +align=0, pos=4320, len=4096, seek_char=23, invert_pos=0: 32.94 ( 9.65%) 36.45 +align=0, pos=4096, len=4320, seek_char=23, invert_pos=0: 34.71 ( 8.83%) 38.07 +align=0, pos=3872, len=4096, seek_char=23, invert_pos=0: 34.23 ( 6.08%) 36.45 +align=0, pos=4096, len=3872, seek_char=23, invert_pos=0: 34.42 ( -1.12%) 34.04 +align=0, pos=4352, len=4096, seek_char=23, invert_pos=0: 32.93 ( 9.51%) 36.39 +align=0, pos=4096, len=4352, seek_char=23, invert_pos=0: 34.69 ( 9.68%) 38.40 +align=0, pos=3840, len=4096, seek_char=23, invert_pos=0: 34.30 ( 5.95%) 36.47 +align=0, pos=4096, len=3840, seek_char=23, invert_pos=0: 32.94 ( 4.59%) 34.52 +align=0, pos=4384, len=4096, seek_char=23, invert_pos=0: 32.94 ( 9.67%) 36.47 +align=0, pos=4096, len=4384, seek_char=23, invert_pos=0: 34.68 ( 9.63%) 38.38 +align=0, pos=3808, len=4096, seek_char=23, invert_pos=0: 36.70 ( -2.66%) 35.75 +align=0, pos=4096, len=3808, seek_char=23, invert_pos=0: 36.20 ( -6.42%) 34.01 +align=0, pos=4416, len=4096, seek_char=23, invert_pos=0: 32.97 ( 9.29%) 36.35 +align=0, pos=4096, len=4416, seek_char=23, invert_pos=0: 34.71 ( 9.92%) 38.53 +align=0, pos=3776, len=4096, seek_char=23, invert_pos=0: 36.67 ( -1.47%) 36.14 +align=0, pos=4096, len=3776, seek_char=23, invert_pos=0: 34.80 ( -2.46%) 33.97 +align=0, pos=4448, len=4096, seek_char=23, invert_pos=0: 32.94 ( 9.68%) 36.47 +align=0, pos=4096, len=4448, seek_char=23, invert_pos=0: 34.71 ( 9.93%) 38.53 +align=0, pos=3744, len=4096, seek_char=23, invert_pos=0: 36.13 ( -1.24%) 35.69 +align=0, pos=4096, len=3744, seek_char=23, invert_pos=0: 35.29 ( -5.31%) 33.51 +align=0, pos=4480, len=4096, seek_char=23, invert_pos=0: 32.94 ( 9.54%) 36.41 +align=0, pos=4096, len=4480, seek_char=23, invert_pos=0: 34.71 ( 10.35%) 38.71 +align=0, pos=3712, len=4096, seek_char=23, invert_pos=0: 36.23 ( -1.39%) 35.74 +align=0, pos=4096, len=3712, seek_char=23, invert_pos=0: 34.50 ( -3.04%) 33.48 +align=0, pos=8192, len=8192, seek_char=23, invert_pos=0: 66.82 ( 0.37%) 67.07 +align=0, pos=8192, len=8192, seek_char=23, invert_pos=0: 66.85 ( 0.23%) 67.00 +align=0, pos=8192, len=8192, seek_char=23, invert_pos=0: 66.81 ( 0.48%) 67.14 +align=0, pos=8192, len=8192, seek_char=23, invert_pos=0: 67.25 ( -0.41%) 66.97 +align=0, pos=8224, len=8192, seek_char=23, invert_pos=0: 66.80 ( 0.32%) 67.01 +align=0, pos=8192, len=8224, seek_char=23, invert_pos=0: 67.47 ( -0.13%) 67.38 +align=0, pos=8160, len=8192, seek_char=23, invert_pos=0: 67.24 ( 0.87%) 67.83 +align=0, pos=8192, len=8160, seek_char=23, invert_pos=0: 66.90 ( -0.57%) 66.52 +align=0, pos=8256, len=8192, seek_char=23, invert_pos=0: 66.82 ( 1.37%) 67.75 +align=0, pos=8192, len=8256, seek_char=23, invert_pos=0: 67.51 ( 1.17%) 68.31 +align=0, pos=8128, len=8192, seek_char=23, invert_pos=0: 67.39 ( 1.13%) 68.16 +align=0, pos=8192, len=8128, seek_char=23, invert_pos=0: 66.11 ( 1.53%) 67.14 +align=0, pos=8288, len=8192, seek_char=23, invert_pos=0: 66.91 ( 1.00%) 67.59 +align=0, pos=8192, len=8288, seek_char=23, invert_pos=0: 68.28 ( 0.17%) 68.40 +align=0, pos=8096, len=8192, seek_char=23, invert_pos=0: 67.51 ( 0.30%) 67.71 +align=0, pos=8192, len=8096, seek_char=23, invert_pos=0: 67.57 ( -2.01%) 66.24 +align=0, pos=8320, len=8192, seek_char=23, invert_pos=0: 67.09 ( 0.74%) 67.59 +align=0, pos=8192, len=8320, seek_char=23, invert_pos=0: 68.77 ( -0.41%) 68.49 +align=0, pos=8064, len=8192, seek_char=23, invert_pos=0: 67.57 ( 0.39%) 67.84 +align=0, pos=8192, len=8064, seek_char=23, invert_pos=0: 66.10 ( 0.70%) 66.57 +align=0, pos=8352, len=8192, seek_char=23, invert_pos=0: 67.05 ( 1.23%) 67.89 +align=0, pos=8192, len=8352, seek_char=23, invert_pos=0: 68.54 ( -0.23%) 68.38 +align=0, pos=8032, len=8192, seek_char=23, invert_pos=0: 67.30 ( 0.37%) 67.55 +align=0, pos=8192, len=8032, seek_char=23, invert_pos=0: 66.62 ( -1.49%) 65.65 +align=0, pos=8384, len=8192, seek_char=23, invert_pos=0: 66.95 ( 0.11%) 67.02 +align=0, pos=8192, len=8384, seek_char=23, invert_pos=0: 68.77 ( -0.21%) 68.63 +align=0, pos=8000, len=8192, seek_char=23, invert_pos=0: 67.41 ( 0.04%) 67.43 +align=0, pos=8192, len=8000, seek_char=23, invert_pos=0: 65.51 ( 0.06%) 65.56 +align=0, pos=8416, len=8192, seek_char=23, invert_pos=0: 66.92 ( 0.21%) 67.06 +align=0, pos=8192, len=8416, seek_char=23, invert_pos=0: 68.94 ( -0.11%) 68.86 +align=0, pos=7968, len=8192, seek_char=23, invert_pos=0: 66.92 ( 0.28%) 67.11 +align=0, pos=8192, len=7968, seek_char=23, invert_pos=0: 66.27 ( -1.79%) 65.10 +align=0, pos=8448, len=8192, seek_char=23, invert_pos=0: 66.87 ( 0.21%) 67.01 +align=0, pos=8192, len=8448, seek_char=23, invert_pos=0: 68.90 ( 0.46%) 69.22 +align=0, pos=7936, len=8192, seek_char=23, invert_pos=0: 66.95 ( 0.28%) 67.14 +align=0, pos=8192, len=7936, seek_char=23, invert_pos=0: 65.09 ( 0.07%) 65.14 +align=0, pos=8480, len=8192, seek_char=23, invert_pos=0: 66.86 ( 0.34%) 67.09 +align=0, pos=8192, len=8480, seek_char=23, invert_pos=0: 68.91 ( 0.87%) 69.51 +align=0, pos=7904, len=8192, seek_char=23, invert_pos=0: 66.29 ( 1.10%) 67.03 +align=0, pos=8192, len=7904, seek_char=23, invert_pos=0: 65.09 ( -1.07%) 64.40 +align=0, pos=8512, len=8192, seek_char=23, invert_pos=0: 66.87 ( 0.87%) 67.46 +align=0, pos=8192, len=8512, seek_char=23, invert_pos=0: 68.99 ( 0.84%) 69.58 +align=0, pos=7872, len=8192, seek_char=23, invert_pos=0: 66.34 ( 1.17%) 67.12 +align=0, pos=8192, len=7872, seek_char=23, invert_pos=0: 64.72 ( 0.54%) 65.07 +align=0, pos=8544, len=8192, seek_char=23, invert_pos=0: 66.86 ( 1.63%) 67.97 +align=0, pos=8192, len=8544, seek_char=23, invert_pos=0: 68.68 ( 1.77%) 69.91 +align=0, pos=7840, len=8192, seek_char=23, invert_pos=0: 65.99 ( 1.59%) 67.05 +align=0, pos=8192, len=7840, seek_char=23, invert_pos=0: 65.62 ( -1.99%) 64.34 +align=0, pos=8576, len=8192, seek_char=23, invert_pos=0: 66.96 ( 1.51%) 67.98 +align=0, pos=8192, len=8576, seek_char=23, invert_pos=0: 68.73 ( 1.74%) 69.94 +align=0, pos=7808, len=8192, seek_char=23, invert_pos=0: 65.98 ( 1.51%) 66.99 +align=0, pos=8192, len=7808, seek_char=23, invert_pos=0: 65.09 ( -0.53%) 64.75