[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-6156-g094ec9b

Török Edvin edwin at clamav.net
Sun Apr 4 01:06:14 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 88815fd801dc8bd58894bbaf57667c8937d7ca20
Author: Török Edvin <edwin at clamav.net>
Date:   Wed Sep 30 13:41:02 2009 +0300

    Sync with compiler.

diff --git a/libclamav/Makefile.am b/libclamav/Makefile.am
index 6144b96..97aafbd 100644
--- a/libclamav/Makefile.am
+++ b/libclamav/Makefile.am
@@ -336,7 +336,8 @@ libclamav_la_SOURCES = \
 	bytecode_api.c \
 	bytecode_api_decl.c \
 	bytecode_api.h \
-	bytecode_api_impl.h
+	bytecode_api_impl.h \
+	bytecode_hooks.h
 
 if !LINK_TOMMATH
 libclamav_la_SOURCES += bignum.c \
diff --git a/libclamav/Makefile.in b/libclamav/Makefile.in
index 99e16b5..a160829 100644
--- a/libclamav/Makefile.in
+++ b/libclamav/Makefile.in
@@ -152,7 +152,7 @@ am__libclamav_la_SOURCES_DIST = clamav.h matcher-ac.c matcher-ac.h \
 	bytecode_priv.h clambc.h cpio.c cpio.h macho.c macho.h \
 	ishield.c ishield.h type_desc.h bytecode_api.c \
 	bytecode_api_decl.c bytecode_api.h bytecode_api_impl.h \
-	bignum.c bignum_class.h
+	bytecode_hooks.h bignum.c bignum_class.h
 @LINK_TOMMATH_FALSE at am__objects_1 = libclamav_la-bignum.lo
 am_libclamav_la_OBJECTS = libclamav_la-matcher-ac.lo \
 	libclamav_la-matcher-bm.lo libclamav_la-matcher.lo \
@@ -641,7 +641,7 @@ libclamav_la_SOURCES = clamav.h matcher-ac.c matcher-ac.h matcher-bm.c \
 	bytecode_priv.h clambc.h cpio.c cpio.h macho.c macho.h \
 	ishield.c ishield.h type_desc.h bytecode_api.c \
 	bytecode_api_decl.c bytecode_api.h bytecode_api_impl.h \
-	$(am__append_7)
+	bytecode_hooks.h $(am__append_7)
 noinst_LTLIBRARIES = libclamav_internal_utils.la libclamav_internal_utils_nothreads.la libclamav_nocxx.la
 COMMON_CLEANFILES = version.h version.h.tmp *.gcda *.gcno
 @MAINTAINER_MODE_TRUE at BUILT_SOURCES = jsparse/generated/operators.h jsparse/generated/keywords.h jsparse-keywords.gperf
diff --git a/libclamav/bcfeatures.h b/libclamav/bcfeatures.h
index 039707f..2cefcc1 100644
--- a/libclamav/bcfeatures.h
+++ b/libclamav/bcfeatures.h
@@ -25,7 +25,7 @@
 #define __has_feature(x) 0
 #endif
 
-#ifdef __has_feature(attribute_bounds)
+#if __has_feature(attribute_bounds)
 #define EBOUNDS(fieldname) __attribute__((bounds(fieldname)))
 #else
 #define EBOUNDS(x)
diff --git a/libclamav/bytecode.c b/libclamav/bytecode.c
index 11cbfcb..b887f60 100644
--- a/libclamav/bytecode.c
+++ b/libclamav/bytecode.c
@@ -44,7 +44,7 @@ struct cli_bc_ctx *cli_bytecode_context_alloc(void)
     ctx->opsizes = NULL;
     ctx->fd = -1;
     ctx->off = 0;
-    ctx->lsigcnt = nomatch;
+    ctx->hooks.match_counts = nomatch;
     ctx->virname = NULL;
     return ctx;
 }
@@ -1411,7 +1411,7 @@ int cli_bytecode_runlsig(const struct cli_all_bc *bcs, const struct cli_bc *bc,
     struct cli_bc_ctx ctx;
     memset(&ctx, 0, sizeof(ctx));
     cli_bytecode_context_setfuncid(&ctx, bc, 0);
-    ctx.lsigcnt = lsigcnt;
+    ctx.hooks.match_counts = lsigcnt;
     cli_bytecode_context_setfile(&ctx, fd);
 
     cli_dbgmsg("Running bytecode for logical signature match\n");
diff --git a/libclamav/bytecode_api.h b/libclamav/bytecode_api.h
index a0f1834..ae736a3 100644
--- a/libclamav/bytecode_api.h
+++ b/libclamav/bytecode_api.h
@@ -20,11 +20,13 @@
  *  MA 02110-1301, USA.
  */
 
-struct lsig_match {
-    uint32_t evalcnt;
-    uint64_t evalids;
-    uint16_t filetype;
-};
+#ifdef __CLAMBC__
+#include "bytecode_execs.h"
+#endif
+
+#ifndef __CLAMBC__
+#include "execs.h"
+#endif
 
 struct foo {
     struct foo *nxt;
@@ -32,6 +34,16 @@ struct foo {
 
 #ifdef __CLAMBC__
 
+extern const uint32_t __clambc_match_counts[64];
+extern const struct cli_exe_info __clambc_exeinfo;
+
+enum BytecodeKind {
+    BC_GENERIC=0,/* generic bytecode, not tied to a specific hook */
+    BC_LOGICAL,/* triggered by a logical signature */
+    BC_PE_UNPACKER,/* a PE unpacker */
+};
+const uint8_t __clambc_kind;
+
 uint32_t test0(struct foo*, uint32_t);
 uint32_t test1(uint32_t, uint32_t);
 
diff --git a/libclamav/bytecode_api_decl.c b/libclamav/bytecode_api_decl.c
index 3a6af38..5e40100 100644
--- a/libclamav/bytecode_api_decl.c
+++ b/libclamav/bytecode_api_decl.c
@@ -23,6 +23,8 @@
 #include "type_desc.h"
 #include "bytecode_api.h"
 #include "bytecode_api_impl.h"
+#include "bytecode_priv.h"
+#include <stdlib.h>
 
 uint32_t cli_bcapi_test0(struct cli_bc_ctx *ctx, struct foo*, uint32_t);
 uint32_t cli_bcapi_test1(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
@@ -32,30 +34,49 @@ uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx *ctx, const const uint8_t*, ui
 uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
 
-static uint16_t cli_tmp0[]={32, 70, 32};
+const struct cli_apiglobal cli_globals[] = {
+/* Bytecode globals BEGIN */
+	{"__clambc_match_counts", GLOBAL_MATCH_COUNTS, 72,
+	 ((char*)&((struct cli_bc_ctx*)0)->hooks.match_counts - (char*)NULL)},
+	{"__clambc_exeinfo", GLOBAL_EXEINFO, 69,
+	 ((char*)&((struct cli_bc_ctx*)0)->hooks.exeinfo - (char*)NULL)},
+	{"__clambc_kind", GLOBAL_KIND, 8,
+	 ((char*)&((struct cli_bc_ctx*)0)->hooks.kind - (char*)NULL)}
+/* Bytecode globals END */
+};
+const unsigned cli_apicall_maxglobal = _LAST_GLOBAL-1;
+static uint16_t cli_tmp0[]={70, 32, 32, 16};
 static uint16_t cli_tmp1[]={71};
-static uint16_t cli_tmp2[]={70};
-static uint16_t cli_tmp3[]={32, 32, 32};
-static uint16_t cli_tmp4[]={32, 65, 32};
+static uint16_t cli_tmp2[]={32, 32, 32, 32, 32, 32, 32, 32, 32};
+static uint16_t cli_tmp3[]={32};
+static uint16_t cli_tmp4[]={32, 32, 32};
+static uint16_t cli_tmp5[]={32, 65, 32};
+static uint16_t cli_tmp6[]={32, 76, 32};
+static uint16_t cli_tmp7[]={77};
+static uint16_t cli_tmp8[]={76};
 
 const struct cli_bc_type cli_apicall_types[]={
-	{DFunctionType, cli_tmp0, 3, 0, 0},
+	{DStructType, cli_tmp0, 4, 0, 0},
 	{DPointerType, cli_tmp1, 1, 0, 0},
-	{DStructType, cli_tmp2, 1, 0, 0},
-	{DFunctionType, cli_tmp3, 3, 0, 0},
-	{DFunctionType, cli_tmp4, 3, 0, 0}
+	{DStructType, cli_tmp2, 9, 0, 0},
+	{DArrayType, cli_tmp3, 64, 0, 0},
+	{DFunctionType, cli_tmp4, 3, 0, 0},
+	{DFunctionType, cli_tmp5, 3, 0, 0},
+	{DFunctionType, cli_tmp6, 3, 0, 0},
+	{DPointerType, cli_tmp7, 1, 0, 0},
+	{DStructType, cli_tmp8, 1, 0, 0}
 };
 
 const unsigned cli_apicall_maxtypes=sizeof(cli_apicall_types)/sizeof(cli_apicall_types[0]);
 const struct cli_apicall cli_apicalls[]={
 /* Bytecode APIcalls BEGIN */
-	{"test0", 0, 0, 1},
-	{"test1", 3, 0, 0},
-	{"read", 4, 1, 1},
-	{"seek", 3, 1, 0},
-	{"setvirusname", 4, 2, 1},
-	{"debug_print_str", 4, 3, 1},
-	{"debug_print_uint", 3, 2, 0}
+	{"test0", 6, 0, 1},
+	{"test1", 4, 0, 0},
+	{"read", 5, 1, 1},
+	{"seek", 4, 1, 0},
+	{"setvirusname", 5, 2, 1},
+	{"debug_print_str", 5, 3, 1},
+	{"debug_print_uint", 4, 2, 0}
 /* Bytecode APIcalls END */
 };
 const cli_apicall_int2 cli_apicalls0[] = {
diff --git a/libclamav/bytecode_api_impl.h b/libclamav/bytecode_api_impl.h
index 6c6df57..b6c9a18 100644
--- a/libclamav/bytecode_api_impl.h
+++ b/libclamav/bytecode_api_impl.h
@@ -1,10 +1,9 @@
 /*
  *  ClamAV bytecode internal API
+ *  This is an automatically generated file!
  *
  *  Copyright (C) 2009 Sourcefire, Inc.
  *
- *  Authors: Török Edvin
- *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
  *  published by the Free Software Foundation.
@@ -19,14 +18,17 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  *  MA 02110-1301, USA.
  */
-struct cli_bc_ctx;
-uint32_t cli_bcapi_test0(struct cli_bc_ctx *, struct foo*, uint32_t);
-uint32_t cli_bcapi_test1(struct cli_bc_ctx *, uint32_t, uint32_t);
-
-int32_t cli_bcapi_read(struct cli_bc_ctx*, uint8_t *data, int32_t size);
-int32_t cli_bcapi_seek(struct cli_bc_ctx*, int32_t pos, uint32_t whence);
 
-uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx*, const uint8_t *name, uint32_t len);
+#ifndef BYTECODE_API_IMPL_H
+#define BYTECODE_API_IMPL_H
 
-uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const uint8_t*, uint32_t);
+struct cli_bc_bctx;
+uint32_t cli_bcapi_test0(struct cli_bc_ctx *ctx, struct foo*, uint32_t);
+uint32_t cli_bcapi_test1(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+int32_t cli_bcapi_read(struct cli_bc_ctx *ctx, uint8_t*, int32_t);
+int32_t cli_bcapi_seek(struct cli_bc_ctx *ctx, int32_t, uint32_t);
+uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
+uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+
+#endif
diff --git a/libclamav/7z.h b/libclamav/bytecode_hooks.h
similarity index 74%
copy from libclamav/7z.h
copy to libclamav/bytecode_hooks.h
index cdc11fd..47305f5 100644
--- a/libclamav/7z.h
+++ b/libclamav/bytecode_hooks.h
@@ -1,7 +1,8 @@
 /*
- *  Copyright (C) 2009 Sourcefire, Inc.
+ *  ClamAV bytecode internal API
+ *  This is an automatically generated file!
  *
- *  Authors: aCaB
+ *  Copyright (C) 2009 Sourcefire, Inc.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
@@ -18,15 +19,12 @@
  *  MA 02110-1301, USA.
  */
 
-#ifndef __7Z_H
-#define __7Z_H
-
-#if HAVE_CONFIG_H
-#include "clamav-config.h"
-#endif
-
-#include "others.h"
-
-int cli_7unz (int, cli_ctx *);
+#ifndef BYTECODE_HOOKS_H
+#define BYTECODE_HOOKS_H
 
+struct cli_bc_hooks {
+	 const uint32_t* match_counts;
+	 const struct cli_exe_info exeinfo;
+	 const uint8_t kind;
+};
 #endif
diff --git a/libclamav/bytecode_priv.h b/libclamav/bytecode_priv.h
index 63409a0..583f09f 100644
--- a/libclamav/bytecode_priv.h
+++ b/libclamav/bytecode_priv.h
@@ -24,6 +24,8 @@
 #define BYTECODE_PRIV_H
 
 #include "type_desc.h"
+#include "execs.h"
+#include "bytecode_hooks.h"
 typedef uint32_t operand_t;
 typedef uint16_t bbid_t;
 typedef uint16_t funcid_t;
@@ -98,8 +100,8 @@ struct cli_bc_ctx {
     size_t file_size;
     off_t off;
     int fd;
-    const uint32_t *lsigcnt;
     const char *virname;
+    struct cli_bc_hooks hooks;
 };
 struct cli_all_bc;
 int cli_vm_execute(const struct cli_bc *bc, struct cli_bc_ctx *ctx, const struct cli_bc_func *func, const struct cli_bc_inst *inst);
diff --git a/libclamav/c++/bytecode2llvm.cpp b/libclamav/c++/bytecode2llvm.cpp
index 38630e9..5464e37 100644
--- a/libclamav/c++/bytecode2llvm.cpp
+++ b/libclamav/c++/bytecode2llvm.cpp
@@ -451,7 +451,7 @@ public:
 	    if (FakeGVs.any()) {
 		Argument *Ctx = F->arg_begin();
 		struct cli_bc_ctx *N = 0;
-		unsigned offset = (char*)&((struct cli_bc_ctx*)0)->lsigcnt - (char*)NULL;
+		unsigned offset = (char*)&((struct cli_bc_ctx*)0)->hooks.match_counts - (char*)NULL;
 		Constant *Idx = ConstantInt::get(Type::getInt32Ty(Context), offset);
 		Value *GEP = Builder.CreateInBoundsGEP(Ctx, Idx);
 		Value *Cast = Builder.CreateBitCast(GEP, PointerType::getUnqual(MatchesTy));
diff --git a/libclamav/clambc.h b/libclamav/clambc.h
index b2a468f..623b688 100644
--- a/libclamav/clambc.h
+++ b/libclamav/clambc.h
@@ -97,8 +97,12 @@ static const unsigned char operand_counts[] = {
   2, 3, 0, 2, 1
 };
 
-enum {
-  GLOBAL_MATCH_COUNTS = 0x8000
+enum bc_global {
+  _FIRST_GLOBAL = 0x8000,
+  GLOBAL_MATCH_COUNTS = 0x8000,
+  GLOBAL_KIND,
+  GLOBAL_EXEINFO,
+  _LAST_GLOBAL
 };
 
 #define BC_START_TID 69
diff --git a/libclamav/execs.h b/libclamav/execs.h
index 13a5fec..697e138 100644
--- a/libclamav/execs.h
+++ b/libclamav/execs.h
@@ -39,7 +39,7 @@ struct cli_exe_section {
 
 struct cli_exe_info {
     struct cli_exe_section *section EBOUNDS(nsections);
-    off_t offset;
+    uint32_t offset;
     uint32_t ep;
     uint16_t nsections;
 };
diff --git a/libclamav/type_desc.h b/libclamav/type_desc.h
index 820dde6..57574bc 100644
--- a/libclamav/type_desc.h
+++ b/libclamav/type_desc.h
@@ -22,6 +22,7 @@
 #ifndef TYPE_DESC_H
 #define TYPE_DESC_H
 
+#include "clambc.h"
 struct cli_bc_ctx;
 
 enum derived_t {
@@ -54,6 +55,7 @@ struct cli_apiglobal {
     const char *name;
     enum bc_global globalid;
     uint16_t type;
+    unsigned offset;
 };
 
 extern const struct cli_bc_type cli_apicall_types[];
diff --git a/unit_tests/input/apicalls.cbc b/unit_tests/input/apicalls.cbc
index 0248b8f..50f571c 100644
--- a/unit_tests/input/apicalls.cbc
+++ b/unit_tests/input/apicalls.cbc
@@ -1,8 +1,8 @@
-ClamBCaa`|`````|`afafp`clamcoincidencejb
+ClamBCaa`|``````|`afafp`clamcoincidencejb
 L
 Tedacb`bb`bb`b
 Eabaaabbed|afdgefcgdgac``
-G`
+G``
 A`b`bLacb`baab`bFadaa
 Bb`b`abbabHonnkm``odHm``oonnkdaaaaeab`b`Hhgfedcbadb`baboaaaDm``odDmjnmdTcab`babE
 Aab`bLabahaab`bFacaa
diff --git a/unit_tests/input/apicalls2.cbc b/unit_tests/input/apicalls2.cbc
index b87cf05..22ea04b 100644
--- a/unit_tests/input/apicalls2.cbc
+++ b/unit_tests/input/apicalls2.cbc
@@ -1,8 +1,8 @@
-ClamBCaa`|`````|`ajafp`clamcoincidencejb
+ClamBCaa`|``````|`ajafp`clamcoincidencejb
 L
-Tedcabidebidacb`bb`bb`bacb`bbidb`bebed
-Eabababbgd|afdgefcgdgac``aabhd|afdgefcgdg`c``
-G`
+Tedcabidebidacb`bbidb`bacb`bb`bb`bebed
+Eababaabgd|afdgefcgdg`c``abbhd|afdgefcgdgac``
+G``
 A`b`bLahbedbfd`b`baab`baab`bFajac
 Bbfdaadb`@d at d``fb`aab`bacabbabHonnkm``odHm``oonnkdaaadeab`bacHhgfedcbadTaaadaaab
 Bb`baeabbaa`Honnkmjnmdaaafeab`baeHhgfedcbadb`bagoaafDm``odDmjnmdTcab`bag
diff --git a/unit_tests/input/arith.cbc b/unit_tests/input/arith.cbc
index 5a5935c..c8e0184 100644
--- a/unit_tests/input/arith.cbc
+++ b/unit_tests/input/arith.cbc
@@ -1,250 +1,44 @@
-ClamBCaa`|`````|`aebbep`clamcoincidencejb
+ClamBCaa`|``````|`aebbep`clamcoincidencejb
 L
 Ted
 E``
-G`
+G``
 A`b`bLbabb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bb`bFbbbaa
-Bb`b``b`abb`baa`b`acb`bab`b`adb`bac`b`aeb`bad`b`afb`bae`b`agb`baf`b`ahb`bag`b`aib`bah`b`ajb`bai`b`akb`baj`b`alb`bak`b`amb`bal`b`anb`bam`b`aob`ban`b`b`ab`bao`b`baab`bb`a`b`bbab`bbaaa`aa`b`bbbaa`baaabb`bbcaa`bbaacb`bbdaa`bcaadb`bbeaa`bdaaeb`bbfaa`beaafb`bbgaa`bfaagb`bbhaa`bgaahb`bbiaa`bhaaib`bbjaa`biaajb`bbkaa`bjaakb`bblaa`bkaalb`bbmaa`blaamb`bbnaa`bmaanb`bboaa`bnaaob`bb`ba`boab`aTcab`bb`bE
-A`b`bLb`cahaab`bahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bb`daab`bFbaebab
-Bah``bbbcaAaaAaaaaaaeaah`AbaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbbcaAaaBooaaaadeaahac at aTaaadadac
-Bb`bae`babga at dTcab`bae
-Bahaf`bbbcaBooaBooaaaageaahafBnoaTaaagafae
-Bb`bah`babga at dTcab`bah
-Bahai`bbbcaBooaAaaaaajeaahai at aTaaajahag
-Bb`bak`babga at dTcab`bak
-Bb`aal`bbbdaAabAabaaameab`aalAbbTaaamajai
-Bb`ban`babga at dTcab`ban
-Bb`aao`bbbdaAabDoooobaab`aeab`aao at bTaab`aalak
-Bb`bbaa`babga at dTcab`bbaa
-Bb`abba`bbbdaDoooobDoooobaabcaeab`abbaDnooobTaabcaanam
-Bb`bbda`babga at dTcab`bbda
-Bb`abea`bbbdaDoooobAabaabfaeab`abea at bTaabfab`aao
-Bb`bbga`babga at dTcab`bbga
-Bb`bbha`bbbeaAadAadaabiaeab`bbhaAbdTaabiabbabaa
-Bb`bbja`babga at dTcab`bbja
-Bb`bbka`bbbeaAadHoooooooodaablaeab`bbka at dTaablabdabca
-Bb`bbma`babga at dTcab`bbma
-Bb`bbna`bbbeaHoooooooodHoooooooodaaboaeab`bbnaHnooooooodTaaboabfabea
-Bb`bb`b`babga at dTcab`bb`b
-Bb`bbab`bbbeaHoooooooodAadaabbbeab`bbab at dTaabbbbhabga
-Bb`bbcb`babga at dTcab`bbcb
-Bb`dbdb`bbbfaAahAahaabebeab`dbdbAbhTaabebbjabia
-Bb`bbfb`babga at dTcab`bbfb
-Bb`dbgb`bbbfaAahPoooooooooooooooohaabhbeab`dbgb at hTaabhbblabka
-Bb`bbib`babga at dTcab`bbib
-Bb`dbjb`bbbfaPoooooooooooooooohPoooooooooooooooohaabkbeab`dbjbPnooooooooooooooohTaabkbbnabma
-Bb`bblb`babga at dTcab`bblb
-Bb`dbmb`bbbfaPoooooooooooooooohAahaabnbeab`dbmb at hTaabnbb`bboa
-Bb`bbob`babga at dTcab`bbob
-BTcab`bAadE
-A`b`bLbdbahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bFbmcbia
-Bah``bbbhaBooaAaaaaaaeaah`BnoaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbbhaAaaBooaaaadeaahacAbaTaaadadac
-Bb`bae`babga at dTcab`bae
-Bahaf`bbbhaAaaAaaaaageaahaf at aTaaagafae
-Bb`bah`babga at dTcab`bah
-Bb`aai`bbbiaDoooobAabaaajeab`aaiDnooobTaaajahag
-Bb`bak`babga at dTcab`bak
-Bb`aal`bbbiaAabDoooobaaameab`aalAbbTaaamajai
-Bb`ban`babga at dTcab`ban
-Bb`aao`bbbiaAabAabaab`aeab`aao at bTaab`aalak
-Bb`bbaa`babga at dTcab`bbaa
-Bb`bbba`bbbjaHoooooooodAadaabcaeab`bbbaHnooooooodTaabcaanam
-Bb`bbda`babga at dTcab`bbda
-Bb`bbea`bbbjaAadHoooooooodaabfaeab`bbeaAbdTaabfab`aao
-Bb`bbga`babga at dTcab`bbga
-Bb`bbha`bbbjaAadAadaabiaeab`bbha at dTaabiabbabaa
-Bb`bbja`babga at dTcab`bbja
-Bb`dbka`bbbkaPoooooooooooooooohAahaablaeab`dbkaPnooooooooooooooohTaablabdabca
-Bb`bbma`babga at dTcab`bbma
-Bb`dbna`bbbkaAahPoooooooooooooooohaaboaeab`dbnaAbhTaaboabfabea
-Bb`bb`b`babga at dTcab`bb`b
-Bb`dbab`bbbkaAahAahaabbbeab`dbab at hTaabbbbhabga
-Bb`bbcb`babga at dTcab`bbcb
-BTcab`bAddE
-A`b`bLb`cahaab`bahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bb`daab`bFbaebab
-Bah``bbblaBooaAaaaaaaeaah`BooaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbblaBooaBooaaaadeaahacAaaTaaadadac
-Bb`bae`babga at dTcab`bae
-Bahaf`bbblaAaaAaaaaageaahafAaaTaaagafae
-Bb`bah`babga at dTcab`bah
-Bahai`bbblaBaaaBcbaaaajeaahaiBceaTaaajahag
-Bb`bak`babga at dTcab`bak
-Bb`aal`bbbmaDoooobAabaaameab`aalDoooobTaaamajai
-Bb`ban`babga at dTcab`ban
-Bb`aao`bbbmaDoooobDoooobaab`aeab`aaoAabTaab`aalak
-Bb`bbaa`babga at dTcab`bbaa
-Bb`abba`bbbmaAabAabaabcaeab`abbaAabTaabcaanam
-Bb`bbda`babga at dTcab`bbda
-Bb`abea`bbbmaBckbCgfcbaabfaeab`abeaDe`afbTaabfab`aao
-Bb`bbga`babga at dTcab`bbga
-Bb`bbha`bbbnaHoooooooodAadaabiaeab`bbhaHoooooooodTaabiabbabaa
-Bb`bbja`babga at dTcab`bbja
-Bb`bbka`bbbnaHoooooooodHoooooooodaablaeab`bbkaAadTaablabdabca
-Bb`bbma`babga at dTcab`bbma
-Bb`bbna`bbbnaAadAadaaboaeab`bbnaAadTaaboabfabea
-Bb`bb`b`babga at dTcab`bb`b
-Bb`bbab`bbbnaE`emkbdEhnmdmdaabbbeab`bbabH`h`jlgbgdTaabbbbhabga
-Bb`bbcb`babga at dTcab`bbcb
-Bb`dbdb`bbboaPoooooooooooooooohAahaabebeab`dbdbPoooooooooooooooohTaabebbjabia
-Bb`bbfb`babga at dTcab`bbfb
-Bb`dbgb`bbboaPoooooooooooooooohPoooooooooooooooohaabhbeab`dbgbAahTaabhbblabka
-Bb`bbib`babga at dTcab`bbib
-Bb`dbjb`bbboaAahAahaabkbeab`dbjbAahTaabkbbnabma
-Bb`bblb`babga at dTcab`bblb
-Bb`dbmb`bbboaImaghnanbdhIogjdckg`bhaabnbeab`dbmbPcfifjghokjjemflghTaabnbb`bboa
-Bb`bbob`babga at dTcab`bbob
-BTcab`bB`adE
-A`b`bLacb`aaab`bFafac
-Bb`a``bbbabDjnmobAgbaaaaeab`a`DfddbbTaaaaabaa
-Bb`bab`babga at dTcab`bab
-BTcab`bB`ddE
-A`b`bLbfaahaab`bahaab`bahaab`bahaab`bahahaab`bahaab`bb`aaab`bFbebao
-Bah``bbbdbAaaBooaaaaaeaah`BooaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbbdbBooaAaaaaadeaahacBooaTaaadadac
-Bb`bae`babga at dTcab`bae
-Bahaf`bbbdbBooaBooaaaageaahafAaaTaaagafae
-Bb`bah`babga at dTcab`bah
-Bahai`bbbdbAaaAaaaaajeaahaiAaaTaaajahag
-Bb`bak`babga at dTcab`bak
-Bahal`bbbcaBnoaAeaaham`bbbdbAfaalaaaneaahamAbaTaaanajai
-Bb`bao`babga at dTcab`bao
-Bahb`a`bbbdbalAbaaabaaeaahb`aAaaTaabaaalak
-Bb`bbba`babga at dTcab`bbba
-Bb`abca`bbbebDjnmobAgbaabdaeab`abcaDdkoobTaabdaanam
-Bb`bbea`babga at dTcab`bbea
-BTcab`bC``adE
-A`b`bLaoahaab`bahaab`bahaab`bb`aaab`bb`aaab`bFbjaak
-Bah``bbblbBooaAaaaaaaeaah`@aTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbbhbBooaAaaaaadeaahac at aTaaadadac
-Bb`bae`babga at dTcab`bae
-Bahaf`bbblbAaaBooaaaageaahaf at aTaaagafae
-Bb`bah`babga at dTcab`bah
-Bb`aai`bbbmbDinmobAgbaaajeab`aaiDmooobTaaajahag
-Bb`bak`babga at dTcab`bak
-Bb`aal`bbbibDinmobAgbaaameab`aalAfbTaaamajai
-Bb`ban`babga at dTcab`ban
-BTcab`bC``ddE
-A`b`bLalahaab`bahaab`bahaab`bb`aaab`bFbeaai
-Bah``bbb`cAaaAadaaaaeaah`AbaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbb`cAaa at daaadeaahacAaaTaaadadac
-Bb`bae`babga at dTcab`bae
-Bahaf`bbb`cBnoaAbdaaageaahafBhoaTaaagafae
-Bb`bah`babga at dTcab`bah
-Bb`aai`bbbacDnojobAbdaaajeab`aaiDhoknbTaaajahag
-Bb`bak`babga at dTcab`bak
-BTcab`bD```adE
-A`b`bLagahaab`bahahaab`bFalae
-Bah``bbbdcBnoaAadaaaaeaah`BogaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbbcaBnoaAeaahad`bbbdcacAadaaaeeaahadAaaTaaaeadac
-Bb`baf`babga at dTcab`baf
-BTcab`bD```ddE
-A`b`bLafahaab`bahaab`bFakae
-Bah``bbbhcBnoaAaaaaaaeaah`BooaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bahac`bbbhcBngaAaaaaadeaahacBocaTaaadadac
-Bb`bae`babga at dTcab`bae
-BTcab`bE````adE
-A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
-Bah``bbblcBjeaAoaaaaaeaah`AjaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`aac`bbbmcDlkjebD```obaaadeab`aacD```ebTaaadadac
-Bb`bae`babga at dTcab`bae
-Bb`baf`bbbncHdcbalkjedG``````odaaageab`bafG``````jdTaaagafae
-Bb`bah`babga at dTcab`bah
-Bb`dai`bbbocPdcbahgfedcbalkjehG``````ohaaajeab`daiG``````fhTaaajahag
-Bb`bak`babga at dTcab`bak
-BTcab`bE````ddE
-A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
-Bah``bbb`dBjeaAoaaaaaeaah`BoeaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`aac`bbbadDlkjebD```obaaadeab`aacDlkjobTaaadadac
-Bb`bae`babga at dTcab`bae
-Bb`baf`bbbbdHdcbalkjedG``````odaaageab`bafHdcbalkoedTaaagafae
-Bb`bah`babga at dTcab`bah
-Bb`dai`bbbcdPdcbahgfedcbalkjehG``````ohaaajeab`daiPdcbahgoedcbalkjehTaaajahag
-Bb`bak`babga at dTcab`bak
-BTcab`bF`````adE
-A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
-Bah``bbbddBjeaB`oaaaaaeaah`BjjaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`aac`bbbedDjejebD``oobaaadeab`aacDjeejbTaaadadac
-Bb`bae`babga at dTcab`bae
-Bb`baf`bbbfdHjejejejedH``oooooodaaageab`bafHjeejejejdTaaagafae
-Bb`bah`babga at dTcab`bah
-Bb`dai`bbbgdPjejejejejejejejehP``oooooooooooooohaaajeab`daiPjeejejejejejejejhTaaajahag
-Bb`bak`babga at dTcab`bak
-BTcab`bF`````ddE
-A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
-Bb`a``babhdBloaaaaaeab`a`DlooobTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`bac`babidDjooobaaadeab`bacHjooooooodTaaadadac
-Bb`bae`babga at dTcab`bae
-Bb`daf`babjdHjooooooodaaageab`dafPjooooooooooooooohTaaagafae
-Bb`bah`babga at dTcab`bah
-BTcab`bG``````adE
-A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
-Bb`a``babkdBloaaaaaeab`a`BlobTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`bac`babldDlooobaaadeab`bacDlooodTaaadadac
-Bb`bae`babga at dTcab`bae
-Bb`daf`babmdHlooooooodaaageab`dafHlooooooohTaaagafae
-Bb`bah`babga at dTcab`bah
-BTcab`bG``````ddE
-A`b`bLaiahaab`bb`aaab`bb`baab`bFb`aag
-Bah``babndDmnnobaaaaeaah`BmnaTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`aac`babodHmnnomjnmdaaadeab`aacDmnnobTaaadadac
-Bb`bae`babga at dTcab`bae
-Bb`baf`bab`ePonnkmnnomjnmonnkhaaageab`bafHonnkmnnodTaaagafae
-Bb`bah`babga at dTcab`bah
-BTcab`bH```````adE
-A`b`bLaob`baab`bb`baab`bb`baab`bb`baab`bb`baab`bFbjaak
-Bb`b``bdbaeHoooooooodAbd at dAddaaaaeab`b`CijbdTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`bac`bdbaeHoooooooodHoooooooodAadHoooooooodaaadeab`bacCbbcdTaaadadac
-Bb`bae`babga at dTcab`bae
-Bb`baf`bdbaeHooooooood at dAcdHnooooooodaaageab`bafCcjbdTaaagafae
-Bb`bah`babga at dTcab`bah
-Bb`bai`bdbaeHooooooood at dAcd@daaajeab`baiCcnbdTaaajahag
-Bb`bak`babga at dTcab`bak
-Bb`bal`bdbaeHooooooood at d@dHoooooooodaaameab`balBkbdTaaamajai
-Bb`ban`babga at dTcab`ban
-BTcab`bH```````ddE
-A`b`bLafb`baab`bb`baab`bFakae
-Bb`b``bcbbeAddAedAfdaaaaeab`b`AedTaaaaabaa
-Bb`bab`babga at dTcab`bab
-Bb`bac`bcbbe at dAedAfdaaadeab`bacAfdTaaadadac
-Bb`bae`babga at dTcab`bae
-BTcab`bH```````hdE
-AbahLaaahahahFabaa
-Bahaba`aa`TcaahabE
+Bb`b``b`bnbb`baa`b`blcb`bab`b`bdcb`bac`b`bncb`bad`b`bgcb`bae`b`bfcb`baf`b`bkcb`bag`b`bccb`bah`b`b`cb`bai`b`bobb`baj`b`becb`bak`b`bocb`bal`b`bjcb`bam`b`b`db`ban`b`bmcb`bao`b`bacb`bb`a`b`bhcb`bbaaa`aa`b`bbbaa`baaabb`bbcaa`bbaacb`bbdaa`bcaadb`bbeaa`bdaaeb`bbfaa`beaafb`bbgaa`bfaagb`bbhaa`bgaahb`bbiaa`bhaaib`bbjaa`biaajb`bbkaa`bjaakb`bblaa`bkaalb`bbmaa`blaamb`bbnaa`bmaanb`bboaa`bnaaob`bb`ba`boab`aTcab`bb`bE
 Abb`aLaab`ab`ab`aFabaa
 Bb`aaba`aa`Tcab`aabE
 Abb`bLaab`bb`bb`bFabaa
 Bb`baba`aa`Tcab`babE
 Abb`dLaab`db`db`dFabaa
 Bb`daba`aa`Tcab`dabE
-Aab`bLaab`bb`bFabaa
-Bb`baae`Aad`Tcab`baaE
 AbahLaaahahahFabaa
-Bahabb``aaTcaahabE
+Bahaba`aa`TcaahabE
 Abb`aLaab`ab`ab`aFabaa
-Bb`aabb``aaTcab`aabE
+Bb`aabk`aa`Tcab`aabE
 Abb`bLaab`bb`bb`bFabaa
-Bb`babb``aaTcab`babE
+Bb`babk`aa`Tcab`babE
 Abb`dLaab`db`db`dFabaa
-Bb`dabb``aaTcab`dabE
+Bb`dabk`aa`Tcab`dabE
 AbahLaaahahahFabaa
-Bahabc`aa`TcaahabE
+Bahabk`aa`TcaahabE
+Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
+Bb`babo``b`baco`aab`badj`abacb`aaen`adTcab`aaeE
+Abb`bLaab`bb`bb`bFabaa
+Bb`babj``aaTcab`babE
+Abb`dLaab`db`db`dFabaa
+Bb`dabj``aaTcab`dabE
+AbahLadahahb`bb`bb`bahFaeaa
+Bb`babo``b`baco`aab`badj`abacahaen`adTcaahaeE
+Aab`bLaab`bb`bFabaa
+Bb`baae`Aad`Tcab`baaE
+Abb`aLacb`ab`bb`bb`bb`aFadaa
+Bb`bab`a`b`baci`abaab`aadn`acTcab`aadE
+Abb`bLaab`bb`bb`bFabaa
+Bb`babi``aaTcab`babE
+Abb`dLabb`db`bb`db`dFacaa
+Bb`dab`aaab`daci``abTcab`dacE
+AbahLacahb`bb`bb`bahFadaa
+Bb`bab`a`b`baci`abaaahadn`acTcaahadE
 Abb`aLaab`ab`ab`aFabaa
 Bb`aabc`aa`Tcab`aabE
 Abb`bLaab`bb`bb`bFabaa
@@ -252,39 +46,29 @@ Bb`babc`aa`Tcab`babE
 Abb`dLaab`db`db`dFabaa
 Bb`dabc`aa`Tcab`dabE
 AbahLaaahahahFabaa
-Bahabd``aaTcaahabE
+Bahabc`aa`TcaahabE
 Abb`aLaab`ab`ab`aFabaa
-Bb`aabd``aaTcab`aabE
+Bb`aabl`aa`Tcab`aabE
 Abb`bLaab`bb`bb`bFabaa
-Bb`babd``aaTcab`babE
+Bb`babl`aa`Tcab`babE
 Abb`dLaab`db`db`dFabaa
-Bb`dabd``aaTcab`dabE
-AbahLadahahb`bb`bb`bahFaeaa
-Bb`babo``b`baco`aab`bade`abacahaen`adTcaahaeE
+Bb`dabl`aa`Tcab`dabE
+AbahLaaahahahFabaa
+Bahabl`aa`TcaahabE
 Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
 Bb`babo``b`baco`aab`bade`abacb`aaen`adTcab`aaeE
 Abb`bLaab`bb`bb`bFabaa
 Bb`babe``aaTcab`babE
 Abb`dLaab`db`db`dFabaa
 Bb`dabe``aaTcab`dabE
-AbahLaaahahahFabaa
-Bahabf``aaTcaahabE
-Abb`aLaab`ab`ab`aFabaa
-Bb`aabf``aaTcab`aabE
-Abb`bLaab`bb`bb`bFabaa
-Bb`babf``aaTcab`babE
-Abb`dLaab`db`db`dFabaa
-Bb`dabf``aaTcab`dabE
 AbahLadahahb`bb`bb`bahFaeaa
-Bb`babo``b`baco`aab`badg`abacahaen`adTcaahaeE
-Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
-Bb`babo``b`baco`aab`badg`abacb`aaen`adTcab`aaeE
-Abb`bLaab`bb`bb`bFabaa
-Bb`babg``aaTcab`babE
-Abb`dLaab`db`db`dFabaa
-Bb`dabg``aaTcab`dabE
-AbahLacahb`bb`bb`bahFadaa
-Bb`babo``b`bach`abaaahadn`acTcaahadE
+Bb`babo``b`baco`aab`bade`abacahaen`adTcaahaeE
+Aab`bLaab`ab`bFabaa
+Bb`baao``Tcab`baaE
+Aab`dLaab`bb`dFabaa
+Bb`daao``Tcab`daaE
+Aab`aLaaahb`aFabaa
+Bb`aaao``Tcab`aaaE
 Abb`aLacb`ab`bb`bb`bb`aFadaa
 Bb`babo``b`bach`abaab`aadn`acTcab`aadE
 Abb`bLaab`bb`bb`bFabaa
@@ -292,64 +76,280 @@ Bb`babh``aaTcab`babE
 Abb`dLabb`db`bb`db`dFacaa
 Bb`dab`aaab`dach``abTcab`dacE
 AbahLacahb`bb`bb`bahFadaa
-Bb`bab`a`b`baci`abaaahadn`acTcaahadE
-Abb`aLacb`ab`bb`bb`bb`aFadaa
-Bb`bab`a`b`baci`abaab`aadn`acTcab`aadE
+Bb`babo``b`bach`abaaahadn`acTcaahadE
+Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
+Bb`babo``b`baco`aab`badg`abacb`aaen`adTcab`aaeE
 Abb`bLaab`bb`bb`bFabaa
-Bb`babi``aaTcab`babE
-Abb`dLabb`db`bb`db`dFacaa
-Bb`dab`aaab`daci``abTcab`dacE
+Bb`babg``aaTcab`babE
+Abb`dLaab`db`db`dFabaa
+Bb`dabg``aaTcab`dabE
 AbahLadahahb`bb`bb`bahFaeaa
-Bb`babo``b`baco`aab`badj`abacahaen`adTcaahaeE
-Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
-Bb`babo``b`baco`aab`badj`abacb`aaen`adTcab`aaeE
+Bb`babo``b`baco`aab`badg`abacahaen`adTcaahaeE
+Abb`aLaab`ab`ab`aFabaa
+Bb`aabb``aaTcab`aabE
 Abb`bLaab`bb`bb`bFabaa
-Bb`babj``aaTcab`babE
+Bb`babb``aaTcab`babE
 Abb`dLaab`db`db`dFabaa
-Bb`dabj``aaTcab`dabE
+Bb`dabb``aaTcab`dabE
 AbahLaaahahahFabaa
-Bahabk`aa`TcaahabE
+Bahabb``aaTcaahabE
+A`b`bLb`cahaab`bahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bb`daab`bFbaebab
+Bah``bbaeAaaAaaaaaaeaah`AbaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbaeAaaBooaaaadeaahac at aTaaadadac
+Bb`bae`baan at dTcab`bae
+Bahaf`bbaeBooaBooaaaageaahafBnoaTaaagafae
+Bb`bah`baan at dTcab`bah
+Bahai`bbaeBooaAaaaaajeaahai at aTaaajahag
+Bb`bak`baan at dTcab`bak
+Bb`aal`bbabAabAabaaameab`aalAbbTaaamajai
+Bb`ban`baan at dTcab`ban
+Bb`aao`bbabAabDoooobaab`aeab`aao at bTaab`aalak
+Bb`bbaa`baan at dTcab`bbaa
+Bb`abba`bbabDoooobDoooobaabcaeab`abbaDnooobTaabcaanam
+Bb`bbda`baan at dTcab`bbda
+Bb`abea`bbabDoooobAabaabfaeab`abea at bTaabfab`aao
+Bb`bbga`baan at dTcab`bbga
+Bb`bbha`bbacAadAadaabiaeab`bbhaAbdTaabiabbabaa
+Bb`bbja`baan at dTcab`bbja
+Bb`bbka`bbacAadHoooooooodaablaeab`bbka at dTaablabdabca
+Bb`bbma`baan at dTcab`bbma
+Bb`bbna`bbacHoooooooodHoooooooodaaboaeab`bbnaHnooooooodTaaboabfabea
+Bb`bb`b`baan at dTcab`bb`b
+Bb`bbab`bbacHoooooooodAadaabbbeab`bbab at dTaabbbbhabga
+Bb`bbcb`baan at dTcab`bbcb
+Bb`dbdb`bbadAahAahaabebeab`dbdbAbhTaabebbjabia
+Bb`bbfb`baan at dTcab`bbfb
+Bb`dbgb`bbadAahPoooooooooooooooohaabhbeab`dbgb at hTaabhbblabka
+Bb`bbib`baan at dTcab`bbib
+Bb`dbjb`bbadPoooooooooooooooohPoooooooooooooooohaabkbeab`dbjbPnooooooooooooooohTaabkbbnabma
+Bb`bblb`baan at dTcab`bblb
+Bb`dbmb`bbadPoooooooooooooooohAahaabnbeab`dbmb at hTaabnbb`bboa
+Bb`bbob`baan at dTcab`bbob
+BTcab`bAadE
+A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
+Bah``bbaiBjeaAoaaaaaeaah`AjaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`aac`bbafDlkjebD```obaaadeab`aacD```ebTaaadadac
+Bb`bae`baan at dTcab`bae
+Bb`baf`bbagHdcbalkjedG``````odaaageab`bafG``````jdTaaagafae
+Bb`bah`baan at dTcab`bah
+Bb`dai`bbahPdcbahgfedcbalkjehG``````ohaaajeab`daiG``````fhTaaajahag
+Bb`bak`baan at dTcab`bak
+BTcab`bE````ddE
+A`b`bLafahaab`bahaab`bFakae
+Bah``bbamBnoaAaaaaaaeaah`BooaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbamBngaAaaaaadeaahacBocaTaaadadac
+Bb`bae`baan at dTcab`bae
+BTcab`bE````adE
+A`b`bLaob`baab`bb`baab`bb`baab`bb`baab`bb`baab`bFbjaak
+Bb`b``bdbbcHoooooooodAbd at dAddaaaaeab`b`CijbdTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`bac`bdbbcHoooooooodHoooooooodAadHoooooooodaaadeab`bacCbbcdTaaadadac
+Bb`bae`baan at dTcab`bae
+Bb`baf`bdbbcHooooooood at dAcdHnooooooodaaageab`bafCcjbdTaaagafae
+Bb`bah`baan at dTcab`bah
+Bb`bai`bdbbcHooooooood at dAcd@daaajeab`baiCcnbdTaaajahag
+Bb`bak`baan at dTcab`bak
+Bb`bal`bdbbcHooooooood at d@dHoooooooodaaameab`balBkbdTaaamajai
+Bb`ban`baan at dTcab`ban
+BTcab`bH```````ddE
+Adb`bLbmab`bb`bb`bb`baab`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`bFbnaaa
+Baaadnab`b`aab`bae`aadaaafkab`baaabb`bagl`aeAbdb`bahoaafaeagaaaikab`b`aab`bajl`ahAddb`bakoaaiajahaaalnab`baaabb`baml`akAhdb`banoaalakamaaaoiab`b`acb`bb`al`anB`adb`bbaaoaaob`aanaabbagab`baaacb`bbcal`baaB`bdb`bbdaoabbabaabcaaabeaiab`babacb`bbfal`bdaB`ddb`bbgaoabeabdabfaaabhagab`b`acb`bbial`bgaB`hdb`bbjaoabhabiabgaaabkaeab`b`aab`bblal`bjaC``adb`bbmaoabkablabjaaabnaeab`baaabb`bboal`bmaC``bdb`bb`boabnabmaboaTcab`bb`bE
+A`b`bLagahaab`bahahaab`bFalae
+Bah``bbbbaBnoaAadaaaaeaah`BogaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbaeBnoaAeaahad`bbbbaacAadaaaeeaahadAaaTaaaeadac
+Bb`baf`baan at dTcab`baf
+BTcab`bD```ddE
+A`b`bLb`cahaab`bahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bb`daab`bFbaebab
+Bah``bbbfaBooaAaaaaaaeaah`BooaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbbfaBooaBooaaaadeaahacAaaTaaadadac
+Bb`bae`baan at dTcab`bae
+Bahaf`bbbfaAaaAaaaaageaahafAaaTaaagafae
+Bb`bah`baan at dTcab`bah
+Bahai`bbbfaBaaaBcbaaaajeaahaiBceaTaaajahag
+Bb`bak`baan at dTcab`bak
+Bb`aal`bbbcaDoooobAabaaameab`aalDoooobTaaamajai
+Bb`ban`baan at dTcab`ban
+Bb`aao`bbbcaDoooobDoooobaab`aeab`aaoAabTaab`aalak
+Bb`bbaa`baan at dTcab`bbaa
+Bb`abba`bbbcaAabAabaabcaeab`abbaAabTaabcaanam
+Bb`bbda`baan at dTcab`bbda
+Bb`abea`bbbcaBckbCgfcbaabfaeab`abeaDe`afbTaabfab`aao
+Bb`bbga`baan at dTcab`bbga
+Bb`bbha`bbbdaHoooooooodAadaabiaeab`bbhaHoooooooodTaabiabbabaa
+Bb`bbja`baan at dTcab`bbja
+Bb`bbka`bbbdaHoooooooodHoooooooodaablaeab`bbkaAadTaablabdabca
+Bb`bbma`baan at dTcab`bbma
+Bb`bbna`bbbdaAadAadaaboaeab`bbnaAadTaaboabfabea
+Bb`bb`b`baan at dTcab`bb`b
+Bb`bbab`bbbdaE`emkbdEhnmdmdaabbbeab`bbabH`h`jlgbgdTaabbbbhabga
+Bb`bbcb`baan at dTcab`bbcb
+Bb`dbdb`bbbeaPoooooooooooooooohAahaabebeab`dbdbPoooooooooooooooohTaabebbjabia
+Bb`bbfb`baan at dTcab`bbfb
+Bb`dbgb`bbbeaPoooooooooooooooohPoooooooooooooooohaabhbeab`dbgbAahTaabhbblabka
+Bb`bbib`baan at dTcab`bbib
+Bb`dbjb`bbbeaAahAahaabkbeab`dbjbAahTaabkbbnabma
+Bb`bblb`baan at dTcab`bblb
+Bb`dbmb`bbbeaImaghnanbdhIogjdckg`bhaabnbeab`dbmbPcfifjghokjjemflghTaabnbb`bboa
+Bb`bbob`baan at dTcab`bbob
+BTcab`bB`adE
+A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
+Bah``bbbjaBjeaAoaaaaaeaah`BoeaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`aac`bbbgaDlkjebD```obaaadeab`aacDlkjobTaaadadac
+Bb`bae`baan at dTcab`bae
+Bb`baf`bbbhaHdcbalkjedG``````odaaageab`bafHdcbalkoedTaaagafae
+Bb`bah`baan at dTcab`bah
+Bb`dai`bbbiaPdcbahgfedcbalkjehG``````ohaaajeab`daiPdcbahgoedcbalkjehTaaajahag
+Bb`bak`baan at dTcab`bak
+BTcab`bF`````adE
+A`b`bLaoahaab`bahaab`bahaab`bb`aaab`bb`aaab`bFbjaak
+Bah``bbbibBooaAaaaaaaeaah`@aTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbbkdBooaAaaaaadeaahac at aTaaadadac
+Bb`bae`baan at dTcab`bae
+Bahaf`bbbibAaaBooaaaageaahaf at aTaaagafae
+Bb`bah`baan at dTcab`bah
+Bb`aai`bbbfbDinmobAgbaaajeab`aaiDmooobTaaajahag
+Bb`bak`baan at dTcab`bak
+Bb`aal`bbbhdDinmobAgbaaameab`aalAfbTaaamajai
+Bb`ban`baan at dTcab`ban
+BTcab`bC``ddE
+A`b`bLbfaahaab`bahaab`bahaab`bahaab`bahahaab`bahaab`bb`aaab`bFbebao
+Bah``bbbnaAaaBooaaaaaeaah`BooaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbbnaBooaAaaaaadeaahacBooaTaaadadac
+Bb`bae`baan at dTcab`bae
+Bahaf`bbbnaBooaBooaaaageaahafAaaTaaagafae
+Bb`bah`baan at dTcab`bah
+Bahai`bbbnaAaaAaaaaajeaahaiAaaTaaajahag
+Bb`bak`baan at dTcab`bak
+Bahal`bbaeBnoaAeaaham`bbbnaAfaalaaaneaahamAbaTaaanajai
+Bb`bao`baan at dTcab`bao
+Bahb`a`bbbnaalAbaaabaaeaahb`aAaaTaabaaalak
+Bb`bbba`baan at dTcab`bbba
+Bb`abca`bbbkaDjnmobAgbaabdaeab`abcaDdkoobTaabdaanam
+Bb`bbea`baan at dTcab`bbea
+BTcab`bC``adE
+A`b`bLafb`baab`bb`baab`bFakae
+Bb`b``bcbicAddAedAfdaaaaeab`b`AedTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`bac`bcbic at dAedAfdaaadeab`bacAfdTaaadadac
+Bb`bae`baan at dTcab`bae
+BTcab`bH```````hdE
+Acb`bLabb`bb`bb`baab`bFacaa
+Baaacfab`b`@db`badoaacaaabTcab`badE
+A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
+Bb`a``bababBloaaaaaeab`a`DlooobTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`bac`baboaDjooobaaadeab`bacHjooooooodTaaadadac
+Bb`bae`baan at dTcab`bae
+Bb`daf`bab`bHjooooooodaaageab`dafPjooooooooooooooohTaaagafae
+Bb`bah`baan at dTcab`bah
+BTcab`bG``````adE
+A`b`bLalahaab`bahaab`bahaab`bb`aaab`bFbeaai
+Bah``bbbebAaaAadaaaaeaah`AbaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbbebAaa at daaadeaahacAaaTaaadadac
+Bb`bae`baan at dTcab`bae
+Bahaf`bbbebBnoaAbdaaageaahafBhoaTaaagafae
+Bb`bah`baan at dTcab`bah
+Bb`aai`bbbbbDnojobAbdaaajeab`aaiDhoknbTaaajahag
+Bb`bak`baan at dTcab`bak
+BTcab`bD```adE
+A`b`bLbdbahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bFbmcbia
+Bah``bbbmbBooaAaaaaaaeaah`BnoaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bahac`bbbmbAaaBooaaaadeaahacAbaTaaadadac
+Bb`bae`baan at dTcab`bae
+Bahaf`bbbmbAaaAaaaaageaahaf at aTaaagafae
+Bb`bah`baan at dTcab`bah
+Bb`aai`bbbjbDoooobAabaaajeab`aaiDnooobTaaajahag
+Bb`bak`baan at dTcab`bak
+Bb`aal`bbbjbAabDoooobaaameab`aalAbbTaaamajai
+Bb`ban`baan at dTcab`ban
+Bb`aao`bbbjbAabAabaab`aeab`aao at bTaab`aalak
+Bb`bbaa`baan at dTcab`bbaa
+Bb`bbba`bbbkbHoooooooodAadaabcaeab`bbbaHnooooooodTaabcaanam
+Bb`bbda`baan at dTcab`bbda
+Bb`bbea`bbbkbAadHoooooooodaabfaeab`bbeaAbdTaabfab`aao
+Bb`bbga`baan at dTcab`bbga
+Bb`bbha`bbbkbAadAadaabiaeab`bbha at dTaabiabbabaa
+Bb`bbja`baan at dTcab`bbja
+Bb`dbka`bbblbPoooooooooooooooohAahaablaeab`dbkaPnooooooooooooooohTaablabdabca
+Bb`bbma`baan at dTcab`bbma
+Bb`dbna`bbblbAahPoooooooooooooooohaaboaeab`dbnaAbhTaaboabfabea
+Bb`bb`b`baan at dTcab`bb`b
+Bb`dbab`bbblbAahAahaabbbeab`dbab at hTaabbbbhabga
+Bb`bbcb`baan at dTcab`bbcb
+BTcab`bAddE
+A`b`bLaiahaab`bb`aaab`bb`baab`bFb`aag
+Bah``babadDmnnobaaaaeaah`BmnaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`aac`babbdHmnnomjnmdaaadeab`aacDmnnobTaaadadac
+Bb`bae`baan at dTcab`bae
+Bb`baf`babcdPonnkmnnomjnmonnkhaaageab`bafHonnkmnnodTaaagafae
+Bb`bah`baan at dTcab`bah
+BTcab`bH```````adE
+A`b`bLacb`aaab`bFafac
+Bb`a``bbbddDjnmobAgbaaaaeab`a`DfddbbTaaaaabaa
+Bb`bab`baan at dTcab`bab
+BTcab`bB`ddE
+A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
+Bah``bbbodBjeaB`oaaaaaeaah`BjjaTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`aac`bbbldDjejebD``oobaaadeab`aacDjeejbTaaadadac
+Bb`bae`baan at dTcab`bae
+Bb`baf`bbbmdHjejejejedH``oooooodaaageab`bafHjeejejejdTaaagafae
+Bb`bah`baan at dTcab`bah
+Bb`dai`bbbndPjejejejejejejejehP``oooooooooooooohaaajeab`daiPjeejejejejejejejhTaaajahag
+Bb`bak`baan at dTcab`bak
+BTcab`bF`````ddE
+A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
+Bb`a``babbeBloaaaaaeab`a`BlobTaaaaabaa
+Bb`bab`baan at dTcab`bab
+Bb`bac`bab`eDlooobaaadeab`bacDlooodTaaadadac
+Bb`bae`baan at dTcab`bae
+Bb`daf`babaeHlooooooodaaageab`dafHlooooooohTaaagafae
+Bb`bah`baan at dTcab`bah
+BTcab`bG``````ddE
+AaahLaab`aahFabaa
+Bahaan``TcaahaaE
+Aab`aLaab`bb`aFabaa
+Bb`aaan``Tcab`aaaE
+Aab`bLaab`db`bFabaa
+Bb`baan``Tcab`baaE
 Abb`aLaab`ab`ab`aFabaa
-Bb`aabk`aa`Tcab`aabE
+Bb`aabd``aaTcab`aabE
 Abb`bLaab`bb`bb`bFabaa
-Bb`babk`aa`Tcab`babE
+Bb`babd``aaTcab`babE
 Abb`dLaab`db`db`dFabaa
-Bb`dabk`aa`Tcab`dabE
+Bb`dabd``aaTcab`dabE
 AbahLaaahahahFabaa
-Bahabl`aa`TcaahabE
+Bahabd``aaTcaahabE
 Abb`aLaab`ab`ab`aFabaa
-Bb`aabl`aa`Tcab`aabE
+Bb`aabf``aaTcab`aabE
 Abb`bLaab`bb`bb`bFabaa
-Bb`babl`aa`Tcab`babE
+Bb`babf``aaTcab`babE
 Abb`dLaab`db`db`dFabaa
-Bb`dabl`aa`Tcab`dabE
+Bb`dabf``aaTcab`dabE
 AbahLaaahahahFabaa
-Bahabm`aa`TcaahabE
+Bahabf``aaTcaahabE
 Abb`aLaab`ab`ab`aFabaa
 Bb`aabm`aa`Tcab`aabE
 Abb`bLaab`bb`bb`bFabaa
 Bb`babm`aa`Tcab`babE
 Abb`dLaab`db`db`dFabaa
 Bb`dabm`aa`Tcab`dabE
-Aab`aLaaahb`aFabaa
-Bb`aaao``Tcab`aaaE
-Aab`bLaab`ab`bFabaa
-Bb`baao``Tcab`baaE
-Aab`dLaab`bb`dFabaa
-Bb`daao``Tcab`daaE
-Aab`aLaaahb`aFabaa
-Bb`aaa`a`Tcab`aaaE
+AbahLaaahahahFabaa
+Bahabm`aa`TcaahabE
 Aab`bLaab`ab`bFabaa
 Bb`baa`a`Tcab`baaE
 Aab`dLaab`bb`dFabaa
 Bb`daa`a`Tcab`daaE
-AaahLaab`aahFabaa
-Bahaan``TcaahaaE
-Aab`aLaab`bb`aFabaa
-Bb`aaan``Tcab`aaaE
-Aab`bLaab`db`bFabaa
-Bb`baan``Tcab`baaE
-Adb`bLbmab`bb`bb`bb`baab`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`baab`bb`bFbnaaa
-Baaadnab`b`aab`bae`aadaaafkab`baaabb`bagl`aeAbdb`bahoaafaeagaaaikab`b`aab`bajl`ahAddb`bakoaaiajahaaalnab`baaabb`baml`akAhdb`banoaalakamaaaoiab`b`acb`bb`al`anB`adb`bbaaoaaob`aanaabbagab`baaacb`bbcal`baaB`bdb`bbdaoabbabaabcaaabeaiab`babacb`bbfal`bdaB`ddb`bbgaoabeabdabfaaabhagab`b`acb`bbial`bgaB`hdb`bbjaoabhabiabgaaabkaeab`b`aab`bblal`bjaC``adb`bbmaoabkablabjaaabnaeab`baaabb`bboal`bmaC``bdb`bb`boabnabmaboaTcab`bb`bE
-Acb`bLabb`bb`bb`baab`bFacaa
-Baaacfab`b`@db`badoaacaaabTcab`badE
+Aab`aLaaahb`aFabaa
+Bb`aaa`a`Tcab`aaaE
diff --git a/unit_tests/input/div0.cbc b/unit_tests/input/div0.cbc
index cc61770..1f8ea38 100644
--- a/unit_tests/input/div0.cbc
+++ b/unit_tests/input/div0.cbc
@@ -1,8 +1,8 @@
-ClamBCaa`|`````|`aeabp`clamcoincidencejb
+ClamBCaa`|``````|`aeabp`clamcoincidencejb
 L
 Ted
 E``
-G`
+G``
 A`b`bLaab`bFabaa
 Bb`b``baab at dTcab`b`E
 Aab`bLaab`bb`bFabaa
diff --git a/unit_tests/input/lsig.cbc b/unit_tests/input/lsig.cbc
index cb08a87..b976040 100644
--- a/unit_tests/input/lsig.cbc
+++ b/unit_tests/input/lsig.cbc
@@ -1,8 +1,8 @@
-ClamBCaa`|`````|`bbaabp`clamcoincidencejb
+ClamBCaa`|``````|`bbaabp`clamcoincidencejb
 L;Target:0;((0|1|2)=42,2);aabb;ffffffff;aaccee;f00d
-Tedebaeeb`eebodebndebmdebadebcdacb`bbadb`bdadb`bdakahdagahdaiahdaeah
+Tedebaeeb`eebodebndebmdebadebcdacb`bbadb`bdb`db`bdakahdagahdaiahdaeah
 Eaeaaaebld|amcgefdgfgifbgegcgnfafmfef``
-GanbaeBafBafBbfBbf@`b`eBffBffBffBffBffBffBffBff@`baeBffB`cB`cBdf@`bodBafBafBcfBcfBefBef@`bndBdeBbgBofBjfBafBnfBnbBfdBodBod@`bad@@`bad at Aa`bad at Ab`bad at Ac`bad at Ad`bcdAcD```h`bcdAbD```h`bcd at D```h`bcdAaD```h`
+Gd```hanbaeBafBafBbfBbf@`b`eBffBffBffBffBffBffBffBff@`baeBffB`cB`cBdf@`bodBafBafBcfBcfBefBef@`bndBdeBbgBofBjfBafBnfBnbBfdBodBod@`bad@@`bad at Aa`bad at Ab`bad at Ac`bad at Ad`bcdAcD```h`bcdAbD```h`bcd at D```h`bcdAaD```h`
 A`b`bLacb`baa`Fafac
 Bb`b`gbAj`aaaaeab`b`AbdTaaaaaaab
 B```b`abTcab`b at d
diff --git a/unit_tests/input/retmagic.cbc b/unit_tests/input/retmagic.cbc
index 72bce89..a6ee6e0 100644
--- a/unit_tests/input/retmagic.cbc
+++ b/unit_tests/input/retmagic.cbc
@@ -1,7 +1,7 @@
-ClamBCaa`|`````|`aeaap`clamcoincidencejb
+ClamBCaa`|``````|`aeaap`clamcoincidencejb
 L
 Ted
 E``
-G`
+G``
 A`b`bL`Faaaa
 BTcab`bHm``odcbadE

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list