Browse code

Sync with compiler.

Török Edvin authored on 2009/09/30 19:41:02
Showing 19 changed files
... ...
@@ -336,7 +336,8 @@ libclamav_la_SOURCES = \
336 336
 	bytecode_api.c \
337 337
 	bytecode_api_decl.c \
338 338
 	bytecode_api.h \
339
-	bytecode_api_impl.h
339
+	bytecode_api_impl.h \
340
+	bytecode_hooks.h
340 341
 
341 342
 if !LINK_TOMMATH
342 343
 libclamav_la_SOURCES += bignum.c \
... ...
@@ -152,7 +152,7 @@ am__libclamav_la_SOURCES_DIST = clamav.h matcher-ac.c matcher-ac.h \
152 152
 	bytecode_priv.h clambc.h cpio.c cpio.h macho.c macho.h \
153 153
 	ishield.c ishield.h type_desc.h bytecode_api.c \
154 154
 	bytecode_api_decl.c bytecode_api.h bytecode_api_impl.h \
155
-	bignum.c bignum_class.h
155
+	bytecode_hooks.h bignum.c bignum_class.h
156 156
 @LINK_TOMMATH_FALSE@am__objects_1 = libclamav_la-bignum.lo
157 157
 am_libclamav_la_OBJECTS = libclamav_la-matcher-ac.lo \
158 158
 	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 \
641 641
 	bytecode_priv.h clambc.h cpio.c cpio.h macho.c macho.h \
642 642
 	ishield.c ishield.h type_desc.h bytecode_api.c \
643 643
 	bytecode_api_decl.c bytecode_api.h bytecode_api_impl.h \
644
-	$(am__append_7)
644
+	bytecode_hooks.h $(am__append_7)
645 645
 noinst_LTLIBRARIES = libclamav_internal_utils.la libclamav_internal_utils_nothreads.la libclamav_nocxx.la
646 646
 COMMON_CLEANFILES = version.h version.h.tmp *.gcda *.gcno
647 647
 @MAINTAINER_MODE_TRUE@BUILT_SOURCES = jsparse/generated/operators.h jsparse/generated/keywords.h jsparse-keywords.gperf
... ...
@@ -25,7 +25,7 @@
25 25
 #define __has_feature(x) 0
26 26
 #endif
27 27
 
28
-#ifdef __has_feature(attribute_bounds)
28
+#if __has_feature(attribute_bounds)
29 29
 #define EBOUNDS(fieldname) __attribute__((bounds(fieldname)))
30 30
 #else
31 31
 #define EBOUNDS(x)
... ...
@@ -44,7 +44,7 @@ struct cli_bc_ctx *cli_bytecode_context_alloc(void)
44 44
     ctx->opsizes = NULL;
45 45
     ctx->fd = -1;
46 46
     ctx->off = 0;
47
-    ctx->lsigcnt = nomatch;
47
+    ctx->hooks.match_counts = nomatch;
48 48
     ctx->virname = NULL;
49 49
     return ctx;
50 50
 }
... ...
@@ -1411,7 +1411,7 @@ int cli_bytecode_runlsig(const struct cli_all_bc *bcs, const struct cli_bc *bc,
1411 1411
     struct cli_bc_ctx ctx;
1412 1412
     memset(&ctx, 0, sizeof(ctx));
1413 1413
     cli_bytecode_context_setfuncid(&ctx, bc, 0);
1414
-    ctx.lsigcnt = lsigcnt;
1414
+    ctx.hooks.match_counts = lsigcnt;
1415 1415
     cli_bytecode_context_setfile(&ctx, fd);
1416 1416
 
1417 1417
     cli_dbgmsg("Running bytecode for logical signature match\n");
... ...
@@ -20,11 +20,13 @@
20 20
  *  MA 02110-1301, USA.
21 21
  */
22 22
 
23
-struct lsig_match {
24
-    uint32_t evalcnt;
25
-    uint64_t evalids;
26
-    uint16_t filetype;
27
-};
23
+#ifdef __CLAMBC__
24
+#include "bytecode_execs.h"
25
+#endif
26
+
27
+#ifndef __CLAMBC__
28
+#include "execs.h"
29
+#endif
28 30
 
29 31
 struct foo {
30 32
     struct foo *nxt;
... ...
@@ -32,6 +34,16 @@ struct foo {
32 32
 
33 33
 #ifdef __CLAMBC__
34 34
 
35
+extern const uint32_t __clambc_match_counts[64];
36
+extern const struct cli_exe_info __clambc_exeinfo;
37
+
38
+enum BytecodeKind {
39
+    BC_GENERIC=0,/* generic bytecode, not tied to a specific hook */
40
+    BC_LOGICAL,/* triggered by a logical signature */
41
+    BC_PE_UNPACKER,/* a PE unpacker */
42
+};
43
+const uint8_t __clambc_kind;
44
+
35 45
 uint32_t test0(struct foo*, uint32_t);
36 46
 uint32_t test1(uint32_t, uint32_t);
37 47
 
... ...
@@ -23,6 +23,8 @@
23 23
 #include "type_desc.h"
24 24
 #include "bytecode_api.h"
25 25
 #include "bytecode_api_impl.h"
26
+#include "bytecode_priv.h"
27
+#include <stdlib.h>
26 28
 
27 29
 uint32_t cli_bcapi_test0(struct cli_bc_ctx *ctx, struct foo*, uint32_t);
28 30
 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
32 32
 uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
33 33
 uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
34 34
 
35
-static uint16_t cli_tmp0[]={32, 70, 32};
35
+const struct cli_apiglobal cli_globals[] = {
36
+/* Bytecode globals BEGIN */
37
+	{"__clambc_match_counts", GLOBAL_MATCH_COUNTS, 72,
38
+	 ((char*)&((struct cli_bc_ctx*)0)->hooks.match_counts - (char*)NULL)},
39
+	{"__clambc_exeinfo", GLOBAL_EXEINFO, 69,
40
+	 ((char*)&((struct cli_bc_ctx*)0)->hooks.exeinfo - (char*)NULL)},
41
+	{"__clambc_kind", GLOBAL_KIND, 8,
42
+	 ((char*)&((struct cli_bc_ctx*)0)->hooks.kind - (char*)NULL)}
43
+/* Bytecode globals END */
44
+};
45
+const unsigned cli_apicall_maxglobal = _LAST_GLOBAL-1;
46
+static uint16_t cli_tmp0[]={70, 32, 32, 16};
36 47
 static uint16_t cli_tmp1[]={71};
37
-static uint16_t cli_tmp2[]={70};
38
-static uint16_t cli_tmp3[]={32, 32, 32};
39
-static uint16_t cli_tmp4[]={32, 65, 32};
48
+static uint16_t cli_tmp2[]={32, 32, 32, 32, 32, 32, 32, 32, 32};
49
+static uint16_t cli_tmp3[]={32};
50
+static uint16_t cli_tmp4[]={32, 32, 32};
51
+static uint16_t cli_tmp5[]={32, 65, 32};
52
+static uint16_t cli_tmp6[]={32, 76, 32};
53
+static uint16_t cli_tmp7[]={77};
54
+static uint16_t cli_tmp8[]={76};
40 55
 
41 56
 const struct cli_bc_type cli_apicall_types[]={
42
-	{DFunctionType, cli_tmp0, 3, 0, 0},
57
+	{DStructType, cli_tmp0, 4, 0, 0},
43 58
 	{DPointerType, cli_tmp1, 1, 0, 0},
44
-	{DStructType, cli_tmp2, 1, 0, 0},
45
-	{DFunctionType, cli_tmp3, 3, 0, 0},
46
-	{DFunctionType, cli_tmp4, 3, 0, 0}
59
+	{DStructType, cli_tmp2, 9, 0, 0},
60
+	{DArrayType, cli_tmp3, 64, 0, 0},
61
+	{DFunctionType, cli_tmp4, 3, 0, 0},
62
+	{DFunctionType, cli_tmp5, 3, 0, 0},
63
+	{DFunctionType, cli_tmp6, 3, 0, 0},
64
+	{DPointerType, cli_tmp7, 1, 0, 0},
65
+	{DStructType, cli_tmp8, 1, 0, 0}
47 66
 };
48 67
 
49 68
 const unsigned cli_apicall_maxtypes=sizeof(cli_apicall_types)/sizeof(cli_apicall_types[0]);
50 69
 const struct cli_apicall cli_apicalls[]={
51 70
 /* Bytecode APIcalls BEGIN */
52
-	{"test0", 0, 0, 1},
53
-	{"test1", 3, 0, 0},
54
-	{"read", 4, 1, 1},
55
-	{"seek", 3, 1, 0},
56
-	{"setvirusname", 4, 2, 1},
57
-	{"debug_print_str", 4, 3, 1},
58
-	{"debug_print_uint", 3, 2, 0}
71
+	{"test0", 6, 0, 1},
72
+	{"test1", 4, 0, 0},
73
+	{"read", 5, 1, 1},
74
+	{"seek", 4, 1, 0},
75
+	{"setvirusname", 5, 2, 1},
76
+	{"debug_print_str", 5, 3, 1},
77
+	{"debug_print_uint", 4, 2, 0}
59 78
 /* Bytecode APIcalls END */
60 79
 };
61 80
 const cli_apicall_int2 cli_apicalls0[] = {
... ...
@@ -1,10 +1,9 @@
1 1
 /*
2 2
  *  ClamAV bytecode internal API
3
+ *  This is an automatically generated file!
3 4
  *
4 5
  *  Copyright (C) 2009 Sourcefire, Inc.
5 6
  *
6
- *  Authors: Török Edvin
7
- *
8 7
  *  This program is free software; you can redistribute it and/or modify
9 8
  *  it under the terms of the GNU General Public License version 2 as
10 9
  *  published by the Free Software Foundation.
... ...
@@ -19,14 +18,17 @@
19 19
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20 20
  *  MA 02110-1301, USA.
21 21
  */
22
-struct cli_bc_ctx;
23
-uint32_t cli_bcapi_test0(struct cli_bc_ctx *, struct foo*, uint32_t);
24
-uint32_t cli_bcapi_test1(struct cli_bc_ctx *, uint32_t, uint32_t);
25
-
26
-int32_t cli_bcapi_read(struct cli_bc_ctx*, uint8_t *data, int32_t size);
27
-int32_t cli_bcapi_seek(struct cli_bc_ctx*, int32_t pos, uint32_t whence);
28 22
 
29
-uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx*, const uint8_t *name, uint32_t len);
23
+#ifndef BYTECODE_API_IMPL_H
24
+#define BYTECODE_API_IMPL_H
30 25
 
31
-uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const uint8_t*, uint32_t);
26
+struct cli_bc_bctx;
27
+uint32_t cli_bcapi_test0(struct cli_bc_ctx *ctx, struct foo*, uint32_t);
28
+uint32_t cli_bcapi_test1(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
29
+int32_t cli_bcapi_read(struct cli_bc_ctx *ctx, uint8_t*, int32_t);
30
+int32_t cli_bcapi_seek(struct cli_bc_ctx *ctx, int32_t, uint32_t);
31
+uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
32
+uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
32 33
 uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
34
+
35
+#endif
33 36
new file mode 100644
... ...
@@ -0,0 +1,30 @@
0
+/*
1
+ *  ClamAV bytecode internal API
2
+ *  This is an automatically generated file!
3
+ *
4
+ *  Copyright (C) 2009 Sourcefire, Inc.
5
+ *
6
+ *  This program is free software; you can redistribute it and/or modify
7
+ *  it under the terms of the GNU General Public License version 2 as
8
+ *  published by the Free Software Foundation.
9
+ *
10
+ *  This program is distributed in the hope that it will be useful,
11
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
+ *  GNU General Public License for more details.
14
+ *
15
+ *  You should have received a copy of the GNU General Public License
16
+ *  along with this program; if not, write to the Free Software
17
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
+ *  MA 02110-1301, USA.
19
+ */
20
+
21
+#ifndef BYTECODE_HOOKS_H
22
+#define BYTECODE_HOOKS_H
23
+
24
+struct cli_bc_hooks {
25
+	 const uint32_t* match_counts;
26
+	 const struct cli_exe_info exeinfo;
27
+	 const uint8_t kind;
28
+};
29
+#endif
... ...
@@ -24,6 +24,8 @@
24 24
 #define BYTECODE_PRIV_H
25 25
 
26 26
 #include "type_desc.h"
27
+#include "execs.h"
28
+#include "bytecode_hooks.h"
27 29
 typedef uint32_t operand_t;
28 30
 typedef uint16_t bbid_t;
29 31
 typedef uint16_t funcid_t;
... ...
@@ -98,8 +100,8 @@ struct cli_bc_ctx {
98 98
     size_t file_size;
99 99
     off_t off;
100 100
     int fd;
101
-    const uint32_t *lsigcnt;
102 101
     const char *virname;
102
+    struct cli_bc_hooks hooks;
103 103
 };
104 104
 struct cli_all_bc;
105 105
 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);
... ...
@@ -451,7 +451,7 @@ public:
451 451
 	    if (FakeGVs.any()) {
452 452
 		Argument *Ctx = F->arg_begin();
453 453
 		struct cli_bc_ctx *N = 0;
454
-		unsigned offset = (char*)&((struct cli_bc_ctx*)0)->lsigcnt - (char*)NULL;
454
+		unsigned offset = (char*)&((struct cli_bc_ctx*)0)->hooks.match_counts - (char*)NULL;
455 455
 		Constant *Idx = ConstantInt::get(Type::getInt32Ty(Context), offset);
456 456
 		Value *GEP = Builder.CreateInBoundsGEP(Ctx, Idx);
457 457
 		Value *Cast = Builder.CreateBitCast(GEP, PointerType::getUnqual(MatchesTy));
... ...
@@ -97,8 +97,12 @@ static const unsigned char operand_counts[] = {
97 97
   2, 3, 0, 2, 1
98 98
 };
99 99
 
100
-enum {
101
-  GLOBAL_MATCH_COUNTS = 0x8000
100
+enum bc_global {
101
+  _FIRST_GLOBAL = 0x8000,
102
+  GLOBAL_MATCH_COUNTS = 0x8000,
103
+  GLOBAL_KIND,
104
+  GLOBAL_EXEINFO,
105
+  _LAST_GLOBAL
102 106
 };
103 107
 
104 108
 #define BC_START_TID 69
... ...
@@ -39,7 +39,7 @@ struct cli_exe_section {
39 39
 
40 40
 struct cli_exe_info {
41 41
     struct cli_exe_section *section EBOUNDS(nsections);
42
-    off_t offset;
42
+    uint32_t offset;
43 43
     uint32_t ep;
44 44
     uint16_t nsections;
45 45
 };
... ...
@@ -22,6 +22,7 @@
22 22
 #ifndef TYPE_DESC_H
23 23
 #define TYPE_DESC_H
24 24
 
25
+#include "clambc.h"
25 26
 struct cli_bc_ctx;
26 27
 
27 28
 enum derived_t {
... ...
@@ -54,6 +55,7 @@ struct cli_apiglobal {
54 54
     const char *name;
55 55
     enum bc_global globalid;
56 56
     uint16_t type;
57
+    unsigned offset;
57 58
 };
58 59
 
59 60
 extern const struct cli_bc_type cli_apicall_types[];
... ...
@@ -1,8 +1,8 @@
1
-ClamBCaa`|`````|`afafp`clamcoincidencejb
1
+ClamBCaa`|``````|`afafp`clamcoincidencejb
2 2
 L
3 3
 Tedacb`bb`bb`b
4 4
 Eabaaabbed|afdgefcgdgac``
5
-G`
5
+G``
6 6
 A`b`bLacb`baab`bFadaa
7 7
 Bb`b`abbabHonnkm``odHm``oonnkdaaaaeab`b`Hhgfedcbadb`baboaaaDm``odDmjnmdTcab`babE
8 8
 Aab`bLabahaab`bFacaa
... ...
@@ -1,8 +1,8 @@
1
-ClamBCaa`|`````|`ajafp`clamcoincidencejb
1
+ClamBCaa`|``````|`ajafp`clamcoincidencejb
2 2
 L
3
-Tedcabidebidacb`bb`bb`bacb`bbidb`bebed
4
-Eabababbgd|afdgefcgdgac``aabhd|afdgefcgdg`c``
5
-G`
3
+Tedcabidebidacb`bbidb`bacb`bb`bb`bebed
4
+Eababaabgd|afdgefcgdg`c``abbhd|afdgefcgdgac``
5
+G``
6 6
 A`b`bLahbedbfd`b`baab`baab`bFajac
7 7
 Bbfdaadb`@d@d``fb`aab`bacabbabHonnkm``odHm``oonnkdaaadeab`bacHhgfedcbadTaaadaaab
8 8
 Bb`baeabbaa`Honnkmjnmdaaafeab`baeHhgfedcbadb`bagoaafDm``odDmjnmdTcab`bag
... ...
@@ -1,250 +1,44 @@
1
-ClamBCaa`|`````|`aebbep`clamcoincidencejb
1
+ClamBCaa`|``````|`aebbep`clamcoincidencejb
2 2
 L
3 3
 Ted
4 4
 E``
5
-G`
5
+G``
6 6
 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
7
-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
8
-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
9
-Bah``bbbcaAaaAaaaaaaeaah`AbaTaaaaabaa
10
-Bb`bab`babga@dTcab`bab
11
-Bahac`bbbcaAaaBooaaaadeaahac@aTaaadadac
12
-Bb`bae`babga@dTcab`bae
13
-Bahaf`bbbcaBooaBooaaaageaahafBnoaTaaagafae
14
-Bb`bah`babga@dTcab`bah
15
-Bahai`bbbcaBooaAaaaaajeaahai@aTaaajahag
16
-Bb`bak`babga@dTcab`bak
17
-Bb`aal`bbbdaAabAabaaameab`aalAbbTaaamajai
18
-Bb`ban`babga@dTcab`ban
19
-Bb`aao`bbbdaAabDoooobaab`aeab`aao@bTaab`aalak
20
-Bb`bbaa`babga@dTcab`bbaa
21
-Bb`abba`bbbdaDoooobDoooobaabcaeab`abbaDnooobTaabcaanam
22
-Bb`bbda`babga@dTcab`bbda
23
-Bb`abea`bbbdaDoooobAabaabfaeab`abea@bTaabfab`aao
24
-Bb`bbga`babga@dTcab`bbga
25
-Bb`bbha`bbbeaAadAadaabiaeab`bbhaAbdTaabiabbabaa
26
-Bb`bbja`babga@dTcab`bbja
27
-Bb`bbka`bbbeaAadHoooooooodaablaeab`bbka@dTaablabdabca
28
-Bb`bbma`babga@dTcab`bbma
29
-Bb`bbna`bbbeaHoooooooodHoooooooodaaboaeab`bbnaHnooooooodTaaboabfabea
30
-Bb`bb`b`babga@dTcab`bb`b
31
-Bb`bbab`bbbeaHoooooooodAadaabbbeab`bbab@dTaabbbbhabga
32
-Bb`bbcb`babga@dTcab`bbcb
33
-Bb`dbdb`bbbfaAahAahaabebeab`dbdbAbhTaabebbjabia
34
-Bb`bbfb`babga@dTcab`bbfb
35
-Bb`dbgb`bbbfaAahPoooooooooooooooohaabhbeab`dbgb@hTaabhbblabka
36
-Bb`bbib`babga@dTcab`bbib
37
-Bb`dbjb`bbbfaPoooooooooooooooohPoooooooooooooooohaabkbeab`dbjbPnooooooooooooooohTaabkbbnabma
38
-Bb`bblb`babga@dTcab`bblb
39
-Bb`dbmb`bbbfaPoooooooooooooooohAahaabnbeab`dbmb@hTaabnbb`bboa
40
-Bb`bbob`babga@dTcab`bbob
41
-BTcab`bAadE
42
-A`b`bLbdbahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bFbmcbia
43
-Bah``bbbhaBooaAaaaaaaeaah`BnoaTaaaaabaa
44
-Bb`bab`babga@dTcab`bab
45
-Bahac`bbbhaAaaBooaaaadeaahacAbaTaaadadac
46
-Bb`bae`babga@dTcab`bae
47
-Bahaf`bbbhaAaaAaaaaageaahaf@aTaaagafae
48
-Bb`bah`babga@dTcab`bah
49
-Bb`aai`bbbiaDoooobAabaaajeab`aaiDnooobTaaajahag
50
-Bb`bak`babga@dTcab`bak
51
-Bb`aal`bbbiaAabDoooobaaameab`aalAbbTaaamajai
52
-Bb`ban`babga@dTcab`ban
53
-Bb`aao`bbbiaAabAabaab`aeab`aao@bTaab`aalak
54
-Bb`bbaa`babga@dTcab`bbaa
55
-Bb`bbba`bbbjaHoooooooodAadaabcaeab`bbbaHnooooooodTaabcaanam
56
-Bb`bbda`babga@dTcab`bbda
57
-Bb`bbea`bbbjaAadHoooooooodaabfaeab`bbeaAbdTaabfab`aao
58
-Bb`bbga`babga@dTcab`bbga
59
-Bb`bbha`bbbjaAadAadaabiaeab`bbha@dTaabiabbabaa
60
-Bb`bbja`babga@dTcab`bbja
61
-Bb`dbka`bbbkaPoooooooooooooooohAahaablaeab`dbkaPnooooooooooooooohTaablabdabca
62
-Bb`bbma`babga@dTcab`bbma
63
-Bb`dbna`bbbkaAahPoooooooooooooooohaaboaeab`dbnaAbhTaaboabfabea
64
-Bb`bb`b`babga@dTcab`bb`b
65
-Bb`dbab`bbbkaAahAahaabbbeab`dbab@hTaabbbbhabga
66
-Bb`bbcb`babga@dTcab`bbcb
67
-BTcab`bAddE
68
-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
69
-Bah``bbblaBooaAaaaaaaeaah`BooaTaaaaabaa
70
-Bb`bab`babga@dTcab`bab
71
-Bahac`bbblaBooaBooaaaadeaahacAaaTaaadadac
72
-Bb`bae`babga@dTcab`bae
73
-Bahaf`bbblaAaaAaaaaageaahafAaaTaaagafae
74
-Bb`bah`babga@dTcab`bah
75
-Bahai`bbblaBaaaBcbaaaajeaahaiBceaTaaajahag
76
-Bb`bak`babga@dTcab`bak
77
-Bb`aal`bbbmaDoooobAabaaameab`aalDoooobTaaamajai
78
-Bb`ban`babga@dTcab`ban
79
-Bb`aao`bbbmaDoooobDoooobaab`aeab`aaoAabTaab`aalak
80
-Bb`bbaa`babga@dTcab`bbaa
81
-Bb`abba`bbbmaAabAabaabcaeab`abbaAabTaabcaanam
82
-Bb`bbda`babga@dTcab`bbda
83
-Bb`abea`bbbmaBckbCgfcbaabfaeab`abeaDe`afbTaabfab`aao
84
-Bb`bbga`babga@dTcab`bbga
85
-Bb`bbha`bbbnaHoooooooodAadaabiaeab`bbhaHoooooooodTaabiabbabaa
86
-Bb`bbja`babga@dTcab`bbja
87
-Bb`bbka`bbbnaHoooooooodHoooooooodaablaeab`bbkaAadTaablabdabca
88
-Bb`bbma`babga@dTcab`bbma
89
-Bb`bbna`bbbnaAadAadaaboaeab`bbnaAadTaaboabfabea
90
-Bb`bb`b`babga@dTcab`bb`b
91
-Bb`bbab`bbbnaE`emkbdEhnmdmdaabbbeab`bbabH`h`jlgbgdTaabbbbhabga
92
-Bb`bbcb`babga@dTcab`bbcb
93
-Bb`dbdb`bbboaPoooooooooooooooohAahaabebeab`dbdbPoooooooooooooooohTaabebbjabia
94
-Bb`bbfb`babga@dTcab`bbfb
95
-Bb`dbgb`bbboaPoooooooooooooooohPoooooooooooooooohaabhbeab`dbgbAahTaabhbblabka
96
-Bb`bbib`babga@dTcab`bbib
97
-Bb`dbjb`bbboaAahAahaabkbeab`dbjbAahTaabkbbnabma
98
-Bb`bblb`babga@dTcab`bblb
99
-Bb`dbmb`bbboaImaghnanbdhIogjdckg`bhaabnbeab`dbmbPcfifjghokjjemflghTaabnbb`bboa
100
-Bb`bbob`babga@dTcab`bbob
101
-BTcab`bB`adE
102
-A`b`bLacb`aaab`bFafac
103
-Bb`a``bbbabDjnmobAgbaaaaeab`a`DfddbbTaaaaabaa
104
-Bb`bab`babga@dTcab`bab
105
-BTcab`bB`ddE
106
-A`b`bLbfaahaab`bahaab`bahaab`bahaab`bahahaab`bahaab`bb`aaab`bFbebao
107
-Bah``bbbdbAaaBooaaaaaeaah`BooaTaaaaabaa
108
-Bb`bab`babga@dTcab`bab
109
-Bahac`bbbdbBooaAaaaaadeaahacBooaTaaadadac
110
-Bb`bae`babga@dTcab`bae
111
-Bahaf`bbbdbBooaBooaaaageaahafAaaTaaagafae
112
-Bb`bah`babga@dTcab`bah
113
-Bahai`bbbdbAaaAaaaaajeaahaiAaaTaaajahag
114
-Bb`bak`babga@dTcab`bak
115
-Bahal`bbbcaBnoaAeaaham`bbbdbAfaalaaaneaahamAbaTaaanajai
116
-Bb`bao`babga@dTcab`bao
117
-Bahb`a`bbbdbalAbaaabaaeaahb`aAaaTaabaaalak
118
-Bb`bbba`babga@dTcab`bbba
119
-Bb`abca`bbbebDjnmobAgbaabdaeab`abcaDdkoobTaabdaanam
120
-Bb`bbea`babga@dTcab`bbea
121
-BTcab`bC``adE
122
-A`b`bLaoahaab`bahaab`bahaab`bb`aaab`bb`aaab`bFbjaak
123
-Bah``bbblbBooaAaaaaaaeaah`@aTaaaaabaa
124
-Bb`bab`babga@dTcab`bab
125
-Bahac`bbbhbBooaAaaaaadeaahac@aTaaadadac
126
-Bb`bae`babga@dTcab`bae
127
-Bahaf`bbblbAaaBooaaaageaahaf@aTaaagafae
128
-Bb`bah`babga@dTcab`bah
129
-Bb`aai`bbbmbDinmobAgbaaajeab`aaiDmooobTaaajahag
130
-Bb`bak`babga@dTcab`bak
131
-Bb`aal`bbbibDinmobAgbaaameab`aalAfbTaaamajai
132
-Bb`ban`babga@dTcab`ban
133
-BTcab`bC``ddE
134
-A`b`bLalahaab`bahaab`bahaab`bb`aaab`bFbeaai
135
-Bah``bbb`cAaaAadaaaaeaah`AbaTaaaaabaa
136
-Bb`bab`babga@dTcab`bab
137
-Bahac`bbb`cAaa@daaadeaahacAaaTaaadadac
138
-Bb`bae`babga@dTcab`bae
139
-Bahaf`bbb`cBnoaAbdaaageaahafBhoaTaaagafae
140
-Bb`bah`babga@dTcab`bah
141
-Bb`aai`bbbacDnojobAbdaaajeab`aaiDhoknbTaaajahag
142
-Bb`bak`babga@dTcab`bak
143
-BTcab`bD```adE
144
-A`b`bLagahaab`bahahaab`bFalae
145
-Bah``bbbdcBnoaAadaaaaeaah`BogaTaaaaabaa
146
-Bb`bab`babga@dTcab`bab
147
-Bahac`bbbcaBnoaAeaahad`bbbdcacAadaaaeeaahadAaaTaaaeadac
148
-Bb`baf`babga@dTcab`baf
149
-BTcab`bD```ddE
150
-A`b`bLafahaab`bahaab`bFakae
151
-Bah``bbbhcBnoaAaaaaaaeaah`BooaTaaaaabaa
152
-Bb`bab`babga@dTcab`bab
153
-Bahac`bbbhcBngaAaaaaadeaahacBocaTaaadadac
154
-Bb`bae`babga@dTcab`bae
155
-BTcab`bE````adE
156
-A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
157
-Bah``bbblcBjeaAoaaaaaeaah`AjaTaaaaabaa
158
-Bb`bab`babga@dTcab`bab
159
-Bb`aac`bbbmcDlkjebD```obaaadeab`aacD```ebTaaadadac
160
-Bb`bae`babga@dTcab`bae
161
-Bb`baf`bbbncHdcbalkjedG``````odaaageab`bafG``````jdTaaagafae
162
-Bb`bah`babga@dTcab`bah
163
-Bb`dai`bbbocPdcbahgfedcbalkjehG``````ohaaajeab`daiG``````fhTaaajahag
164
-Bb`bak`babga@dTcab`bak
165
-BTcab`bE````ddE
166
-A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
167
-Bah``bbb`dBjeaAoaaaaaeaah`BoeaTaaaaabaa
168
-Bb`bab`babga@dTcab`bab
169
-Bb`aac`bbbadDlkjebD```obaaadeab`aacDlkjobTaaadadac
170
-Bb`bae`babga@dTcab`bae
171
-Bb`baf`bbbbdHdcbalkjedG``````odaaageab`bafHdcbalkoedTaaagafae
172
-Bb`bah`babga@dTcab`bah
173
-Bb`dai`bbbcdPdcbahgfedcbalkjehG``````ohaaajeab`daiPdcbahgoedcbalkjehTaaajahag
174
-Bb`bak`babga@dTcab`bak
175
-BTcab`bF`````adE
176
-A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
177
-Bah``bbbddBjeaB`oaaaaaeaah`BjjaTaaaaabaa
178
-Bb`bab`babga@dTcab`bab
179
-Bb`aac`bbbedDjejebD``oobaaadeab`aacDjeejbTaaadadac
180
-Bb`bae`babga@dTcab`bae
181
-Bb`baf`bbbfdHjejejejedH``oooooodaaageab`bafHjeejejejdTaaagafae
182
-Bb`bah`babga@dTcab`bah
183
-Bb`dai`bbbgdPjejejejejejejejehP``oooooooooooooohaaajeab`daiPjeejejejejejejejhTaaajahag
184
-Bb`bak`babga@dTcab`bak
185
-BTcab`bF`````ddE
186
-A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
187
-Bb`a``babhdBloaaaaaeab`a`DlooobTaaaaabaa
188
-Bb`bab`babga@dTcab`bab
189
-Bb`bac`babidDjooobaaadeab`bacHjooooooodTaaadadac
190
-Bb`bae`babga@dTcab`bae
191
-Bb`daf`babjdHjooooooodaaageab`dafPjooooooooooooooohTaaagafae
192
-Bb`bah`babga@dTcab`bah
193
-BTcab`bG``````adE
194
-A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
195
-Bb`a``babkdBloaaaaaeab`a`BlobTaaaaabaa
196
-Bb`bab`babga@dTcab`bab
197
-Bb`bac`babldDlooobaaadeab`bacDlooodTaaadadac
198
-Bb`bae`babga@dTcab`bae
199
-Bb`daf`babmdHlooooooodaaageab`dafHlooooooohTaaagafae
200
-Bb`bah`babga@dTcab`bah
201
-BTcab`bG``````ddE
202
-A`b`bLaiahaab`bb`aaab`bb`baab`bFb`aag
203
-Bah``babndDmnnobaaaaeaah`BmnaTaaaaabaa
204
-Bb`bab`babga@dTcab`bab
205
-Bb`aac`babodHmnnomjnmdaaadeab`aacDmnnobTaaadadac
206
-Bb`bae`babga@dTcab`bae
207
-Bb`baf`bab`ePonnkmnnomjnmonnkhaaageab`bafHonnkmnnodTaaagafae
208
-Bb`bah`babga@dTcab`bah
209
-BTcab`bH```````adE
210
-A`b`bLaob`baab`bb`baab`bb`baab`bb`baab`bb`baab`bFbjaak
211
-Bb`b``bdbaeHoooooooodAbd@dAddaaaaeab`b`CijbdTaaaaabaa
212
-Bb`bab`babga@dTcab`bab
213
-Bb`bac`bdbaeHoooooooodHoooooooodAadHoooooooodaaadeab`bacCbbcdTaaadadac
214
-Bb`bae`babga@dTcab`bae
215
-Bb`baf`bdbaeHooooooood@dAcdHnooooooodaaageab`bafCcjbdTaaagafae
216
-Bb`bah`babga@dTcab`bah
217
-Bb`bai`bdbaeHooooooood@dAcd@daaajeab`baiCcnbdTaaajahag
218
-Bb`bak`babga@dTcab`bak
219
-Bb`bal`bdbaeHooooooood@d@dHoooooooodaaameab`balBkbdTaaamajai
220
-Bb`ban`babga@dTcab`ban
221
-BTcab`bH```````ddE
222
-A`b`bLafb`baab`bb`baab`bFakae
223
-Bb`b``bcbbeAddAedAfdaaaaeab`b`AedTaaaaabaa
224
-Bb`bab`babga@dTcab`bab
225
-Bb`bac`bcbbe@dAedAfdaaadeab`bacAfdTaaadadac
226
-Bb`bae`babga@dTcab`bae
227
-BTcab`bH```````hdE
228
-AbahLaaahahahFabaa
229
-Bahaba`aa`TcaahabE
7
+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
230 8
 Abb`aLaab`ab`ab`aFabaa
231 9
 Bb`aaba`aa`Tcab`aabE
232 10
 Abb`bLaab`bb`bb`bFabaa
233 11
 Bb`baba`aa`Tcab`babE
234 12
 Abb`dLaab`db`db`dFabaa
235 13
 Bb`daba`aa`Tcab`dabE
236
-Aab`bLaab`bb`bFabaa
237
-Bb`baae`Aad`Tcab`baaE
238 14
 AbahLaaahahahFabaa
239
-Bahabb``aaTcaahabE
15
+Bahaba`aa`TcaahabE
240 16
 Abb`aLaab`ab`ab`aFabaa
241
-Bb`aabb``aaTcab`aabE
17
+Bb`aabk`aa`Tcab`aabE
242 18
 Abb`bLaab`bb`bb`bFabaa
243
-Bb`babb``aaTcab`babE
19
+Bb`babk`aa`Tcab`babE
244 20
 Abb`dLaab`db`db`dFabaa
245
-Bb`dabb``aaTcab`dabE
21
+Bb`dabk`aa`Tcab`dabE
246 22
 AbahLaaahahahFabaa
247
-Bahabc`aa`TcaahabE
23
+Bahabk`aa`TcaahabE
24
+Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
25
+Bb`babo``b`baco`aab`badj`abacb`aaen`adTcab`aaeE
26
+Abb`bLaab`bb`bb`bFabaa
27
+Bb`babj``aaTcab`babE
28
+Abb`dLaab`db`db`dFabaa
29
+Bb`dabj``aaTcab`dabE
30
+AbahLadahahb`bb`bb`bahFaeaa
31
+Bb`babo``b`baco`aab`badj`abacahaen`adTcaahaeE
32
+Aab`bLaab`bb`bFabaa
33
+Bb`baae`Aad`Tcab`baaE
34
+Abb`aLacb`ab`bb`bb`bb`aFadaa
35
+Bb`bab`a`b`baci`abaab`aadn`acTcab`aadE
36
+Abb`bLaab`bb`bb`bFabaa
37
+Bb`babi``aaTcab`babE
38
+Abb`dLabb`db`bb`db`dFacaa
39
+Bb`dab`aaab`daci``abTcab`dacE
40
+AbahLacahb`bb`bb`bahFadaa
41
+Bb`bab`a`b`baci`abaaahadn`acTcaahadE
248 42
 Abb`aLaab`ab`ab`aFabaa
249 43
 Bb`aabc`aa`Tcab`aabE
250 44
 Abb`bLaab`bb`bb`bFabaa
... ...
@@ -252,39 +46,29 @@ Bb`babc`aa`Tcab`babE
252 252
 Abb`dLaab`db`db`dFabaa
253 253
 Bb`dabc`aa`Tcab`dabE
254 254
 AbahLaaahahahFabaa
255
-Bahabd``aaTcaahabE
255
+Bahabc`aa`TcaahabE
256 256
 Abb`aLaab`ab`ab`aFabaa
257
-Bb`aabd``aaTcab`aabE
257
+Bb`aabl`aa`Tcab`aabE
258 258
 Abb`bLaab`bb`bb`bFabaa
259
-Bb`babd``aaTcab`babE
259
+Bb`babl`aa`Tcab`babE
260 260
 Abb`dLaab`db`db`dFabaa
261
-Bb`dabd``aaTcab`dabE
262
-AbahLadahahb`bb`bb`bahFaeaa
263
-Bb`babo``b`baco`aab`bade`abacahaen`adTcaahaeE
261
+Bb`dabl`aa`Tcab`dabE
262
+AbahLaaahahahFabaa
263
+Bahabl`aa`TcaahabE
264 264
 Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
265 265
 Bb`babo``b`baco`aab`bade`abacb`aaen`adTcab`aaeE
266 266
 Abb`bLaab`bb`bb`bFabaa
267 267
 Bb`babe``aaTcab`babE
268 268
 Abb`dLaab`db`db`dFabaa
269 269
 Bb`dabe``aaTcab`dabE
270
-AbahLaaahahahFabaa
271
-Bahabf``aaTcaahabE
272
-Abb`aLaab`ab`ab`aFabaa
273
-Bb`aabf``aaTcab`aabE
274
-Abb`bLaab`bb`bb`bFabaa
275
-Bb`babf``aaTcab`babE
276
-Abb`dLaab`db`db`dFabaa
277
-Bb`dabf``aaTcab`dabE
278 270
 AbahLadahahb`bb`bb`bahFaeaa
279
-Bb`babo``b`baco`aab`badg`abacahaen`adTcaahaeE
280
-Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
281
-Bb`babo``b`baco`aab`badg`abacb`aaen`adTcab`aaeE
282
-Abb`bLaab`bb`bb`bFabaa
283
-Bb`babg``aaTcab`babE
284
-Abb`dLaab`db`db`dFabaa
285
-Bb`dabg``aaTcab`dabE
286
-AbahLacahb`bb`bb`bahFadaa
287
-Bb`babo``b`bach`abaaahadn`acTcaahadE
271
+Bb`babo``b`baco`aab`bade`abacahaen`adTcaahaeE
272
+Aab`bLaab`ab`bFabaa
273
+Bb`baao``Tcab`baaE
274
+Aab`dLaab`bb`dFabaa
275
+Bb`daao``Tcab`daaE
276
+Aab`aLaaahb`aFabaa
277
+Bb`aaao``Tcab`aaaE
288 278
 Abb`aLacb`ab`bb`bb`bb`aFadaa
289 279
 Bb`babo``b`bach`abaab`aadn`acTcab`aadE
290 280
 Abb`bLaab`bb`bb`bFabaa
... ...
@@ -292,64 +76,280 @@ Bb`babh``aaTcab`babE
292 292
 Abb`dLabb`db`bb`db`dFacaa
293 293
 Bb`dab`aaab`dach``abTcab`dacE
294 294
 AbahLacahb`bb`bb`bahFadaa
295
-Bb`bab`a`b`baci`abaaahadn`acTcaahadE
296
-Abb`aLacb`ab`bb`bb`bb`aFadaa
297
-Bb`bab`a`b`baci`abaab`aadn`acTcab`aadE
295
+Bb`babo``b`bach`abaaahadn`acTcaahadE
296
+Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
297
+Bb`babo``b`baco`aab`badg`abacb`aaen`adTcab`aaeE
298 298
 Abb`bLaab`bb`bb`bFabaa
299
-Bb`babi``aaTcab`babE
300
-Abb`dLabb`db`bb`db`dFacaa
301
-Bb`dab`aaab`daci``abTcab`dacE
299
+Bb`babg``aaTcab`babE
300
+Abb`dLaab`db`db`dFabaa
301
+Bb`dabg``aaTcab`dabE
302 302
 AbahLadahahb`bb`bb`bahFaeaa
303
-Bb`babo``b`baco`aab`badj`abacahaen`adTcaahaeE
304
-Abb`aLadb`ab`ab`bb`bb`bb`aFaeaa
305
-Bb`babo``b`baco`aab`badj`abacb`aaen`adTcab`aaeE
303
+Bb`babo``b`baco`aab`badg`abacahaen`adTcaahaeE
304
+Abb`aLaab`ab`ab`aFabaa
305
+Bb`aabb``aaTcab`aabE
306 306
 Abb`bLaab`bb`bb`bFabaa
307
-Bb`babj``aaTcab`babE
307
+Bb`babb``aaTcab`babE
308 308
 Abb`dLaab`db`db`dFabaa
309
-Bb`dabj``aaTcab`dabE
309
+Bb`dabb``aaTcab`dabE
310 310
 AbahLaaahahahFabaa
311
-Bahabk`aa`TcaahabE
311
+Bahabb``aaTcaahabE
312
+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
313
+Bah``bbaeAaaAaaaaaaeaah`AbaTaaaaabaa
314
+Bb`bab`baan@dTcab`bab
315
+Bahac`bbaeAaaBooaaaadeaahac@aTaaadadac
316
+Bb`bae`baan@dTcab`bae
317
+Bahaf`bbaeBooaBooaaaageaahafBnoaTaaagafae
318
+Bb`bah`baan@dTcab`bah
319
+Bahai`bbaeBooaAaaaaajeaahai@aTaaajahag
320
+Bb`bak`baan@dTcab`bak
321
+Bb`aal`bbabAabAabaaameab`aalAbbTaaamajai
322
+Bb`ban`baan@dTcab`ban
323
+Bb`aao`bbabAabDoooobaab`aeab`aao@bTaab`aalak
324
+Bb`bbaa`baan@dTcab`bbaa
325
+Bb`abba`bbabDoooobDoooobaabcaeab`abbaDnooobTaabcaanam
326
+Bb`bbda`baan@dTcab`bbda
327
+Bb`abea`bbabDoooobAabaabfaeab`abea@bTaabfab`aao
328
+Bb`bbga`baan@dTcab`bbga
329
+Bb`bbha`bbacAadAadaabiaeab`bbhaAbdTaabiabbabaa
330
+Bb`bbja`baan@dTcab`bbja
331
+Bb`bbka`bbacAadHoooooooodaablaeab`bbka@dTaablabdabca
332
+Bb`bbma`baan@dTcab`bbma
333
+Bb`bbna`bbacHoooooooodHoooooooodaaboaeab`bbnaHnooooooodTaaboabfabea
334
+Bb`bb`b`baan@dTcab`bb`b
335
+Bb`bbab`bbacHoooooooodAadaabbbeab`bbab@dTaabbbbhabga
336
+Bb`bbcb`baan@dTcab`bbcb
337
+Bb`dbdb`bbadAahAahaabebeab`dbdbAbhTaabebbjabia
338
+Bb`bbfb`baan@dTcab`bbfb
339
+Bb`dbgb`bbadAahPoooooooooooooooohaabhbeab`dbgb@hTaabhbblabka
340
+Bb`bbib`baan@dTcab`bbib
341
+Bb`dbjb`bbadPoooooooooooooooohPoooooooooooooooohaabkbeab`dbjbPnooooooooooooooohTaabkbbnabma
342
+Bb`bblb`baan@dTcab`bblb
343
+Bb`dbmb`bbadPoooooooooooooooohAahaabnbeab`dbmb@hTaabnbb`bboa
344
+Bb`bbob`baan@dTcab`bbob
345
+BTcab`bAadE
346
+A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
347
+Bah``bbaiBjeaAoaaaaaeaah`AjaTaaaaabaa
348
+Bb`bab`baan@dTcab`bab
349
+Bb`aac`bbafDlkjebD```obaaadeab`aacD```ebTaaadadac
350
+Bb`bae`baan@dTcab`bae
351
+Bb`baf`bbagHdcbalkjedG``````odaaageab`bafG``````jdTaaagafae
352
+Bb`bah`baan@dTcab`bah
353
+Bb`dai`bbahPdcbahgfedcbalkjehG``````ohaaajeab`daiG``````fhTaaajahag
354
+Bb`bak`baan@dTcab`bak
355
+BTcab`bE````ddE
356
+A`b`bLafahaab`bahaab`bFakae
357
+Bah``bbamBnoaAaaaaaaeaah`BooaTaaaaabaa
358
+Bb`bab`baan@dTcab`bab
359
+Bahac`bbamBngaAaaaaadeaahacBocaTaaadadac
360
+Bb`bae`baan@dTcab`bae
361
+BTcab`bE````adE
362
+A`b`bLaob`baab`bb`baab`bb`baab`bb`baab`bb`baab`bFbjaak
363
+Bb`b``bdbbcHoooooooodAbd@dAddaaaaeab`b`CijbdTaaaaabaa
364
+Bb`bab`baan@dTcab`bab
365
+Bb`bac`bdbbcHoooooooodHoooooooodAadHoooooooodaaadeab`bacCbbcdTaaadadac
366
+Bb`bae`baan@dTcab`bae
367
+Bb`baf`bdbbcHooooooood@dAcdHnooooooodaaageab`bafCcjbdTaaagafae
368
+Bb`bah`baan@dTcab`bah
369
+Bb`bai`bdbbcHooooooood@dAcd@daaajeab`baiCcnbdTaaajahag
370
+Bb`bak`baan@dTcab`bak
371
+Bb`bal`bdbbcHooooooood@d@dHoooooooodaaameab`balBkbdTaaamajai
372
+Bb`ban`baan@dTcab`ban
373
+BTcab`bH```````ddE
374
+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
375
+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
376
+A`b`bLagahaab`bahahaab`bFalae
377
+Bah``bbbbaBnoaAadaaaaeaah`BogaTaaaaabaa
378
+Bb`bab`baan@dTcab`bab
379
+Bahac`bbaeBnoaAeaahad`bbbbaacAadaaaeeaahadAaaTaaaeadac
380
+Bb`baf`baan@dTcab`baf
381
+BTcab`bD```ddE
382
+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
383
+Bah``bbbfaBooaAaaaaaaeaah`BooaTaaaaabaa
384
+Bb`bab`baan@dTcab`bab
385
+Bahac`bbbfaBooaBooaaaadeaahacAaaTaaadadac
386
+Bb`bae`baan@dTcab`bae
387
+Bahaf`bbbfaAaaAaaaaageaahafAaaTaaagafae
388
+Bb`bah`baan@dTcab`bah
389
+Bahai`bbbfaBaaaBcbaaaajeaahaiBceaTaaajahag
390
+Bb`bak`baan@dTcab`bak
391
+Bb`aal`bbbcaDoooobAabaaameab`aalDoooobTaaamajai
392
+Bb`ban`baan@dTcab`ban
393
+Bb`aao`bbbcaDoooobDoooobaab`aeab`aaoAabTaab`aalak
394
+Bb`bbaa`baan@dTcab`bbaa
395
+Bb`abba`bbbcaAabAabaabcaeab`abbaAabTaabcaanam
396
+Bb`bbda`baan@dTcab`bbda
397
+Bb`abea`bbbcaBckbCgfcbaabfaeab`abeaDe`afbTaabfab`aao
398
+Bb`bbga`baan@dTcab`bbga
399
+Bb`bbha`bbbdaHoooooooodAadaabiaeab`bbhaHoooooooodTaabiabbabaa
400
+Bb`bbja`baan@dTcab`bbja
401
+Bb`bbka`bbbdaHoooooooodHoooooooodaablaeab`bbkaAadTaablabdabca
402
+Bb`bbma`baan@dTcab`bbma
403
+Bb`bbna`bbbdaAadAadaaboaeab`bbnaAadTaaboabfabea
404
+Bb`bb`b`baan@dTcab`bb`b
405
+Bb`bbab`bbbdaE`emkbdEhnmdmdaabbbeab`bbabH`h`jlgbgdTaabbbbhabga
406
+Bb`bbcb`baan@dTcab`bbcb
407
+Bb`dbdb`bbbeaPoooooooooooooooohAahaabebeab`dbdbPoooooooooooooooohTaabebbjabia
408
+Bb`bbfb`baan@dTcab`bbfb
409
+Bb`dbgb`bbbeaPoooooooooooooooohPoooooooooooooooohaabhbeab`dbgbAahTaabhbblabka
410
+Bb`bbib`baan@dTcab`bbib
411
+Bb`dbjb`bbbeaAahAahaabkbeab`dbjbAahTaabkbbnabma
412
+Bb`bblb`baan@dTcab`bblb
413
+Bb`dbmb`bbbeaImaghnanbdhIogjdckg`bhaabnbeab`dbmbPcfifjghokjjemflghTaabnbb`bboa
414
+Bb`bbob`baan@dTcab`bbob
415
+BTcab`bB`adE
416
+A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
417
+Bah``bbbjaBjeaAoaaaaaeaah`BoeaTaaaaabaa
418
+Bb`bab`baan@dTcab`bab
419
+Bb`aac`bbbgaDlkjebD```obaaadeab`aacDlkjobTaaadadac
420
+Bb`bae`baan@dTcab`bae
421
+Bb`baf`bbbhaHdcbalkjedG``````odaaageab`bafHdcbalkoedTaaagafae
422
+Bb`bah`baan@dTcab`bah
423
+Bb`dai`bbbiaPdcbahgfedcbalkjehG``````ohaaajeab`daiPdcbahgoedcbalkjehTaaajahag
424
+Bb`bak`baan@dTcab`bak
425
+BTcab`bF`````adE
426
+A`b`bLaoahaab`bahaab`bahaab`bb`aaab`bb`aaab`bFbjaak
427
+Bah``bbbibBooaAaaaaaaeaah`@aTaaaaabaa
428
+Bb`bab`baan@dTcab`bab
429
+Bahac`bbbkdBooaAaaaaadeaahac@aTaaadadac
430
+Bb`bae`baan@dTcab`bae
431
+Bahaf`bbbibAaaBooaaaageaahaf@aTaaagafae
432
+Bb`bah`baan@dTcab`bah
433
+Bb`aai`bbbfbDinmobAgbaaajeab`aaiDmooobTaaajahag
434
+Bb`bak`baan@dTcab`bak
435
+Bb`aal`bbbhdDinmobAgbaaameab`aalAfbTaaamajai
436
+Bb`ban`baan@dTcab`ban
437
+BTcab`bC``ddE
438
+A`b`bLbfaahaab`bahaab`bahaab`bahaab`bahahaab`bahaab`bb`aaab`bFbebao
439
+Bah``bbbnaAaaBooaaaaaeaah`BooaTaaaaabaa
440
+Bb`bab`baan@dTcab`bab
441
+Bahac`bbbnaBooaAaaaaadeaahacBooaTaaadadac
442
+Bb`bae`baan@dTcab`bae
443
+Bahaf`bbbnaBooaBooaaaageaahafAaaTaaagafae
444
+Bb`bah`baan@dTcab`bah
445
+Bahai`bbbnaAaaAaaaaajeaahaiAaaTaaajahag
446
+Bb`bak`baan@dTcab`bak
447
+Bahal`bbaeBnoaAeaaham`bbbnaAfaalaaaneaahamAbaTaaanajai
448
+Bb`bao`baan@dTcab`bao
449
+Bahb`a`bbbnaalAbaaabaaeaahb`aAaaTaabaaalak
450
+Bb`bbba`baan@dTcab`bbba
451
+Bb`abca`bbbkaDjnmobAgbaabdaeab`abcaDdkoobTaabdaanam
452
+Bb`bbea`baan@dTcab`bbea
453
+BTcab`bC``adE
454
+A`b`bLafb`baab`bb`baab`bFakae
455
+Bb`b``bcbicAddAedAfdaaaaeab`b`AedTaaaaabaa
456
+Bb`bab`baan@dTcab`bab
457
+Bb`bac`bcbic@dAedAfdaaadeab`bacAfdTaaadadac
458
+Bb`bae`baan@dTcab`bae
459
+BTcab`bH```````hdE
460
+Acb`bLabb`bb`bb`baab`bFacaa
461
+Baaacfab`b`@db`badoaacaaabTcab`badE
462
+A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
463
+Bb`a``bababBloaaaaaeab`a`DlooobTaaaaabaa
464
+Bb`bab`baan@dTcab`bab
465
+Bb`bac`baboaDjooobaaadeab`bacHjooooooodTaaadadac
466
+Bb`bae`baan@dTcab`bae
467
+Bb`daf`bab`bHjooooooodaaageab`dafPjooooooooooooooohTaaagafae
468
+Bb`bah`baan@dTcab`bah
469
+BTcab`bG``````adE
470
+A`b`bLalahaab`bahaab`bahaab`bb`aaab`bFbeaai
471
+Bah``bbbebAaaAadaaaaeaah`AbaTaaaaabaa
472
+Bb`bab`baan@dTcab`bab
473
+Bahac`bbbebAaa@daaadeaahacAaaTaaadadac
474
+Bb`bae`baan@dTcab`bae
475
+Bahaf`bbbebBnoaAbdaaageaahafBhoaTaaagafae
476
+Bb`bah`baan@dTcab`bah
477
+Bb`aai`bbbbbDnojobAbdaaajeab`aaiDhoknbTaaajahag
478
+Bb`bak`baan@dTcab`bak
479
+BTcab`bD```adE
480
+A`b`bLbdbahaab`bahaab`bahaab`bb`aaab`bb`aaab`bb`aaab`bb`baab`bb`baab`bb`baab`bb`daab`bb`daab`bb`daab`bFbmcbia
481
+Bah``bbbmbBooaAaaaaaaeaah`BnoaTaaaaabaa
482
+Bb`bab`baan@dTcab`bab
483
+Bahac`bbbmbAaaBooaaaadeaahacAbaTaaadadac
484
+Bb`bae`baan@dTcab`bae
485
+Bahaf`bbbmbAaaAaaaaageaahaf@aTaaagafae
486
+Bb`bah`baan@dTcab`bah
487
+Bb`aai`bbbjbDoooobAabaaajeab`aaiDnooobTaaajahag
488
+Bb`bak`baan@dTcab`bak
489
+Bb`aal`bbbjbAabDoooobaaameab`aalAbbTaaamajai
490
+Bb`ban`baan@dTcab`ban
491
+Bb`aao`bbbjbAabAabaab`aeab`aao@bTaab`aalak
492
+Bb`bbaa`baan@dTcab`bbaa
493
+Bb`bbba`bbbkbHoooooooodAadaabcaeab`bbbaHnooooooodTaabcaanam
494
+Bb`bbda`baan@dTcab`bbda
495
+Bb`bbea`bbbkbAadHoooooooodaabfaeab`bbeaAbdTaabfab`aao
496
+Bb`bbga`baan@dTcab`bbga
497
+Bb`bbha`bbbkbAadAadaabiaeab`bbha@dTaabiabbabaa
498
+Bb`bbja`baan@dTcab`bbja
499
+Bb`dbka`bbblbPoooooooooooooooohAahaablaeab`dbkaPnooooooooooooooohTaablabdabca
500
+Bb`bbma`baan@dTcab`bbma
501
+Bb`dbna`bbblbAahPoooooooooooooooohaaboaeab`dbnaAbhTaaboabfabea
502
+Bb`bb`b`baan@dTcab`bb`b
503
+Bb`dbab`bbblbAahAahaabbbeab`dbab@hTaabbbbhabga
504
+Bb`bbcb`baan@dTcab`bbcb
505
+BTcab`bAddE
506
+A`b`bLaiahaab`bb`aaab`bb`baab`bFb`aag
507
+Bah``babadDmnnobaaaaeaah`BmnaTaaaaabaa
508
+Bb`bab`baan@dTcab`bab
509
+Bb`aac`babbdHmnnomjnmdaaadeab`aacDmnnobTaaadadac
510
+Bb`bae`baan@dTcab`bae
511
+Bb`baf`babcdPonnkmnnomjnmonnkhaaageab`bafHonnkmnnodTaaagafae
512
+Bb`bah`baan@dTcab`bah
513
+BTcab`bH```````adE
514
+A`b`bLacb`aaab`bFafac
515
+Bb`a``bbbddDjnmobAgbaaaaeab`a`DfddbbTaaaaabaa
516
+Bb`bab`baan@dTcab`bab
517
+BTcab`bB`ddE
518
+A`b`bLalahaab`bb`aaab`bb`baab`bb`daab`bFbeaai
519
+Bah``bbbodBjeaB`oaaaaaeaah`BjjaTaaaaabaa
520
+Bb`bab`baan@dTcab`bab
521
+Bb`aac`bbbldDjejebD``oobaaadeab`aacDjeejbTaaadadac
522
+Bb`bae`baan@dTcab`bae
523
+Bb`baf`bbbmdHjejejejedH``oooooodaaageab`bafHjeejejejdTaaagafae
524
+Bb`bah`baan@dTcab`bah
525
+Bb`dai`bbbndPjejejejejejejejehP``oooooooooooooohaaajeab`daiPjeejejejejejejejhTaaajahag
526
+Bb`bak`baan@dTcab`bak
527
+BTcab`bF`````ddE
528
+A`b`bLaib`aaab`bb`baab`bb`daab`bFb`aag
529
+Bb`a``babbeBloaaaaaeab`a`BlobTaaaaabaa
530
+Bb`bab`baan@dTcab`bab
531
+Bb`bac`bab`eDlooobaaadeab`bacDlooodTaaadadac
532
+Bb`bae`baan@dTcab`bae
533
+Bb`daf`babaeHlooooooodaaageab`dafHlooooooohTaaagafae
534
+Bb`bah`baan@dTcab`bah
535
+BTcab`bG``````ddE
536
+AaahLaab`aahFabaa
537
+Bahaan``TcaahaaE
538
+Aab`aLaab`bb`aFabaa
539
+Bb`aaan``Tcab`aaaE
540
+Aab`bLaab`db`bFabaa
541
+Bb`baan``Tcab`baaE
312 542
 Abb`aLaab`ab`ab`aFabaa
313
-Bb`aabk`aa`Tcab`aabE
543
+Bb`aabd``aaTcab`aabE
314 544
 Abb`bLaab`bb`bb`bFabaa
315
-Bb`babk`aa`Tcab`babE
545
+Bb`babd``aaTcab`babE
316 546
 Abb`dLaab`db`db`dFabaa
317
-Bb`dabk`aa`Tcab`dabE
547
+Bb`dabd``aaTcab`dabE
318 548
 AbahLaaahahahFabaa
319
-Bahabl`aa`TcaahabE
549
+Bahabd``aaTcaahabE
320 550
 Abb`aLaab`ab`ab`aFabaa
321
-Bb`aabl`aa`Tcab`aabE
551
+Bb`aabf``aaTcab`aabE
322 552
 Abb`bLaab`bb`bb`bFabaa
323
-Bb`babl`aa`Tcab`babE
553
+Bb`babf``aaTcab`babE
324 554
 Abb`dLaab`db`db`dFabaa
325
-Bb`dabl`aa`Tcab`dabE
555
+Bb`dabf``aaTcab`dabE
326 556
 AbahLaaahahahFabaa
327
-Bahabm`aa`TcaahabE
557
+Bahabf``aaTcaahabE
328 558
 Abb`aLaab`ab`ab`aFabaa
329 559
 Bb`aabm`aa`Tcab`aabE
330 560
 Abb`bLaab`bb`bb`bFabaa
331 561
 Bb`babm`aa`Tcab`babE
332 562
 Abb`dLaab`db`db`dFabaa
333 563
 Bb`dabm`aa`Tcab`dabE
334
-Aab`aLaaahb`aFabaa
335
-Bb`aaao``Tcab`aaaE
336
-Aab`bLaab`ab`bFabaa
337
-Bb`baao``Tcab`baaE
338
-Aab`dLaab`bb`dFabaa
339
-Bb`daao``Tcab`daaE
340
-Aab`aLaaahb`aFabaa
341
-Bb`aaa`a`Tcab`aaaE
564
+AbahLaaahahahFabaa
565
+Bahabm`aa`TcaahabE
342 566
 Aab`bLaab`ab`bFabaa
343 567
 Bb`baa`a`Tcab`baaE
344 568
 Aab`dLaab`bb`dFabaa
345 569
 Bb`daa`a`Tcab`daaE
346
-AaahLaab`aahFabaa
347
-Bahaan``TcaahaaE
348
-Aab`aLaab`bb`aFabaa
349
-Bb`aaan``Tcab`aaaE
350
-Aab`bLaab`db`bFabaa
351
-Bb`baan``Tcab`baaE
352
-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
353
-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
354
-Acb`bLabb`bb`bb`baab`bFacaa
355
-Baaacfab`b`@db`badoaacaaabTcab`badE
570
+Aab`aLaaahb`aFabaa
571
+Bb`aaa`a`Tcab`aaaE
... ...
@@ -1,8 +1,8 @@
1
-ClamBCaa`|`````|`aeabp`clamcoincidencejb
1
+ClamBCaa`|``````|`aeabp`clamcoincidencejb
2 2
 L
3 3
 Ted
4 4
 E``
5
-G`
5
+G``
6 6
 A`b`bLaab`bFabaa
7 7
 Bb`b``baab@dTcab`b`E
8 8
 Aab`bLaab`bb`bFabaa
... ...
@@ -1,8 +1,8 @@
1
-ClamBCaa`|`````|`bbaabp`clamcoincidencejb
1
+ClamBCaa`|``````|`bbaabp`clamcoincidencejb
2 2
 L;Target:0;((0|1|2)=42,2);aabb;ffffffff;aaccee;f00d
3
-Tedebaeeb`eebodebndebmdebadebcdacb`bbadb`bdadb`bdakahdagahdaiahdaeah
3
+Tedebaeeb`eebodebndebmdebadebcdacb`bbadb`bdb`db`bdakahdagahdaiahdaeah
4 4
 Eaeaaaebld|amcgefdgfgifbgegcgnfafmfef``
5
-GanbaeBafBafBbfBbf@`b`eBffBffBffBffBffBffBffBff@`baeBffB`cB`cBdf@`bodBafBafBcfBcfBefBef@`bndBdeBbgBofBjfBafBnfBnbBfdBodBod@`bad@@`bad@Aa`bad@Ab`bad@Ac`bad@Ad`bcdAcD```h`bcdAbD```h`bcd@D```h`bcdAaD```h`
5
+Gd```hanbaeBafBafBbfBbf@`b`eBffBffBffBffBffBffBffBff@`baeBffB`cB`cBdf@`bodBafBafBcfBcfBefBef@`bndBdeBbgBofBjfBafBnfBnbBfdBodBod@`bad@@`bad@Aa`bad@Ab`bad@Ac`bad@Ad`bcdAcD```h`bcdAbD```h`bcd@D```h`bcdAaD```h`
6 6
 A`b`bLacb`baa`Fafac
7 7
 Bb`b`gbAj`aaaaeab`b`AbdTaaaaaaab
8 8
 B```b`abTcab`b@d
... ...
@@ -1,7 +1,7 @@
1
-ClamBCaa`|`````|`aeaap`clamcoincidencejb
1
+ClamBCaa`|``````|`aeaap`clamcoincidencejb
2 2
 L
3 3
 Ted
4 4
 E``
5
-G`
5
+G``
6 6
 A`b`bL`Faaaa
7 7
 BTcab`bHm``odcbadE