DPDK patches and discussions
 help / color / mirror / Atom feed
From: madhuker.mythri@oracle.com
To: stephen@networkplumber.org
Cc: dev@dpdk.org, ferruh.yigit@amd.com,
	Madhuker Mythri <madhuker.mythri@oracle.com>
Subject: [PATCH] net/tap: Modified TAP BPF program as per the Kernel-version upgrade requirements.
Date: Fri, 12 Jan 2024 19:18:21 +0530	[thread overview]
Message-ID: <20240112134821.2067-1-madhuker.mythri@oracle.com> (raw)

From: Madhuker Mythri <madhuker.mythri@oracle.com>

When multiple queues configured, internally RSS will be enabled and thus TAP BPF RSS byte-code will be loaded on to the Kernel using BPF system calls.

Here, the problem is loading the existing BPF byte-code to the Kernel-5.15 and above versions throws errors, i.e: Kernel BPF verifier not accepted this existing BPF byte-code and system calls return error code "-7" as follows:
------------------------
rss_add_actions(): Failed to load BPF section l3_l4 (7): Argument list too long
------------------------

RCA:  These errors started coming after from the Kernel-5.15 version, in which lots of new BPF verification restrictions were added for safe execution of byte-code on to the Kernel, due to which existing BPF program verification does not pass.
Here are the major BPF verifier restrictions observed:
1) Need to use new BPF maps structure.
2) Kernel SKB data pointer access not allowed, instead use the BPF helper functions.
3) Undefined loops were not allowed(which are bounded by a variable value).
4) unreachable instructions(like: undefined array access).

After addressing all these Kernel BPF verifier restrictions able to load the BPF byte-code onto the Kernel successfully.

Verified with the latest DPDK-23.11 code, using the python extracted
BPF instructions able to load sucessfully on to the Kernel tap device.

Bugzilla Id: 1329

Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
---
 drivers/net/tap/bpf/Makefile          |    6 +-
 drivers/net/tap/bpf/bpf_api.h         |  276 ---
 drivers/net/tap/bpf/bpf_elf.h         |   53 -
 drivers/net/tap/bpf/tap_bpf_program.c |  233 +--
 drivers/net/tap/tap_bpf_api.c         |    5 +-
 drivers/net/tap/tap_bpf_insns.h       | 2300 ++++++++++++++-----------
 6 files changed, 1416 insertions(+), 1457 deletions(-)
 delete mode 100644 drivers/net/tap/bpf/bpf_api.h
 delete mode 100644 drivers/net/tap/bpf/bpf_elf.h

diff --git a/drivers/net/tap/bpf/Makefile b/drivers/net/tap/bpf/Makefile
index 9efeeb1bc7..218aeaac45 100644
--- a/drivers/net/tap/bpf/Makefile
+++ b/drivers/net/tap/bpf/Makefile
@@ -6,14 +6,16 @@ CLANG=clang
 CLANG_OPTS=-O2
 TARGET=../tap_bpf_insns.h
 
+CLANG_BPF_SYS_INCLUDES ?= $(shell $(CLANG) -v -E - </dev/null 2>&1 \
+	| sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }')
+
 all: $(TARGET)
 
 clean:
 	rm tap_bpf_program.o $(TARGET)
 
 tap_bpf_program.o: tap_bpf_program.c
-	$(CLANG) $(CLANG_OPTS) -emit-llvm -c $< -o - | \
-	llc -march=bpf -filetype=obj -o $@
+	$(CLANG) $(CLANG_OPTS) $(CLANG_BPF_SYS_INCLUDES) -target bpf -c $< -g -o $@
 
 $(TARGET): tap_bpf_program.o
 	python3 bpf_extract.py -stap_bpf_program.c -o $@ $<
diff --git a/drivers/net/tap/bpf/bpf_api.h b/drivers/net/tap/bpf/bpf_api.h
deleted file mode 100644
index 2638a8a4ac..0000000000
--- a/drivers/net/tap/bpf/bpf_api.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
-
-#ifndef __BPF_API__
-#define __BPF_API__
-
-/* Note:
- *
- * This file can be included into eBPF kernel programs. It contains
- * a couple of useful helper functions, map/section ABI (bpf_elf.h),
- * misc macros and some eBPF specific LLVM built-ins.
- */
-
-#include <stdint.h>
-
-#include <linux/pkt_cls.h>
-#include <linux/bpf.h>
-#include <linux/filter.h>
-
-#include <asm/byteorder.h>
-
-#include "bpf_elf.h"
-
-/** libbpf pin type. */
-enum libbpf_pin_type {
-	LIBBPF_PIN_NONE,
-	/* PIN_BY_NAME: pin maps by name (in /sys/fs/bpf by default) */
-	LIBBPF_PIN_BY_NAME,
-};
-
-/** Type helper macros. */
-
-#define __uint(name, val) int (*name)[val]
-#define __type(name, val) typeof(val) *name
-#define __array(name, val) typeof(val) *name[]
-
-/** Misc macros. */
-
-#ifndef __stringify
-# define __stringify(X)		#X
-#endif
-
-#ifndef __maybe_unused
-# define __maybe_unused		__attribute__((__unused__))
-#endif
-
-#ifndef offsetof
-# define offsetof(TYPE, MEMBER)	__builtin_offsetof(TYPE, MEMBER)
-#endif
-
-#ifndef likely
-# define likely(X)		__builtin_expect(!!(X), 1)
-#endif
-
-#ifndef unlikely
-# define unlikely(X)		__builtin_expect(!!(X), 0)
-#endif
-
-#ifndef htons
-# define htons(X)		__constant_htons((X))
-#endif
-
-#ifndef ntohs
-# define ntohs(X)		__constant_ntohs((X))
-#endif
-
-#ifndef htonl
-# define htonl(X)		__constant_htonl((X))
-#endif
-
-#ifndef ntohl
-# define ntohl(X)		__constant_ntohl((X))
-#endif
-
-#ifndef __inline__
-# define __inline__		__attribute__((always_inline))
-#endif
-
-/** Section helper macros. */
-
-#ifndef __section
-# define __section(NAME)						\
-	__attribute__((section(NAME), used))
-#endif
-
-#ifndef __section_tail
-# define __section_tail(ID, KEY)					\
-	__section(__stringify(ID) "/" __stringify(KEY))
-#endif
-
-#ifndef __section_xdp_entry
-# define __section_xdp_entry						\
-	__section(ELF_SECTION_PROG)
-#endif
-
-#ifndef __section_cls_entry
-# define __section_cls_entry						\
-	__section(ELF_SECTION_CLASSIFIER)
-#endif
-
-#ifndef __section_act_entry
-# define __section_act_entry						\
-	__section(ELF_SECTION_ACTION)
-#endif
-
-#ifndef __section_lwt_entry
-# define __section_lwt_entry						\
-	__section(ELF_SECTION_PROG)
-#endif
-
-#ifndef __section_license
-# define __section_license						\
-	__section(ELF_SECTION_LICENSE)
-#endif
-
-#ifndef __section_maps
-# define __section_maps							\
-	__section(ELF_SECTION_MAPS)
-#endif
-
-/** Declaration helper macros. */
-
-#ifndef BPF_LICENSE
-# define BPF_LICENSE(NAME)						\
-	char ____license[] __section_license = NAME
-#endif
-
-/** Classifier helper */
-
-#ifndef BPF_H_DEFAULT
-# define BPF_H_DEFAULT	-1
-#endif
-
-/** BPF helper functions for tc. Individual flags are in linux/bpf.h */
-
-#ifndef __BPF_FUNC
-# define __BPF_FUNC(NAME, ...)						\
-	(* NAME)(__VA_ARGS__) __maybe_unused
-#endif
-
-#ifndef BPF_FUNC
-# define BPF_FUNC(NAME, ...)						\
-	__BPF_FUNC(NAME, __VA_ARGS__) = (void *) BPF_FUNC_##NAME
-#endif
-
-/* Map access/manipulation */
-static void *BPF_FUNC(map_lookup_elem, void *map, const void *key);
-static int BPF_FUNC(map_update_elem, void *map, const void *key,
-		    const void *value, uint32_t flags);
-static int BPF_FUNC(map_delete_elem, void *map, const void *key);
-
-/* Time access */
-static uint64_t BPF_FUNC(ktime_get_ns);
-
-/* Debugging */
-
-/* FIXME: __attribute__ ((format(printf, 1, 3))) not possible unless
- * llvm bug https://llvm.org/bugs/show_bug.cgi?id=26243 gets resolved.
- * It would require ____fmt to be made const, which generates a reloc
- * entry (non-map).
- */
-static void BPF_FUNC(trace_printk, const char *fmt, int fmt_size, ...);
-
-#ifndef printt
-# define printt(fmt, ...)						\
-	({								\
-		char ____fmt[] = fmt;					\
-		trace_printk(____fmt, sizeof(____fmt), ##__VA_ARGS__);	\
-	})
-#endif
-
-/* Random numbers */
-static uint32_t BPF_FUNC(get_prandom_u32);
-
-/* Tail calls */
-static void BPF_FUNC(tail_call, struct __sk_buff *skb, void *map,
-		     uint32_t index);
-
-/* System helpers */
-static uint32_t BPF_FUNC(get_smp_processor_id);
-static uint32_t BPF_FUNC(get_numa_node_id);
-
-/* Packet misc meta data */
-static uint32_t BPF_FUNC(get_cgroup_classid, struct __sk_buff *skb);
-static int BPF_FUNC(skb_under_cgroup, void *map, uint32_t index);
-
-static uint32_t BPF_FUNC(get_route_realm, struct __sk_buff *skb);
-static uint32_t BPF_FUNC(get_hash_recalc, struct __sk_buff *skb);
-static uint32_t BPF_FUNC(set_hash_invalid, struct __sk_buff *skb);
-
-/* Packet redirection */
-static int BPF_FUNC(redirect, int ifindex, uint32_t flags);
-static int BPF_FUNC(clone_redirect, struct __sk_buff *skb, int ifindex,
-		    uint32_t flags);
-
-/* Packet manipulation */
-static int BPF_FUNC(skb_load_bytes, struct __sk_buff *skb, uint32_t off,
-		    void *to, uint32_t len);
-static int BPF_FUNC(skb_store_bytes, struct __sk_buff *skb, uint32_t off,
-		    const void *from, uint32_t len, uint32_t flags);
-
-static int BPF_FUNC(l3_csum_replace, struct __sk_buff *skb, uint32_t off,
-		    uint32_t from, uint32_t to, uint32_t flags);
-static int BPF_FUNC(l4_csum_replace, struct __sk_buff *skb, uint32_t off,
-		    uint32_t from, uint32_t to, uint32_t flags);
-static int BPF_FUNC(csum_diff, const void *from, uint32_t from_size,
-		    const void *to, uint32_t to_size, uint32_t seed);
-static int BPF_FUNC(csum_update, struct __sk_buff *skb, uint32_t wsum);
-
-static int BPF_FUNC(skb_change_type, struct __sk_buff *skb, uint32_t type);
-static int BPF_FUNC(skb_change_proto, struct __sk_buff *skb, uint32_t proto,
-		    uint32_t flags);
-static int BPF_FUNC(skb_change_tail, struct __sk_buff *skb, uint32_t nlen,
-		    uint32_t flags);
-
-static int BPF_FUNC(skb_pull_data, struct __sk_buff *skb, uint32_t len);
-
-/* Event notification */
-static int __BPF_FUNC(skb_event_output, struct __sk_buff *skb, void *map,
-		      uint64_t index, const void *data, uint32_t size) =
-		      (void *) BPF_FUNC_perf_event_output;
-
-/* Packet vlan encap/decap */
-static int BPF_FUNC(skb_vlan_push, struct __sk_buff *skb, uint16_t proto,
-		    uint16_t vlan_tci);
-static int BPF_FUNC(skb_vlan_pop, struct __sk_buff *skb);
-
-/* Packet tunnel encap/decap */
-static int BPF_FUNC(skb_get_tunnel_key, struct __sk_buff *skb,
-		    struct bpf_tunnel_key *to, uint32_t size, uint32_t flags);
-static int BPF_FUNC(skb_set_tunnel_key, struct __sk_buff *skb,
-		    const struct bpf_tunnel_key *from, uint32_t size,
-		    uint32_t flags);
-
-static int BPF_FUNC(skb_get_tunnel_opt, struct __sk_buff *skb,
-		    void *to, uint32_t size);
-static int BPF_FUNC(skb_set_tunnel_opt, struct __sk_buff *skb,
-		    const void *from, uint32_t size);
-
-/** LLVM built-ins, mem*() routines work for constant size */
-
-#ifndef lock_xadd
-# define lock_xadd(ptr, val)	((void) __sync_fetch_and_add(ptr, val))
-#endif
-
-#ifndef memset
-# define memset(s, c, n)	__builtin_memset((s), (c), (n))
-#endif
-
-#ifndef memcpy
-# define memcpy(d, s, n)	__builtin_memcpy((d), (s), (n))
-#endif
-
-#ifndef memmove
-# define memmove(d, s, n)	__builtin_memmove((d), (s), (n))
-#endif
-
-/* FIXME: __builtin_memcmp() is not yet fully usable unless llvm bug
- * https://llvm.org/bugs/show_bug.cgi?id=26218 gets resolved. Also
- * this one would generate a reloc entry (non-map), otherwise.
- */
-#if 0
-#ifndef memcmp
-# define memcmp(a, b, n)	__builtin_memcmp((a), (b), (n))
-#endif
-#endif
-
-unsigned long long load_byte(void *skb, unsigned long long off)
-	asm ("llvm.bpf.load.byte");
-
-unsigned long long load_half(void *skb, unsigned long long off)
-	asm ("llvm.bpf.load.half");
-
-unsigned long long load_word(void *skb, unsigned long long off)
-	asm ("llvm.bpf.load.word");
-
-#endif /* __BPF_API__ */
diff --git a/drivers/net/tap/bpf/bpf_elf.h b/drivers/net/tap/bpf/bpf_elf.h
deleted file mode 100644
index ea8a11c95c..0000000000
--- a/drivers/net/tap/bpf/bpf_elf.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
-#ifndef __BPF_ELF__
-#define __BPF_ELF__
-
-#include <asm/types.h>
-
-/* Note:
- *
- * Below ELF section names and bpf_elf_map structure definition
- * are not (!) kernel ABI. It's rather a "contract" between the
- * application and the BPF loader in tc. For compatibility, the
- * section names should stay as-is. Introduction of aliases, if
- * needed, are a possibility, though.
- */
-
-/* ELF section names, etc */
-#define ELF_SECTION_LICENSE	"license"
-#define ELF_SECTION_MAPS	"maps"
-#define ELF_SECTION_PROG	"prog"
-#define ELF_SECTION_CLASSIFIER	"classifier"
-#define ELF_SECTION_ACTION	"action"
-
-#define ELF_MAX_MAPS		64
-#define ELF_MAX_LICENSE_LEN	128
-
-/* Object pinning settings */
-#define PIN_NONE		0
-#define PIN_OBJECT_NS		1
-#define PIN_GLOBAL_NS		2
-
-/* ELF map definition */
-struct bpf_elf_map {
-	__u32 type;
-	__u32 size_key;
-	__u32 size_value;
-	__u32 max_elem;
-	__u32 flags;
-	__u32 id;
-	__u32 pinning;
-	__u32 inner_id;
-	__u32 inner_idx;
-};
-
-#define BPF_ANNOTATE_KV_PAIR(name, type_key, type_val)		\
-	struct ____btf_map_##name {				\
-		type_key key;					\
-		type_val value;					\
-	};							\
-	struct ____btf_map_##name				\
-	    __attribute__ ((section(".maps." #name), used))	\
-	    ____btf_map_##name = { }
-
-#endif /* __BPF_ELF__ */
diff --git a/drivers/net/tap/bpf/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
index f05aed021c..00f224f734 100644
--- a/drivers/net/tap/bpf/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -2,67 +2,42 @@
  * Copyright 2017 Mellanox Technologies, Ltd
  */
 
-#include <stdint.h>
-#include <stdbool.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <asm/types.h>
 #include <linux/in.h>
-#include <linux/if.h>
 #include <linux/if_ether.h>
 #include <linux/ip.h>
 #include <linux/ipv6.h>
-#include <linux/if_tunnel.h>
-#include <linux/filter.h>
-
-#include "bpf_api.h"
-#include "bpf_elf.h"
+#include <linux/udp.h>
+#include <linux/bpf.h>
+#include <bpf/bpf_helpers.h>
+#include <bpf/bpf_tracing.h>
+#include <bpf/bpf_endian.h>
+#include <linux/pkt_cls.h>
 #include "../tap_rss.h"
 
-/** Create IPv4 address */
-#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
-		(((b) & 0xff) << 16) | \
-		(((c) & 0xff) << 8)  | \
-		((d) & 0xff))
-
-#define PORT(a, b) ((__u16)(((a) & 0xff) << 8) | \
-		((b) & 0xff))
-
 /*
  * The queue number is offset by a unique QUEUE_OFFSET, to distinguish
  * packets that have gone through this rule (skb->cb[1] != 0) from others.
  */
 #define QUEUE_OFFSET		0x7cafe800
-#define PIN_GLOBAL_NS		2
 
-#define KEY_IDX			0
-#define BPF_MAP_ID_KEY	1
+#define IP_MF		0x2000		/** IP header Flags **/
+#define IP_OFFSET	0x1FFF		/** IP header fragment offset **/
 
-struct vlan_hdr {
-	__be16 proto;
-	__be16 tci;
-};
 
-struct bpf_elf_map __attribute__((section("maps"), used))
-map_keys = {
-	.type           =       BPF_MAP_TYPE_HASH,
-	.id             =       BPF_MAP_ID_KEY,
-	.size_key       =       sizeof(__u32),
-	.size_value     =       sizeof(struct rss_key),
-	.max_elem       =       256,
-	.pinning        =       PIN_GLOBAL_NS,
-};
+struct  {
+	__uint(type,       BPF_MAP_TYPE_HASH);
+	__type(key,  __u32);
+	__type(value,     struct rss_key);
+	__uint(max_entries,      256);
+} map_keys SEC(".maps");
 
-__section("cls_q") int
-match_q(struct __sk_buff *skb)
+SEC("cls_q")
+int match_q(struct __sk_buff *skb)
 {
 	__u32 queue = skb->cb[1];
-	/* queue is set by tap_flow_bpf_cls_q() before load */
 	volatile __u32 q = 0xdeadbeef;
 	__u32 match_queue = QUEUE_OFFSET + q;
 
-	/* printt("match_q$i() queue = %d\n", queue); */
-
 	if (queue != match_queue)
 		return TC_ACT_OK;
 
@@ -71,7 +46,6 @@ match_q(struct __sk_buff *skb)
 	return TC_ACT_UNSPEC;
 }
 
-
 struct ipv4_l3_l4_tuple {
 	__u32    src_addr;
 	__u32    dst_addr;
@@ -86,6 +60,16 @@ struct ipv6_l3_l4_tuple {
 	__u16       sport;
 } __attribute__((packed));
 
+struct neth {
+	struct iphdr iph;
+	struct udphdr udph;
+} __attribute__((packed));
+
+struct net6h {
+	struct ipv6hdr ip6h;
+	struct udphdr udph;
+} __attribute__((packed));
+
 static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
 	0xd1, 0x81, 0xc6, 0x2c,
 	0xf7, 0xf4, 0xdb, 0x5b,
@@ -99,18 +83,18 @@ static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
 	0x2a, 0xdc, 0x1f, 0xfc,
 };
 
-static __u32  __attribute__((always_inline))
-rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
-		__u8 input_len)
+static __u64  __attribute__((always_inline))
+rte_softrss_be(const __u32 *input_tuple, __u8 input_len)
 {
-	__u32 i, j, hash = 0;
-#pragma unroll
+	__u32 i, j;
+	__u64 hash = 0;
+#pragma clang loop unroll(full)
 	for (j = 0; j < input_len; j++) {
-#pragma unroll
+#pragma clang loop unroll(full)
 		for (i = 0; i < 32; i++) {
 			if (input_tuple[j] & (1U << (31 - i))) {
 				hash ^= ((const __u32 *)def_rss_key)[j] << i |
-				(__u32)((uint64_t)
+				(__u32)((__u64)
 				(((const __u32 *)def_rss_key)[j + 1])
 					>> (32 - i));
 			}
@@ -119,137 +103,76 @@ rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
 	return hash;
 }
 
-static int __attribute__((always_inline))
+SEC("l3_l4")
+int __attribute__((always_inline))
 rss_l3_l4(struct __sk_buff *skb)
 {
-	void *data_end = (void *)(long)skb->data_end;
-	void *data = (void *)(long)skb->data;
-	__u16 proto = (__u16)skb->protocol;
+	struct neth nh;
+	struct net6h n6h;
 	__u32 key_idx = 0xdeadbeef;
-	__u32 hash;
+	__u64 hash;
 	struct rss_key *rsskey;
-	__u64 off = ETH_HLEN;
-	int j;
-	__u8 *key = 0;
+	int j, k, ret;
 	__u32 len;
 	__u32 queue = 0;
-	bool mf = 0;
-	__u16 frag_off = 0;
 
-	rsskey = map_lookup_elem(&map_keys, &key_idx);
-	if (!rsskey) {
-		printt("hash(): rss key is not configured\n");
+	rsskey = bpf_map_lookup_elem(&map_keys, &key_idx);
+	if (rsskey == NULL) {
 		return TC_ACT_OK;
 	}
-	key = (__u8 *)rsskey->key;
 
-	/* Get correct proto for 802.1ad */
-	if (skb->vlan_present && skb->vlan_proto == htons(ETH_P_8021AD)) {
-		if (data + ETH_ALEN * 2 + sizeof(struct vlan_hdr) +
-		    sizeof(proto) > data_end)
-			return TC_ACT_OK;
-		proto = *(__u16 *)(data + ETH_ALEN * 2 +
-				   sizeof(struct vlan_hdr));
-		off += sizeof(struct vlan_hdr);
-	}
-
-	if (proto == htons(ETH_P_IP)) {
-		if (data + off + sizeof(struct iphdr) + sizeof(__u32)
-			> data_end)
-			return TC_ACT_OK;
-
-		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
-		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
-		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
-		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
+	if (bpf_skb_load_bytes_relative(skb, 0, &nh, sizeof(nh), BPF_HDR_START_NET))
+		return TC_ACT_OK;
+	if (nh.iph.version == 4) {
 		struct ipv4_l3_l4_tuple v4_tuple = {
-			.src_addr = IPv4(*(src_dst_addr + 0),
-					*(src_dst_addr + 1),
-					*(src_dst_addr + 2),
-					*(src_dst_addr + 3)),
-			.dst_addr = IPv4(*(src_dst_addr + 4),
-					*(src_dst_addr + 5),
-					*(src_dst_addr + 6),
-					*(src_dst_addr + 7)),
+			.src_addr = bpf_ntohl(nh.iph.saddr),
+			.dst_addr = bpf_ntohl(nh.iph.daddr),
 			.sport = 0,
 			.dport = 0,
 		};
-		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
-		 ** and also if the packet is not fragmented. Since fragmented
-		 ** chunks do not have L4 TCP/UDP header.
-		 **/
-		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
-			frag_off = PORT(*(frag_off_addr + 0),
-					*(frag_off_addr + 1));
-			mf = frag_off & 0x2000;
-			frag_off = frag_off & 0x1fff;
-			if (mf == 0 && frag_off == 0) {
-				v4_tuple.sport = PORT(*(src_dst_port + 0),
-						*(src_dst_port + 1));
-				v4_tuple.dport = PORT(*(src_dst_port + 2),
-						*(src_dst_port + 3));
+		if (nh.iph.protocol == IPPROTO_UDP || nh.iph.protocol == IPPROTO_TCP) {
+			/** Is IP fragmented **/
+			if ((nh.iph.frag_off & bpf_htons(IP_MF | IP_OFFSET)) == 0) {
+				v4_tuple.sport = bpf_ntohs(nh.udph.source);
+				v4_tuple.dport = bpf_ntohs(nh.udph.dest);
 			}
 		}
-		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
-		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
-			input_len--;
-		hash = rte_softrss_be((__u32 *)&v4_tuple, key, 3);
-	} else if (proto == htons(ETH_P_IPV6)) {
-		if (data + off + sizeof(struct ipv6hdr) +
-					sizeof(__u32) > data_end)
-			return TC_ACT_OK;
-		__u8 *src_dst_addr = data + off +
-					offsetof(struct ipv6hdr, saddr);
-		__u8 *src_dst_port = data + off +
-					sizeof(struct ipv6hdr);
-		__u8 *next_hdr = data + off +
-					offsetof(struct ipv6hdr, nexthdr);
-
+		hash = rte_softrss_be((__u32 *)&v4_tuple, 3);
+	} else if (nh.iph.version == 6) {
 		struct ipv6_l3_l4_tuple v6_tuple;
-		for (j = 0; j < 4; j++)
-			*((uint32_t *)&v6_tuple.src_addr + j) =
-				__builtin_bswap32(*((uint32_t *)
-						src_dst_addr + j));
-		for (j = 0; j < 4; j++)
-			*((uint32_t *)&v6_tuple.dst_addr + j) =
-				__builtin_bswap32(*((uint32_t *)
-						src_dst_addr + 4 + j));
-
-		/** Fetch the L4 header port-numbers only if next-header
-		 * is TCP/UDP **/
-		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
-			v6_tuple.sport = PORT(*(src_dst_port + 0),
-				      *(src_dst_port + 1));
-			v6_tuple.dport = PORT(*(src_dst_port + 2),
-				      *(src_dst_port + 3));
-		} else {
+		if (bpf_skb_load_bytes_relative(skb, 0, &n6h, sizeof(n6h), BPF_HDR_START_NET))
+			return TC_ACT_OK;
+#pragma clang loop unroll(full)
+		for (j = 0; j < 4; j++) {
+			*((__u32 *)&v6_tuple.src_addr + j) =
+							bpf_ntohl(n6h.ip6h.saddr.in6_u.u6_addr32[j]);
+			*((__u32 *)&v6_tuple.dst_addr + j) =
+							bpf_ntohl(n6h.ip6h.daddr.in6_u.u6_addr32[j]);
+		}
+		if (n6h.ip6h.nexthdr == IPPROTO_UDP || n6h.ip6h.nexthdr == IPPROTO_UDP) {
+			v6_tuple.sport = bpf_ntohs(n6h.udph.source);
+			v6_tuple.dport = bpf_ntohs(n6h.udph.dest);
+		}
+		else {
 			v6_tuple.sport = 0;
 			v6_tuple.dport = 0;
 		}
-
-		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
-		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
-			input_len--;
-		hash = rte_softrss_be((__u32 *)&v6_tuple, key, 9);
+		hash = rte_softrss_be((__u32 *)&v6_tuple, 9);
 	} else {
 		return TC_ACT_PIPE;
 	}
 
-	queue = rsskey->queues[(hash % rsskey->nb_queues) &
-				       (TAP_MAX_QUEUES - 1)];
-	skb->cb[1] = QUEUE_OFFSET + queue;
-	/* printt(">>>>> rss_l3_l4 hash=0x%x queue=%u\n", hash, queue); */
+	hash = (hash % rsskey->nb_queues) & (TAP_MAX_QUEUES - 1);
+#pragma clang loop unroll(full)
+	for (k = 0; k < TAP_MAX_QUEUES; k++) {
+		if(k == hash)
+			queue = rsskey->queues[k];
+	}
 
-	return TC_ACT_RECLASSIFY;
-}
+	skb->cb[1] = (__u32)(QUEUE_OFFSET + queue);
 
-#define RSS(L)						\
-	__section(#L) int				\
-		L ## _hash(struct __sk_buff *skb)	\
-	{						\
-		return rss_ ## L (skb);			\
-	}
+	return TC_ACT_RECLASSIFY;
 
-RSS(l3_l4)
+}
 
-BPF_LICENSE("Dual BSD/GPL");
+char _license[] SEC("license") = "Dual BSD/GPL";
diff --git a/drivers/net/tap/tap_bpf_api.c b/drivers/net/tap/tap_bpf_api.c
index 15283f8917..7e13d4b8b6 100644
--- a/drivers/net/tap/tap_bpf_api.c
+++ b/drivers/net/tap/tap_bpf_api.c
@@ -48,8 +48,9 @@ int tap_flow_bpf_cls_q(__u32 queue_idx)
  */
 int tap_flow_bpf_calc_l3_l4_hash(__u32 key_idx, int map_fd)
 {
-	l3_l4_hash_insns[4].imm = key_idx;
-	l3_l4_hash_insns[9].imm = map_fd;
+	l3_l4_hash_insns[1].imm = key_idx;
+	l3_l4_hash_insns[6].imm = map_fd;
+	l3_l4_hash_insns[6].src_reg = 1;
 
 	return bpf_load(BPF_PROG_TYPE_SCHED_ACT,
 		(struct bpf_insn *)l3_l4_hash_insns,
diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
index 53fa76c4e6..523dfe7656 100644
--- a/drivers/net/tap/tap_bpf_insns.h
+++ b/drivers/net/tap/tap_bpf_insns.h
@@ -24,395 +24,411 @@ static struct bpf_insn cls_q_insns[] = {
 };
 
 static struct bpf_insn l3_l4_hash_insns[] = {
-	{0xbf,    7,    1,        0, 0x00000000},
-	{0x61,    6,    7,       16, 0x00000000},
-	{0x61,    8,    7,       76, 0x00000000},
-	{0x61,    9,    7,       80, 0x00000000},
+	{0xbf,    6,    1,        0, 0x00000000},
 	{0x18,    1,    0,        0, 0xdeadbeef},
 	{0x00,    0,    0,        0, 0x00000000},
-	{0x63,   10,    1,       -4, 0x00000000},
+	{0x63,   10,    1,      -84, 0x00000000},
 	{0xbf,    2,   10,        0, 0x00000000},
-	{0x07,    2,    0,        0, 0xfffffffc},
+	{0x07,    2,    0,        0, 0xffffffac},
 	{0x18,    1,    0,        0, 0x00000000},
 	{0x00,    0,    0,        0, 0x00000000},
 	{0x85,    0,    0,        0, 0x00000001},
-	{0x55,    0,    0,       21, 0x00000000},
-	{0xb7,    1,    0,        0, 0x00000a64},
-	{0x6b,   10,    1,      -16, 0x00000000},
-	{0x18,    1,    0,        0, 0x69666e6f},
-	{0x00,    0,    0,        0, 0x65727567},
-	{0x7b,   10,    1,      -24, 0x00000000},
-	{0x18,    1,    0,        0, 0x6e207369},
-	{0x00,    0,    0,        0, 0x6320746f},
-	{0x7b,   10,    1,      -32, 0x00000000},
-	{0x18,    1,    0,        0, 0x20737372},
-	{0x00,    0,    0,        0, 0x2079656b},
-	{0x7b,   10,    1,      -40, 0x00000000},
-	{0x18,    1,    0,        0, 0x68736168},
-	{0x00,    0,    0,        0, 0x203a2928},
-	{0x7b,   10,    1,      -48, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0x73,   10,    7,      -14, 0x00000000},
-	{0xbf,    1,   10,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0xffffffd0},
-	{0xb7,    2,    0,        0, 0x00000023},
-	{0x85,    0,    0,        0, 0x00000006},
-	{0x05,    0,    0,     1680, 0x00000000},
-	{0xb7,    1,    0,        0, 0x0000000e},
-	{0x61,    2,    7,       20, 0x00000000},
-	{0x15,    2,    0,       10, 0x00000000},
-	{0x61,    2,    7,       28, 0x00000000},
-	{0x55,    2,    0,        8, 0x0000a888},
-	{0xbf,    2,    7,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    8,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x00000012},
-	{0x2d,    1,    9,     1670, 0x00000000},
-	{0xb7,    1,    0,        0, 0x00000012},
-	{0x69,    6,    8,       16, 0x00000000},
-	{0xbf,    7,    2,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x0000ffff},
-	{0x7b,   10,    7,      -56, 0x00000000},
-	{0x15,    6,    0,      443, 0x0000dd86},
-	{0xb7,    7,    0,        0, 0x00000003},
-	{0x55,    6,    0,     1662, 0x00000008},
-	{0x0f,    8,    1,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    8,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x00000018},
-	{0x2d,    1,    9,     1657, 0x00000000},
+	{0xbf,    7,    0,        0, 0x00000000},
+	{0xb7,    8,    0,        0, 0x00000000},
+	{0x15,    7,    0,     2064, 0x00000000},
+	{0xbf,    3,   10,        0, 0x00000000},
+	{0x07,    3,    0,        0, 0xffffffe0},
+	{0xbf,    1,    6,        0, 0x00000000},
+	{0xb7,    2,    0,        0, 0x00000000},
+	{0xb7,    4,    0,        0, 0x0000001c},
+	{0xb7,    5,    0,        0, 0x00000001},
+	{0x85,    0,    0,        0, 0x00000044},
+	{0x55,    0,    0,     2056, 0x00000000},
+	{0x71,    1,   10,      -32, 0x00000000},
+	{0x77,    1,    0,        0, 0x00000004},
+	{0x15,    1,    0,      503, 0x00000006},
+	{0xb7,    8,    0,        0, 0x00000003},
+	{0x55,    1,    0,     2051, 0x00000004},
 	{0xb7,    1,    0,        0, 0x00000000},
-	{0x71,    3,    8,       12, 0x00000000},
-	{0x71,    2,    8,        9, 0x00000000},
+	{0x61,    4,   10,      -20, 0x00000000},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0x71,    2,   10,      -23, 0x00000000},
 	{0x15,    2,    0,        1, 0x00000011},
-	{0x55,    2,    0,       21, 0x00000006},
-	{0x71,    2,    8,        7, 0x00000000},
-	{0x71,    4,    8,        6, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000008},
-	{0x57,    5,    0,        0, 0x00001f00},
-	{0x4f,    5,    2,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x4f,    4,    5,        0, 0x00000000},
-	{0x55,    4,    0,       12, 0x00000000},
-	{0xbf,    2,    8,        0, 0x00000000},
-	{0x07,    2,    0,        0, 0x00000014},
-	{0x71,    4,    2,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000018},
-	{0x71,    1,    2,        1, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000010},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    4,    2,        3, 0x00000000},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    2,    2,        2, 0x00000000},
-	{0x67,    2,    0,        0, 0x00000008},
-	{0x4f,    1,    2,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000038},
-	{0xc7,    4,    0,        0, 0x00000038},
+	{0x55,    2,    0,        5, 0x00000006},
+	{0x69,    2,   10,      -26, 0x00000000},
+	{0x57,    2,    0,        0, 0x0000ff3f},
+	{0x55,    2,    0,        2, 0x00000000},
+	{0x61,    1,   10,      -12, 0x00000000},
+	{0xdc,    1,    0,        0, 0x00000020},
 	{0xb7,    2,    0,        0, 0x00000000},
+	{0xb7,    5,    0,        0, 0x00000000},
 	{0x65,    4,    0,        1, 0xffffffff},
-	{0xb7,    7,    0,        0, 0x2cc681d1},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x598d03a2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb31a0745},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x66340e8a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xcc681d15},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x98d03a2b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x31a07456},
-	{0x71,    4,    8,       13, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
+	{0xb7,    5,    0,        0, 0x2cc681d1},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x40000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6340e8ad},
+	{0xa7,    5,    0,        0, 0x598d03a2},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc681d15b},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb31a0745},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
+	{0x57,    3,    0,        0, 0x10000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d03a2b7},
+	{0xa7,    5,    0,        0, 0x66340e8a},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xcc681d15},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x98d03a2b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x31a07456},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6340e8ad},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00800000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xc681d15b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00400000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8d03a2b7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00200000},
 	{0x15,    3,    0,        1, 0x00000000},
 	{0xa7,    5,    0,        0, 0x1a07456f},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
+	{0x57,    3,    0,        0, 0x00100000},
 	{0x15,    3,    0,        1, 0x00000000},
 	{0xa7,    5,    0,        0, 0x340e8ade},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
+	{0x57,    3,    0,        0, 0x00080000},
 	{0x15,    3,    0,        1, 0x00000000},
 	{0xa7,    5,    0,        0, 0x681d15bd},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd03a2b7b},
+	{0x57,    3,    0,        0, 0x00040000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd03a2b7b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
+	{0x57,    3,    0,        0, 0x00020000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa07456f6},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa07456f6},
-	{0x71,    3,    8,       14, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
 	{0xa7,    5,    0,        0, 0x40e8aded},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000038},
-	{0xc7,    4,    0,        0, 0x00000038},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0x81d15bdb},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x03a2b7b7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x07456f6f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x0e8adedf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1d15bdbf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3a2b7b7e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7456f6fd},
-	{0x71,    4,    8,       15, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe8adedfa},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd15bdbf4},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x81d15bdb},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
+	{0x57,    3,    0,        0, 0x00004000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa2b7b7e9},
+	{0xa7,    5,    0,        0, 0x03a2b7b7},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
+	{0x57,    3,    0,        0, 0x00002000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x456f6fd3},
+	{0xa7,    5,    0,        0, 0x07456f6f},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
+	{0x57,    3,    0,        0, 0x00001000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8adedfa7},
+	{0xa7,    5,    0,        0, 0x0e8adedf},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
+	{0x57,    3,    0,        0, 0x00000800},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x15bdbf4f},
+	{0xa7,    5,    0,        0, 0x1d15bdbf},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
+	{0x57,    3,    0,        0, 0x00000400},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x2b7b7e9e},
+	{0xa7,    5,    0,        0, 0x3a2b7b7e},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x56f6fd3d},
-	{0x71,    3,    8,       16, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xadedfa7b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000038},
-	{0xc7,    4,    0,        0, 0x00000038},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5bdbf4f7},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb7b7e9ef},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6f6fd3df},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xdedfa7bf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xbdbf4f7f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7b7e9eff},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf6fd3dff},
-	{0x71,    4,    8,       17, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
+	{0x57,    3,    0,        0, 0x00000200},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xedfa7bfe},
+	{0xa7,    5,    0,        0, 0x7456f6fd},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdbf4f7fc},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xe8adedfa},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd15bdbf4},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb7e9eff9},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa2b7b7e9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000020},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6fd3dff2},
+	{0xa7,    5,    0,        0, 0x456f6fd3},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdfa7bfe5},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8adedfa7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000008},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbf4f7fca},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7e9eff94},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfd3dff28},
-	{0x71,    3,    8,       18, 0x00000000},
+	{0xa7,    5,    0,        0, 0x15bdbf4f},
+	{0x61,    3,   10,      -16, 0x00000000},
+	{0xbf,    0,    4,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000004},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2b7b7e9e},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    0,    4,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000002},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x56f6fd3d},
+	{0xc7,    3,    0,        0, 0x00000020},
 	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfa7bfe51},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x67,    6,    0,        0, 0x00000038},
-	{0xc7,    6,    0,        0, 0x00000038},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xadedfa7b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    5,        0, 0x00000000},
-	{0xa7,    4,    0,        0, 0xf4f7fca2},
-	{0x6d,    2,    6,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x5bdbf4f7},
+	{0x6d,    2,    3,        1, 0x00000000},
 	{0xbf,    4,    5,        0, 0x00000000},
 	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
+	{0x57,    5,    0,        0, 0x40000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xb7b7e9ef},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x20000000},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xe9eff945},
+	{0xa7,    4,    0,        0, 0x6f6fd3df},
 	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
+	{0x57,    5,    0,        0, 0x10000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdedfa7bf},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x08000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xbdbf4f7f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x04000000},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd3dff28a},
+	{0xa7,    4,    0,        0, 0x7b7e9eff},
 	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
+	{0x57,    5,    0,        0, 0x02000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xf6fd3dff},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x01000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xedfa7bfe},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00800000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdbf4f7fc},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00400000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xb7e9eff9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00200000},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xa7bfe514},
+	{0xa7,    4,    0,        0, 0x6fd3dff2},
 	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
+	{0x57,    5,    0,        0, 0x00100000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdfa7bfe5},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00080000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xbf4f7fca},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00040000},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x4f7fca28},
+	{0xa7,    4,    0,        0, 0x7e9eff94},
 	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
+	{0x57,    5,    0,        0, 0x00020000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xfd3dff28},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00010000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xfa7bfe51},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00008000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xf4f7fca2},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00004000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xe9eff945},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00002000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xd3dff28a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00001000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xa7bfe514},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000800},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x9eff9450},
+	{0xa7,    4,    0,        0, 0x4f7fca28},
 	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
+	{0x57,    5,    0,        0, 0x00000400},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0x9eff9450},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000200},
 	{0x15,    5,    0,        1, 0x00000000},
 	{0xa7,    4,    0,        0, 0x3dff28a0},
-	{0x71,    5,    8,       19, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000100},
+	{0x15,    5,    0,        1, 0x00000000},
 	{0xa7,    4,    0,        0, 0x7bfe5141},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000038},
-	{0xc7,    3,    0,        0, 0x00000038},
-	{0xbf,    7,    4,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf7fca283},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    7,    4,        0, 0x00000000},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xeff94506},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xdff28a0c},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xbfe51418},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7fca2831},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xff945063},
-	{0xbf,    3,    5,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xff28a0c6},
-	{0x57,    5,    0,        0, 0x00000001},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000080},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xf7fca283},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000040},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xeff94506},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000020},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdff28a0c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000010},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xbfe51418},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000008},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xfe51418c},
-	{0xbf,    4,    1,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000020},
-	{0xc7,    4,    0,        0, 0x00000020},
-	{0xbf,    3,    7,        0, 0x00000000},
-	{0xa7,    3,    0,        0, 0xfca28319},
-	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    3,    7,        0, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7fca2831},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xff945063},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xff28a0c6},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xfe51418c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    3,        0, 0x00000000},
+	{0xbf,    5,    1,        0, 0x00000000},
+	{0x67,    5,    0,        0, 0x00000020},
+	{0xc7,    5,    0,        0, 0x00000020},
+	{0x18,    0,    0,        0, 0xfca28319},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0xaf,    3,    0,        0, 0x00000000},
+	{0x6d,    2,    5,        1, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x40000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf9450633},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xf9450633},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x20000000},
-	{0x79,    6,   10,      -56, 0x00000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf28a0c67},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xf28a0c67},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x10000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xe51418ce},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xe51418ce},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x08000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xca28319d},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xca28319d},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x04000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x9450633b},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x9450633b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x02000000},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -423,16 +439,20 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x51418ced},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00800000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xa28319db},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xa28319db},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00400000},
 	{0x15,    2,    0,        1, 0x00000000},
 	{0xa7,    3,    0,        0, 0x450633b6},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00200000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8a0c676c},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x8a0c676c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00100000},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -447,16 +467,20 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x50633b63},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00020000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xa0c676c6},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xa0c676c6},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00010000},
 	{0x15,    2,    0,        1, 0x00000000},
 	{0xa7,    3,    0,        0, 0x418ced8d},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00008000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8319db1a},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x8319db1a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00004000},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -479,12 +503,16 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x633b6347},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000200},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xc676c68f},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xc676c68f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000100},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8ced8d1f},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x8ced8d1f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000080},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -499,12 +527,16 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x676c68fa},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000010},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xced8d1f4},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xced8d1f4},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000008},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x9db1a3e9},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x9db1a3e9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000004},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -514,1078 +546,1336 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0x15,    2,    0,        1, 0x00000000},
 	{0xa7,    3,    0,        0, 0x76c68fa5},
 	{0x57,    1,    0,        0, 0x00000001},
-	{0x15,    1,    0,     1194, 0x00000000},
-	{0xa7,    3,    0,        0, 0xed8d1f4a},
-	{0x05,    0,    0,     1192, 0x00000000},
-	{0x0f,    8,    1,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    8,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x0000002c},
-	{0x2d,    1,    9,     1216, 0x00000000},
-	{0x61,    2,    8,        8, 0x00000000},
-	{0xdc,    2,    0,        0, 0x00000040},
-	{0xc7,    2,    0,        0, 0x00000020},
-	{0x71,    3,    8,        6, 0x00000000},
-	{0x15,    3,    0,        2, 0x00000011},
+	{0x15,    1,    0,     1482, 0x00000000},
+	{0x18,    1,    0,        0, 0xed8d1f4a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0x05,    0,    0,     1478, 0x00000000},
+	{0xbf,    3,   10,        0, 0x00000000},
+	{0x07,    3,    0,        0, 0xffffffb0},
+	{0xbf,    1,    6,        0, 0x00000000},
+	{0xb7,    2,    0,        0, 0x00000000},
+	{0xb7,    4,    0,        0, 0x00000030},
+	{0xb7,    5,    0,        0, 0x00000001},
+	{0x85,    0,    0,        0, 0x00000044},
+	{0x55,    0,    0,     1542, 0x00000000},
+	{0xb7,    2,    0,        0, 0x00000000},
+	{0x61,    4,   10,      -72, 0x00000000},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0x71,    3,   10,      -74, 0x00000000},
 	{0xb7,    1,    0,        0, 0x00000000},
-	{0x55,    3,    0,       12, 0x00000006},
-	{0xbf,    3,    8,        0, 0x00000000},
-	{0x07,    3,    0,        0, 0x00000028},
-	{0x71,    4,    3,        0, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000018},
-	{0x71,    1,    3,        1, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000010},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    4,    3,        3, 0x00000000},
-	{0x4f,    1,    4,        0, 0x00000000},
-	{0x71,    3,    3,        2, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0x4f,    1,    3,        0, 0x00000000},
-	{0xbf,    4,    2,        0, 0x00000000},
-	{0x77,    4,    0,        0, 0x0000001f},
-	{0x57,    4,    0,        0, 0x2cc681d1},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x55,    3,    0,        2, 0x00000011},
+	{0x61,    1,   10,      -40, 0x00000000},
+	{0xdc,    1,    0,        0, 0x00000020},
+	{0xb7,    5,    0,        0, 0x00000000},
+	{0x65,    4,    0,        1, 0xffffffff},
+	{0xb7,    5,    0,        0, 0x2cc681d1},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x40000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x598d03a2},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x598d03a2},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x20000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb31a0745},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb31a0745},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x10000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x66340e8a},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x66340e8a},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xcc681d15},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xcc681d15},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x04000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x98d03a2b},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x98d03a2b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x02000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x31a07456},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x31a07456},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x01000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x6340e8ad},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6340e8ad},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00800000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xc681d15b},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xc681d15b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00400000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x8d03a2b7},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8d03a2b7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00200000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x1a07456f},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1a07456f},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00100000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x340e8ade},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x340e8ade},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00080000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x681d15bd},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x681d15bd},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00040000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd03a2b7b},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd03a2b7b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00020000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xa07456f6},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa07456f6},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00010000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x40e8aded},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x40e8aded},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00008000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x81d15bdb},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x81d15bdb},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00004000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x03a2b7b7},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x03a2b7b7},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00002000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x07456f6f},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x07456f6f},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00001000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x0e8adedf},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x0e8adedf},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000800},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x1d15bdbf},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1d15bdbf},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000400},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x3a2b7b7e},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3a2b7b7e},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000200},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x7456f6fd},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7456f6fd},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000100},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xe8adedfa},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xe8adedfa},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000080},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd15bdbf4},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd15bdbf4},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xa2b7b7e9},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa2b7b7e9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000020},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x456f6fd3},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x456f6fd3},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x8adedfa7},
-	{0xbf,    3,    2,        0, 0x00000000},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8adedfa7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000008},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x15bdbf4f},
-	{0x61,    3,    8,       12, 0x00000000},
-	{0xbf,    5,    2,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x2b7b7e9e},
+	{0xa7,    5,    0,        0, 0x15bdbf4f},
+	{0x61,    3,   10,      -68, 0x00000000},
+	{0xbf,    0,    4,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000004},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2b7b7e9e},
 	{0xdc,    3,    0,        0, 0x00000040},
-	{0xbf,    5,    2,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x56f6fd3d},
+	{0xbf,    0,    4,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000002},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x56f6fd3d},
 	{0xc7,    3,    0,        0, 0x00000020},
-	{0x57,    2,    0,        0, 0x00000001},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xadedfa7b},
-	{0xb7,    2,    0,        0, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0x5bdbf4f7},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xadedfa7b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
+	{0xa7,    4,    0,        0, 0x5bdbf4f7},
 	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x40000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xb7b7e9ef},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x20000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6f6fd3df},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x10000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdedfa7bf},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x08000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xbdbf4f7f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x04000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7b7e9eff},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x02000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xf6fd3dff},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x01000000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xedfa7bfe},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00800000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdbf4f7fc},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00400000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xb7e9eff9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00200000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6fd3dff2},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00100000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdfa7bfe5},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00080000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xbf4f7fca},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00040000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7e9eff94},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00020000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xfd3dff28},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00010000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xfa7bfe51},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00008000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xf4f7fca2},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00004000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xe9eff945},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00002000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xd3dff28a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00001000},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xa7bfe514},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000800},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x4f7fca28},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000400},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0x9eff9450},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000200},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x3dff28a0},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000100},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7bfe5141},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000080},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xf7fca283},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000040},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xeff94506},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000020},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xdff28a0c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000010},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xbfe51418},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000008},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7fca2831},
+	{0x61,    5,   10,      -64, 0x00000000},
+	{0xbf,    0,    3,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000004},
+	{0x15,    0,    0,        3, 0x00000000},
+	{0x18,    0,    0,        0, 0xff945063},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    0,        0, 0x00000000},
+	{0xdc,    5,    0,        0, 0x00000040},
+	{0xbf,    0,    3,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000002},
+	{0x15,    0,    0,        3, 0x00000000},
+	{0x18,    0,    0,        0, 0xff28a0c6},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    0,        0, 0x00000000},
+	{0xc7,    5,    0,        0, 0x00000020},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xfe51418c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    4,    3,        0, 0x00000000},
+	{0x18,    0,    0,        0, 0xfca28319},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0xaf,    3,    0,        0, 0x00000000},
+	{0x6d,    2,    5,        1, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x40000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb7b7e9ef},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xf9450633},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x20000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6f6fd3df},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xf28a0c67},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x10000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdedfa7bf},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xe51418ce},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x08000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbdbf4f7f},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xca28319d},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x04000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7b7e9eff},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x9450633b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x02000000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf6fd3dff},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x28a0c676},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x01000000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xedfa7bfe},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x51418ced},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00800000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdbf4f7fc},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xa28319db},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00400000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb7e9eff9},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x450633b6},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00200000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6fd3dff2},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x8a0c676c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00100000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdfa7bfe5},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x1418ced8},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00080000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbf4f7fca},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x28319db1},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00040000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7e9eff94},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x50633b63},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00020000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfd3dff28},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xa0c676c6},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00010000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfa7bfe51},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x418ced8d},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00008000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf4f7fca2},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x8319db1a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00004000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe9eff945},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0633b634},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00002000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd3dff28a},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0c676c68},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00001000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa7bfe514},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x18ced8d1},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000800},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x4f7fca28},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x319db1a3},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000400},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x9eff9450},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x633b6347},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000200},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3dff28a0},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xc676c68f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000100},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7bfe5141},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x8ced8d1f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000080},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf7fca283},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x19db1a3e},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000040},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xeff94506},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x33b6347d},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000020},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdff28a0c},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x676c68fa},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xbfe51418},
-	{0xbf,    4,    3,        0, 0x00000000},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xced8d1f4},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7fca2831},
-	{0x61,    4,    8,       16, 0x00000000},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000004},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xff945063},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x9db1a3e9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    4,        0, 0x00000000},
+	{0x61,    4,   10,      -60, 0x00000000},
+	{0xbf,    0,    5,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000004},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x3b6347d2},
 	{0xdc,    4,    0,        0, 0x00000040},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000002},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xff28a0c6},
+	{0xbf,    0,    5,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000002},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x76c68fa5},
 	{0xc7,    4,    0,        0, 0x00000020},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfe51418c},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0xfca28319},
+	{0x57,    5,    0,        0, 0x00000001},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0xed8d1f4a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    5,        0, 0x00000000},
+	{0x18,    5,    0,        0, 0xdb1a3e94},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xbf,    0,    3,        0, 0x00000000},
+	{0xaf,    0,    5,        0, 0x00000000},
 	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x40000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf9450633},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb6347d28},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x20000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf28a0c67},
+	{0xa7,    0,    0,        0, 0x6c68fa51},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x10000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe51418ce},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd8d1f4a3},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xca28319d},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb1a3e946},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x04000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9450633b},
+	{0xa7,    0,    0,        0, 0x6347d28d},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x02000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x28a0c676},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xc68fa51a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x01000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x51418ced},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8d1f4a35},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00800000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa28319db},
+	{0xa7,    0,    0,        0, 0x1a3e946b},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00400000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x450633b6},
+	{0xa7,    0,    0,        0, 0x347d28d7},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00200000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8a0c676c},
+	{0xa7,    0,    0,        0, 0x68fa51ae},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00100000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1418ced8},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd1f4a35c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00080000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x28319db1},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa3e946b9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00040000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x50633b63},
+	{0xa7,    0,    0,        0, 0x47d28d73},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00020000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa0c676c6},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8fa51ae7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00010000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x418ced8d},
+	{0xa7,    0,    0,        0, 0x1f4a35cf},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00008000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8319db1a},
+	{0xa7,    0,    0,        0, 0x3e946b9e},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00004000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x0633b634},
+	{0xa7,    0,    0,        0, 0x7d28d73c},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00002000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x0c676c68},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xfa51ae78},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00001000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x18ced8d1},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xf4a35cf1},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000800},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x319db1a3},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xe946b9e3},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000400},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x633b6347},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd28d73c7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000200},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc676c68f},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa51ae78e},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000100},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8ced8d1f},
+	{0xa7,    0,    0,        0, 0x4a35cf1c},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000080},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x19db1a3e},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x946b9e38},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000040},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x33b6347d},
+	{0xa7,    0,    0,        0, 0x28d73c71},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000020},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x676c68fa},
+	{0xa7,    0,    0,        0, 0x51ae78e3},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xced8d1f4},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa35cf1c6},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000008},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9db1a3e9},
-	{0x61,    3,    8,       20, 0x00000000},
+	{0xa7,    0,    0,        0, 0x46b9e38d},
+	{0x61,    3,   10,      -56, 0x00000000},
 	{0xbf,    5,    4,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3b6347d2},
+	{0x15,    5,    0,        3, 0x00000000},
+	{0x18,    5,    0,        0, 0x8d73c71b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    5,        0, 0x00000000},
 	{0xdc,    3,    0,        0, 0x00000040},
 	{0xbf,    5,    4,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000002},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x76c68fa5},
+	{0xa7,    0,    0,        0, 0x1ae78e36},
 	{0xc7,    3,    0,        0, 0x00000020},
 	{0x57,    4,    0,        0, 0x00000001},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xed8d1f4a},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0xdb1a3e94},
+	{0xa7,    0,    0,        0, 0x35cf1c6c},
+	{0xbf,    5,    0,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6b9e38d9},
 	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    5,    0,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x40000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb6347d28},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xd73c71b2},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x20000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6c68fa51},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xae78e364},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x10000000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd8d1f4a3},
+	{0xa7,    5,    0,        0, 0x5cf1c6c9},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x08000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb1a3e946},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xb9e38d92},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x04000000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6347d28d},
+	{0xa7,    5,    0,        0, 0x73c71b25},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x02000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc68fa51a},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xe78e364b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x01000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d1f4a35},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xcf1c6c96},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00800000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1a3e946b},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x9e38d92c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00400000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x347d28d7},
+	{0xa7,    5,    0,        0, 0x3c71b259},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00200000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x68fa51ae},
+	{0xa7,    5,    0,        0, 0x78e364b2},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00100000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd1f4a35c},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xf1c6c964},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00080000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa3e946b9},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xe38d92c9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00040000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x47d28d73},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xc71b2593},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00020000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8fa51ae7},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x8e364b27},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00010000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1f4a35cf},
+	{0xa7,    5,    0,        0, 0x1c6c964e},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00008000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3e946b9e},
+	{0xa7,    5,    0,        0, 0x38d92c9c},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00004000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7d28d73c},
+	{0xa7,    5,    0,        0, 0x71b25938},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00002000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xfa51ae78},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xe364b270},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00001000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf4a35cf1},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xc6c964e0},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000800},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe946b9e3},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x8d92c9c0},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000400},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd28d73c7},
+	{0xa7,    5,    0,        0, 0x1b259380},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000200},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa51ae78e},
+	{0xa7,    5,    0,        0, 0x364b2700},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000100},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x4a35cf1c},
+	{0xa7,    5,    0,        0, 0x6c964e01},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000080},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x946b9e38},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xd92c9c03},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000040},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x28d73c71},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xb2593807},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000020},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x51ae78e3},
+	{0xa7,    5,    0,        0, 0x64b2700f},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000010},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa35cf1c6},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xc964e01e},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000008},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x46b9e38d},
-	{0x61,    4,    8,       24, 0x00000000},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000004},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d73c71b},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x92c9c03d},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
+	{0x61,    4,   10,      -52, 0x00000000},
+	{0xbf,    0,    3,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000004},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2593807a},
 	{0xdc,    4,    0,        0, 0x00000040},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000002},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1ae78e36},
+	{0xbf,    0,    3,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000002},
+	{0x15,    0,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x4b2700f4},
 	{0xc7,    4,    0,        0, 0x00000020},
 	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x35cf1c6c},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6b9e38d9},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x964e01e8},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0xbf,    0,    5,        0, 0x00000000},
+	{0xa7,    0,    0,        0, 0x2c9c03d1},
 	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    0,    5,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x40000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xd73c71b2},
+	{0xa7,    0,    0,        0, 0x593807a3},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x20000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xae78e364},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb2700f46},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x10000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5cf1c6c9},
+	{0xa7,    0,    0,        0, 0x64e01e8d},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb9e38d92},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xc9c03d1a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x04000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x73c71b25},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x93807a35},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x02000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe78e364b},
+	{0xa7,    0,    0,        0, 0x2700f46b},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x01000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xcf1c6c96},
+	{0xa7,    0,    0,        0, 0x4e01e8d6},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00800000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9e38d92c},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x9c03d1ad},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00400000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3c71b259},
+	{0xa7,    0,    0,        0, 0x3807a35b},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00200000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x78e364b2},
+	{0xa7,    0,    0,        0, 0x700f46b6},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00100000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf1c6c964},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xe01e8d6c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00080000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe38d92c9},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xc03d1ad9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00040000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc71b2593},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x807a35b3},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00020000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8e364b27},
+	{0xa7,    0,    0,        0, 0x00f46b66},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00010000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1c6c964e},
+	{0xa7,    0,    0,        0, 0x01e8d6cc},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00008000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x38d92c9c},
+	{0xa7,    0,    0,        0, 0x03d1ad99},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00004000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x71b25938},
+	{0xa7,    0,    0,        0, 0x07a35b32},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00002000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xe364b270},
+	{0xa7,    0,    0,        0, 0x0f46b665},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00001000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc6c964e0},
+	{0xa7,    0,    0,        0, 0x1e8d6cca},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000800},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x8d92c9c0},
+	{0xa7,    0,    0,        0, 0x3d1ad994},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000400},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x1b259380},
+	{0xa7,    0,    0,        0, 0x7a35b328},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000200},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x364b2700},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xf46b6651},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000100},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6c964e01},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xe8d6cca2},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000080},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xd92c9c03},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd1ad9944},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb2593807},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xa35b3289},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000020},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x64b2700f},
+	{0xa7,    0,    0,        0, 0x46b66512},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xc964e01e},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8d6cca25},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000008},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x92c9c03d},
-	{0x61,    3,    8,       28, 0x00000000},
+	{0xa7,    0,    0,        0, 0x1ad9944a},
+	{0x61,    3,   10,      -48, 0x00000000},
 	{0xbf,    5,    4,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000004},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x2593807a},
+	{0xa7,    0,    0,        0, 0x35b32894},
 	{0xdc,    3,    0,        0, 0x00000040},
 	{0xbf,    5,    4,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000002},
 	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x4b2700f4},
+	{0xa7,    0,    0,        0, 0x6b665129},
 	{0xc7,    3,    0,        0, 0x00000020},
 	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x964e01e8},
-	{0xbf,    5,    7,        0, 0x00000000},
-	{0xa7,    5,    0,        0, 0x2c9c03d1},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xd6cca253},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    4,        0, 0x00000000},
+	{0x18,    4,    0,        0, 0xad9944a7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xbf,    5,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    5,    0,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x40000000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x593807a3},
+	{0xa7,    5,    0,        0, 0x5b32894f},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x20000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xb2700f46},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xb665129f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x10000000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x64e01e8d},
+	{0xa7,    5,    0,        0, 0x6cca253e},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x08000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc9c03d1a},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xd9944a7d},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x04000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x93807a35},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xb32894fb},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x02000000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x2700f46b},
+	{0xa7,    5,    0,        0, 0x665129f6},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x01000000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x4e01e8d6},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xcca253ec},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00800000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x9c03d1ad},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x9944a7d9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00400000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3807a35b},
+	{0xa7,    5,    0,        0, 0x32894fb2},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00200000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x700f46b6},
+	{0xa7,    5,    0,        0, 0x65129f65},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00100000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe01e8d6c},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xca253eca},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00080000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xc03d1ad9},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x944a7d95},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00040000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x807a35b3},
+	{0xa7,    5,    0,        0, 0x2894fb2a},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00020000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x00f46b66},
+	{0xa7,    5,    0,        0, 0x5129f655},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00010000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x01e8d6cc},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xa253ecab},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00008000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x03d1ad99},
+	{0xa7,    5,    0,        0, 0x44a7d956},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00004000},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x07a35b32},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x894fb2ac},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00002000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x0f46b665},
+	{0xa7,    5,    0,        0, 0x129f6558},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00001000},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1e8d6cca},
+	{0xa7,    5,    0,        0, 0x253ecab1},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000800},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x3d1ad994},
+	{0xa7,    5,    0,        0, 0x4a7d9563},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000400},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x7a35b328},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x94fb2ac7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000200},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xf46b6651},
+	{0xa7,    5,    0,        0, 0x29f6558f},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000100},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xe8d6cca2},
+	{0xa7,    5,    0,        0, 0x53ecab1e},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000080},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd1ad9944},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0xa7d9563d},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000040},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xa35b3289},
+	{0xa7,    5,    0,        0, 0x4fb2ac7a},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000020},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x46b66512},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    4,    0,        0, 0x9f6558f5},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    4,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000010},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x8d6cca25},
+	{0xa7,    5,    0,        0, 0x3ecab1ea},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000008},
 	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x1ad9944a},
-	{0x61,    4,    8,       32, 0x00000000},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000004},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x35b32894},
+	{0xa7,    5,    0,        0, 0x7d9563d5},
+	{0x61,    4,   10,      -44, 0x00000000},
+	{0xbf,    0,    3,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000004},
+	{0x15,    0,    0,        3, 0x00000000},
+	{0x18,    0,    0,        0, 0xfb2ac7ab},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    0,        0, 0x00000000},
 	{0xdc,    4,    0,        0, 0x00000040},
-	{0xbf,    6,    3,        0, 0x00000000},
-	{0x57,    6,    0,        0, 0x00000002},
-	{0x15,    6,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0x6b665129},
+	{0xbf,    0,    3,        0, 0x00000000},
+	{0x57,    0,    0,        0, 0x00000002},
+	{0x15,    0,    0,        3, 0x00000000},
+	{0x18,    0,    0,        0, 0xf6558f56},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    0,        0, 0x00000000},
 	{0xc7,    4,    0,        0, 0x00000020},
 	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    5,    0,        0, 0xd6cca253},
-	{0xbf,    7,    5,        0, 0x00000000},
-	{0xa7,    7,    0,        0, 0xad9944a7},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xecab1eac},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    5,    3,        0, 0x00000000},
+	{0x18,    3,    0,        0, 0xd9563d59},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xbf,    0,    5,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0x6d,    2,    4,        1, 0x00000000},
-	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    0,    5,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x40000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5b32894f},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb2ac7ab2},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x20000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb665129f},
+	{0xa7,    0,    0,        0, 0x6558f564},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x10000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x6cca253e},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xcab1eac8},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x08000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xd9944a7d},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x9563d590},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x04000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xb32894fb},
+	{0xa7,    0,    0,        0, 0x2ac7ab20},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x02000000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x665129f6},
+	{0xa7,    0,    0,        0, 0x558f5641},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x01000000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xcca253ec},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xab1eac83},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00800000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9944a7d9},
+	{0xa7,    0,    0,        0, 0x563d5906},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00400000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x32894fb2},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xac7ab20c},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00200000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x65129f65},
+	{0xa7,    0,    0,        0, 0x58f56418},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00100000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xca253eca},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb1eac831},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00080000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x944a7d95},
+	{0xa7,    0,    0,        0, 0x63d59063},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00040000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x2894fb2a},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xc7ab20c7},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00020000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x5129f655},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x8f56418f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00010000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa253ecab},
+	{0xa7,    0,    0,        0, 0x1eac831e},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00008000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x44a7d956},
+	{0xa7,    0,    0,        0, 0x3d59063c},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00004000},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x894fb2ac},
+	{0xa7,    0,    0,        0, 0x7ab20c78},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00002000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x129f6558},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xf56418f0},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00001000},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x253ecab1},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xeac831e1},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000800},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x4a7d9563},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xd59063c2},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000400},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x94fb2ac7},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xab20c784},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000200},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x29f6558f},
+	{0xa7,    0,    0,        0, 0x56418f09},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000100},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x53ecab1e},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xac831e12},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000080},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xa7d9563d},
+	{0xa7,    0,    0,        0, 0x59063c25},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000040},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x4fb2ac7a},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xb20c784b},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000020},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x9f6558f5},
+	{0xa7,    0,    0,        0, 0x6418f097},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000010},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x3ecab1ea},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0xc831e12f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x9063c25f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
 	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0x7d9563d5},
-	{0x61,    3,    8,       36, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xfb2ac7ab},
-	{0xdc,    3,    0,        0, 0x00000040},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xf6558f56},
-	{0xc7,    3,    0,        0, 0x00000020},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x15,    4,    0,        1, 0x00000000},
-	{0xa7,    7,    0,        0, 0xecab1eac},
-	{0xbf,    4,    7,        0, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd9563d59},
-	{0x6d,    2,    3,        1, 0x00000000},
-	{0xbf,    4,    7,        0, 0x00000000},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb2ac7ab2},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x79,    6,   10,      -56, 0x00000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x6558f564},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xcab1eac8},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x9563d590},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x2ac7ab20},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x558f5641},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x01000000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xab1eac83},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x563d5906},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xac7ab20c},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x58f56418},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb1eac831},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x63d59063},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xc7ab20c7},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x8f56418f},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x1eac831e},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x3d59063c},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x7ab20c78},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xf56418f0},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xeac831e1},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xd59063c2},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xab20c784},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x56418f09},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xac831e12},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x59063c25},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xb20c784b},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x6418f097},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0xc831e12f},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x9063c25f},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x20c784be},
-	{0xbf,    5,    3,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x15,    5,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x418f097c},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x15,    3,    0,        1, 0x00000000},
-	{0xa7,    4,    0,        0, 0x831e12f9},
-	{0xbf,    5,    1,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
+	{0xa7,    0,    0,        0, 0x20c784be},
 	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    0,    0,        0, 0x418f097c},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        3, 0x00000000},
+	{0x18,    3,    0,        0, 0x831e12f9},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    0,    3,        0, 0x00000000},
+	{0xbf,    4,    1,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000020},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0xbf,    3,    0,        0, 0x00000000},
 	{0xa7,    3,    0,        0, 0x063c25f3},
-	{0x6d,    2,    5,        1, 0x00000000},
-	{0xbf,    3,    4,        0, 0x00000000},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    3,    0,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x40000000},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -1604,12 +1894,16 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x63c25f3f},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x04000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xc784be7f},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xc784be7f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x02000000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x8f097cff},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x8f097cff},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x01000000},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -1624,20 +1918,28 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x784be7f8},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00200000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf097cff0},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xf097cff0},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00100000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xe12f9fe0},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xe12f9fe0},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00080000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xc25f3fc1},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xc25f3fc1},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00040000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x84be7f83},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x84be7f83},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00020000},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -1656,8 +1958,10 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x4be7f83f},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00002000},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x97cff07f},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x97cff07f},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00001000},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -1668,32 +1972,44 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x5f3fc1fd},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000400},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xbe7f83fb},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xbe7f83fb},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000200},
 	{0x15,    2,    0,        1, 0x00000000},
 	{0xa7,    3,    0,        0, 0x7cff07f7},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000100},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf9fe0fee},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xf9fe0fee},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000080},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xf3fc1fdc},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xf3fc1fdc},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000040},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xe7f83fb8},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xe7f83fb8},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000020},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xcff07f70},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xcff07f70},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000010},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0x9fe0fee1},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0x9fe0fee1},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000008},
 	{0x15,    2,    0,        1, 0x00000000},
@@ -1704,40 +2020,86 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xa7,    3,    0,        0, 0x7f83fb85},
 	{0xbf,    2,    1,        0, 0x00000000},
 	{0x57,    2,    0,        0, 0x00000002},
-	{0x15,    2,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xff07f70a},
+	{0x15,    2,    0,        3, 0x00000000},
+	{0x18,    2,    0,        0, 0xff07f70a},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    2,        0, 0x00000000},
 	{0x57,    1,    0,        0, 0x00000001},
-	{0x15,    1,    0,        1, 0x00000000},
-	{0xa7,    3,    0,        0, 0xfe0fee15},
-	{0x71,    1,    0,      201, 0x00000000},
+	{0x15,    1,    0,        3, 0x00000000},
+	{0x18,    1,    0,        0, 0xfe0fee15},
+	{0x00,    0,    0,        0, 0x00000000},
+	{0xaf,    3,    1,        0, 0x00000000},
+	{0x71,    1,    7,      201, 0x00000000},
 	{0x67,    1,    0,        0, 0x00000008},
-	{0x71,    2,    0,      200, 0x00000000},
+	{0x71,    2,    7,      200, 0x00000000},
 	{0x4f,    1,    2,        0, 0x00000000},
-	{0x71,    2,    0,      202, 0x00000000},
+	{0x71,    2,    7,      202, 0x00000000},
 	{0x67,    2,    0,        0, 0x00000010},
-	{0x71,    4,    0,      203, 0x00000000},
+	{0x71,    4,    7,      203, 0x00000000},
 	{0x67,    4,    0,        0, 0x00000018},
 	{0x4f,    4,    2,        0, 0x00000000},
 	{0x4f,    4,    1,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000020},
-	{0x77,    3,    0,        0, 0x00000020},
 	{0x9f,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x0000000f},
-	{0x67,    3,    0,        0, 0x00000002},
-	{0x0f,    0,    3,        0, 0x00000000},
-	{0x71,    1,    0,      137, 0x00000000},
+	{0x65,    3,    0,        5, 0x00000007},
+	{0x65,    3,    0,        9, 0x00000003},
+	{0x65,    3,    0,       16, 0x00000001},
+	{0x15,    3,    0,       27, 0x00000000},
+	{0x07,    7,    0,        0, 0x0000008c},
+	{0x05,    0,    0,       40, 0x00000000},
+	{0x65,    3,    0,        8, 0x0000000b},
+	{0x65,    3,    0,       14, 0x00000009},
+	{0x15,    3,    0,       24, 0x00000008},
+	{0x07,    7,    0,        0, 0x000000ac},
+	{0x05,    0,    0,       35, 0x00000000},
+	{0x65,    3,    0,       13, 0x00000005},
+	{0x15,    3,    0,       22, 0x00000004},
+	{0x07,    7,    0,        0, 0x0000009c},
+	{0x05,    0,    0,       31, 0x00000000},
+	{0x65,    3,    0,       12, 0x0000000d},
+	{0x15,    3,    0,       20, 0x0000000c},
+	{0x07,    7,    0,        0, 0x000000bc},
+	{0x05,    0,    0,       27, 0x00000000},
+	{0x15,    3,    0,       19, 0x00000002},
+	{0x07,    7,    0,        0, 0x00000094},
+	{0x05,    0,    0,       24, 0x00000000},
+	{0x15,    3,    0,       18, 0x0000000a},
+	{0x07,    7,    0,        0, 0x000000b4},
+	{0x05,    0,    0,       21, 0x00000000},
+	{0x15,    3,    0,       17, 0x00000006},
+	{0x07,    7,    0,        0, 0x000000a4},
+	{0x05,    0,    0,       18, 0x00000000},
+	{0x15,    3,    0,       16, 0x0000000e},
+	{0x07,    7,    0,        0, 0x000000c4},
+	{0x05,    0,    0,       15, 0x00000000},
+	{0x07,    7,    0,        0, 0x00000088},
+	{0x05,    0,    0,       13, 0x00000000},
+	{0x07,    7,    0,        0, 0x000000a8},
+	{0x05,    0,    0,       11, 0x00000000},
+	{0x07,    7,    0,        0, 0x00000098},
+	{0x05,    0,    0,        9, 0x00000000},
+	{0x07,    7,    0,        0, 0x000000b8},
+	{0x05,    0,    0,        7, 0x00000000},
+	{0x07,    7,    0,        0, 0x00000090},
+	{0x05,    0,    0,        5, 0x00000000},
+	{0x07,    7,    0,        0, 0x000000b0},
+	{0x05,    0,    0,        3, 0x00000000},
+	{0x07,    7,    0,        0, 0x000000a0},
+	{0x05,    0,    0,        1, 0x00000000},
+	{0x07,    7,    0,        0, 0x000000c0},
+	{0x71,    1,    7,        1, 0x00000000},
 	{0x67,    1,    0,        0, 0x00000008},
-	{0x71,    2,    0,      136, 0x00000000},
+	{0x71,    2,    7,        0, 0x00000000},
 	{0x4f,    1,    2,        0, 0x00000000},
-	{0x71,    2,    0,      138, 0x00000000},
+	{0x71,    2,    7,        2, 0x00000000},
 	{0x67,    2,    0,        0, 0x00000010},
-	{0x71,    3,    0,      139, 0x00000000},
+	{0x71,    3,    7,        3, 0x00000000},
 	{0x67,    3,    0,        0, 0x00000018},
 	{0x4f,    3,    2,        0, 0x00000000},
 	{0x4f,    3,    1,        0, 0x00000000},
 	{0x07,    3,    0,        0, 0x7cafe800},
 	{0x63,    6,    3,       52, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000001},
-	{0xbf,    0,    7,        0, 0x00000000},
+	{0xb7,    8,    0,        0, 0x00000001},
+	{0xbf,    0,    8,        0, 0x00000000},
 	{0x95,    0,    0,        0, 0x00000000},
 };
-- 
2.39.1.windows.1


             reply	other threads:[~2024-01-12 13:48 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-12 13:48 madhuker.mythri [this message]
2024-01-12 16:40 ` Stephen Hemminger
2024-01-12 16:41 ` Stephen Hemminger
2024-01-13 17:50   ` [External] : " Madhuker Mythri
2024-01-13 18:05     ` Stephen Hemminger
2024-01-16 16:43     ` Stephen Hemminger
2024-01-12 16:42 ` Stephen Hemminger
2024-01-13 17:52   ` [External] : " Madhuker Mythri
2024-01-13 18:06     ` Stephen Hemminger
2024-01-16  5:43       ` Madhuker Mythri
2024-01-16 16:40         ` Stephen Hemminger
2024-01-17  3:25         ` Stephen Hemminger
2024-01-17 16:19           ` Madhuker Mythri
2024-01-12 16:43 ` Stephen Hemminger
2024-01-12 16:46 ` Stephen Hemminger
2024-01-13 17:55   ` [External] : " Madhuker Mythri
2024-01-12 17:53 ` [RFC v3] tap: rework the BPF header parsing Stephen Hemminger
2024-02-07 18:55 ` [PATCH] net/tap: Modified TAP BPF program as per the Kernel-version upgrade requirements Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240112134821.2067-1-madhuker.mythri@oracle.com \
    --to=madhuker.mythri@oracle.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).