diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..4b7b890
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,121 @@
+#
+#    Copyright (c) 2010-2014 Nest, Inc.
+#    All rights reserved.
+#
+#    This document is the property of Nest. It is considered
+#    confidential and proprietary information.
+#
+#    This document may not be reproduced or transmitted in any form,
+#    in whole or in part, without the express written permission of
+#    Nest.
+#
+#    Description:
+#      This file is the make file for the Freescale bootstream tool,
+#      kobs-ng.
+#
+
+
+include pre.mak
+
+PackageKernelVersion    := $(firstword $(subst -, ,$(NL_KERNEL_VERSION)))
+PackageDirectory	:= imx_$(PackageKernelVersion)_1.1.0_ga
+ifeq ($(PackageKernelVersion), 4.1.15)
+PackageName		:= $(PackageDirectory)/imx-kobs
+else
+PackageName		:= $(PackageDirectory)/kobs-ng
+endif
+
+PackageExtension	:= *
+PackageSeparator	:= -
+
+PackagePatchArgs	:= -p1
+
+PackageArchive		:= $(wildcard $(PackageName)-$(PackageVersion).$(PackageExtension))
+PackageSourceDir	:= $(call GenerateBuildPaths,$(notdir $(PackageName)$(PackageSeparator)$(PackageVersion)))
+
+PackageBuildMakefile	= $(call GenerateBuildPaths,Makefile)
+
+LicenseSourceFile	:= $(PackageSourceDir)/COPYING
+
+CleanPaths		+= $(PackageLicenseFile)
+
+SOURCEDIRS                      = $(PackageSourceDir)
+$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(LicenseSourceFile): $(BuildDirectory)/source
+
+$(PackageLicenseFile): $(LicenseSourceFile)
+	$(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) | $(BuildDirectory)
+	$(call expand-archive,$(PackageArchive),$(if $(filter %.zip,$(PackageArchive)),$(@),$(dir $(@))))
+	$(Verbose)touch $(@)
+	$(call patch-directory,$(@),$(PackagePatchArgs),$(PackagePatchPaths))
+
+# Prepare the sources.
+
+$(BuildDirectory)/source: | $(PackageSourceDir) $(BuildDirectory)
+	$(Verbose)touch $@
+
+# Patch the sources, if necessary.
+
+$(BuildDirectory)/patch: $(BuildDirectory)/source
+	$(Verbose)touch $@
+
+# Generate the package build makefile.
+
+# Configure the source for building.
+
+$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory)
+	$(Verbose)cd $(BuildDirectory) && \
+	$(CURDIR)/$(PackageSourceDir)/configure \
+	CC="$(CC) $(CPPOPTFLAGS)" CXX="$(CXX) $(CPPOPTFLAGS)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+	CPPFLAGS="$(call ToolGenerateIncludeArgument,$(UuidIncludePath)) \
+	          $(call ToolGenerateIncludeArgument,$(LinuxIncludePath))" \
+	LDFLAGS="$(call GenerateLibraryPathArgument,$(UuidLibraryPaths))" \
+	--build=$(HostTuple) \
+	--host=$(TargetTuple) \
+	--target=$(TargetTuple) \
+	--prefix=/usr \
+	--sysconfdir=/etc \
+	--localstatedir=/var \
+	--disable-device-mapper \
+	--disable-fs \
+	--enable-read-only \
+	--without-readline
+	$(Verbose)touch $@
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+$(BuildDirectory)/build: $(BuildDirectory)/configure
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) -C $(BuildDirectory) \
+	all
+	$(Verbose)touch $@
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+$(BuildDirectory)/stage: $(BuildDirectory)/build | $(ResultDirectory)
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install
+	$(Verbose)touch $@
+
+.PHONY: stage
+stage: $(BuildDirectory)/stage
+
+clean:
+	$(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng-1.3.tar.gz b/imx_3.10.53_1.1.0_ga/kobs-ng-1.3.tar.gz
new file mode 100644
index 0000000..140830e
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng-1.3.tar.gz
Binary files differ
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-01.description b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-01.description
new file mode 100644
index 0000000..c120d9d
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-01.description
@@ -0,0 +1,3 @@
+new kobs-ng supports i.MX6SX TO1.2 NAND boot, add SW BCH to support
+BCH62 ECC instead of hamming code for FCB, and use SW to generate
+randomized data for FCB.
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-01.patch b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-01.patch
new file mode 100644
index 0000000..4004cfe
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-01.patch
@@ -0,0 +1,3170 @@
+diff -Naur kobs-ng-1.3.org/src/bch.c kobs-ng-1.3.new/src/bch.c
+--- kobs-ng-1.3.org/src/bch.c	1969-12-31 16:00:00.000000000 -0800
++++ kobs-ng-1.3.new/src/bch.c	2014-10-24 20:35:24.344372832 -0700
+@@ -0,0 +1,1545 @@
++/*
++* Copyright (C) 2010-2014 Freescale Semiconductor, Inc. All Rights Reserved.
++*/
++
++/*
++* This program is free software; you can redistribute it and/or modify
++* it under the terms of the GNU General Public License as published by
++* the Free Software Foundation; either version 2 of the License, or
++* (at your option) any later version.
++*
++* This program is distributed in the hope that it will be useful,
++* but WITHOUT ANY WARRANTY; without even the implied warranty of
++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++* GNU General Public License for more details.
++*
++* You should have received a copy of the GNU General Public License along
++* with this program; if not, write to the Free Software Foundation, Inc.,
++* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++*/
++/*
++ * Generic binary BCH encoding/decoding library
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
++ * more details.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program; if not, write to the Free Software Foundation, Inc., 51
++ * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Copyright © 2011 Parrot S.A.
++ *
++ * Author: Ivan Djelic <ivan.djelic@parrot.com>
++ *
++ * Description:
++ *
++ * This library provides runtime configurable encoding/decoding of binary
++ * Bose-Chaudhuri-Hocquenghem (BCH) codes.
++ *
++ * Call init_bch to get a pointer to a newly allocated bch_control structure for
++ * the given m (Galois field order), t (error correction capability) and
++ * (optional) primitive polynomial parameters.
++ *
++ * Call encode_bch to compute and store ecc parity bytes to a given buffer.
++ * Call decode_bch to detect and locate errors in received data.
++ *
++ * On systems supporting hw BCH features, intermediate results may be provided
++ * to decode_bch in order to skip certain steps. See decode_bch() documentation
++ * for details.
++ *
++ * Option CONFIG_BCH_CONST_PARAMS can be used to force fixed values of
++ * parameters m and t; thus allowing extra compiler optimizations and providing
++ * better (up to 2x) encoding performance. Using this option makes sense when
++ * (m,t) are fixed and known in advance, e.g. when using BCH error correction
++ * on a particular NAND flash device.
++ *
++ * Algorithmic details:
++ *
++ * Encoding is performed by processing 32 input bits in parallel, using 4
++ * remainder lookup tables.
++ *
++ * The final stage of decoding involves the following internal steps:
++ * a. Syndrome computation
++ * b. Error locator polynomial computation using Berlekamp-Massey algorithm
++ * c. Error locator root finding (by far the most expensive step)
++ *
++ * In this implementation, step c is not performed using the usual Chien search.
++ * Instead, an alternative approach described in [1] is used. It consists in
++ * factoring the error locator polynomial using the Berlekamp Trace algorithm
++ * (BTA) down to a certain degree (4), after which ad hoc low-degree polynomial
++ * solving techniques [2] are used. The resulting algorithm, called BTZ, yields
++ * much better performance than Chien search for usual (m,t) values (typically
++ * m >= 13, t < 32, see [1]).
++ *
++ * [1] B. Biswas, V. Herbert. Efficient root finding of polynomials over fields
++ * of characteristic 2, in: Western European Workshop on Research in Cryptology
++ * - WEWoRC 2009, Graz, Austria, LNCS, Springer, July 2009, to appear.
++ * [2] [Zin96] V.A. Zinoviev. On the solution of equations of degree 10 over
++ * finite fields GF(2^q). In Rapport de recherche INRIA no 2829, 1996.
++ */
++
++#include <errno.h>
++#include <stdint.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include "bch.h"
++#include "rand.h"
++
++#if defined(CONFIG_BCH_CONST_PARAMS)
++#define GF_M(_p)               (CONFIG_BCH_CONST_M)
++#define GF_T(_p)               (CONFIG_BCH_CONST_T)
++#define GF_N(_p)               ((1 << (CONFIG_BCH_CONST_M))-1)
++#else
++#define GF_M(_p)               ((_p)->m)
++#define GF_T(_p)               ((_p)->t)
++#define GF_N(_p)               ((_p)->n)
++#endif
++
++#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
++#define ARRAY_SIZE(_A) (sizeof(_A) / sizeof((_A)[0]))
++#define BCH_ECC_WORDS(_p)      DIV_ROUND_UP(GF_M(_p)*GF_T(_p), 32)
++#define BCH_ECC_BYTES(_p)      DIV_ROUND_UP(GF_M(_p)*GF_T(_p), 8)
++
++#define METADATABYTE        32     /* metadata size in byte */
++#define BLOCK0BYTE          128    /* block0 size in byte */
++#define BLOCK0ECC           62     /* block0 ecc level */
++#define BLOCKNBYTE          128    /* blockn size in byte */
++#define BLOCKNECC           62     /* blockn ecc level */
++#define NUMOFBLOCKN         7      /* number of blockn */
++#define FCB_GF              13     /* Galois Field for FCB */
++
++
++/*
++ * represent a polynomial over GF(2^m)
++ */
++struct gf_poly {
++	unsigned int deg;    /* polynomial degree */
++	unsigned int c[0];   /* polynomial terms */
++};
++
++/* given its degree, compute a polynomial size in bytes */
++#define GF_POLY_SZ(_d) (sizeof(struct gf_poly)+((_d)+1)*sizeof(unsigned int))
++
++/* polynomial of degree 1 */
++struct gf_poly_deg1 {
++	struct gf_poly poly;
++	unsigned int   c[2];
++};
++
++/*
++ * same as encode_bch(), but process input data one byte at a time
++ */
++static void encode_bch_unaligned(struct bch_control *bch,
++				 const unsigned char *data, unsigned int len,
++				 uint32_t *ecc)
++{
++	int i;
++	const uint32_t *p;
++	const int l = BCH_ECC_WORDS(bch)-1;
++
++	printf("!!!!WARNNING, source data is not align\n");
++	while (len--) {
++		p = bch->mod8_tab + (l+1)*(((ecc[0] >> 24)^(*data++)) & 0xff);
++
++		for (i = 0; i < l; i++)
++			ecc[i] = ((ecc[i] << 8)|(ecc[i+1] >> 24))^(*p++);
++
++		ecc[l] = (ecc[l] << 8)^(*p);
++	}
++}
++
++/*
++ * convert ecc bytes to aligned, zero-padded 32-bit ecc words
++ */
++static void load_ecc8(struct bch_control *bch, uint32_t *dst,
++		      const uint8_t *src)
++{
++	uint8_t pad[4] = {0, 0, 0, 0};
++	unsigned int i, nwords = BCH_ECC_WORDS(bch)-1;
++
++	for (i = 0; i < nwords; i++, src += 4)
++		dst[i] = (src[0] << 24)|(src[1] << 16)|(src[2] << 8)|src[3];
++
++	memcpy(pad, src, BCH_ECC_BYTES(bch)-4*nwords);
++	dst[nwords] = (pad[0] << 24)|(pad[1] << 16)|(pad[2] << 8)|pad[3];
++}
++
++/*
++ * convert 32-bit ecc words to ecc bytes
++ */
++static void store_ecc8(struct bch_control *bch, uint8_t *dst,
++		       const uint32_t *src)
++{
++	uint8_t pad[4];
++	unsigned int i, nwords = BCH_ECC_WORDS(bch)-1;
++
++	for (i = 0; i < nwords; i++) {
++		*dst++ = (src[i] >> 24);
++		*dst++ = (src[i] >> 16) & 0xff;
++		*dst++ = (src[i] >>  8) & 0xff;
++		*dst++ = (src[i] >>  0) & 0xff;
++	}
++	pad[0] = (src[nwords] >> 24);
++	pad[1] = (src[nwords] >> 16) & 0xff;
++	pad[2] = (src[nwords] >>  8) & 0xff;
++	pad[3] = (src[nwords] >>  0) & 0xff;
++	memcpy(dst, pad, BCH_ECC_BYTES(bch)-4*nwords);
++}
++
++/*
++ * reverse bit for byte
++ */
++static uint8_t reverse_bit(uint8_t in_byte)
++{
++	int i;
++	uint8_t out_byte = 0;
++
++	for (i = 0; i < 8; i++) {
++		if (in_byte & ((0x80) >> i)) {
++			out_byte |= 1 << i;
++		}
++	}
++
++	return out_byte;
++}
++
++ /*
++  * swap 32-bit data, including bit reverse and swap to big endian
++  */
++static uint32_t swap_data(uint32_t data)
++{
++	uint32_t r = 0;
++
++	r = reverse_bit(data & 0xFF) << 24;
++	r |= reverse_bit((data >> 8) & 0xFF) << 16;
++	r |= reverse_bit((data >> 16) & 0xFF) << 8;
++	r |= reverse_bit((data >> 24) & 0xFF);
++
++	return r;
++}
++
++/**
++ * encode_bch - calculate BCH ecc parity of data
++ * @bch:   BCH control structure
++ * @data:  data to encode
++ * @len:   data length in bytes
++ * @ecc:   ecc parity data, must be initialized by caller
++ *
++ * The @ecc parity array is used both as input and output parameter, in order to
++ * allow incremental computations. It should be of the size indicated by member
++ * @ecc_bytes of @bch, and should be initialized to 0 before the first call.
++ *
++ * The exact number of computed ecc parity bits is given by member @ecc_bits of
++ * @bch; it may be less than m*t for large values of t.
++ */
++void encode_bch(struct bch_control *bch, const uint8_t *data,
++		unsigned int len, uint8_t *ecc)
++{
++	const unsigned int l = BCH_ECC_WORDS(bch)-1;
++	unsigned int i, mlen;
++	unsigned long m;
++	uint32_t w, r[l+1];
++	const uint32_t * const tab0 = bch->mod8_tab;
++	const uint32_t * const tab1 = tab0 + 256*(l+1);
++	const uint32_t * const tab2 = tab1 + 256*(l+1);
++	const uint32_t * const tab3 = tab2 + 256*(l+1);
++	const uint32_t *pdata, *p0, *p1, *p2, *p3;
++
++	if (ecc) {
++		/* load ecc parity bytes into internal 32-bit buffer */
++		load_ecc8(bch, bch->ecc_buf, ecc);
++	} else {
++		memset(bch->ecc_buf, 0, sizeof(r));
++	}
++
++	/* process first unaligned data bytes */
++	m = ((unsigned long)data) & 3;
++	if (m) {
++		mlen = (len < (4-m)) ? len : 4-m;
++		encode_bch_unaligned(bch, data, mlen, bch->ecc_buf);
++		data += mlen;
++		len  -= mlen;
++	}
++
++	/* process 32-bit aligned data words */
++	pdata = (uint32_t *)data;
++	mlen  = len/4;
++	data += 4*mlen;
++	len  -= 4*mlen;
++	memcpy(r, bch->ecc_buf, sizeof(r));
++
++	/*
++	 * split each 32-bit word into 4 polynomials of weight 8 as follows:
++	 *
++	 * 31 ...24  23 ...16  15 ... 8  7 ... 0
++	 * xxxxxxxx  yyyyyyyy  zzzzzzzz  tttttttt
++	 *                               tttttttt  mod g = r0 (precomputed)
++	 *                     zzzzzzzz  00000000  mod g = r1 (precomputed)
++	 *           yyyyyyyy  00000000  00000000  mod g = r2 (precomputed)
++	 * xxxxxxxx  00000000  00000000  00000000  mod g = r3 (precomputed)
++	 * xxxxxxxx  yyyyyyyy  zzzzzzzz  tttttttt  mod g = r0^r1^r2^r3
++	 */
++	while (mlen--) {
++		/* input data is read in big-endian format */
++		/*TODO: big little endian*/
++		/*w = r[0]^cpu_to_be32(*pdata++);*/
++		/*w = r[0]^(uint32_t)(*pdata++);*/
++		w = r[0]^swap_data(*pdata++);
++		p0 = tab0 + (l+1)*((w >>  0) & 0xff);
++		p1 = tab1 + (l+1)*((w >>  8) & 0xff);
++		p2 = tab2 + (l+1)*((w >> 16) & 0xff);
++		p3 = tab3 + (l+1)*((w >> 24) & 0xff);
++
++		for (i = 0; i < l; i++)
++			r[i] = r[i+1]^p0[i]^p1[i]^p2[i]^p3[i];
++
++		r[l] = p0[l]^p1[l]^p2[l]^p3[l];
++	}
++	memcpy(bch->ecc_buf, r, sizeof(r));
++
++	/* process last unaligned bytes */
++	if (len)
++		encode_bch_unaligned(bch, data, len, bch->ecc_buf);
++
++	/* store ecc parity bytes into original parity buffer */
++	if (ecc)
++		store_ecc8(bch, ecc, bch->ecc_buf);
++}
++
++static inline int modulo(struct bch_control *bch, unsigned int v)
++{
++	const unsigned int n = GF_N(bch);
++	while (v >= n) {
++		v -= n;
++		v = (v & n) + (v >> GF_M(bch));
++	}
++	return v;
++}
++
++static inline int fls(int x)
++{
++    int r = 32;
++
++    if (!x)
++        return 0;
++    if (!(x & 0xffff0000u)) {
++        x <<= 16;
++        r -= 16;
++    }
++    if (!(x & 0xff000000u)) {
++        x <<= 8;
++        r -= 8;
++    }
++    if (!(x & 0xf0000000u)) {
++        x <<= 4;
++        r -= 4;
++    }
++    if (!(x & 0xc0000000u)) {
++        x <<= 2;
++        r -= 2;
++    }
++    if (!(x & 0x80000000u)) {
++        x <<= 1;
++        r -= 1;
++    }
++    return r;
++}
++
++/*
++static inline int fls(int x)
++{
++	int r;
++	asm("bsrl %1,%0\n\t"
++		"jnz 1f\n\t"
++		"movl $-1,%0\n"
++		"1:" : "=r" (r) : "rm" (x));
++
++	return r+1;
++} */
++/*
++ * shorter and faster modulo function, only works when v < 2N.
++ */
++static inline int mod_s(struct bch_control *bch, unsigned int v)
++{
++	const unsigned int n = GF_N(bch);
++	return (v < n) ? v : v-n;
++}
++
++static inline int deg(unsigned int poly)
++{
++	/* polynomial degree is the most-significant bit index */
++	return fls(poly)-1;
++}
++
++static inline int parity(unsigned int x)
++{
++	/*
++	 * public domain code snippet, lifted from
++	 * http://www-graphics.stanford.edu/~seander/bithacks.html
++	 */
++	x ^= x >> 1;
++	x ^= x >> 2;
++	x = (x & 0x11111111U) * 0x11111111U;
++	return (x >> 28) & 1;
++}
++
++/* Galois field basic operations: multiply, divide, inverse, etc. */
++
++static inline unsigned int gf_mul(struct bch_control *bch, unsigned int a,
++				  unsigned int b)
++{
++	return (a && b) ? bch->a_pow_tab[mod_s(bch, bch->a_log_tab[a]+
++					       bch->a_log_tab[b])] : 0;
++}
++
++static inline unsigned int gf_sqr(struct bch_control *bch, unsigned int a)
++{
++	return a ? bch->a_pow_tab[mod_s(bch, 2*bch->a_log_tab[a])] : 0;
++}
++
++static inline unsigned int gf_div(struct bch_control *bch, unsigned int a,
++				  unsigned int b)
++{
++	return a ? bch->a_pow_tab[mod_s(bch, bch->a_log_tab[a]+
++					GF_N(bch)-bch->a_log_tab[b])] : 0;
++}
++
++static inline unsigned int gf_inv(struct bch_control *bch, unsigned int a)
++{
++	return bch->a_pow_tab[GF_N(bch)-bch->a_log_tab[a]];
++}
++
++static inline unsigned int a_pow(struct bch_control *bch, int i)
++{
++	return bch->a_pow_tab[modulo(bch, i)];
++}
++
++static inline int a_log(struct bch_control *bch, unsigned int x)
++{
++	return bch->a_log_tab[x];
++}
++
++static inline int a_ilog(struct bch_control *bch, unsigned int x)
++{
++	return mod_s(bch, GF_N(bch)-bch->a_log_tab[x]);
++}
++
++/*
++ * compute 2t syndromes of ecc polynomial, i.e. ecc(a^j) for j=1..2t
++ */
++static void compute_syndromes(struct bch_control *bch, uint32_t *ecc,
++			      unsigned int *syn)
++{
++	int i, j, s;
++	unsigned int m;
++	uint32_t poly;
++	const int t = GF_T(bch);
++
++	s = bch->ecc_bits;
++
++	/* make sure extra bits in last ecc word are cleared */
++	m = ((unsigned int)s) & 31;
++	if (m)
++		ecc[s/32] &= ~((1u << (32-m))-1);
++	memset(syn, 0, 2*t*sizeof(*syn));
++
++	/* compute v(a^j) for j=1 .. 2t-1 */
++	do {
++		poly = *ecc++;
++		s -= 32;
++		while (poly) {
++			i = deg(poly);
++			for (j = 0; j < 2*t; j += 2)
++				syn[j] ^= a_pow(bch, (j+1)*(i+s));
++
++			poly ^= (1 << i);
++		}
++	} while (s > 0);
++
++	/* v(a^(2j)) = v(a^j)^2 */
++	for (j = 0; j < t; j++)
++		syn[2*j+1] = gf_sqr(bch, syn[j]);
++}
++
++static void gf_poly_copy(struct gf_poly *dst, struct gf_poly *src)
++{
++	memcpy(dst, src, GF_POLY_SZ(src->deg));
++}
++
++static int compute_error_locator_polynomial(struct bch_control *bch,
++					    const unsigned int *syn)
++{
++	const unsigned int t = GF_T(bch);
++	const unsigned int n = GF_N(bch);
++	unsigned int i, j, tmp, l, pd = 1, d = syn[0];
++	struct gf_poly *elp = bch->elp;
++	struct gf_poly *pelp = bch->poly_2t[0];
++	struct gf_poly *elp_copy = bch->poly_2t[1];
++	int k, pp = -1;
++
++	memset(pelp, 0, GF_POLY_SZ(2*t));
++	memset(elp, 0, GF_POLY_SZ(2*t));
++
++	pelp->deg = 0;
++	pelp->c[0] = 1;
++	elp->deg = 0;
++	elp->c[0] = 1;
++
++	/* use simplified binary Berlekamp-Massey algorithm */
++	for (i = 0; (i < t) && (elp->deg <= t); i++) {
++		if (d) {
++			k = 2*i-pp;
++			gf_poly_copy(elp_copy, elp);
++			/* e[i+1](X) = e[i](X)+di*dp^-1*X^2(i-p)*e[p](X) */
++			tmp = a_log(bch, d)+n-a_log(bch, pd);
++			for (j = 0; j <= pelp->deg; j++) {
++				if (pelp->c[j]) {
++					l = a_log(bch, pelp->c[j]);
++					elp->c[j+k] ^= a_pow(bch, tmp+l);
++				}
++			}
++			/* compute l[i+1] = max(l[i]->c[l[p]+2*(i-p]) */
++			tmp = pelp->deg+k;
++			if (tmp > elp->deg) {
++				elp->deg = tmp;
++				gf_poly_copy(pelp, elp_copy);
++				pd = d;
++				pp = 2*i;
++			}
++		}
++		/* di+1 = S(2i+3)+elp[i+1].1*S(2i+2)+...+elp[i+1].lS(2i+3-l) */
++		if (i < t-1) {
++			d = syn[2*i+2];
++			for (j = 1; j <= elp->deg; j++)
++				d ^= gf_mul(bch, elp->c[j], syn[2*i+2-j]);
++		}
++	}
++	return (elp->deg > t) ? -1 : (int)elp->deg;
++}
++
++/*
++ * solve a m x m linear system in GF(2) with an expected number of solutions,
++ * and return the number of found solutions
++ */
++static int solve_linear_system(struct bch_control *bch, unsigned int *rows,
++			       unsigned int *sol, int nsol)
++{
++	const int m = GF_M(bch);
++	unsigned int tmp, mask;
++	int rem, c, r, p, k, param[m];
++
++	k = 0;
++	mask = 1 << m;
++
++	/* Gaussian elimination */
++	for (c = 0; c < m; c++) {
++		rem = 0;
++		p = c-k;
++		/* find suitable row for elimination */
++		for (r = p; r < m; r++) {
++			if (rows[r] & mask) {
++				if (r != p) {
++					tmp = rows[r];
++					rows[r] = rows[p];
++					rows[p] = tmp;
++				}
++				rem = r+1;
++				break;
++			}
++		}
++		if (rem) {
++			/* perform elimination on remaining rows */
++			tmp = rows[p];
++			for (r = rem; r < m; r++) {
++				if (rows[r] & mask)
++					rows[r] ^= tmp;
++			}
++		} else {
++			/* elimination not needed, store defective row index */
++			param[k++] = c;
++		}
++		mask >>= 1;
++	}
++	/* rewrite system, inserting fake parameter rows */
++	if (k > 0) {
++		p = k;
++		for (r = m-1; r >= 0; r--) {
++			if ((r > m-1-k) && rows[r])
++				/* system has no solution */
++				return 0;
++
++			rows[r] = (p && (r == param[p-1])) ?
++				p--, 1u << (m-r) : rows[r-p];
++		}
++	}
++
++	if (nsol != (1 << k))
++		/* unexpected number of solutions */
++		return 0;
++
++	for (p = 0; p < nsol; p++) {
++		/* set parameters for p-th solution */
++		for (c = 0; c < k; c++)
++			rows[param[c]] = (rows[param[c]] & ~1)|((p >> c) & 1);
++
++		/* compute unique solution */
++		tmp = 0;
++		for (r = m-1; r >= 0; r--) {
++			mask = rows[r] & (tmp|1);
++			tmp |= parity(mask) << (m-r);
++		}
++		sol[p] = tmp >> 1;
++	}
++	return nsol;
++}
++
++/*
++ * this function builds and solves a linear system for finding roots of a degree
++ * 4 affine monic polynomial X^4+aX^2+bX+c over GF(2^m).
++ */
++static int find_affine4_roots(struct bch_control *bch, unsigned int a,
++			      unsigned int b, unsigned int c,
++			      unsigned int *roots)
++{
++	int i, j, k;
++	const int m = GF_M(bch);
++	unsigned int mask = 0xff, t, rows[16] = {0,};
++
++	j = a_log(bch, b);
++	k = a_log(bch, a);
++	rows[0] = c;
++
++	/* buid linear system to solve X^4+aX^2+bX+c = 0 */
++	for (i = 0; i < m; i++) {
++		rows[i+1] = bch->a_pow_tab[4*i]^
++			(a ? bch->a_pow_tab[mod_s(bch, k)] : 0)^
++			(b ? bch->a_pow_tab[mod_s(bch, j)] : 0);
++		j++;
++		k += 2;
++	}
++	/*
++	 * transpose 16x16 matrix before passing it to linear solver
++	 * warning: this code assumes m < 16
++	 */
++	for (j = 8; j != 0; j >>= 1, mask ^= (mask << j)) {
++		for (k = 0; k < 16; k = (k+j+1) & ~j) {
++			t = ((rows[k] >> j)^rows[k+j]) & mask;
++			rows[k] ^= (t << j);
++			rows[k+j] ^= t;
++		}
++	}
++	return solve_linear_system(bch, rows, roots, 4);
++}
++
++/*
++ * compute root r of a degree 1 polynomial over GF(2^m) (returned as log(1/r))
++ */
++static int find_poly_deg1_roots(struct bch_control *bch, struct gf_poly *poly,
++				unsigned int *roots)
++{
++	int n = 0;
++
++	if (poly->c[0])
++		/* poly[X] = bX+c with c!=0, root=c/b */
++		roots[n++] = mod_s(bch, GF_N(bch)-bch->a_log_tab[poly->c[0]]+
++				   bch->a_log_tab[poly->c[1]]);
++	return n;
++}
++
++/*
++ * compute roots of a degree 2 polynomial over GF(2^m)
++ */
++static int find_poly_deg2_roots(struct bch_control *bch, struct gf_poly *poly,
++				unsigned int *roots)
++{
++	int n = 0, i, l0, l1, l2;
++	unsigned int u, v, r;
++
++	if (poly->c[0] && poly->c[1]) {
++
++		l0 = bch->a_log_tab[poly->c[0]];
++		l1 = bch->a_log_tab[poly->c[1]];
++		l2 = bch->a_log_tab[poly->c[2]];
++
++		/* using z=a/bX, transform aX^2+bX+c into z^2+z+u (u=ac/b^2) */
++		u = a_pow(bch, l0+l2+2*(GF_N(bch)-l1));
++		/*
++		 * let u = sum(li.a^i) i=0..m-1; then compute r = sum(li.xi):
++		 * r^2+r = sum(li.(xi^2+xi)) = sum(li.(a^i+Tr(a^i).a^k)) =
++		 * u + sum(li.Tr(a^i).a^k) = u+a^k.Tr(sum(li.a^i)) = u+a^k.Tr(u)
++		 * i.e. r and r+1 are roots iff Tr(u)=0
++		 */
++		r = 0;
++		v = u;
++		while (v) {
++			i = deg(v);
++			r ^= bch->xi_tab[i];
++			v ^= (1 << i);
++		}
++		/* verify root */
++		if ((gf_sqr(bch, r)^r) == u) {
++			/* reverse z=a/bX transformation and compute log(1/r) */
++			roots[n++] = modulo(bch, 2*GF_N(bch)-l1-
++					    bch->a_log_tab[r]+l2);
++			roots[n++] = modulo(bch, 2*GF_N(bch)-l1-
++					    bch->a_log_tab[r^1]+l2);
++		}
++	}
++	return n;
++}
++
++/*
++ * compute roots of a degree 3 polynomial over GF(2^m)
++ */
++static int find_poly_deg3_roots(struct bch_control *bch, struct gf_poly *poly,
++				unsigned int *roots)
++{
++	int i, n = 0;
++	unsigned int a, b, c, a2, b2, c2, e3, tmp[4];
++
++	if (poly->c[0]) {
++		/* transform polynomial into monic X^3 + a2X^2 + b2X + c2 */
++		e3 = poly->c[3];
++		c2 = gf_div(bch, poly->c[0], e3);
++		b2 = gf_div(bch, poly->c[1], e3);
++		a2 = gf_div(bch, poly->c[2], e3);
++
++		/* (X+a2)(X^3+a2X^2+b2X+c2) = X^4+aX^2+bX+c (affine) */
++		c = gf_mul(bch, a2, c2);           /* c = a2c2      */
++		b = gf_mul(bch, a2, b2)^c2;        /* b = a2b2 + c2 */
++		a = gf_sqr(bch, a2)^b2;            /* a = a2^2 + b2 */
++
++		/* find the 4 roots of this affine polynomial */
++		if (find_affine4_roots(bch, a, b, c, tmp) == 4) {
++			/* remove a2 from final list of roots */
++			for (i = 0; i < 4; i++) {
++				if (tmp[i] != a2)
++					roots[n++] = a_ilog(bch, tmp[i]);
++			}
++		}
++	}
++	return n;
++}
++
++/*
++ * compute roots of a degree 4 polynomial over GF(2^m)
++ */
++static int find_poly_deg4_roots(struct bch_control *bch, struct gf_poly *poly,
++				unsigned int *roots)
++{
++	int i, l, n = 0;
++	unsigned int a, b, c, d, e = 0, f, a2, b2, c2, e4;
++
++	if (poly->c[0] == 0)
++		return 0;
++
++	/* transform polynomial into monic X^4 + aX^3 + bX^2 + cX + d */
++	e4 = poly->c[4];
++	d = gf_div(bch, poly->c[0], e4);
++	c = gf_div(bch, poly->c[1], e4);
++	b = gf_div(bch, poly->c[2], e4);
++	a = gf_div(bch, poly->c[3], e4);
++
++	/* use Y=1/X transformation to get an affine polynomial */
++	if (a) {
++		/* first, eliminate cX by using z=X+e with ae^2+c=0 */
++		if (c) {
++			/* compute e such that e^2 = c/a */
++			f = gf_div(bch, c, a);
++			l = a_log(bch, f);
++			l += (l & 1) ? GF_N(bch) : 0;
++			e = a_pow(bch, l/2);
++			/*
++			 * use transformation z=X+e:
++			 * z^4+e^4 + a(z^3+ez^2+e^2z+e^3) + b(z^2+e^2) +cz+ce+d
++			 * z^4 + az^3 + (ae+b)z^2 + (ae^2+c)z+e^4+be^2+ae^3+ce+d
++			 * z^4 + az^3 + (ae+b)z^2 + e^4+be^2+d
++			 * z^4 + az^3 +     b'z^2 + d'
++			 */
++			d = a_pow(bch, 2*l)^gf_mul(bch, b, f)^d;
++			b = gf_mul(bch, a, e)^b;
++		}
++		/* now, use Y=1/X to get Y^4 + b/dY^2 + a/dY + 1/d */
++		if (d == 0)
++			/* assume all roots have multiplicity 1 */
++			return 0;
++
++		c2 = gf_inv(bch, d);
++		b2 = gf_div(bch, a, d);
++		a2 = gf_div(bch, b, d);
++	} else {
++		/* polynomial is already affine */
++		c2 = d;
++		b2 = c;
++		a2 = b;
++	}
++	/* find the 4 roots of this affine polynomial */
++	if (find_affine4_roots(bch, a2, b2, c2, roots) == 4) {
++		for (i = 0; i < 4; i++) {
++			/* post-process roots (reverse transformations) */
++			f = a ? gf_inv(bch, roots[i]) : roots[i];
++			roots[i] = a_ilog(bch, f^e);
++		}
++		n = 4;
++	}
++	return n;
++}
++
++/*
++ * build monic, log-based representation of a polynomial
++ */
++static void gf_poly_logrep(struct bch_control *bch,
++			   const struct gf_poly *a, int *rep)
++{
++	int i, d = a->deg, l = GF_N(bch)-a_log(bch, a->c[a->deg]);
++
++	/* represent 0 values with -1; warning, rep[d] is not set to 1 */
++	for (i = 0; i < d; i++)
++		rep[i] = a->c[i] ? mod_s(bch, a_log(bch, a->c[i])+l) : -1;
++}
++
++/*
++ * compute polynomial Euclidean division remainder in GF(2^m)[X]
++ */
++static void gf_poly_mod(struct bch_control *bch, struct gf_poly *a,
++			const struct gf_poly *b, int *rep)
++{
++	int la, p, m;
++	unsigned int i, j, *c = a->c;
++	const unsigned int d = b->deg;
++
++	if (a->deg < d)
++		return;
++
++	/* reuse or compute log representation of denominator */
++	if (!rep) {
++		rep = bch->cache;
++		gf_poly_logrep(bch, b, rep);
++	}
++
++	for (j = a->deg; j >= d; j--) {
++		if (c[j]) {
++			la = a_log(bch, c[j]);
++			p = j-d;
++			for (i = 0; i < d; i++, p++) {
++				m = rep[i];
++				if (m >= 0)
++					c[p] ^= bch->a_pow_tab[mod_s(bch,
++								     m+la)];
++			}
++		}
++	}
++	a->deg = d-1;
++	while (!c[a->deg] && a->deg)
++		a->deg--;
++}
++
++/*
++ * compute polynomial Euclidean division quotient in GF(2^m)[X]
++ */
++static void gf_poly_div(struct bch_control *bch, struct gf_poly *a,
++			const struct gf_poly *b, struct gf_poly *q)
++{
++	if (a->deg >= b->deg) {
++		q->deg = a->deg-b->deg;
++		/* compute a mod b (modifies a) */
++		gf_poly_mod(bch, a, b, NULL);
++		/* quotient is stored in upper part of polynomial a */
++		memcpy(q->c, &a->c[b->deg], (1+q->deg)*sizeof(unsigned int));
++	} else {
++		q->deg = 0;
++		q->c[0] = 0;
++	}
++}
++
++/*
++ * compute polynomial GCD (Greatest Common Divisor) in GF(2^m)[X]
++ */
++static struct gf_poly *gf_poly_gcd(struct bch_control *bch, struct gf_poly *a,
++				   struct gf_poly *b)
++{
++	struct gf_poly *tmp;
++
++	if (a->deg < b->deg) {
++		tmp = b;
++		b = a;
++		a = tmp;
++	}
++
++	while (b->deg > 0) {
++		gf_poly_mod(bch, a, b, NULL);
++		tmp = b;
++		b = a;
++		a = tmp;
++	}
++
++	return a;
++}
++
++/*
++ * Given a polynomial f and an integer k, compute Tr(a^kX) mod f
++ * This is used in Berlekamp Trace algorithm for splitting polynomials
++ */
++static void compute_trace_bk_mod(struct bch_control *bch, int k,
++				 const struct gf_poly *f, struct gf_poly *z,
++				 struct gf_poly *out)
++{
++	const int m = GF_M(bch);
++	int i, j;
++
++	/* z contains z^2j mod f */
++	z->deg = 1;
++	z->c[0] = 0;
++	z->c[1] = bch->a_pow_tab[k];
++
++	out->deg = 0;
++	memset(out, 0, GF_POLY_SZ(f->deg));
++
++	/* compute f log representation only once */
++	gf_poly_logrep(bch, f, bch->cache);
++
++	for (i = 0; i < m; i++) {
++		/* add a^(k*2^i)(z^(2^i) mod f) and compute (z^(2^i) mod f)^2 */
++		for (j = z->deg; j >= 0; j--) {
++			out->c[j] ^= z->c[j];
++			z->c[2*j] = gf_sqr(bch, z->c[j]);
++			z->c[2*j+1] = 0;
++		}
++		if (z->deg > out->deg)
++			out->deg = z->deg;
++
++		if (i < m-1) {
++			z->deg *= 2;
++			/* z^(2(i+1)) mod f = (z^(2^i) mod f)^2 mod f */
++			gf_poly_mod(bch, z, f, bch->cache);
++		}
++	}
++	while (!out->c[out->deg] && out->deg)
++		out->deg--;
++}
++
++/*
++ * factor a polynomial using Berlekamp Trace algorithm (BTA)
++ */
++static void factor_polynomial(struct bch_control *bch, int k, struct gf_poly *f,
++			      struct gf_poly **g, struct gf_poly **h)
++{
++	struct gf_poly *f2 = bch->poly_2t[0];
++	struct gf_poly *q  = bch->poly_2t[1];
++	struct gf_poly *tk = bch->poly_2t[2];
++	struct gf_poly *z  = bch->poly_2t[3];
++	struct gf_poly *gcd;
++
++	*g = f;
++	*h = NULL;
++
++	/* tk = Tr(a^k.X) mod f */
++	compute_trace_bk_mod(bch, k, f, z, tk);
++
++	if (tk->deg > 0) {
++		/* compute g = gcd(f, tk) (destructive operation) */
++		gf_poly_copy(f2, f);
++		gcd = gf_poly_gcd(bch, f2, tk);
++		if (gcd->deg < f->deg) {
++			/* compute h=f/gcd(f,tk); this will modify f and q */
++			gf_poly_div(bch, f, gcd, q);
++			/* store g and h in-place (clobbering f) */
++			*h = &((struct gf_poly_deg1 *)f)[gcd->deg].poly;
++			gf_poly_copy(*g, gcd);
++			gf_poly_copy(*h, q);
++		}
++	}
++}
++
++/*
++ * find roots of a polynomial, using BTZ algorithm; see the beginning of this
++ * file for details
++ */
++static int find_poly_roots(struct bch_control *bch, unsigned int k,
++			   struct gf_poly *poly, unsigned int *roots)
++{
++	int cnt;
++	struct gf_poly *f1, *f2;
++
++	switch (poly->deg) {
++		/* handle low degree polynomials with ad hoc techniques */
++	case 1:
++		cnt = find_poly_deg1_roots(bch, poly, roots);
++		break;
++	case 2:
++		cnt = find_poly_deg2_roots(bch, poly, roots);
++		break;
++	case 3:
++		cnt = find_poly_deg3_roots(bch, poly, roots);
++		break;
++	case 4:
++		cnt = find_poly_deg4_roots(bch, poly, roots);
++		break;
++	default:
++		/* factor polynomial using Berlekamp Trace Algorithm (BTA) */
++		cnt = 0;
++		if (poly->deg && (k <= GF_M(bch))) {
++			factor_polynomial(bch, k, poly, &f1, &f2);
++			if (f1)
++				cnt += find_poly_roots(bch, k+1, f1, roots);
++			if (f2)
++				cnt += find_poly_roots(bch, k+1, f2, roots+cnt);
++		}
++		break;
++	}
++	return cnt;
++}
++
++#if defined(USE_CHIEN_SEARCH)
++/*
++ * exhaustive root search (Chien) implementation - not used, included only for
++ * reference/comparison tests
++ */
++static int chien_search(struct bch_control *bch, unsigned int len,
++			struct gf_poly *p, unsigned int *roots)
++{
++	int m;
++	unsigned int i, j, syn, syn0, count = 0;
++	const unsigned int k = 8*len+bch->ecc_bits;
++
++	/* use a log-based representation of polynomial */
++	gf_poly_logrep(bch, p, bch->cache);
++	bch->cache[p->deg] = 0;
++	syn0 = gf_div(bch, p->c[0], p->c[p->deg]);
++
++	for (i = GF_N(bch)-k+1; i <= GF_N(bch); i++) {
++		/* compute elp(a^i) */
++		for (j = 1, syn = syn0; j <= p->deg; j++) {
++			m = bch->cache[j];
++			if (m >= 0)
++				syn ^= a_pow(bch, m+j*i);
++		}
++		if (syn == 0) {
++			roots[count++] = GF_N(bch)-i;
++			if (count == p->deg)
++				break;
++		}
++	}
++	return (count == p->deg) ? count : 0;
++}
++#define find_poly_roots(_p, _k, _elp, _loc) chien_search(_p, len, _elp, _loc)
++#endif /* USE_CHIEN_SEARCH */
++
++/**
++ * decode_bch - decode received codeword and find bit error locations
++ * @bch:      BCH control structure
++ * @data:     received data, ignored if @calc_ecc is provided
++ * @len:      data length in bytes, must always be provided
++ * @recv_ecc: received ecc, if NULL then assume it was XORed in @calc_ecc
++ * @calc_ecc: calculated ecc, if NULL then calc_ecc is computed from @data
++ * @syn:      hw computed syndrome data (if NULL, syndrome is calculated)
++ * @errloc:   output array of error locations
++ *
++ * Returns:
++ *  The number of errors found, or -EBADMSG if decoding failed, or -EINVAL if
++ *  invalid parameters were provided
++ *
++ * Depending on the available hw BCH support and the need to compute @calc_ecc
++ * separately (using encode_bch()), this function should be called with one of
++ * the following parameter configurations -
++ *
++ * by providing @data and @recv_ecc only:
++ *   decode_bch(@bch, @data, @len, @recv_ecc, NULL, NULL, @errloc)
++ *
++ * by providing @recv_ecc and @calc_ecc:
++ *   decode_bch(@bch, NULL, @len, @recv_ecc, @calc_ecc, NULL, @errloc)
++ *
++ * by providing ecc = recv_ecc XOR calc_ecc:
++ *   decode_bch(@bch, NULL, @len, NULL, ecc, NULL, @errloc)
++ *
++ * by providing syndrome results @syn:
++ *   decode_bch(@bch, NULL, @len, NULL, NULL, @syn, @errloc)
++ *
++ * Once decode_bch() has successfully returned with a positive value, error
++ * locations returned in array @errloc should be interpreted as follows -
++ *
++ * if (errloc[n] >= 8*len), then n-th error is located in ecc (no need for
++ * data correction)
++ *
++ * if (errloc[n] < 8*len), then n-th error is located in data and can be
++ * corrected with statement data[errloc[n]/8] ^= 1 << (errloc[n] % 8);
++ *
++ * Note that this function does not perform any data correction by itself, it
++ * merely indicates error locations.
++ */
++int decode_bch(struct bch_control *bch, const uint8_t *data, unsigned int len,
++	       const uint8_t *recv_ecc, const uint8_t *calc_ecc,
++	       const unsigned int *syn, unsigned int *errloc)
++{
++	const unsigned int ecc_words = BCH_ECC_WORDS(bch);
++	unsigned int nbits;
++	int i, err, nroots;
++	uint32_t sum;
++
++	/* sanity check: make sure data length can be handled */
++	if (8*len > (bch->n-bch->ecc_bits))
++		return -EINVAL;
++
++	/* if caller does not provide syndromes, compute them */
++	if (!syn) {
++		if (!calc_ecc) {
++			/* compute received data ecc into an internal buffer */
++			if (!data || !recv_ecc)
++				return -EINVAL;
++			encode_bch(bch, data, len, NULL);
++		} else {
++			/* load provided calculated ecc */
++			load_ecc8(bch, bch->ecc_buf, calc_ecc);
++		}
++		/* load received ecc or assume it was XORed in calc_ecc */
++		if (recv_ecc) {
++			load_ecc8(bch, bch->ecc_buf2, recv_ecc);
++			/* XOR received and calculated ecc */
++			for (i = 0, sum = 0; i < (int)ecc_words; i++) {
++				bch->ecc_buf[i] ^= bch->ecc_buf2[i];
++				sum |= bch->ecc_buf[i];
++			}
++			if (!sum)
++				/* no error found */
++				return 0;
++		}
++		compute_syndromes(bch, bch->ecc_buf, bch->syn);
++		syn = bch->syn;
++	}
++
++	err = compute_error_locator_polynomial(bch, syn);
++	if (err > 0) {
++		nroots = find_poly_roots(bch, 1, bch->elp, errloc);
++		if (err != nroots)
++			err = -1;
++	}
++	if (err > 0) {
++		/* post-process raw error locations for easier correction */
++		nbits = (len*8)+bch->ecc_bits;
++		for (i = 0; i < err; i++) {
++			if (errloc[i] >= nbits) {
++				err = -1;
++				break;
++			}
++			errloc[i] = nbits-1-errloc[i];
++			errloc[i] = (errloc[i] & ~7)|(7-(errloc[i] & 7));
++		}
++	}
++	return (err >= 0) ? err : -EBADMSG;
++}
++
++/*
++ * generate Galois field lookup tables
++ */
++static int build_gf_tables(struct bch_control *bch, unsigned int poly)
++{
++	unsigned int i, x = 1;
++	const unsigned int k = 1 << deg(poly);
++
++	/* primitive polynomial must be of degree m */
++	if (k != (1u << GF_M(bch)))
++		return -1;
++
++	for (i = 0; i < GF_N(bch); i++) {
++		bch->a_pow_tab[i] = x;
++		bch->a_log_tab[x] = i;
++		if (i && (x == 1))
++			/* polynomial is not primitive (a^i=1 with 0<i<2^m-1) */
++			return -1;
++		x <<= 1;
++		if (x & k)
++			x ^= poly;
++	}
++	bch->a_pow_tab[GF_N(bch)] = 1;
++	bch->a_log_tab[0] = 0;
++
++	return 0;
++}
++
++/*
++ * compute generator polynomial remainder tables for fast encoding
++ */
++static void build_mod8_tables(struct bch_control *bch, const uint32_t *g)
++{
++	int i, j, b, d;
++	uint32_t data, hi, lo, *tab;
++	const int l = BCH_ECC_WORDS(bch);
++	const int plen = DIV_ROUND_UP(bch->ecc_bits+1, 32);
++	const int ecclen = DIV_ROUND_UP(bch->ecc_bits, 32);
++
++	memset(bch->mod8_tab, 0, 4*256*l*sizeof(*bch->mod8_tab));
++
++	for (i = 0; i < 256; i++) {
++		/* p(X)=i is a small polynomial of weight <= 8 */
++		for (b = 0; b < 4; b++) {
++			/* we want to compute (p(X).X^(8*b+deg(g))) mod g(X) */
++			tab = bch->mod8_tab + (b*256+i)*l;
++			data = i << (8*b);
++			while (data) {
++				d = deg(data);
++				/* subtract X^d.g(X) from p(X).X^(8*b+deg(g)) */
++				data ^= g[0] >> (31-d);
++				for (j = 0; j < ecclen; j++) {
++					hi = (d < 31) ? g[j] << (d+1) : 0;
++					lo = (j+1 < plen) ?
++						g[j+1] >> (31-d) : 0;
++					tab[j] ^= hi|lo;
++				}
++			}
++		}
++	}
++}
++
++/*
++ * build a base for factoring degree 2 polynomials
++ */
++static int build_deg2_base(struct bch_control *bch)
++{
++	const int m = GF_M(bch);
++	int i, j, r;
++	unsigned int sum, x, y, remaining, ak = 0, xi[m];
++
++	/* find k s.t. Tr(a^k) = 1 and 0 <= k < m */
++	for (i = 0; i < m; i++) {
++		for (j = 0, sum = 0; j < m; j++)
++			sum ^= a_pow(bch, i*(1 << j));
++
++		if (sum) {
++			ak = bch->a_pow_tab[i];
++			break;
++		}
++	}
++	/* find xi, i=0..m-1 such that xi^2+xi = a^i+Tr(a^i).a^k */
++	remaining = m;
++	memset(xi, 0, sizeof(xi));
++
++	for (x = 0; (x <= GF_N(bch)) && remaining; x++) {
++		y = gf_sqr(bch, x)^x;
++		for (i = 0; i < 2; i++) {
++			r = a_log(bch, y);
++			if (y && (r < m) && !xi[r]) {
++				bch->xi_tab[r] = x;
++				xi[r] = 1;
++				remaining--;
++				break;
++			}
++			y ^= ak;
++		}
++	}
++	/* should not happen but check anyway */
++	return remaining ? -1 : 0;
++}
++
++static void *bch_alloc(size_t size, int *err)
++{
++	void *ptr;
++
++	ptr = malloc(size);
++	if (ptr == NULL)
++		*err = 1;
++	return ptr;
++}
++
++/*
++ * compute generator polynomial for given (m,t) parameters.
++ */
++static uint32_t *compute_generator_polynomial(struct bch_control *bch)
++{
++	const unsigned int m = GF_M(bch);
++	const unsigned int t = GF_T(bch);
++	int n, err = 0;
++	unsigned int i, j, nbits, r, word, *roots;
++	struct gf_poly *g;
++	uint32_t *genpoly;
++
++	g = bch_alloc(GF_POLY_SZ(m*t), &err);
++	roots = bch_alloc((bch->n+1)*sizeof(*roots), &err);
++	genpoly = bch_alloc(DIV_ROUND_UP(m*t+1, 32)*sizeof(*genpoly), &err);
++
++	if (err) {
++		free(genpoly);
++		genpoly = NULL;
++		goto finish;
++	}
++
++	/* enumerate all roots of g(X) */
++	memset(roots , 0, (bch->n+1)*sizeof(*roots));
++	for (i = 0; i < t; i++) {
++		for (j = 0, r = 2*i+1; j < m; j++) {
++			roots[r] = 1;
++			r = mod_s(bch, 2*r);
++		}
++	}
++	/* build generator polynomial g(X) */
++	g->deg = 0;
++	g->c[0] = 1;
++	for (i = 0; i < GF_N(bch); i++) {
++		if (roots[i]) {
++			/* multiply g(X) by (X+root) */
++			r = bch->a_pow_tab[i];
++			g->c[g->deg+1] = 1;
++			for (j = g->deg; j > 0; j--)
++				g->c[j] = gf_mul(bch, g->c[j], r)^g->c[j-1];
++
++			g->c[0] = gf_mul(bch, g->c[0], r);
++			g->deg++;
++		}
++	}
++	/* store left-justified binary representation of g(X) */
++	n = g->deg+1;
++	i = 0;
++	while (n > 0) {
++		nbits = (n > 32) ? 32 : n;
++		for (j = 0, word = 0; j < nbits; j++) {
++			if (g->c[n-1-j])
++				word |= 1u << (31-j);
++		}
++		genpoly[i++] = word;
++		n -= nbits;
++	}
++
++	bch->ecc_bits = g->deg;
++
++finish:
++	free(g);
++	free(roots);
++
++	return genpoly;
++}
++
++/**
++ * init_bch - initialize a BCH encoder/decoder
++ * @m:          Galois field order, should be in the range 5-15
++ * @t:          maximum error correction capability, in bits
++ * @prim_poly:  user-provided primitive polynomial (or 0 to use default)
++ *
++ * Returns:
++ *  a newly allocated BCH control structure if successful, NULL otherwise
++ *
++ * This initialization can take some time, as lookup tables are built for fast
++ * encoding/decoding; make sure not to call this function from a time critical
++ * path. Usually, init_bch() should be called on module/driver init and
++ * free_bch() should be called to release memory on exit.
++ *
++ * You may provide your own primitive polynomial of degree @m in argument
++ * @prim_poly, or let init_bch() use its default polynomial.
++ *
++ * Once init_bch() has successfully returned a pointer to a newly allocated
++ * BCH control structure, ecc length in bytes is given by member @ecc_bytes of
++ * the structure.
++ */
++struct bch_control *init_bch(int m, int t, unsigned int prim_poly)
++{
++	int err = 0;
++	unsigned int i, words;
++	uint32_t *genpoly;
++	struct bch_control *bch = NULL;
++
++	const int min_m = 5;
++	const int max_m = 15;
++
++	/* default primitive polynomials */
++	static const unsigned int prim_poly_tab[] = {
++		0x25, 0x43, 0x83, 0x11d, 0x211, 0x409, 0x805, 0x1053, 0x201b,
++		0x402b, 0x8003,
++	};
++
++#if defined(CONFIG_BCH_CONST_PARAMS)
++	if ((m != (CONFIG_BCH_CONST_M)) || (t != (CONFIG_BCH_CONST_T))) {
++		printk(KERN_ERR "bch encoder/decoder was configured to support "
++		       "parameters m=%d, t=%d only!\n",
++		       CONFIG_BCH_CONST_M, CONFIG_BCH_CONST_T);
++		goto fail;
++	}
++#endif
++	if ((m < min_m) || (m > max_m))
++		/*
++		 * values of m greater than 15 are not currently supported;
++		 * supporting m > 15 would require changing table base type
++		 * (uint16_t) and a small patch in matrix transposition
++		 */
++		goto fail;
++
++	/* sanity checks */
++	if ((t < 1) || (m*t >= ((1 << m)-1)))
++		/* invalid t value */
++		goto fail;
++
++	/* select a primitive polynomial for generating GF(2^m) */
++	if (prim_poly == 0)
++		prim_poly = prim_poly_tab[m-min_m];
++
++	bch = malloc(sizeof(*bch));
++	if (bch == NULL)
++		goto fail;
++
++	bch->m = m;
++	bch->t = t;
++	bch->n = (1 << m)-1;
++	words  = DIV_ROUND_UP(m*t, 32);
++	bch->ecc_bytes = DIV_ROUND_UP(m*t, 8);
++	bch->a_pow_tab = bch_alloc((1+bch->n)*sizeof(*bch->a_pow_tab), &err);
++	bch->a_log_tab = bch_alloc((1+bch->n)*sizeof(*bch->a_log_tab), &err);
++	bch->mod8_tab  = bch_alloc(words*1024*sizeof(*bch->mod8_tab), &err);
++	bch->ecc_buf   = bch_alloc(words*sizeof(*bch->ecc_buf), &err);
++	bch->ecc_buf2  = bch_alloc(words*sizeof(*bch->ecc_buf2), &err);
++	bch->xi_tab    = bch_alloc(m*sizeof(*bch->xi_tab), &err);
++	bch->syn       = bch_alloc(2*t*sizeof(*bch->syn), &err);
++	bch->cache     = bch_alloc(2*t*sizeof(*bch->cache), &err);
++	bch->elp       = bch_alloc((t+1)*sizeof(struct gf_poly_deg1), &err);
++
++	for (i = 0; i < ARRAY_SIZE(bch->poly_2t); i++)
++		bch->poly_2t[i] = bch_alloc(GF_POLY_SZ(2*t), &err);
++
++	if (err)
++		goto fail;
++
++	err = build_gf_tables(bch, prim_poly);
++	if (err)
++		goto fail;
++
++	/* use generator polynomial for computing encoding tables */
++	genpoly = compute_generator_polynomial(bch);
++	if (genpoly == NULL)
++		goto fail;
++
++	build_mod8_tables(bch, genpoly);
++	free(genpoly);
++
++	err = build_deg2_base(bch);
++	if (err)
++		goto fail;
++
++	return bch;
++
++fail:
++	free_bch(bch);
++	return NULL;
++}
++
++/**
++ *  free_bch - free the BCH control structure
++ *  @bch:    BCH control structure to release
++ */
++void free_bch(struct bch_control *bch)
++{
++	unsigned int i;
++
++	if (bch) {
++		free(bch->a_pow_tab);
++		free(bch->a_log_tab);
++		free(bch->mod8_tab);
++		free(bch->ecc_buf);
++		free(bch->ecc_buf2);
++		free(bch->xi_tab);
++		free(bch->syn);
++		free(bch->cache);
++		free(bch->elp);
++
++		for (i = 0; i < ARRAY_SIZE(bch->poly_2t); i++)
++			free(bch->poly_2t[i]);
++
++		free(bch);
++	}
++}
++
++int encode_bch_ecc_62(void *source_block, size_t source_size,
++				   void *target_block, size_t target_size)
++{
++	int m =  METADATABYTE;
++	int b0 = BLOCK0BYTE;
++	int e0 = BLOCK0ECC;
++	int bn = BLOCKNBYTE;
++	int en = BLOCKNECC;
++	int n  = NUMOFBLOCKN;
++	int gf = FCB_GF;
++
++	struct bch_control *bch;
++	uint8_t *ecc_buf;
++	int ecc_buf_size;
++	uint8_t *tmp_buf;
++	int tmp_buf_size;
++	int real_buf_size;
++	int i, j;
++	int ecc_bit_off;
++	int data_ecc_blk_size;
++	int low_byte_off, low_bit_off;
++	int high_byte_off, high_bit_off;
++	uint8_t byte_low, byte_high;
++
++	/* sanity check */
++	/* nand data block must be large enough for FCB structure */
++	if (source_size > b0 + n * bn)
++		return -EINVAL;
++	/* nand page need to be large enough to contain Meta, FCB and ECC */
++	if (target_size < m + b0 + e0*gf/8 + n*bn + n*en*gf/8)
++		return -EINVAL;
++
++	/* init bch, using default polynomial */
++	bch = init_bch(gf, en, 0);
++	if(!bch)
++		return -EINVAL;
++
++	/* buffer for ecc */
++	ecc_buf_size = (gf * en + 7)/8;
++	ecc_buf = malloc(ecc_buf_size);
++	if(!ecc_buf)
++		return -EINVAL;
++
++	/* temp buffer to store data and ecc */
++	tmp_buf_size = b0 + (e0 * gf + 7)/8 + (bn + (en * gf + 7)/8) * 7;
++	tmp_buf = malloc(tmp_buf_size);
++	if(!tmp_buf)
++		return -EINVAL;
++	memset(tmp_buf, 0, tmp_buf_size);
++
++	/* generate ecc code for each data block and store in temp buffer */
++
++	for (i = 0; i < n+1; i++) {
++		memset(ecc_buf, 0, ecc_buf_size);
++		encode_bch(bch, source_block + i * bn, bn, ecc_buf);
++
++		memcpy(tmp_buf + i * (bn + ecc_buf_size), source_block + i * bn, bn);
++
++		/* reverse ecc bit */
++		for (j = 0; j < ecc_buf_size; j++) {
++			ecc_buf[j] = reverse_bit(ecc_buf[j]);
++		}
++
++		memcpy(tmp_buf + (i+1)*bn + i*ecc_buf_size, ecc_buf, ecc_buf_size);
++	}
++
++	/* store Metadata for taget block with randomizer*/
++	memcpy(target_block, RandData, m);
++	/*memset(target_block, 0, m);*/
++
++	/* shift the bit to combine the source data and ecc */
++	real_buf_size = (b0*8 + gf*e0 + (bn*8 + gf*en)*n)/8;
++	/* bit offset for each ecc block */
++	ecc_bit_off = 8 - (gf * en)%8;
++	/* size of a data block plus ecc block */
++	data_ecc_blk_size = bn +(gf*en+7)/8;
++
++	for (i = 0; i < real_buf_size; i++) {
++		low_bit_off = ((i/data_ecc_blk_size) * ecc_bit_off)%8;
++		low_byte_off = ((i/data_ecc_blk_size) * ecc_bit_off)/8;
++		high_bit_off = (((i+1)/data_ecc_blk_size) * ecc_bit_off)%8;
++		high_byte_off = (((i+1)/data_ecc_blk_size) * ecc_bit_off)/8;
++
++		byte_low = tmp_buf[i+low_byte_off] >> low_bit_off;
++		byte_high = tmp_buf[i+1+high_byte_off] << (8 - high_bit_off);
++
++		*(uint8_t *)(target_block + i + m) = (byte_low | byte_high) ^ RandData[i + m];
++	}
++
++	free(ecc_buf);
++	free(tmp_buf);
++	return 0;
++}
+diff -Naur kobs-ng-1.3.org/src/bch.h kobs-ng-1.3.new/src/bch.h
+--- kobs-ng-1.3.org/src/bch.h	1969-12-31 16:00:00.000000000 -0800
++++ kobs-ng-1.3.new/src/bch.h	2014-10-24 20:35:24.344372832 -0700
+@@ -0,0 +1,100 @@
++/*
++* Copyright (C) 2010-2014 Freescale Semiconductor, Inc. All Rights Reserved.
++*/
++
++/*
++* This program is free software; you can redistribute it and/or modify
++* it under the terms of the GNU General Public License as published by
++* the Free Software Foundation; either version 2 of the License, or
++* (at your option) any later version.
++*
++* This program is distributed in the hope that it will be useful,
++* but WITHOUT ANY WARRANTY; without even the implied warranty of
++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++* GNU General Public License for more details.
++*
++* You should have received a copy of the GNU General Public License along
++* with this program; if not, write to the Free Software Foundation, Inc.,
++* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++*/
++/*
++ * Generic binary BCH encoding/decoding library
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
++ * more details.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program; if not, write to the Free Software Foundation, Inc., 51
++ * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Copyright © 2011 Parrot S.A.
++ *
++ * Author: Ivan Djelic <ivan.djelic@parrot.com>
++ *
++ * Description:
++ *
++ * This library provides runtime configurable encoding/decoding of binary
++ * Bose-Chaudhuri-Hocquenghem (BCH) codes.
++*/
++#ifndef _BCH_H
++#define _BCH_H
++
++//#include <types.h>
++
++/**
++ * struct bch_control - BCH control structure
++ * @m:          Galois field order
++ * @n:          maximum codeword size in bits (= 2^m-1)
++ * @t:          error correction capability in bits
++ * @ecc_bits:   ecc exact size in bits, i.e. generator polynomial degree (<=m*t)
++ * @ecc_bytes:  ecc max size (m*t bits) in bytes
++ * @a_pow_tab:  Galois field GF(2^m) exponentiation lookup table
++ * @a_log_tab:  Galois field GF(2^m) log lookup table
++ * @mod8_tab:   remainder generator polynomial lookup tables
++ * @ecc_buf:    ecc parity words buffer
++ * @ecc_buf2:   ecc parity words buffer
++ * @xi_tab:     GF(2^m) base for solving degree 2 polynomial roots
++ * @syn:        syndrome buffer
++ * @cache:      log-based polynomial representation buffer
++ * @elp:        error locator polynomial
++ * @poly_2t:    temporary polynomials of degree 2t
++ */
++struct bch_control {
++	unsigned int    m;
++	unsigned int    n;
++	unsigned int    t;
++	unsigned int    ecc_bits;
++	unsigned int    ecc_bytes;
++/* private: */
++	uint16_t       *a_pow_tab;
++	uint16_t       *a_log_tab;
++	uint32_t       *mod8_tab;
++	uint32_t       *ecc_buf;
++	uint32_t       *ecc_buf2;
++	unsigned int   *xi_tab;
++	unsigned int   *syn;
++	int            *cache;
++	struct gf_poly *elp;
++	struct gf_poly *poly_2t[4];
++};
++
++struct bch_control *init_bch(int m, int t, unsigned int prim_poly);
++
++void free_bch(struct bch_control *bch);
++
++void encode_bch(struct bch_control *bch, const uint8_t *data,
++		unsigned int len, uint8_t *ecc);
++
++int decode_bch(struct bch_control *bch, const uint8_t *data, unsigned int len,
++	       const uint8_t *recv_ecc, const uint8_t *calc_ecc,
++	       const unsigned int *syn, unsigned int *errloc);
++
++int encode_bch_ecc_62(void *source_block, size_t source_size,
++				   void *target_block, size_t target_size);
++#endif /* _BCH_H */
+diff -Naur kobs-ng-1.3.org/src/BootControlBlocks.h kobs-ng-1.3.new/src/BootControlBlocks.h
+--- kobs-ng-1.3.org/src/BootControlBlocks.h	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/BootControlBlocks.h	2014-10-24 20:35:24.340372832 -0700
+@@ -1,5 +1,5 @@
+ /*
+-* Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
++* Copyright (C) 2010-2014 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+ 
+ /*
+@@ -45,6 +45,8 @@
+ 
+ #define BCB_MAGIC_OFFSET	12
+ 
++#define MAXSEQLEN 183
++
+ //==============================================================================
+ 
+ //! \brief NAND Timing structure for setting up the GPMI timing.
+@@ -247,6 +249,17 @@
+ 	uint32_t	m_u32TMTiming1_BusyTimeout;
+ } FCB_ROM_NAND_TM_Timing_t;
+ 
++typedef struct {
++	uint32_t	m_u32ONFISpeed;
++	uint32_t	m_u32ONFITiming_ReadLatency;
++	uint32_t	m_u32ONFITiming_CEDelay;
++	uint32_t	m_u32ONFITiming_PreambleDelay;
++	uint32_t	m_u32ONFITiming_PostambleDelay;
++	uint32_t	m_u32ONFITiming_CmdAddPause;
++	uint32_t	m_u32ONFITiming_DataPause;
++	uint32_t	m_u32ONFITiming_BusyTimeout;
++} FCB_ROM_NAND_ONFI_Timing_t;
++
+ struct fcb_block {
+ 	FCB_ROM_NAND_Timing_t  m_NANDTiming;             //!< Optimum timing parameters for Tas, Tds, Tdh in nsec.
+ 	uint32_t        m_u32PageDataSize;              //!< 2048 for 2K pages, 4096 for 4K pages.
+@@ -285,6 +298,16 @@
+ 	FCB_ROM_NAND_TM_Timing_t m_NANDTMTiming;
+ 	uint32_t	m_u32DISBBM;	/* the flag to enable (1)/disable(0) bi swap */
+ 	uint32_t	m_u32BBMarkerPhysicalOffsetInSpareData; /* The swap position of main area in spare area */
++
++	uint32_t        m_u32OnfiSyncEnable;            //!< Enable the Onfi nand sync mode support
++	FCB_ROM_NAND_ONFI_Timing_t m_NANDONFITiming;
++	uint32_t        m_u32DISBBSearch;               //!< Disable the badblock search when reading the firmware, only using DBBT.
++
++	uint32_t        m_u32RandomizerEnable;          //!< Enable randomizer support
++	uint32_t        reserved[15];
++	uint32_t        m_u32ReadRetryEnable;           //!< Enable ready retry support
++	uint32_t        m_u32ReadRetrySeqLength;        //!< Read retry sequence length
++	uint32_t        m_u32ReadRetrySeq[MAXSEQLEN];         //!< Read retry sequence length
+ };
+ 
+ //==============================================================================
+diff -Naur kobs-ng-1.3.org/src/main.c kobs-ng-1.3.new/src/main.c
+--- kobs-ng-1.3.org/src/main.c	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/main.c	2014-10-24 20:35:24.344372832 -0700
+@@ -2,7 +2,7 @@
+  *  cb-dump.c - Dump control structures of the NAND
+  *
+  *  Copyright (c) 2008 by Embedded Alley Solution Inc.
+- *  Copyright (C) 2010-2012 Freescale Semiconductor, Inc.
++ *  Copyright (C) 2010-2014 Freescale Semiconductor, Inc.
+  *
+  *   Author: Pantelis Antoniou <pantelis@embeddedalley.com>
+  *
+@@ -562,8 +562,8 @@
+ 	int ret;
+ 	int sz = getpagesize();
+ 
+-	from = open(file_name, O_RDONLY);
+-	to = open(tmp_file, O_CREAT | O_RDWR);
++	from = open(file_name, O_RDONLY, S_IRUSR | S_IWUSR);
++	to = open(tmp_file, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
+ 	if (from < 0 || to < 0) {
+ 		fprintf(stderr, "unable to create a temporary file\n");
+ 		exit(5);
+diff -Naur kobs-ng-1.3.org/src/Makefile.am kobs-ng-1.3.new/src/Makefile.am
+--- kobs-ng-1.3.org/src/Makefile.am	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/Makefile.am	2014-10-24 20:35:24.340372832 -0700
+@@ -3,6 +3,6 @@
+ bin_PROGRAMS=kobs-ng
+ 
+ kobs_ng_SOURCES=main.c mtd.c rom_nand_hamming_code_ecc.c ncb.c bootstream.c sha1.c \
+-		aescrypt.c aeskey.c aestab.c plat_boot_config.c \
++		aescrypt.c aeskey.c aestab.c plat_boot_config.c bch.c \
+ 		rom_nand_hamming_code_ecc.h mtd.h BootControlBlocks.h bootstream.h sha.h \
+-		aes.h aesopt.h plat_boot_config.h
++		aes.h aesopt.h plat_boot_config.h bch.h rand.h
+diff -Naur kobs-ng-1.3.org/src/Makefile.in kobs-ng-1.3.new/src/Makefile.in
+--- kobs-ng-1.3.org/src/Makefile.in	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/Makefile.in	2014-10-24 20:35:24.340372832 -0700
+@@ -49,7 +49,8 @@
+ am_kobs_ng_OBJECTS = main.$(OBJEXT) mtd.$(OBJEXT) \
+ 	rom_nand_hamming_code_ecc.$(OBJEXT) ncb.$(OBJEXT) \
+ 	bootstream.$(OBJEXT) sha1.$(OBJEXT) aescrypt.$(OBJEXT) \
+-	aeskey.$(OBJEXT) aestab.$(OBJEXT) plat_boot_config.$(OBJEXT)
++	aeskey.$(OBJEXT) aestab.$(OBJEXT) plat_boot_config.$(OBJEXT) \
++	bch.$(OBJEXT)
+ kobs_ng_OBJECTS = $(am_kobs_ng_OBJECTS)
+ kobs_ng_LDADD = $(LDADD)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
+@@ -158,9 +159,9 @@
+ top_srcdir = @top_srcdir@
+ INCLUDES = -I$(top_srcdir)/include
+ kobs_ng_SOURCES = main.c mtd.c rom_nand_hamming_code_ecc.c ncb.c bootstream.c sha1.c \
+-		aescrypt.c aeskey.c aestab.c plat_boot_config.c \
++		aescrypt.c aeskey.c aestab.c plat_boot_config.c bch.c\
+ 		rom_nand_hamming_code_ecc.h mtd.h BootControlBlocks.h bootstream.h sha.h \
+-		aes.h aesopt.h plat_boot_config.h
++		aes.h aesopt.h plat_boot_config.h bch.h rand.h
+ 
+ all: all-am
+ 
+@@ -233,7 +234,7 @@
+ 
+ clean-binPROGRAMS:
+ 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+-kobs-ng$(EXEEXT): $(kobs_ng_OBJECTS) $(kobs_ng_DEPENDENCIES) 
++kobs-ng$(EXEEXT): $(kobs_ng_OBJECTS) $(kobs_ng_DEPENDENCIES)
+ 	@rm -f kobs-ng$(EXEEXT)
+ 	$(LINK) $(kobs_ng_OBJECTS) $(kobs_ng_LDADD) $(LIBS)
+ 
+@@ -253,6 +254,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plat_boot_config.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rom_nand_hamming_code_ecc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bch.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+diff -Naur kobs-ng-1.3.org/src/mtd.c kobs-ng-1.3.new/src/mtd.c
+--- kobs-ng-1.3.org/src/mtd.c	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/mtd.c	2014-10-24 20:35:24.344372832 -0700
+@@ -1,7 +1,7 @@
+ /*
+  *  mtd.c - Dump control structures of the NAND
+  *
+- *  Copyright 2008-2013 Freescale Semiconductor, Inc.
++ *  Copyright 2008-2014 Freescale Semiconductor, Inc.
+  *  Copyright (c) 2008 by Embedded Alley Solution Inc.
+  *
+  *   Author: Pantelis Antoniou <pantelis@embeddedalley.com>
+@@ -1455,6 +1455,8 @@
+ 			mtd_size(md) - md->fcb.FCB_Block.m_u32Firmware2_startingPage * page_size);
+ 		break;
+ 	case ROM_Version_3:
++	case ROM_Version_4:
++	case ROM_Version_5:
+ #undef P3
+ #define P3(x)	printf("  %s = 0x%08x\n", #x, md->fcb.x)
+ 		printf("FCB\n");
+@@ -1504,6 +1506,26 @@
+ 		P3(m_NANDTMTiming.m_u32TMSpeed);
+ 		P3(m_NANDTMTiming.m_u32TMTiming1_BusyTimeout);
+ 		P3(m_u32DISBBM);
++		P3(m_u32BBMarkerPhysicalOffsetInSpareData);
++
++	if(ROM_Version_3 < plat_config_data->m_u32RomVer) {
++		P3(m_u32OnfiSyncEnable);
++		P3(m_NANDONFITiming.m_u32ONFISpeed);
++		P3(m_NANDONFITiming.m_u32ONFITiming_ReadLatency);
++		P3(m_NANDONFITiming.m_u32ONFITiming_CEDelay);
++		P3(m_NANDONFITiming.m_u32ONFITiming_PreambleDelay);
++		P3(m_NANDONFITiming.m_u32ONFITiming_PostambleDelay);
++		P3(m_NANDONFITiming.m_u32ONFITiming_CmdAddPause);
++		P3(m_NANDONFITiming.m_u32ONFITiming_DataPause);
++		P3(m_NANDONFITiming.m_u32ONFITiming_BusyTimeout);
++		P3(m_u32DISBBSearch);
++	}
++
++	if(ROM_Version_4 < plat_config_data->m_u32RomVer) {
++		P3(m_u32RandomizerEnable);
++		P3(m_u32ReadRetryEnable);
++		P3(m_u32ReadRetrySeqLength);
++	}
+ #undef P3
+ #define P3(x)	printf("  %s = 0x%08x\n", #x, md->dbbt50.x)
+ 		printf("DBBT\n");
+@@ -1652,6 +1674,7 @@
+ 	b->m_u32BadBlockMarkerStartBit = geo->block_mark_bit_offset;
+ 	b->m_u32BBMarkerPhysicalOffset = mtd_writesize(md);
+ 	b->m_u32BCHType = 0;
++
+ 	return 0;
+ }
+ 
+@@ -2877,6 +2900,47 @@
+ 	return write_boot_stream(md, fp);
+ }
+ 
++int v5_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags)
++{
++	int size, i, r, chip = 0;
++	loff_t ofs;
++	struct mtd_config *cfg = &md->cfg;
++
++	/* [1] Write the FCB search area. */
++	size = mtd_writesize(md) + mtd_oobsize(md);
++	memset(md->buf, 0, size);
++	r = fcb_encrypt(&md->fcb, md->buf, size, 2);
++	if (r < 0)
++		return r;
++
++	mtd_commit_bcb(md, "FCB", 0, 0, 0, 1, size, false);
++
++	/* [2] Write the DBBT search area. */
++	memset(md->buf, 0, mtd_writesize(md));
++	memcpy(md->buf, &(md->dbbt50), sizeof(md->dbbt50));
++	mtd_commit_bcb(md, "DBBT", 1, 1, 1, 1, mtd_writesize(md), true);
++
++	/* Write the DBBT table area. */
++	memset(md->buf, 0, mtd_writesize(md));
++	if (md->dbbt50.DBBT_Block.v3.m_u32DBBTNumOfPages > 0 && md->bbtn[0] != NULL) {
++		memcpy(md->buf, md->bbtn[0], sizeof(*md->bbtn[0]));
++
++		ofs = cfg->search_area_size_in_bytes;
++
++		for (i = 0; i < 4; i++, ofs += cfg->stride_size_in_bytes) {
++			vp(md, "mtd: PUTTING down DBBT%d BBTN%d @0x%llx (0x%x)\n",
++				i, 0, ofs + 4 * mtd_writesize(md), mtd_writesize(md));
++
++			r = mtd_write_page(md, chip, ofs + 4 * mtd_writesize(md), 1);
++			if (r != mtd_writesize(md)) {
++				fprintf(stderr, "mtd: Failed to write BBTN @0x%llx (%d)\n", ofs, r);
++			}
++		}
++	}
++
++	/* [3] Write the two boot streams. */
++	return write_boot_stream(md, fp);
++}
+ #undef ARG
+ #define ARG(x) { .name = #x , .offset = offsetof(struct mtd_config, x), .ignore = false, }
+ #define ARG_IGNORE(x) { .name = #x , .offset = offsetof(struct mtd_config, x), .ignore = true, }
+diff -Naur kobs-ng-1.3.org/src/mtd.h kobs-ng-1.3.new/src/mtd.h
+--- kobs-ng-1.3.org/src/mtd.h	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/mtd.h	2014-10-24 20:35:24.344372832 -0700
+@@ -1,7 +1,7 @@
+ /*
+ *  mtd.c - Dump control structures of the NAND
+ *
+-*  Copyright 2008-2011 Freescale Semiconductor, Inc.
++*  Copyright 2008-2014 Freescale Semiconductor, Inc.
+ *  Copyright (c) 2008 by Embedded Alley Solution Inc.
+ *
+ *   Author: Pantelis Antoniou <pantelis@embeddedalley.com>
+@@ -211,7 +211,9 @@
+ 	ROM_Version_0       =  0, /* e.g., i.MX23 */
+ 	ROM_Version_1       =  1, /* e.g., i.MX28 */
+ 	ROM_Version_2       =  2, /* e.g., i.MX53 */
+-	ROM_Version_3	    =  3, /* e.g., i.MX50 */
++	ROM_Version_3	    =  3, /* e.g., i.MX50, iMX6dqsl */
++	ROM_Version_4	    =  4, /* e.g., i.MX6sx */
++	ROM_Version_5	    =  5, /* e.g., i.MX6sx TO1.2*/
+ };
+ 
+ static inline int mtd_pages_per_block(struct mtd_data *md)
+@@ -291,6 +293,7 @@
+ int v2_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags);
+ int v3_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags);
+ int v4_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags);
++int v5_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags);
+ 
+ int mtd_set_ecc_mode(struct mtd_data *md, int ecc);
+ 
+diff -Naur kobs-ng-1.3.org/src/ncb.c kobs-ng-1.3.new/src/ncb.c
+--- kobs-ng-1.3.org/src/ncb.c	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/ncb.c	2014-10-24 20:35:32.684372507 -0700
+@@ -1,6 +1,7 @@
+ /*
+  *  ncb.c - verify and encode NCB
+  *
++ *  Copyright (C) 2014 Freescale Semiconductor, Inc.
+  *  Copyright (c) 2008 by Embedded Alley Solution Inc.
+  *
+  *   This program is free software; you can redistribute it and/or modify
+@@ -29,6 +30,9 @@
+ #include "mtd.h"
+ #include "config.h"
+ #include "rom_nand_hamming_code_ecc.h"
++#include "bch.h"
++
++#define MAX_HAMMING_FCB_SZ 220
+ 
+ static inline int even_number_of_1s(uint8_t byte)
+ {
+@@ -365,12 +369,12 @@
+ 	uint32_t  accumulator;
+ 	uint8_t   *p;
+ 	uint8_t   *q;
++	int fcb_size;
+ 
+ 	//----------------------------------------------------------------------
+ 	// Check for nonsense.
+ 	//----------------------------------------------------------------------
+ 
+-	assert(version == 1);
+ 	assert(size >= sizeof(BCB_ROM_BootBlockStruct_t));
+ 
+ 	//----------------------------------------------------------------------
+@@ -402,6 +406,8 @@
+ 
+ 	fcb->m_u32Checksum = accumulator;
+ 
++	fcb_size = MAX_HAMMING_FCB_SZ < sizeof(*fcb) ? MAX_HAMMING_FCB_SZ : sizeof(*fcb);
++
+ 	//----------------------------------------------------------------------
+ 	// Compute the ECC bytes.
+ 	//----------------------------------------------------------------------
+@@ -412,7 +418,9 @@
+ 		memcpy(target, fcb, sizeof(*fcb));
+ 		return size;
+ 	case 1:
+-		return encode_hamming_code_13_8(fcb, sizeof(*fcb), target, size);
++		return encode_hamming_code_13_8(fcb, fcb_size, target, size);
++	case 2:
++		return encode_bch_ecc_62(fcb, sizeof(*fcb), target, size);
+ 	default:
+ 		fprintf(stderr, "FCB version == %d? Something is wrong!\n", version);
+ 		return -EINVAL;
+diff -Naur kobs-ng-1.3.org/src/plat_boot_config.c kobs-ng-1.3.new/src/plat_boot_config.c
+--- kobs-ng-1.3.org/src/plat_boot_config.c	2013-11-04 18:36:41.000000000 -0800
++++ kobs-ng-1.3.new/src/plat_boot_config.c	2014-10-24 20:35:32.684372507 -0700
+@@ -1,5 +1,5 @@
+ /*
+-* Copyright (C) 2010-2012 Freescale Semiconductor, Inc. All Rights Reserved.
++* Copyright (C) 2010-2014 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+ 
+ /*
+@@ -105,12 +105,39 @@
+ 	.rom_mtd_commit_structures = v4_rom_mtd_commit_structures,
+ };
+ 
++static platform_config mx6sx_boot_config = {
++	.m_u32RomVer = ROM_Version_4,
++	.m_u32EnDISBBM = 0,
++	.m_u32EnBootStreamVerify = 0,
++	.m_u32UseNfcGeo = 0,
++	.m_u32UseMultiBootArea = 0,
++	.m_u32UseSinglePageStride = 0,
++	.m_u32DBBT_FingerPrint = DBBT_FINGERPRINT2,
++	.rom_mtd_init = v4_rom_mtd_init,
++	.rom_mtd_commit_structures = v4_rom_mtd_commit_structures,
++};
++
++static platform_config mx6sx_to_1_2_boot_config = {
++	.m_u32RomVer = ROM_Version_5,
++	.m_u32EnDISBBM = 0,
++	.m_u32EnBootStreamVerify = 0,
++	.m_u32UseNfcGeo = 0,
++	.m_u32UseMultiBootArea = 0,
++	.m_u32UseSinglePageStride = 0,
++	.m_u32DBBT_FingerPrint = DBBT_FINGERPRINT2,
++	.rom_mtd_init = v4_rom_mtd_init,
++	.rom_mtd_commit_structures = v5_rom_mtd_commit_structures,
++};
++
+ int discover_boot_rom_version(void)
+ {
+ 	FILE         *cpuinfo;
++	FILE         *soc_id;
++	FILE         *revision;
+ 	char         line_buffer[100];
+ 	static char  *banner = "Revision";
+ 	static char  *banner_hw = "Hardware";
++	static char  *plat_imx6sx = "i.MX6SX";
+ 	char *rev;
+ 	int system_rev, hw_system_rev = 0;
+ 
+@@ -147,6 +174,9 @@
+ 		}
+ 
+ 		rev = index(line_buffer, ':');
++
++		/*check soc_id and revision for mx6sx*/
++
+ 		if (rev != NULL) {
+ 			rev++;
+ 			system_rev = strtoul(rev, NULL, 16);
+@@ -178,6 +208,24 @@
+ 			case MX6Q:
+ 			case MX6DL:
+ 				plat_config_data = &mx6q_boot_config;
++				soc_id = fopen("/sys/devices/soc0/soc_id", "r");
++				if (!soc_id) {
++					exit(1);
++				}
++				fgets(line_buffer, sizeof(line_buffer), soc_id);
++
++				if (!strncmp(line_buffer, plat_imx6sx, strlen(plat_imx6sx))) {
++					revision = fopen("/sys/devices/soc0/revision", "r");
++					if (!revision) {
++						exit(1);
++					}
++					fgets(line_buffer, sizeof(line_buffer), revision);
++					if (!strncmp(line_buffer, "1.0", strlen("1.0")) ||
++							!strncmp(line_buffer, "1.1", strlen("1.1")))
++						plat_config_data = &mx6sx_boot_config;
++					if (!strncmp(line_buffer, "1.2", strlen("1.2")))
++						plat_config_data = &mx6sx_to_1_2_boot_config;
++				}
+ 				break;
+ 
+ 			default:
+diff -Naur kobs-ng-1.3.org/src/rand.h kobs-ng-1.3.new/src/rand.h
+--- kobs-ng-1.3.org/src/rand.h	1969-12-31 16:00:00.000000000 -0800
++++ kobs-ng-1.3.new/src/rand.h	2014-10-24 20:35:24.344372832 -0700
+@@ -0,0 +1,1107 @@
++/*
++* Copyright (C) 2014 Freescale Semiconductor, Inc. All Rights Reserved.
++*/
++
++/*
++* This program is free software; you can redistribute it and/or modify
++* it under the terms of the GNU General Public License as published by
++* the Free Software Foundation; either version 2 of the License, or
++* (at your option) any later version.
++*
++* This program is distributed in the hope that it will be useful,
++* but WITHOUT ANY WARRANTY; without even the implied warranty of
++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++* GNU General Public License for more details.
++*
++* You should have received a copy of the GNU General Public License along
++* with this program; if not, write to the Free Software Foundation, Inc.,
++* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++*/
++
++#ifndef RAND_H_
++#define RAND_H_
++
++unsigned char RandData[]={
++	 0x2b, 0xd4, 0xd2, 0x2d, 0x55, 0xaa, 0xac, 0x53,
++	 0xab, 0x54, 0xd5, 0x2a, 0xd3, 0x2c, 0xad, 0x52,
++	 0x33, 0xcc, 0x34, 0xcb, 0xaa, 0x55, 0x2d, 0xd2,
++	 0x4c, 0xb3, 0xd2, 0x2d, 0xb3, 0x4c, 0x35, 0xca,
++	 0xb4, 0x4b, 0x35, 0xca, 0x34, 0xcb, 0xb2, 0x4d,
++	 0x35, 0xca, 0xb2, 0x4d, 0xad, 0x52, 0xcb, 0x34,
++	 0xad, 0x52, 0x4b, 0xb4, 0x52, 0xad, 0x52, 0xad,
++	 0x52, 0xad, 0x4a, 0xb5, 0xb2, 0x4d, 0x4d, 0xb2,
++	 0x32, 0xcd, 0x4a, 0xb5, 0xb4, 0x4b, 0x4b, 0xb4,
++	 0x2c, 0xd3, 0xaa, 0x55, 0x55, 0xaa, 0x2a, 0xd5,
++	 0x2a, 0xd5, 0xcc, 0x33, 0x33, 0xcc, 0xd4, 0x2b,
++	 0xcb, 0x34, 0x33, 0xcc, 0x4c, 0xb3, 0xb4, 0x4b,
++	 0xcd, 0x32, 0x33, 0xcc, 0x54, 0xab, 0x4a, 0xb5,
++	 0xcc, 0x33, 0xb3, 0x4c, 0x33, 0xcc, 0x2a, 0xd5,
++	 0xcc, 0x33, 0x2b, 0xd4, 0x2c, 0xd3, 0x34, 0xcb,
++	 0x4c, 0xb3, 0x34, 0xcb, 0x4a, 0xb5, 0x32, 0xcd,
++	 0x54, 0xab, 0xd2, 0x2d, 0xb5, 0x4a, 0xb3, 0x4c,
++	 0xb3, 0x4c, 0xd5, 0x2a, 0xd5, 0x2a, 0x2b, 0xd4,
++	 0x34, 0xcb, 0xd4, 0x2b, 0x4b, 0xb4, 0xb4, 0x4b,
++	 0x4d, 0xb2, 0xb4, 0x4b, 0x55, 0xaa, 0x4a, 0xb5,
++	 0x54, 0xab, 0xca, 0x35, 0x33, 0xcc, 0xaa, 0x55,
++	 0x33, 0xcc, 0x32, 0xcd, 0x2c, 0xd3, 0x2c, 0xd3,
++	 0xac, 0x53, 0x33, 0xcc, 0xca, 0x35, 0x35, 0xca,
++	 0xd2, 0x2d, 0xd3, 0x2c, 0x2d, 0xd2, 0x52, 0xad,
++	 0xca, 0x35, 0x55, 0xaa, 0xaa, 0x55, 0xcd, 0x32,
++	 0x2d, 0xd2, 0xcc, 0x33, 0xb3, 0x4c, 0x53, 0xac,
++	 0xca, 0x35, 0x33, 0xcc, 0xd4, 0x2b, 0xcd, 0x32,
++	 0xcd, 0x32, 0xb3, 0x4c, 0xab, 0x54, 0x53, 0xac,
++	 0xcc, 0x33, 0xab, 0x54, 0xd3, 0x2c, 0x2d, 0xd2,
++	 0x4c, 0xb3, 0x2c, 0xd3, 0xaa, 0x55, 0x35, 0xca,
++	 0xd4, 0x2b, 0xd5, 0x2a, 0x33, 0xcc, 0xb2, 0x4d,
++	 0x2b, 0xd4, 0x34, 0xcb, 0xac, 0x53, 0xab, 0x54,
++	 0x4b, 0xb4, 0x32, 0xcd, 0x52, 0xad, 0xac, 0x53,
++	 0xb5, 0x4a, 0x53, 0xac, 0xd2, 0x2d, 0xcd, 0x32,
++	 0xd5, 0x2a, 0x4d, 0xb2, 0xaa, 0x55, 0xd3, 0x2c,
++	 0xab, 0x54, 0xcb, 0x34, 0xd3, 0x2c, 0xb5, 0x4a,
++	 0x53, 0xac, 0x32, 0xcd, 0x2a, 0xd5, 0x2a, 0xd5,
++	 0xb2, 0x4d, 0xd3, 0x2c, 0x2b, 0xd4, 0x54, 0xab,
++	 0xd4, 0x2b, 0xb5, 0x4a, 0x4b, 0xb4, 0xac, 0x53,
++	 0x2b, 0xd4, 0xaa, 0x55, 0xd5, 0x2a, 0xad, 0x52,
++	 0x2b, 0xd4, 0xcc, 0x33, 0xab, 0x54, 0xad, 0x52,
++	 0xcb, 0x34, 0xb3, 0x4c, 0xb3, 0x4c, 0xad, 0x52,
++	 0xcd, 0x32, 0x2b, 0xd4, 0xb4, 0x4b, 0x4d, 0xb2,
++	 0x4c, 0xb3, 0xb4, 0x4b, 0xb5, 0x4a, 0x2b, 0xd4,
++	 0x54, 0xab, 0xca, 0x35, 0x55, 0xaa, 0xb4, 0x4b,
++	 0x33, 0xcc, 0xd2, 0x2d, 0x53, 0xac, 0x2a, 0xd5,
++	 0xac, 0x53, 0x35, 0xca, 0x32, 0xcd, 0x34, 0xcb,
++	 0x32, 0xcd, 0x52, 0xad, 0x4c, 0xb3, 0x52, 0xad,
++	 0xac, 0x53, 0x2d, 0xd2, 0xb4, 0x4b, 0x2d, 0xd2,
++	 0xb2, 0x4d, 0xb5, 0x4a, 0xb5, 0x4a, 0x55, 0xaa,
++	 0x34, 0xcb, 0xca, 0x35, 0x35, 0xca, 0xac, 0x53,
++	 0x2d, 0xd2, 0xd2, 0x2d, 0xcd, 0x32, 0x4d, 0xb2,
++	 0xaa, 0x55, 0x55, 0xaa, 0xac, 0x53, 0xcb, 0x34,
++	 0x33, 0xcc, 0x2c, 0xd3, 0x52, 0xad, 0x32, 0xcd,
++	 0xcc, 0x33, 0x55, 0xaa, 0xb2, 0x4d, 0x33, 0xcc,
++	 0x2c, 0xd3, 0x4c, 0xb3, 0xd4, 0x2b, 0x33, 0xcc,
++	 0xca, 0x35, 0xab, 0x54, 0xcb, 0x34, 0xd3, 0x2c,
++	 0x4d, 0xb2, 0xac, 0x53, 0xcd, 0x32, 0x55, 0xaa,
++	 0xd4, 0x2b, 0x4d, 0xb2, 0x2c, 0xd3, 0xac, 0x53,
++	 0xab, 0x54, 0x2b, 0xd4, 0xca, 0x35, 0xad, 0x52,
++	 0x53, 0xac, 0xd4, 0x2b, 0xad, 0x52, 0x2d, 0xd2,
++	 0x52, 0xad, 0x54, 0xab, 0xb2, 0x4d, 0x55, 0xaa,
++	 0x52, 0xad, 0x4c, 0xb3, 0x34, 0xcb, 0x4c, 0xb3,
++	 0xd2, 0x2d, 0xab, 0x54, 0xcd, 0x32, 0x4b, 0xb4,
++	 0x4a, 0xb5, 0x4c, 0xb3, 0x4c, 0xb3, 0xca, 0x35,
++	 0xd5, 0x2a, 0x2b, 0xd4, 0x34, 0xcb, 0xd2, 0x2d,
++	 0x4b, 0xb4, 0xb4, 0x4b, 0xad, 0x52, 0xb5, 0x4a,
++	 0x55, 0xaa, 0x4a, 0xb5, 0x32, 0xcd, 0xca, 0x35,
++	 0x33, 0xcc, 0x4a, 0xb5, 0x2c, 0xd3, 0x32, 0xcd,
++	 0x2c, 0xd3, 0x2a, 0xd5, 0xaa, 0x55, 0x33, 0xcc,
++	 0x2a, 0xd5, 0xd4, 0x2b, 0xd3, 0x2c, 0xd3, 0x2c,
++	 0x4b, 0xb4, 0x34, 0xcb, 0xca, 0x35, 0xb5, 0x4a,
++	 0x55, 0xaa, 0xd2, 0x2d, 0x2d, 0xd2, 0xca, 0x35,
++	 0xb3, 0x4c, 0x55, 0xaa, 0x2a, 0xd5, 0x32, 0xcd,
++	 0x34, 0xcb, 0xcc, 0x33, 0xab, 0x54, 0xb3, 0x4c,
++	 0xcd, 0x32, 0xb3, 0x4c, 0xd3, 0x2c, 0x4b, 0xb4,
++	 0xcc, 0x33, 0x2b, 0xd4, 0x4a, 0xb5, 0x2a, 0xd5,
++	 0x4c, 0xb3, 0xd4, 0x2b, 0x35, 0xca, 0x34, 0xcb,
++	 0x54, 0xab, 0xd4, 0x2b, 0x4d, 0xb2, 0xb2, 0x4d,
++	 0x53, 0xac, 0x54, 0xab, 0xb4, 0x4b, 0x2b, 0xd4,
++	 0x52, 0xad, 0xac, 0x53, 0x55, 0xaa, 0x54, 0xab,
++	 0xd2, 0x2d, 0xcd, 0x32, 0x53, 0xac, 0x4c, 0xb3,
++	 0xaa, 0x55, 0x33, 0xcc, 0xd2, 0x2d, 0xcb, 0x34,
++	 0xd3, 0x2c, 0x53, 0xac, 0x4a, 0xb5, 0x32, 0xcd,
++	 0xca, 0x35, 0xcd, 0x32, 0xb5, 0x4a, 0xd3, 0x2c,
++	 0xad, 0x52, 0xd3, 0x2c, 0xd5, 0x2a, 0x55, 0xaa,
++	 0xd2, 0x2d, 0xd5, 0x2a, 0x2b, 0xd4, 0x4c, 0xb3,
++	 0x2a, 0xd5, 0xb4, 0x4b, 0xcb, 0x34, 0xcb, 0x34,
++	 0x4b, 0xb4, 0xaa, 0x55, 0x4d, 0xb2, 0xb2, 0x4d,
++	 0x35, 0xca, 0x4c, 0xb3, 0xb4, 0x4b, 0xcb, 0x34,
++	 0xcd, 0x32, 0xab, 0x54, 0x55, 0xaa, 0x52, 0xad,
++	 0x4c, 0xb3, 0xcc, 0x33, 0xb3, 0x4c, 0x2d, 0xd2,
++	 0xd4, 0x2b, 0x33, 0xcc, 0xb4, 0x4b, 0xb5, 0x4a,
++	 0xcb, 0x34, 0xb3, 0x4c, 0x35, 0xca, 0xaa, 0x55,
++	 0xcd, 0x32, 0xcb, 0x34, 0x2d, 0xd2, 0x4c, 0xb3,
++	 0x4c, 0xb3, 0x52, 0xad, 0xca, 0x35, 0x2b, 0xd4,
++	 0xb4, 0x4b, 0xcd, 0x32, 0x4d, 0xb2, 0xb4, 0x4b,
++	 0xb5, 0x4a, 0x53, 0xac, 0x54, 0xab, 0xca, 0x35,
++	 0xd5, 0x2a, 0xad, 0x52, 0x33, 0xcc, 0xd2, 0x2d,
++	 0xab, 0x54, 0x2d, 0xd2, 0xac, 0x53, 0xb5, 0x4a,
++	 0xb3, 0x4c, 0x35, 0xca, 0x32, 0xcd, 0x2a, 0xd5,
++	 0x34, 0xcb, 0x52, 0xad, 0x2c, 0xd3, 0xb4, 0x4b,
++	 0xad, 0x52, 0x2d, 0xd2, 0x4a, 0xb5, 0x4a, 0xb5,
++	 0xb2, 0x4d, 0xd5, 0x2a, 0x35, 0xca, 0x4a, 0xb5,
++	 0x34, 0xcb, 0xd4, 0x2b, 0x2d, 0xd2, 0xaa, 0x55,
++	 0x4d, 0xb2, 0x54, 0xab, 0x2a, 0xd5, 0x4c, 0xb3,
++	 0x54, 0xab, 0xcc, 0x33, 0xcb, 0x34, 0xab, 0x54,
++	 0xd3, 0x2c, 0xb3, 0x4c, 0x4d, 0xb2, 0x2c, 0xd3,
++	 0xca, 0x35, 0x4b, 0xb4, 0xd4, 0x2b, 0xd5, 0x2a,
++	 0x4d, 0xb2, 0xaa, 0x55, 0x2b, 0xd4, 0x54, 0xab,
++	 0x34, 0xcb, 0xac, 0x53, 0x4b, 0xb4, 0xac, 0x53,
++	 0xcd, 0x32, 0xad, 0x52, 0xd5, 0x2a, 0x4d, 0xb2,
++	 0xac, 0x53, 0xcd, 0x32, 0xab, 0x54, 0x2b, 0xd4,
++	 0xb2, 0x4d, 0xb3, 0x4c, 0x53, 0xac, 0x54, 0xab,
++	 0xd4, 0x2b, 0x2b, 0xd4, 0x52, 0xad, 0xac, 0x53,
++	 0x4b, 0xb4, 0x54, 0xab, 0xd2, 0x2d, 0xad, 0x52,
++	 0x55, 0xaa, 0x4c, 0xb3, 0xaa, 0x55, 0xcd, 0x32,
++	 0xd3, 0x2c, 0xcb, 0x34, 0xb3, 0x4c, 0x33, 0xcc,
++	 0x4a, 0xb5, 0x32, 0xcd, 0xd4, 0x2b, 0xd3, 0x2c,
++	 0xb5, 0x4a, 0xb3, 0x4c, 0xcb, 0x34, 0xd5, 0x2a,
++	 0xd5, 0x2a, 0xab, 0x54, 0x2d, 0xd2, 0xd4, 0x2b,
++	 0x4b, 0xb4, 0x4c, 0xb3, 0x4a, 0xb5, 0xb4, 0x4b,
++	 0xd5, 0x2a, 0xcb, 0x34, 0x55, 0xaa, 0xca, 0x35,
++	 0x4b, 0xb4, 0xd2, 0x2d, 0x33, 0xcc, 0xb2, 0x4d,
++	 0xb5, 0x4a, 0x35, 0xca, 0xac, 0x53, 0xcb, 0x34,
++	 0x35, 0xca, 0x32, 0xcd, 0x52, 0xad, 0xd2, 0x2d,
++	 0xad, 0x52, 0x53, 0xac, 0xb2, 0x4d, 0x55, 0xaa,
++	 0xd2, 0x2d, 0x4d, 0xb2, 0x34, 0xcb, 0x4c, 0xb3,
++	 0xaa, 0x55, 0xab, 0x54, 0xcd, 0x32, 0xcb, 0x34,
++	 0x53, 0xac, 0x4c, 0xb3, 0x4c, 0xb3, 0x32, 0xcd,
++	 0xd2, 0x2d, 0x2b, 0xd4, 0xb4, 0x4b, 0x53, 0xac,
++	 0x4a, 0xb5, 0xb4, 0x4b, 0xd5, 0x2a, 0xcd, 0x32,
++	 0x55, 0xaa, 0xca, 0x35, 0xab, 0x54, 0xd3, 0x2c,
++	 0x33, 0xcc, 0xb2, 0x4d, 0xd3, 0x2c, 0x35, 0xca,
++	 0xac, 0x53, 0x2b, 0xd4, 0x2a, 0xd5, 0x32, 0xcd,
++	 0x52, 0xad, 0xd4, 0x2b, 0xab, 0x54, 0x53, 0xac,
++	 0x52, 0xad, 0xb4, 0x4b, 0xd3, 0x2c, 0x4d, 0xb2,
++	 0x52, 0xad, 0x2a, 0xd5, 0xaa, 0x55, 0x4b, 0xb4,
++	 0x32, 0xcd, 0xd4, 0x2b, 0x53, 0xac, 0x4a, 0xb5,
++	 0x4c, 0xb3, 0x34, 0xcb, 0x32, 0xcd, 0x2a, 0xd5,
++	 0x54, 0xab, 0x52, 0xad, 0x2c, 0xd3, 0xb4, 0x4b,
++	 0xb3, 0x4c, 0x2d, 0xd2, 0x4a, 0xb5, 0x2a, 0xd5,
++	 0xb4, 0x4b, 0xd5, 0x2a, 0x35, 0xca, 0xb4, 0x4b,
++	 0x35, 0xca, 0xd4, 0x2b, 0x4d, 0xb2, 0xca, 0x35,
++	 0x4d, 0xb2, 0x54, 0xab, 0x34, 0xcb, 0x52, 0xad,
++	 0x54, 0xab, 0xac, 0x53, 0xad, 0x52, 0xad, 0x52,
++	 0xd3, 0x2c, 0x4d, 0xb2, 0xb2, 0x4d, 0x2d, 0xd2,
++	 0xaa, 0x55, 0x4b, 0xb4, 0xb4, 0x4b, 0xd5, 0x2a,
++	 0x53, 0xac, 0xaa, 0x55, 0x35, 0xca, 0x34, 0xcb,
++	 0x32, 0xcd, 0xcc, 0x33, 0x4d, 0xb2, 0x52, 0xad,
++	 0xcc, 0x33, 0x53, 0xac, 0xb4, 0x4b, 0x2d, 0xd2,
++	 0xcc, 0x33, 0xad, 0x52, 0xb5, 0x4a, 0x35, 0xca,
++	 0xac, 0x53, 0xcd, 0x32, 0x35, 0xca, 0x32, 0xcd,
++	 0xb2, 0x4d, 0xd3, 0x2c, 0xad, 0x52, 0x53, 0xac,
++	 0xd4, 0x2b, 0x55, 0xaa, 0xd2, 0x2d, 0xad, 0x52,
++	 0x2b, 0xd4, 0x4c, 0xb3, 0xaa, 0x55, 0xad, 0x52,
++	 0xcb, 0x34, 0xcb, 0x34, 0xb3, 0x4c, 0xad, 0x52,
++	 0x4d, 0xb2, 0x32, 0xcd, 0xb4, 0x4b, 0x4d, 0xb2,
++	 0xb4, 0x4b, 0xb3, 0x4c, 0xb5, 0x4a, 0xab, 0x54,
++	 0xd5, 0x2a, 0xcb, 0x34, 0x55, 0xaa, 0xcc, 0x33,
++	 0x4b, 0xb4, 0xd2, 0x2d, 0xd3, 0x2c, 0xb3, 0x4c,
++	 0xb5, 0x4a, 0x35, 0xca, 0xca, 0x35, 0xcb, 0x34,
++	 0x35, 0xca, 0xd2, 0x2d, 0x4d, 0xb2, 0xd2, 0x2d,
++	 0xad, 0x52, 0x55, 0xaa, 0xb4, 0x4b, 0x55, 0xaa,
++	 0x32, 0xcd, 0xac, 0x53, 0x35, 0xca, 0x4c, 0xb3,
++	 0xcc, 0x33, 0xcd, 0x32, 0xcd, 0x32, 0x2b, 0xd4,
++	 0xac, 0x53, 0x53, 0xac, 0x4c, 0xb3, 0x34, 0xcb,
++	 0xd2, 0x2d, 0x2d, 0xd2, 0x54, 0xab, 0x52, 0xad,
++	 0xaa, 0x55, 0xb5, 0x4a, 0xb3, 0x4c, 0xcd, 0x32,
++	 0x33, 0xcc, 0x2a, 0xd5, 0xb4, 0x4b, 0x33, 0xcc,
++	 0x2c, 0xd3, 0xb4, 0x4b, 0xd5, 0x2a, 0x33, 0xcc,
++	 0x4a, 0xb5, 0xca, 0x35, 0xcb, 0x34, 0xd3, 0x2c,
++	 0x35, 0xca, 0xb2, 0x4d, 0xcd, 0x32, 0xd5, 0x2a,
++	 0xad, 0x52, 0x4b, 0xb4, 0x2c, 0xd3, 0x54, 0xab,
++	 0x52, 0xad, 0x2a, 0xd5, 0x4a, 0xb5, 0x4c, 0xb3,
++	 0x32, 0xcd, 0xd4, 0x2b, 0xd5, 0x2a, 0x4b, 0xb4,
++	 0x4c, 0xb3, 0xd4, 0x2b, 0x4b, 0xb4, 0x2a, 0xd5,
++	 0x54, 0xab, 0xb4, 0x4b, 0x35, 0xca, 0xb4, 0x4b,
++	 0x53, 0xac, 0xca, 0x35, 0x4d, 0xb2, 0x2a, 0xd5,
++	 0x32, 0xcd, 0x52, 0xad, 0x34, 0xcb, 0x54, 0xab,
++	 0xac, 0x53, 0xad, 0x52, 0x4d, 0xb2, 0x2c, 0xd3,
++	 0xb2, 0x4d, 0x4d, 0xb2, 0xd4, 0x2b, 0x55, 0xaa,
++	 0xb4, 0x4b, 0xab, 0x54, 0x2b, 0xd4, 0xac, 0x53,
++	 0x55, 0xaa, 0xac, 0x53, 0xcb, 0x34, 0xcd, 0x32,
++	 0xd3, 0x2c, 0xad, 0x52, 0xad, 0x52, 0x33, 0xcc,
++	 0xaa, 0x55, 0x4d, 0xb2, 0xd2, 0x2d, 0xd3, 0x2c,
++	 0xb3, 0x4c, 0x4b, 0xb4, 0xca, 0x35, 0x35, 0xca,
++	 0x54, 0xab, 0xca, 0x35, 0x2d, 0xd2, 0xb2, 0x4d,
++	 0x33, 0xcc, 0x52, 0xad, 0xaa, 0x55, 0x2b, 0xd4,
++	 0xac, 0x53, 0xcd, 0x32, 0x53, 0xac, 0x34, 0xcb,
++	 0xb2, 0x4d, 0x33, 0xcc, 0x52, 0xad, 0x52, 0xad,
++	 0xd4, 0x2b, 0x53, 0xac, 0xb2, 0x4d, 0xad, 0x52,
++	 0xcb, 0x34, 0x4d, 0xb2, 0xb4, 0x4b, 0xad, 0x52,
++	 0xad, 0x52, 0xab, 0x54, 0xb5, 0x4a, 0x4d, 0xb2,
++	 0x52, 0xad, 0xcc, 0x33, 0xb5, 0x4a, 0x4b, 0xb4,
++	 0xd2, 0x2d, 0xd3, 0x2c, 0x55, 0xaa, 0x4a, 0xb5,
++	 0xca, 0x35, 0xd5, 0x2a, 0x33, 0xcc, 0xca, 0x35,
++	 0x2d, 0xd2, 0x34, 0xcb, 0x2c, 0xd3, 0x52, 0xad,
++	 0x4a, 0xb5, 0x32, 0xcd, 0xaa, 0x55, 0xcd, 0x32,
++	 0xb5, 0x4a, 0xd3, 0x2c, 0xb3, 0x4c, 0xd3, 0x2c,
++	 0xd5, 0x2a, 0x35, 0xca, 0xd4, 0x2b, 0xd5, 0x2a,
++	 0x2b, 0xd4, 0xb2, 0x4d, 0x2b, 0xd4, 0xb4, 0x4b,
++	 0xab, 0x54, 0xab, 0x54, 0x4b, 0xb4, 0xaa, 0x55,
++	 0x53, 0xac, 0xac, 0x53, 0x35, 0xca, 0x2c, 0xd3,
++	 0xd2, 0x2d, 0xcd, 0x32, 0xcd, 0x32, 0x55, 0xaa,
++	 0xaa, 0x55, 0x53, 0xac, 0x2c, 0xd3, 0xcc, 0x33,
++	 0xd3, 0x2c, 0x2d, 0xd2, 0xca, 0x35, 0x33, 0xcc,
++	 0xaa, 0x55, 0xd5, 0x2a, 0xcd, 0x32, 0xd3, 0x2c,
++	 0x33, 0xcc, 0x54, 0xab, 0xcc, 0x33, 0x35, 0xca,
++	 0x4c, 0xb3, 0x2c, 0xd3, 0x2c, 0xd3, 0x32, 0xcd,
++	 0xd4, 0x2b, 0x35, 0xca, 0xaa, 0x55, 0xb3, 0x4c,
++	 0x2b, 0xd4, 0xd2, 0x2d, 0xd3, 0x2c, 0xab, 0x54,
++	 0xab, 0x54, 0x35, 0xca, 0x4a, 0xb5, 0xac, 0x53,
++	 0x33, 0xcc, 0xd2, 0x2d, 0xd5, 0x2a, 0x2d, 0xd2,
++	 0xac, 0x53, 0xd5, 0x2a, 0xab, 0x54, 0x35, 0xca,
++	 0x32, 0xcd, 0xb4, 0x4b, 0x33, 0xcc, 0x52, 0xad,
++	 0x4c, 0xb3, 0x2a, 0xd5, 0xac, 0x53, 0x2d, 0xd2,
++	 0x34, 0xcb, 0x34, 0xcb, 0xb2, 0x4d, 0xb5, 0x4a,
++	 0x4d, 0xb2, 0x52, 0xad, 0x34, 0xcb, 0x4a, 0xb5,
++	 0xb4, 0x4b, 0xad, 0x52, 0x2d, 0xd2, 0xaa, 0x55,
++	 0xb5, 0x4a, 0x4d, 0xb2, 0x2a, 0xd5, 0xcc, 0x33,
++	 0xb5, 0x4a, 0xcb, 0x34, 0xcb, 0x34, 0xd3, 0x2c,
++	 0x55, 0xaa, 0xb2, 0x4d, 0xcd, 0x32, 0xd5, 0x2a,
++	 0xb3, 0x4c, 0x4b, 0xb4, 0x2c, 0xd3, 0x34, 0xcb,
++	 0x54, 0xab, 0x2a, 0xd5, 0x4a, 0xb5, 0xb2, 0x4d,
++	 0x33, 0xcc, 0xd4, 0x2b, 0xb5, 0x4a, 0x2b, 0xd4,
++	 0x4c, 0xb3, 0xd4, 0x2b, 0x55, 0xaa, 0x34, 0xcb,
++	 0x54, 0xab, 0xd4, 0x2b, 0x53, 0xac, 0xb2, 0x4d,
++	 0x53, 0xac, 0x34, 0xcb, 0xb2, 0x4d, 0x2b, 0xd4,
++	 0x52, 0xad, 0x52, 0xad, 0x54, 0xab, 0x54, 0xab,
++	 0xb2, 0x4d, 0xad, 0x52, 0x53, 0xac, 0x4c, 0xb3,
++	 0xb4, 0x4b, 0x2d, 0xd2, 0xd2, 0x2d, 0xab, 0x54,
++	 0xb5, 0x4a, 0x55, 0xaa, 0x4a, 0xb5, 0xcc, 0x33,
++	 0x35, 0xca, 0xcc, 0x33, 0xd5, 0x2a, 0xd3, 0x2c,
++	 0xcd, 0x32, 0xd3, 0x2c, 0xcb, 0x34, 0x55, 0xaa,
++	 0xcc, 0x33, 0xb5, 0x4a, 0x2d, 0xd2, 0x2c, 0xd3,
++	 0x2c, 0xd3, 0x4a, 0xb5, 0xca, 0x35, 0x35, 0xca,
++	 0x2a, 0xd5, 0xca, 0x35, 0x2d, 0xd2, 0xd2, 0x2d,
++	 0x2b, 0xd4, 0x52, 0xad, 0xaa, 0x55, 0xb5, 0x4a,
++	 0xab, 0x54, 0xcd, 0x32, 0x33, 0xcc, 0xaa, 0x55,
++	 0xb3, 0x4c, 0x33, 0xcc, 0x2c, 0xd3, 0x2c, 0xd3,
++	 0xd4, 0x2b, 0x33, 0xcc, 0xca, 0x35, 0xb5, 0x4a,
++	 0xcb, 0x34, 0xd3, 0x2c, 0x2d, 0xd2, 0xaa, 0x55,
++	 0xcd, 0x32, 0x55, 0xaa, 0x2a, 0xd5, 0x4c, 0xb3,
++	 0x2c, 0xd3, 0xcc, 0x33, 0xcb, 0x34, 0x2b, 0xd4,
++	 0xca, 0x35, 0xb3, 0x4c, 0x4d, 0xb2, 0xd4, 0x2b,
++	 0xcd, 0x32, 0x4b, 0xb4, 0x54, 0xab, 0x54, 0xab,
++	 0x4c, 0xb3, 0xaa, 0x55, 0x53, 0xac, 0x2c, 0xd3,
++	 0x34, 0xcb, 0x2c, 0xd3, 0xd2, 0x2d, 0xb5, 0x4a,
++	 0xcd, 0x32, 0x55, 0xaa, 0x2a, 0xd5, 0x4a, 0xb5,
++	 0x2c, 0xd3, 0xcc, 0x33, 0x2b, 0xd4, 0x2a, 0xd5,
++	 0xca, 0x35, 0xb3, 0x4c, 0x2b, 0xd4, 0xd4, 0x2b,
++	 0xcd, 0x32, 0xab, 0x54, 0x4b, 0xb4, 0x54, 0xab,
++	 0x4c, 0xb3, 0xac, 0x53, 0x55, 0xaa, 0x2c, 0xd3,
++	 0xd4, 0x2b, 0xcd, 0x32, 0xd3, 0x2c, 0xb5, 0x4a,
++	 0xab, 0x54, 0x33, 0xcc, 0x2a, 0xd5, 0xaa, 0x55,
++	 0xd3, 0x2c, 0xd3, 0x2c, 0x2b, 0xd4, 0x2c, 0xd3,
++	 0xca, 0x35, 0xb5, 0x4a, 0xcb, 0x34, 0xd5, 0x2a,
++	 0x2d, 0xd2, 0xaa, 0x55, 0x2d, 0xd2, 0x54, 0xab,
++	 0x2a, 0xd5, 0x4c, 0xb3, 0x4a, 0xb5, 0xcc, 0x33,
++	 0xcb, 0x34, 0xcb, 0x34, 0xd5, 0x2a, 0xb3, 0x4c,
++	 0x4d, 0xb2, 0xd2, 0x2d, 0xcb, 0x34, 0x4b, 0xb4,
++	 0xb4, 0x4b, 0xb5, 0x4a, 0x4d, 0xb2, 0xaa, 0x55,
++	 0x35, 0xca, 0x4a, 0xb5, 0x34, 0xcb, 0xcc, 0x33,
++	 0x2d, 0xd2, 0xaa, 0x55, 0xcd, 0x32, 0x53, 0xac,
++	 0x2a, 0xd5, 0x4c, 0xb3, 0xcc, 0x33, 0xcd, 0x32,
++	 0xcb, 0x34, 0x2b, 0xd4, 0xac, 0x53, 0xb3, 0x4c,
++	 0x4d, 0xb2, 0x34, 0xcb, 0xd2, 0x2d, 0x4b, 0xb4,
++	 0x54, 0xab, 0x52, 0xad, 0x4a, 0xb5, 0xaa, 0x55,
++	 0xb3, 0x4c, 0xcd, 0x32, 0x35, 0xca, 0x2c, 0xd3,
++	 0xb4, 0x4b, 0xd3, 0x2c, 0xcd, 0x32, 0xb5, 0x4a,
++	 0xd5, 0x2a, 0x55, 0xaa, 0x2c, 0xd3, 0xca, 0x35,
++	 0x2b, 0xd4, 0x2c, 0xd3, 0x2a, 0xd5, 0xb2, 0x4d,
++	 0xcb, 0x34, 0xd5, 0x2a, 0xab, 0x54, 0xab, 0x54,
++	 0x2d, 0xd2, 0xb4, 0x4b, 0x53, 0xac, 0x4c, 0xb3,
++	 0x4a, 0xb5, 0x2a, 0xd5, 0xd2, 0x2d, 0xcb, 0x34,
++	 0x35, 0xca, 0x54, 0xab, 0x4a, 0xb5, 0xd2, 0x2d,
++	 0x4d, 0xb2, 0xcc, 0x33, 0xb5, 0x4a, 0x55, 0xaa,
++	 0xd4, 0x2b, 0xd3, 0x2c, 0x35, 0xca, 0xac, 0x53,
++	 0xcb, 0x34, 0xd5, 0x2a, 0xcd, 0x32, 0xad, 0x52,
++	 0x2d, 0xd2, 0x54, 0xab, 0xac, 0x53, 0x4d, 0xb2,
++	 0x4a, 0xb5, 0x2c, 0xd3, 0xb2, 0x4d, 0xcb, 0x34,
++	 0xd5, 0x2a, 0x55, 0xaa, 0x54, 0xab, 0xd2, 0x2d,
++	 0x2b, 0xd4, 0xac, 0x53, 0xb3, 0x4c, 0xb5, 0x4a,
++	 0xcb, 0x34, 0x2d, 0xd2, 0x34, 0xcb, 0xaa, 0x55,
++	 0xad, 0x52, 0xb5, 0x4a, 0x2d, 0xd2, 0x4c, 0xb3,
++	 0x32, 0xcd, 0x4a, 0xb5, 0xca, 0x35, 0x4b, 0xb4,
++	 0x2c, 0xd3, 0xca, 0x35, 0x4d, 0xb2, 0x2a, 0xd5,
++	 0x2a, 0xd5, 0x52, 0xad, 0x34, 0xcb, 0xd4, 0x2b,
++	 0xab, 0x54, 0xad, 0x52, 0x4d, 0xb2, 0xb4, 0x4b,
++	 0xb3, 0x4c, 0x4d, 0xb2, 0x54, 0xab, 0x2a, 0xd5,
++	 0xb4, 0x4b, 0xab, 0x54, 0x33, 0xcc, 0xb4, 0x4b,
++	 0x55, 0xaa, 0x2c, 0xd3, 0x4c, 0xb3, 0xca, 0x35,
++	 0xd3, 0x2c, 0x35, 0xca, 0x34, 0xcb, 0x32, 0xcd,
++	 0x2a, 0xd5, 0xb2, 0x4d, 0xad, 0x52, 0xd3, 0x2c,
++	 0xab, 0x54, 0x4b, 0xb4, 0xd2, 0x2d, 0xb5, 0x4a,
++	 0x53, 0xac, 0x4a, 0xb5, 0x2a, 0xd5, 0x2a, 0xd5,
++	 0x32, 0xcd, 0xca, 0x35, 0x2b, 0xd4, 0x54, 0xab,
++	 0x2c, 0xd3, 0xb2, 0x4d, 0x4b, 0xb4, 0x2c, 0xd3,
++	 0xaa, 0x55, 0xab, 0x54, 0xd5, 0x2a, 0xd5, 0x2a,
++	 0x53, 0xac, 0xcc, 0x33, 0x2b, 0xd4, 0x34, 0xcb,
++	 0xd2, 0x2d, 0xb3, 0x4c, 0x4b, 0xb4, 0x52, 0xad,
++	 0xca, 0x35, 0xab, 0x54, 0xb5, 0x4a, 0xcd, 0x32,
++	 0x4d, 0xb2, 0xcc, 0x33, 0xb5, 0x4a, 0x53, 0xac,
++	 0xd4, 0x2b, 0xd3, 0x2c, 0xd5, 0x2a, 0xad, 0x52,
++	 0xcb, 0x34, 0xd5, 0x2a, 0xab, 0x54, 0xad, 0x52,
++	 0x2d, 0xd2, 0xb4, 0x4b, 0xb3, 0x4c, 0x4d, 0xb2,
++	 0x4a, 0xb5, 0x2a, 0xd5, 0xb4, 0x4b, 0xcb, 0x34,
++	 0x35, 0xca, 0xb4, 0x4b, 0x55, 0xaa, 0xd2, 0x2d,
++	 0x4d, 0xb2, 0xca, 0x35, 0xb3, 0x4c, 0x55, 0xaa,
++	 0x34, 0xcb, 0x32, 0xcd, 0x34, 0xcb, 0xac, 0x53,
++	 0xad, 0x52, 0xb3, 0x4c, 0xcd, 0x32, 0x4d, 0xb2,
++	 0xd2, 0x2d, 0x4b, 0xb4, 0xac, 0x53, 0x4b, 0xb4,
++	 0x4a, 0xb5, 0x2a, 0xd5, 0x52, 0xad, 0xca, 0x35,
++	 0x35, 0xca, 0x54, 0xab, 0x32, 0xcd, 0xd2, 0x2d,
++	 0x4d, 0xb2, 0x4c, 0xb3, 0xac, 0x53, 0x55, 0xaa,
++	 0xd4, 0x2b, 0x2b, 0xd4, 0x32, 0xcd, 0xac, 0x53,
++	 0x4b, 0xb4, 0x54, 0xab, 0xcc, 0x33, 0xad, 0x52,
++	 0x55, 0xaa, 0x2c, 0xd3, 0xac, 0x53, 0xcd, 0x32,
++	 0xd3, 0x2c, 0x35, 0xca, 0xb2, 0x4d, 0x33, 0xcc,
++	 0x2a, 0xd5, 0x52, 0xad, 0xd4, 0x2b, 0xd3, 0x2c,
++	 0xab, 0x54, 0xad, 0x52, 0xcb, 0x34, 0xb5, 0x4a,
++	 0xb3, 0x4c, 0xad, 0x52, 0x2d, 0xd2, 0x2a, 0xd5,
++	 0xb4, 0x4b, 0x4d, 0xb2, 0x2a, 0xd5, 0xb4, 0x4b,
++	 0xb5, 0x4a, 0xcb, 0x34, 0x4b, 0xb4, 0xca, 0x35,
++	 0x55, 0xaa, 0xb2, 0x4d, 0x35, 0xca, 0xd2, 0x2d,
++	 0xb3, 0x4c, 0xcb, 0x34, 0xad, 0x52, 0x35, 0xca,
++	 0x54, 0xab, 0x52, 0xad, 0x32, 0xcd, 0xb2, 0x4d,
++	 0xb3, 0x4c, 0x4d, 0xb2, 0xac, 0x53, 0x2b, 0xd4,
++	 0xb4, 0x4b, 0x2b, 0xd4, 0x52, 0xad, 0xb4, 0x4b,
++	 0x55, 0xaa, 0x54, 0xab, 0x52, 0xad, 0xca, 0x35,
++	 0x53, 0xac, 0x4c, 0xb3, 0x32, 0xcd, 0x32, 0xcd,
++	 0xd2, 0x2d, 0x4b, 0xb4, 0xac, 0x53, 0x53, 0xac,
++	 0x4a, 0xb5, 0x2a, 0xd5, 0xd2, 0x2d, 0xcd, 0x32,
++	 0x35, 0xca, 0x54, 0xab, 0xaa, 0x55, 0xd3, 0x2c,
++	 0x4d, 0xb2, 0xcc, 0x33, 0xd3, 0x2c, 0x55, 0xaa,
++	 0xd4, 0x2b, 0x33, 0xcc, 0x2a, 0xd5, 0xac, 0x53,
++	 0xcb, 0x34, 0xd3, 0x2c, 0xcb, 0x34, 0xad, 0x52,
++	 0xcd, 0x32, 0xb5, 0x4a, 0xad, 0x52, 0x4d, 0xb2,
++	 0x2c, 0xd3, 0x4a, 0xb5, 0xb2, 0x4d, 0x2b, 0xd4,
++	 0x2a, 0xd5, 0x4a, 0xb5, 0x54, 0xab, 0xd4, 0x2b,
++	 0x2b, 0xd4, 0xaa, 0x55, 0x53, 0xac, 0xb4, 0x4b,
++	 0x2b, 0xd4, 0x2c, 0xd3, 0x52, 0xad, 0xaa, 0x55,
++	 0xcb, 0x34, 0x55, 0xaa, 0x32, 0xcd, 0xac, 0x53,
++	 0x2d, 0xd2, 0x4c, 0xb3, 0xcc, 0x33, 0x4d, 0xb2,
++	 0xca, 0x35, 0x2b, 0xd4, 0xac, 0x53, 0xcb, 0x34,
++	 0x4d, 0xb2, 0x34, 0xcb, 0x52, 0xad, 0x52, 0xad,
++	 0x54, 0xab, 0x52, 0xad, 0xb2, 0x4d, 0xad, 0x52,
++	 0xb3, 0x4c, 0x4d, 0xb2, 0xb4, 0x4b, 0x2d, 0xd2,
++	 0xb4, 0x4b, 0xab, 0x54, 0xb5, 0x4a, 0xb5, 0x4a,
++	 0x55, 0xaa, 0xcc, 0x33, 0x35, 0xca, 0xca, 0x35,
++	 0xd3, 0x2c, 0xd3, 0x2c, 0x2d, 0xd2, 0x32, 0xcd,
++	 0xca, 0x35, 0x55, 0xaa, 0xaa, 0x55, 0xd3, 0x2c,
++	 0x2d, 0xd2, 0xcc, 0x33, 0xd3, 0x2c, 0x55, 0xaa,
++	 0xca, 0x35, 0x33, 0xcc, 0x2a, 0xd5, 0xcc, 0x33,
++	 0xcd, 0x32, 0xd3, 0x2c, 0xcb, 0x34, 0x53, 0xac,
++	 0xcc, 0x33, 0xb5, 0x4a, 0xcd, 0x32, 0x2d, 0xd2,
++	 0x2c, 0xd3, 0x4a, 0xb5, 0xac, 0x53, 0x35, 0xca,
++	 0x2a, 0xd5, 0x2a, 0xd5, 0x32, 0xcd, 0xd2, 0x2d,
++	 0x2b, 0xd4, 0x54, 0xab, 0xac, 0x53, 0xb5, 0x4a,
++	 0x4b, 0xb4, 0x2c, 0xd3, 0x32, 0xcd, 0xaa, 0x55,
++	 0xd5, 0x2a, 0x55, 0xaa, 0x2c, 0xd3, 0xcc, 0x33,
++	 0x2b, 0xd4, 0x2c, 0xd3, 0xca, 0x35, 0xb3, 0x4c,
++	 0xcb, 0x34, 0xd5, 0x2a, 0xcd, 0x32, 0xab, 0x54,
++	 0x2d, 0xd2, 0x54, 0xab, 0x4c, 0xb3, 0x4c, 0xb3,
++	 0x4a, 0xb5, 0x2c, 0xd3, 0xd4, 0x2b, 0xcb, 0x34,
++	 0xd5, 0x2a, 0xb5, 0x4a, 0x4b, 0xb4, 0xd2, 0x2d,
++	 0x2b, 0xd4, 0xaa, 0x55, 0xb5, 0x4a, 0xb5, 0x4a,
++	 0x2b, 0xd4, 0xcc, 0x33, 0x35, 0xca, 0xaa, 0x55,
++	 0xcb, 0x34, 0xd3, 0x2c, 0x2d, 0xd2, 0xac, 0x53,
++	 0xcd, 0x32, 0x55, 0xaa, 0xca, 0x35, 0x4d, 0xb2,
++	 0x2c, 0xd3, 0xcc, 0x33, 0xad, 0x52, 0x2b, 0xd4,
++	 0xca, 0x35, 0x53, 0xac, 0x52, 0xad, 0xd4, 0x2b,
++	 0xcd, 0x32, 0x4d, 0xb2, 0x52, 0xad, 0x54, 0xab,
++	 0xac, 0x53, 0x4b, 0xb4, 0x52, 0xad, 0x2c, 0xd3,
++	 0x52, 0xad, 0x4a, 0xb5, 0xd2, 0x2d, 0x55, 0xaa,
++	 0x32, 0xcd, 0x4a, 0xb5, 0x2a, 0xd5, 0x4c, 0xb3,
++	 0x2c, 0xd3, 0xca, 0x35, 0xcb, 0x34, 0x2b, 0xd4,
++	 0x2a, 0xd5, 0xb2, 0x4d, 0x4d, 0xb2, 0xd4, 0x2b,
++	 0xab, 0x54, 0x4b, 0xb4, 0x54, 0xab, 0xb4, 0x4b,
++	 0x53, 0xac, 0xaa, 0x55, 0x53, 0xac, 0x2a, 0xd5,
++	 0x32, 0xcd, 0x2c, 0xd3, 0x32, 0xcd, 0x54, 0xab,
++	 0xcc, 0x33, 0x55, 0xaa, 0x4c, 0xb3, 0x2c, 0xd3,
++	 0x2c, 0xd3, 0x2c, 0xd3, 0xd4, 0x2b, 0x35, 0xca,
++	 0xca, 0x35, 0xb5, 0x4a, 0x2b, 0xd4, 0xd2, 0x2d,
++	 0x2d, 0xd2, 0xaa, 0x55, 0xab, 0x54, 0x55, 0xaa,
++	 0x2a, 0xd5, 0xac, 0x53, 0x33, 0xcc, 0xcc, 0x33,
++	 0xcb, 0x34, 0x2d, 0xd2, 0xcc, 0x33, 0xb3, 0x4c,
++	 0xad, 0x52, 0x35, 0xca, 0xcc, 0x33, 0x4b, 0xb4,
++	 0x32, 0xcd, 0x32, 0xcd, 0x4c, 0xb3, 0x4a, 0xb5,
++	 0xac, 0x53, 0x33, 0xcc, 0x34, 0xcb, 0x2a, 0xd5,
++	 0xd2, 0x2d, 0xb3, 0x4c, 0x2d, 0xd2, 0x54, 0xab,
++	 0xca, 0x35, 0x4b, 0xb4, 0x4a, 0xb5, 0xcc, 0x33,
++	 0x4d, 0xb2, 0xca, 0x35, 0xd5, 0x2a, 0x53, 0xac,
++	 0x34, 0xcb, 0xd2, 0x2d, 0xcb, 0x34, 0xad, 0x52,
++	 0xad, 0x52, 0xb5, 0x4a, 0xad, 0x52, 0x4d, 0xb2,
++	 0x32, 0xcd, 0x4a, 0xb5, 0xb2, 0x4d, 0x4b, 0xb4,
++	 0x2c, 0xd3, 0x4a, 0xb5, 0x54, 0xab, 0x2a, 0xd5,
++	 0x2a, 0xd5, 0xaa, 0x55, 0x33, 0xcc, 0xd4, 0x2b,
++	 0x2b, 0xd4, 0x2c, 0xd3, 0x4c, 0xb3, 0xb4, 0x4b,
++	 0xcb, 0x34, 0x35, 0xca, 0x54, 0xab, 0xaa, 0x55,
++	 0x2d, 0xd2, 0xb2, 0x4d, 0x33, 0xcc, 0x4c, 0xb3,
++	 0xaa, 0x55, 0x2b, 0xd4, 0xcc, 0x33, 0xcb, 0x34,
++	 0x53, 0xac, 0x34, 0xcb, 0x4c, 0xb3, 0x32, 0xcd,
++	 0x52, 0xad, 0x32, 0xcd, 0xb4, 0x4b, 0x53, 0xac,
++	 0xb2, 0x4d, 0xb3, 0x4c, 0xd5, 0x2a, 0x4d, 0xb2,
++	 0xd4, 0x2b, 0xcb, 0x34, 0xab, 0x54, 0xab, 0x54,
++	 0x4b, 0xb4, 0xb2, 0x4d, 0x53, 0xac, 0xac, 0x53,
++	 0xb5, 0x4a, 0x2b, 0xd4, 0xd2, 0x2d, 0xcd, 0x32,
++	 0x55, 0xaa, 0x54, 0xab, 0xaa, 0x55, 0xd3, 0x2c,
++	 0x53, 0xac, 0xcc, 0x33, 0xd3, 0x2c, 0x35, 0xca,
++	 0xd2, 0x2d, 0x33, 0xcc, 0x2a, 0xd5, 0x52, 0xad,
++	 0xca, 0x35, 0xd3, 0x2c, 0xab, 0x54, 0xcd, 0x32,
++	 0xcd, 0x32, 0xb5, 0x4a, 0xb3, 0x4c, 0x53, 0xac,
++	 0x2c, 0xd3, 0x2a, 0xd5, 0xd4, 0x2b, 0x2d, 0xd2,
++	 0x2a, 0xd5, 0xb4, 0x4b, 0xab, 0x54, 0xd5, 0x2a,
++	 0x4b, 0xb4, 0xaa, 0x55, 0x33, 0xcc, 0xb4, 0x4b,
++	 0x35, 0xca, 0x2c, 0xd3, 0x4c, 0xb3, 0xca, 0x35,
++	 0xcd, 0x32, 0x35, 0xca, 0x34, 0xcb, 0x52, 0xad,
++	 0x2c, 0xd3, 0xb2, 0x4d, 0xad, 0x52, 0x2d, 0xd2,
++	 0xaa, 0x55, 0x4b, 0xb4, 0xb2, 0x4d, 0xd5, 0x2a,
++	 0x53, 0xac, 0x4a, 0xb5, 0x34, 0xcb, 0x34, 0xcb,
++	 0x32, 0xcd, 0xaa, 0x55, 0x4d, 0xb2, 0x52, 0xad,
++	 0x2c, 0xd3, 0x4c, 0xb3, 0xb4, 0x4b, 0x2d, 0xd2,
++	 0xca, 0x35, 0xab, 0x54, 0xb5, 0x4a, 0xd5, 0x2a,
++	 0x4d, 0xb2, 0xcc, 0x33, 0x35, 0xca, 0x54, 0xab,
++	 0xd4, 0x2b, 0xd3, 0x2c, 0x4d, 0xb2, 0xac, 0x53,
++	 0xcb, 0x34, 0x55, 0xaa, 0xd4, 0x2b, 0xad, 0x52,
++	 0x2d, 0xd2, 0xac, 0x53, 0xab, 0x54, 0x4d, 0xb2,
++	 0xca, 0x35, 0xad, 0x52, 0xb3, 0x4c, 0xcb, 0x34,
++	 0xad, 0x52, 0x2d, 0xd2, 0x54, 0xab, 0x52, 0xad,
++	 0xb2, 0x4d, 0xb5, 0x4a, 0xb3, 0x4c, 0x4d, 0xb2,
++	 0x34, 0xcb, 0x2a, 0xd5, 0xb4, 0x4b, 0xab, 0x54,
++	 0x2d, 0xd2, 0xb4, 0x4b, 0x55, 0xaa, 0x4c, 0xb3,
++	 0x4a, 0xb5, 0xca, 0x35, 0xd3, 0x2c, 0xcb, 0x34,
++	 0x35, 0xca, 0x32, 0xcd, 0x4a, 0xb5, 0xd2, 0x2d,
++	 0xad, 0x52, 0xd3, 0x2c, 0xb5, 0x4a, 0x55, 0xaa,
++	 0xd2, 0x2d, 0xd5, 0x2a, 0x35, 0xca, 0x4c, 0xb3,
++	 0x2a, 0xd5, 0xd4, 0x2b, 0xcd, 0x32, 0xcb, 0x34,
++	 0x4b, 0xb4, 0x54, 0xab, 0x4c, 0xb3, 0xb2, 0x4d,
++	 0x55, 0xaa, 0x2c, 0xd3, 0xb4, 0x4b, 0xcb, 0x34,
++	 0xd3, 0x2c, 0xb5, 0x4a, 0x55, 0xaa, 0x32, 0xcd,
++	 0x2a, 0xd5, 0xca, 0x35, 0xb3, 0x4c, 0xd3, 0x2c,
++	 0x2b, 0xd4, 0x32, 0xcd, 0xd4, 0x2b, 0xb5, 0x4a,
++	 0xab, 0x54, 0xb3, 0x4c, 0x2b, 0xd4, 0xaa, 0x55,
++	 0xd3, 0x2c, 0xab, 0x54, 0x2b, 0xd4, 0x2c, 0xd3,
++	 0x4a, 0xb5, 0xac, 0x53, 0xcb, 0x34, 0xd5, 0x2a,
++	 0xd5, 0x2a, 0xad, 0x52, 0x2d, 0xd2, 0xd4, 0x2b,
++	 0xab, 0x54, 0x4d, 0xb2, 0x4a, 0xb5, 0xb4, 0x4b,
++	 0xb3, 0x4c, 0xcb, 0x34, 0x55, 0xaa, 0x2a, 0xd5,
++	 0x54, 0xab, 0xd2, 0x2d, 0x33, 0xcc, 0xb4, 0x4b,
++	 0xb3, 0x4c, 0x35, 0xca, 0x4c, 0xb3, 0x2a, 0xd5,
++	 0x34, 0xcb, 0x32, 0xcd, 0x34, 0xcb, 0xb4, 0x4b,
++	 0xad, 0x52, 0xb3, 0x4c, 0x4d, 0xb2, 0x4a, 0xb5,
++	 0xd2, 0x2d, 0x4b, 0xb4, 0x34, 0xcb, 0x4a, 0xb5,
++	 0x4a, 0xb5, 0xaa, 0x55, 0x2d, 0xd2, 0xca, 0x35,
++	 0x35, 0xca, 0x4c, 0xb3, 0x2a, 0xd5, 0xd2, 0x2d,
++	 0xcd, 0x32, 0xcb, 0x34, 0xab, 0x54, 0x55, 0xaa,
++	 0x4c, 0xb3, 0xb2, 0x4d, 0x33, 0xcc, 0x2c, 0xd3,
++	 0xb4, 0x4b, 0x2b, 0xd4, 0xcc, 0x33, 0xb5, 0x4a,
++	 0x55, 0xaa, 0x34, 0xcb, 0x2c, 0xd3, 0xca, 0x35,
++	 0x53, 0xac, 0x32, 0xcd, 0x2a, 0xd5, 0x32, 0xcd,
++	 0xb2, 0x4d, 0xd3, 0x2c, 0xab, 0x54, 0x53, 0xac,
++	 0xd4, 0x2b, 0xb5, 0x4a, 0xd3, 0x2c, 0xad, 0x52,
++	 0x2b, 0xd4, 0x2a, 0xd5, 0xaa, 0x55, 0xad, 0x52,
++	 0x2b, 0xd4, 0xd4, 0x2b, 0xb3, 0x4c, 0xad, 0x52,
++	 0x4b, 0xb4, 0x34, 0xcb, 0xb4, 0x4b, 0xad, 0x52,
++	 0x55, 0xaa, 0xb2, 0x4d, 0xb5, 0x4a, 0xcd, 0x32,
++	 0xb3, 0x4c, 0xcb, 0x34, 0xb5, 0x4a, 0x33, 0xcc,
++	 0x54, 0xab, 0xd2, 0x2d, 0xd5, 0x2a, 0xb3, 0x4c,
++	 0xb3, 0x4c, 0xd5, 0x2a, 0xcb, 0x34, 0x2b, 0xd4,
++	 0x34, 0xcb, 0xb4, 0x4b, 0x4d, 0xb2, 0xb4, 0x4b,
++	 0x4d, 0xb2, 0x4a, 0xb5, 0x54, 0xab, 0x4a, 0xb5,
++	 0x34, 0xcb, 0xaa, 0x55, 0x33, 0xcc, 0xaa, 0x55,
++	 0x2d, 0xd2, 0x2c, 0xd3, 0x2c, 0xd3, 0x4c, 0xb3,
++	 0xca, 0x35, 0x35, 0xca, 0xca, 0x35, 0xcb, 0x34,
++	 0x2d, 0xd2, 0xd2, 0x2d, 0x4d, 0xb2, 0x52, 0xad,
++	 0xaa, 0x55, 0x55, 0xaa, 0xb4, 0x4b, 0xcd, 0x32,
++	 0x33, 0xcc, 0xac, 0x53, 0xb5, 0x4a, 0x33, 0xcc,
++	 0xcc, 0x33, 0xcd, 0x32, 0xd5, 0x2a, 0x33, 0xcc,
++	 0xac, 0x53, 0xd3, 0x2c, 0xcb, 0x34, 0x33, 0xcc,
++	 0xd2, 0x2d, 0xb5, 0x4a, 0xcd, 0x32, 0x53, 0xac,
++	 0x2a, 0xd5, 0x4a, 0xb5, 0xcc, 0x33, 0xcd, 0x32,
++	 0x2b, 0xd4, 0x2a, 0xd5, 0xac, 0x53, 0xb3, 0x4c,
++	 0x2b, 0xd4, 0x34, 0xcb, 0xd2, 0x2d, 0xab, 0x54,
++	 0x4b, 0xb4, 0x52, 0xad, 0x4a, 0xb5, 0xac, 0x53,
++	 0xb5, 0x4a, 0xcd, 0x32, 0xd5, 0x2a, 0xcd, 0x32,
++	 0xb5, 0x4a, 0xd3, 0x2c, 0xab, 0x54, 0xd3, 0x2c,
++	 0xd5, 0x2a, 0xb5, 0x4a, 0xd3, 0x2c, 0xd5, 0x2a,
++	 0x2b, 0xd4, 0x2a, 0xd5, 0x2a, 0xd5, 0xb4, 0x4b,
++	 0x2b, 0xd4, 0xd4, 0x2b, 0x4b, 0xb4, 0xaa, 0x55,
++	 0x4b, 0xb4, 0xb4, 0x4b, 0x35, 0xca, 0xac, 0x53,
++	 0x55, 0xaa, 0xca, 0x35, 0xcd, 0x32, 0xcd, 0x32,
++	 0x33, 0xcc, 0x52, 0xad, 0xac, 0x53, 0x33, 0xcc,
++	 0xac, 0x53, 0x2d, 0xd2, 0xd2, 0x2d, 0x33, 0xcc,
++	 0xb2, 0x4d, 0x55, 0xaa, 0xca, 0x35, 0x53, 0xac,
++	 0x34, 0xcb, 0xcc, 0x33, 0xcd, 0x32, 0xad, 0x52,
++	 0xcd, 0x32, 0x53, 0xac, 0xac, 0x53, 0x4d, 0xb2,
++	 0xcc, 0x33, 0x2d, 0xd2, 0xb2, 0x4d, 0x2b, 0xd4,
++	 0xac, 0x53, 0x55, 0xaa, 0x54, 0xab, 0x34, 0xcb,
++	 0x32, 0xcd, 0xac, 0x53, 0x53, 0xac, 0x52, 0xad,
++	 0xcc, 0x33, 0x2d, 0xd2, 0xb2, 0x4d, 0x2d, 0xd2,
++	 0xac, 0x53, 0x55, 0xaa, 0xb4, 0x4b, 0x35, 0xca,
++	 0x32, 0xcd, 0xac, 0x53, 0x35, 0xca, 0x52, 0xad,
++	 0xcc, 0x33, 0xcd, 0x32, 0xad, 0x52, 0x2d, 0xd2,
++	 0xac, 0x53, 0x53, 0xac, 0xb2, 0x4d, 0x35, 0xca,
++	 0xd2, 0x2d, 0x4d, 0xb2, 0x34, 0xcb, 0x52, 0xad,
++	 0xaa, 0x55, 0xab, 0x54, 0xad, 0x52, 0xcd, 0x32,
++	 0x53, 0xac, 0x4c, 0xb3, 0xb2, 0x4d, 0x33, 0xcc,
++	 0xd2, 0x2d, 0x4b, 0xb4, 0xd4, 0x2b, 0x53, 0xac,
++	 0x4a, 0xb5, 0xaa, 0x55, 0xcb, 0x34, 0xcd, 0x32,
++	 0x35, 0xca, 0xac, 0x53, 0xad, 0x52, 0xd3, 0x2c,
++	 0xcd, 0x32, 0x4d, 0xb2, 0xd2, 0x2d, 0x55, 0xaa,
++	 0xac, 0x53, 0x4b, 0xb4, 0x2a, 0xd5, 0x2c, 0xd3,
++	 0x52, 0xad, 0xca, 0x35, 0xcb, 0x34, 0x55, 0xaa,
++	 0x32, 0xcd, 0xb2, 0x4d, 0x2d, 0xd2, 0x4c, 0xb3,
++	 0xac, 0x53, 0x4b, 0xb4, 0xca, 0x35, 0x2b, 0xd4,
++	 0x52, 0xad, 0xca, 0x35, 0x4d, 0xb2, 0x54, 0xab,
++	 0x32, 0xcd, 0x52, 0xad, 0x54, 0xab, 0x4c, 0xb3,
++	 0xac, 0x53, 0xad, 0x52, 0xd3, 0x2c, 0x2b, 0xd4,
++	 0xb2, 0x4d, 0x2d, 0xd2, 0x4a, 0xb5, 0x54, 0xab,
++	 0xb4, 0x4b, 0xd5, 0x2a, 0x55, 0xaa, 0xac, 0x53,
++	 0x35, 0xca, 0xd4, 0x2b, 0xd3, 0x2c, 0xcd, 0x32,
++	 0x4d, 0xb2, 0x34, 0xcb, 0xaa, 0x55, 0x53, 0xac,
++	 0x54, 0xab, 0xd2, 0x2d, 0xd3, 0x2c, 0xad, 0x52,
++	 0xb3, 0x4c, 0x35, 0xca, 0xaa, 0x55, 0x2d, 0xd2,
++	 0x34, 0xcb, 0xd2, 0x2d, 0xb3, 0x4c, 0xb5, 0x4a,
++	 0xad, 0x52, 0x35, 0xca, 0x34, 0xcb, 0x4a, 0xb5,
++	 0x32, 0xcd, 0xb2, 0x4d, 0x2d, 0xd2, 0x4a, 0xb5,
++	 0xac, 0x53, 0x4b, 0xb4, 0x2a, 0xd5, 0x2a, 0xd5,
++	 0x52, 0xad, 0xca, 0x35, 0x2b, 0xd4, 0x54, 0xab,
++	 0x32, 0xcd, 0xb2, 0x4d, 0x4b, 0xb4, 0x4c, 0xb3,
++	 0xac, 0x53, 0xab, 0x54, 0xd5, 0x2a, 0x2b, 0xd4,
++	 0x52, 0xad, 0xcc, 0x33, 0x4b, 0xb4, 0x54, 0xab,
++	 0xd2, 0x2d, 0xb3, 0x4c, 0x55, 0xaa, 0x4c, 0xb3,
++	 0xca, 0x35, 0xcb, 0x34, 0xd3, 0x2c, 0xcb, 0x34,
++	 0x4d, 0xb2, 0x32, 0xcd, 0x4a, 0xb5, 0x52, 0xad,
++	 0xb4, 0x4b, 0xd3, 0x2c, 0xb5, 0x4a, 0xad, 0x52,
++	 0xd5, 0x2a, 0xd5, 0x2a, 0xb5, 0x4a, 0xcd, 0x32,
++	 0x2b, 0xd4, 0xd4, 0x2b, 0xb5, 0x4a, 0xb3, 0x4c,
++	 0x4b, 0xb4, 0xd4, 0x2b, 0xd5, 0x2a, 0xab, 0x54,
++	 0x55, 0xaa, 0xd4, 0x2b, 0x4b, 0xb4, 0xcc, 0x33,
++	 0x53, 0xac, 0xb4, 0x4b, 0xd5, 0x2a, 0x33, 0xcc,
++	 0x52, 0xad, 0xca, 0x35, 0xcb, 0x34, 0x53, 0xac,
++	 0x32, 0xcd, 0xb2, 0x4d, 0xcd, 0x32, 0x4d, 0xb2,
++	 0xac, 0x53, 0x4b, 0xb4, 0xac, 0x53, 0x2b, 0xd4,
++	 0x52, 0xad, 0x2a, 0xd5, 0x52, 0xad, 0x54, 0xab,
++	 0x32, 0xcd, 0x54, 0xab, 0x52, 0xad, 0x4c, 0xb3,
++	 0x4c, 0xb3, 0x4c, 0xb3, 0xd2, 0x2d, 0x2b, 0xd4,
++	 0xd4, 0x2b, 0x4b, 0xb4, 0x4a, 0xb5, 0xb4, 0x4b,
++	 0x4b, 0xb4, 0xca, 0x35, 0x55, 0xaa, 0xaa, 0x55,
++	 0x35, 0xca, 0xd2, 0x2d, 0x33, 0xcc, 0xcc, 0x33,
++	 0xad, 0x52, 0x35, 0xca, 0xcc, 0x33, 0x53, 0xac,
++	 0x32, 0xcd, 0x32, 0xcd, 0xcc, 0x33, 0x4d, 0xb2,
++	 0xac, 0x53, 0x33, 0xcc, 0xac, 0x53, 0x2b, 0xd4,
++	 0xd2, 0x2d, 0x33, 0xcc, 0x52, 0xad, 0x54, 0xab,
++	 0xca, 0x35, 0x53, 0xac, 0x52, 0xad, 0xcc, 0x33,
++	 0xcd, 0x32, 0x4d, 0xb2, 0xd2, 0x2d, 0x53, 0xac,
++	 0xac, 0x53, 0x4b, 0xb4, 0xca, 0x35, 0x2d, 0xd2,
++	 0x52, 0xad, 0xca, 0x35, 0xad, 0x52, 0x55, 0xaa,
++	 0x32, 0xcd, 0x52, 0xad, 0x32, 0xcd, 0x4c, 0xb3,
++	 0xac, 0x53, 0x4d, 0xb2, 0xcc, 0x33, 0x2b, 0xd4,
++	 0xb2, 0x4d, 0x2b, 0xd4, 0x4c, 0xb3, 0x54, 0xab,
++	 0x54, 0xab, 0x34, 0xcb, 0x54, 0xab, 0xac, 0x53,
++	 0x53, 0xac, 0xb2, 0x4d, 0xd3, 0x2c, 0x2d, 0xd2,
++	 0xb2, 0x4d, 0x2b, 0xd4, 0xaa, 0x55, 0x55, 0xaa,
++	 0x54, 0xab, 0xd4, 0x2b, 0x33, 0xcc, 0xac, 0x53,
++	 0x53, 0xac, 0x34, 0xcb, 0xcc, 0x33, 0x2d, 0xd2,
++	 0x52, 0xad, 0x32, 0xcd, 0xac, 0x53, 0x55, 0xaa,
++	 0xb2, 0x4d, 0x33, 0xcc, 0x32, 0xcd, 0x4c, 0xb3,
++	 0xd4, 0x2b, 0x53, 0xac, 0xcc, 0x33, 0xab, 0x54,
++	 0xcb, 0x34, 0x2d, 0xd2, 0x4c, 0xb3, 0xac, 0x53,
++	 0xad, 0x52, 0x35, 0xca, 0xd4, 0x2b, 0x4d, 0xb2,
++	 0x32, 0xcd, 0xb2, 0x4d, 0xab, 0x54, 0x4b, 0xb4,
++	 0xac, 0x53, 0xab, 0x54, 0x53, 0xac, 0x2a, 0xd5,
++	 0x52, 0xad, 0x2c, 0xd3, 0x32, 0xcd, 0x54, 0xab,
++	 0xd2, 0x2d, 0x55, 0xaa, 0x4c, 0xb3, 0x4c, 0xb3,
++	 0x2a, 0xd5, 0x2c, 0xd3, 0xd4, 0x2b, 0xcb, 0x34,
++	 0xcb, 0x34, 0xb5, 0x4a, 0x4b, 0xb4, 0xb2, 0x4d,
++	 0x2d, 0xd2, 0xaa, 0x55, 0xb5, 0x4a, 0x4b, 0xb4,
++	 0x2a, 0xd5, 0xcc, 0x33, 0x55, 0xaa, 0xca, 0x35,
++	 0xcb, 0x34, 0xd3, 0x2c, 0x33, 0xcc, 0xb2, 0x4d,
++	 0xcd, 0x32, 0x35, 0xca, 0xac, 0x53, 0x4b, 0xb4,
++	 0x2c, 0xd3, 0x32, 0xcd, 0x52, 0xad, 0x2a, 0xd5,
++	 0xaa, 0x55, 0x53, 0xac, 0x32, 0xcd, 0xd4, 0x2b,
++	 0xd3, 0x2c, 0x4d, 0xb2, 0x4c, 0xb3, 0x34, 0xcb,
++	 0xaa, 0x55, 0x2b, 0xd4, 0x54, 0xab, 0xd2, 0x2d,
++	 0x53, 0xac, 0xb4, 0x4b, 0xb3, 0x4c, 0x35, 0xca,
++	 0x52, 0xad, 0x2a, 0xd5, 0x34, 0xcb, 0x52, 0xad,
++	 0x32, 0xcd, 0xb4, 0x4b, 0xad, 0x52, 0x4d, 0xb2,
++	 0x4c, 0xb3, 0x4a, 0xb5, 0xb2, 0x4d, 0x2b, 0xd4,
++	 0x34, 0xcb, 0x4a, 0xb5, 0x54, 0xab, 0xb4, 0x4b,
++	 0x2d, 0xd2, 0xaa, 0x55, 0x53, 0xac, 0x4a, 0xb5,
++	 0x2a, 0xd5, 0x2c, 0xd3, 0x32, 0xcd, 0xca, 0x35,
++	 0xcb, 0x34, 0x55, 0xaa, 0x2c, 0xd3, 0xb2, 0x4d,
++	 0x2d, 0xd2, 0x2c, 0xd3, 0xaa, 0x55, 0x4b, 0xb4,
++	 0xca, 0x35, 0xd5, 0x2a, 0x53, 0xac, 0xca, 0x35,
++	 0x2d, 0xd2, 0x34, 0xcb, 0x32, 0xcd, 0x52, 0xad,
++	 0x4a, 0xb5, 0x52, 0xad, 0xac, 0x53, 0xcd, 0x32,
++	 0xb5, 0x4a, 0x2d, 0xd2, 0xb2, 0x4d, 0xd3, 0x2c,
++	 0xb5, 0x4a, 0x55, 0xaa, 0xd4, 0x2b, 0xd5, 0x2a,
++	 0x35, 0xca, 0xac, 0x53, 0x2b, 0xd4, 0xd4, 0x2b,
++	 0xcd, 0x32, 0xad, 0x52, 0x4b, 0xb4, 0x54, 0xab,
++	 0xac, 0x53, 0xad, 0x52, 0x55, 0xaa, 0x2c, 0xd3,
++	 0xb2, 0x4d, 0xcd, 0x32, 0xd3, 0x2c, 0x55, 0xaa,
++	 0xb4, 0x4b, 0x33, 0xcc, 0x2a, 0xd5, 0xac, 0x53,
++	 0xd5, 0x2a, 0xd3, 0x2c, 0xcb, 0x34, 0xcd, 0x32,
++	 0xcb, 0x34, 0xb5, 0x4a, 0xad, 0x52, 0xb3, 0x4c,
++	 0x2d, 0xd2, 0x4a, 0xb5, 0xd2, 0x2d, 0x4b, 0xb4,
++	 0x2a, 0xd5, 0x4a, 0xb5, 0x4a, 0xb5, 0xca, 0x35,
++	 0x2b, 0xd4, 0xca, 0x35, 0x35, 0xca, 0xb2, 0x4d,
++	 0x2b, 0xd4, 0xd2, 0x2d, 0xad, 0x52, 0xab, 0x54,
++	 0xab, 0x54, 0x55, 0xaa, 0x52, 0xad, 0xac, 0x53,
++	 0x33, 0xcc, 0x4c, 0xb3, 0xd2, 0x2d, 0x2d, 0xd2,
++	 0xcc, 0x33, 0x4b, 0xb4, 0xaa, 0x55, 0x35, 0xca,
++	 0x4c, 0xb3, 0xca, 0x35, 0x33, 0xcc, 0x32, 0xcd,
++	 0x34, 0xcb, 0x32, 0xcd, 0xac, 0x53, 0xb3, 0x4c,
++	 0xad, 0x52, 0x33, 0xcc, 0xd2, 0x2d, 0x4b, 0xb4,
++	 0xd2, 0x2d, 0x53, 0xac, 0x4a, 0xb5, 0x4a, 0xb5,
++	 0xca, 0x35, 0xcd, 0x32, 0x35, 0xca, 0xca, 0x35,
++	 0xad, 0x52, 0xd3, 0x2c, 0x2d, 0xd2, 0x52, 0xad,
++	 0xd2, 0x2d, 0x55, 0xaa, 0xaa, 0x55, 0x4d, 0xb2,
++	 0x2a, 0xd5, 0xcc, 0x33, 0xb3, 0x4c, 0xcb, 0x34,
++	 0xcb, 0x34, 0x33, 0xcc, 0x54, 0xab, 0xb2, 0x4d,
++	 0xcd, 0x32, 0xb3, 0x4c, 0xb3, 0x4c, 0x4b, 0xb4,
++	 0xcc, 0x33, 0x2b, 0xd4, 0x54, 0xab, 0x2a, 0xd5,
++	 0x4c, 0xb3, 0xb4, 0x4b, 0x33, 0xcc, 0x34, 0xcb,
++	 0x54, 0xab, 0x2a, 0xd5, 0x4c, 0xb3, 0xb2, 0x4d,
++	 0x33, 0xcc, 0x34, 0xcb, 0xb4, 0x4b, 0x2b, 0xd4,
++	 0x4c, 0xb3, 0xb2, 0x4d, 0x55, 0xaa, 0x34, 0xcb,
++	 0xb4, 0x4b, 0xcb, 0x34, 0x53, 0xac, 0xb2, 0x4d,
++	 0x55, 0xaa, 0x32, 0xcd, 0xb2, 0x4d, 0xcb, 0x34,
++	 0xb3, 0x4c, 0x53, 0xac, 0x54, 0xab, 0x32, 0xcd,
++	 0xd4, 0x2b, 0xad, 0x52, 0xb3, 0x4c, 0xb3, 0x4c,
++	 0xab, 0x54, 0x2d, 0xd2, 0xd4, 0x2b, 0xab, 0x54,
++	 0xb3, 0x4c, 0xb5, 0x4a, 0x4b, 0xb4, 0x2c, 0xd3,
++	 0x34, 0xcb, 0xaa, 0x55, 0xd5, 0x2a, 0xb5, 0x4a,
++	 0x2d, 0xd2, 0xcc, 0x33, 0x2b, 0xd4, 0x4a, 0xb5,
++	 0xca, 0x35, 0xb3, 0x4c, 0x2b, 0xd4, 0xca, 0x35,
++	 0xcd, 0x32, 0xab, 0x54, 0x2b, 0xd4, 0x52, 0xad,
++	 0x4c, 0xb3, 0xac, 0x53, 0xab, 0x54, 0x2d, 0xd2,
++	 0xd4, 0x2b, 0xad, 0x52, 0xb3, 0x4c, 0xb5, 0x4a,
++	 0xab, 0x54, 0x2d, 0xd2, 0x34, 0xcb, 0xaa, 0x55,
++	 0xb3, 0x4c, 0xb5, 0x4a, 0x2d, 0xd2, 0x2c, 0xd3,
++	 0x34, 0xcb, 0x4a, 0xb5, 0xca, 0x35, 0xb5, 0x4a,
++	 0x2d, 0xd2, 0xca, 0x35, 0x2d, 0xd2, 0x4a, 0xb5,
++	 0x2a, 0xd5, 0x52, 0xad, 0x2a, 0xd5, 0xca, 0x35,
++	 0xab, 0x54, 0xcd, 0x32, 0x2b, 0xd4, 0xb2, 0x4d,
++	 0xb3, 0x4c, 0xb3, 0x4c, 0xab, 0x54, 0x2b, 0xd4,
++	 0xd4, 0x2b, 0xab, 0x54, 0x53, 0xac, 0xb4, 0x4b,
++	 0x4b, 0xb4, 0x2c, 0xd3, 0x52, 0xad, 0xaa, 0x55,
++	 0xd5, 0x2a, 0x55, 0xaa, 0x32, 0xcd, 0xcc, 0x33,
++	 0x2b, 0xd4, 0x4c, 0xb3, 0xcc, 0x33, 0xb3, 0x4c,
++	 0xcb, 0x34, 0x2b, 0xd4, 0xcc, 0x33, 0xab, 0x54,
++	 0x4d, 0xb2, 0x34, 0xcb, 0x4c, 0xb3, 0x4c, 0xb3,
++	 0x54, 0xab, 0x32, 0xcd, 0xd4, 0x2b, 0xab, 0x54,
++	 0xb3, 0x4c, 0xb3, 0x4c, 0x4b, 0xb4, 0x2c, 0xd3,
++	 0xd4, 0x2b, 0xab, 0x54, 0xd5, 0x2a, 0xb5, 0x4a,
++	 0x4b, 0xb4, 0xcc, 0x33, 0x2b, 0xd4, 0xaa, 0x55,
++	 0xd5, 0x2a, 0xb3, 0x4c, 0x2b, 0xd4, 0xcc, 0x33,
++	 0xcb, 0x34, 0xab, 0x54, 0xcb, 0x34, 0xb3, 0x4c,
++	 0x4d, 0xb2, 0xac, 0x53, 0xcd, 0x32, 0x4b, 0xb4,
++	 0xd4, 0x2b, 0x4d, 0xb2, 0x4c, 0xb3, 0xaa, 0x55,
++	 0xab, 0x54, 0x2b, 0xd4, 0x34, 0xcb, 0xac, 0x53,
++	 0x53, 0xac, 0xb4, 0x4b, 0xcd, 0x32, 0x2d, 0xd2,
++	 0x52, 0xad, 0x4a, 0xb5, 0xac, 0x53, 0x55, 0xaa,
++	 0x32, 0xcd, 0x2a, 0xd5, 0x32, 0xcd, 0x4c, 0xb3,
++	 0x2c, 0xd3, 0x54, 0xab, 0xcc, 0x33, 0x2b, 0xd4,
++	 0x4a, 0xb5, 0x2c, 0xd3, 0x4c, 0xb3, 0xd4, 0x2b,
++	 0xd5, 0x2a, 0x35, 0xca, 0x54, 0xab, 0xd4, 0x2b,
++	 0x2b, 0xd4, 0xb2, 0x4d, 0x53, 0xac, 0xb4, 0x4b,
++	 0xab, 0x54, 0x2b, 0xd4, 0x52, 0xad, 0xaa, 0x55,
++	 0x53, 0xac, 0x54, 0xab, 0x32, 0xcd, 0x2c, 0xd3,
++	 0x52, 0xad, 0x4c, 0xb3, 0xcc, 0x33, 0x55, 0xaa,
++	 0xd2, 0x2d, 0x2b, 0xd4, 0x2c, 0xd3, 0x4c, 0xb3,
++	 0x4a, 0xb5, 0x34, 0xcb, 0xca, 0x35, 0xcb, 0x34,
++	 0x55, 0xaa, 0xd2, 0x2d, 0x4d, 0xb2, 0xd2, 0x2d,
++	 0xb3, 0x4c, 0x55, 0xaa, 0xb4, 0x4b, 0x35, 0xca,
++	 0x34, 0xcb, 0xac, 0x53, 0x35, 0xca, 0xb2, 0x4d,
++	 0xcd, 0x32, 0xcd, 0x32, 0xad, 0x52, 0x4b, 0xb4,
++	 0xac, 0x53, 0x53, 0xac, 0x52, 0xad, 0x2a, 0xd5,
++	 0xd2, 0x2d, 0x4d, 0xb2, 0x32, 0xcd, 0x54, 0xab,
++	 0xaa, 0x55, 0x4b, 0xb4, 0x4c, 0xb3, 0xcc, 0x33,
++	 0x53, 0xac, 0x2a, 0xd5, 0xd4, 0x2b, 0x33, 0xcc,
++	 0x32, 0xcd, 0xb4, 0x4b, 0xcb, 0x34, 0x53, 0xac,
++	 0x4c, 0xb3, 0xaa, 0x55, 0xcd, 0x32, 0x2d, 0xd2,
++	 0x34, 0xcb, 0x4c, 0xb3, 0xac, 0x53, 0xb5, 0x4a,
++	 0xcd, 0x32, 0x2b, 0xd4, 0x32, 0xcd, 0x4a, 0xb5,
++	 0x4c, 0xb3, 0x54, 0xab, 0x2c, 0xd3, 0x2a, 0xd5,
++	 0x54, 0xab, 0x2c, 0xd3, 0x2a, 0xd5, 0xb4, 0x4b,
++	 0xd3, 0x2c, 0xd5, 0x2a, 0x4b, 0xb4, 0x2a, 0xd5,
++	 0x2a, 0xd5, 0xb4, 0x4b, 0x35, 0xca, 0xd4, 0x2b,
++	 0x4b, 0xb4, 0xca, 0x35, 0x4d, 0xb2, 0xb4, 0x4b,
++	 0x35, 0xca, 0x52, 0xad, 0x54, 0xab, 0xca, 0x35,
++	 0xad, 0x52, 0xad, 0x52, 0x33, 0xcc, 0x52, 0xad,
++	 0xb2, 0x4d, 0x2d, 0xd2, 0xac, 0x53, 0x4d, 0xb2,
++	 0xb4, 0x4b, 0x35, 0xca, 0xb2, 0x4d, 0xab, 0x54,
++	 0x35, 0xca, 0x52, 0xad, 0x54, 0xab, 0xcc, 0x33,
++	 0xad, 0x52, 0xad, 0x52, 0xd3, 0x2c, 0x53, 0xac,
++	 0xb2, 0x4d, 0x2d, 0xd2, 0xca, 0x35, 0x4d, 0xb2,
++	 0xb4, 0x4b, 0xd5, 0x2a, 0xad, 0x52, 0xab, 0x54,
++	 0x35, 0xca, 0x54, 0xab, 0x52, 0xad, 0xcc, 0x33,
++	 0x4d, 0xb2, 0x4c, 0xb3, 0xd2, 0x2d, 0x53, 0xac,
++	 0xd4, 0x2b, 0x4b, 0xb4, 0xca, 0x35, 0xad, 0x52,
++	 0x4b, 0xb4, 0xca, 0x35, 0xad, 0x52, 0xad, 0x52,
++	 0x35, 0xca, 0x52, 0xad, 0xb2, 0x4d, 0xcd, 0x32,
++	 0xad, 0x52, 0x4d, 0xb2, 0xb4, 0x4b, 0x53, 0xac,
++	 0xb2, 0x4d, 0xab, 0x54, 0xd5, 0x2a, 0x4d, 0xb2,
++	 0x54, 0xab, 0xcc, 0x33, 0xab, 0x54, 0xab, 0x54,
++	 0xd3, 0x2c, 0xb3, 0x4c, 0x53, 0xac, 0x2c, 0xd3,
++	 0xca, 0x35, 0x2b, 0xd4, 0xd2, 0x2d, 0xd5, 0x2a,
++	 0x4d, 0xb2, 0x54, 0xab, 0x2a, 0xd5, 0x54, 0xab,
++	 0x54, 0xab, 0xcc, 0x33, 0x4b, 0xb4, 0xac, 0x53,
++	 0xd3, 0x2c, 0xb3, 0x4c, 0xd5, 0x2a, 0x2d, 0xd2,
++	 0xca, 0x35, 0xcb, 0x34, 0xab, 0x54, 0xd5, 0x2a,
++	 0x4d, 0xb2, 0xb2, 0x4d, 0x33, 0xcc, 0x54, 0xab,
++	 0xb4, 0x4b, 0x2b, 0xd4, 0x4c, 0xb3, 0xac, 0x53,
++	 0x55, 0xaa, 0x34, 0xcb, 0xd4, 0x2b, 0xcd, 0x32,
++	 0x53, 0xac, 0xb2, 0x4d, 0xab, 0x54, 0x33, 0xcc,
++	 0xb2, 0x4d, 0xab, 0x54, 0xd3, 0x2c, 0x53, 0xac,
++	 0x54, 0xab, 0x2c, 0xd3, 0xca, 0x35, 0xad, 0x52,
++	 0xd3, 0x2c, 0xd5, 0x2a, 0xad, 0x52, 0x2d, 0xd2,
++	 0x2a, 0xd5, 0x54, 0xab, 0xb2, 0x4d, 0xd5, 0x2a,
++	 0x4b, 0xb4, 0x4c, 0xb3, 0x34, 0xcb, 0xb4, 0x4b,
++	 0xd5, 0x2a, 0xab, 0x54, 0x4d, 0xb2, 0xca, 0x35,
++	 0x4b, 0xb4, 0x4c, 0xb3, 0x34, 0xcb, 0xb2, 0x4d,
++	 0xd5, 0x2a, 0xab, 0x54, 0xad, 0x52, 0xcb, 0x34,
++	 0x4b, 0xb4, 0x4c, 0xb3, 0x52, 0xad, 0xb2, 0x4d,
++	 0xd5, 0x2a, 0x4b, 0xb4, 0xb2, 0x4d, 0xcb, 0x34,
++	 0x4b, 0xb4, 0x4a, 0xb5, 0x54, 0xab, 0xb2, 0x4d,
++	 0x35, 0xca, 0xaa, 0x55, 0xb3, 0x4c, 0xcb, 0x34,
++	 0x2d, 0xd2, 0x2c, 0xd3, 0x54, 0xab, 0x52, 0xad,
++	 0xca, 0x35, 0xb5, 0x4a, 0xb3, 0x4c, 0xcd, 0x32,
++	 0x2d, 0xd2, 0x2a, 0xd5, 0xb4, 0x4b, 0x53, 0xac,
++	 0x2a, 0xd5, 0xb4, 0x4b, 0xd5, 0x2a, 0xcd, 0x32,
++	 0x4b, 0xb4, 0xca, 0x35, 0xab, 0x54, 0xb3, 0x4c,
++	 0x35, 0xca, 0xb2, 0x4d, 0xd3, 0x2c, 0xcb, 0x34,
++	 0xad, 0x52, 0x2b, 0xd4, 0x4a, 0xb5, 0x52, 0xad,
++	 0x52, 0xad, 0xd4, 0x2b, 0xb5, 0x4a, 0x4d, 0xb2,
++	 0x52, 0xad, 0xd4, 0x2b, 0xb5, 0x4a, 0x4b, 0xb4,
++	 0x52, 0xad, 0xd4, 0x2b, 0x55, 0xaa, 0x4a, 0xb5,
++	 0x52, 0xad, 0xd4, 0x2b, 0x33, 0xcc, 0x4a, 0xb5,
++	 0x52, 0xad, 0x34, 0xcb, 0x2c, 0xd3, 0x4a, 0xb5,
++	 0x52, 0xad, 0x32, 0xcd, 0x2a, 0xd5, 0x4a, 0xb5,
++	 0xb2, 0x4d, 0xd3, 0x2c, 0x2b, 0xd4, 0x4a, 0xb5,
++	 0xd4, 0x2b, 0xb5, 0x4a, 0x2b, 0xd4, 0xaa, 0x55,
++	 0x2b, 0xd4, 0xaa, 0x55, 0x2b, 0xd4, 0xac, 0x53,
++	 0x2b, 0xd4, 0xac, 0x53, 0xcb, 0x34, 0xad, 0x52,
++	 0xcb, 0x34, 0xad, 0x52, 0xad, 0x52, 0xad, 0x52,
++	 0xad, 0x52, 0x4d, 0xb2, 0xb2, 0x4d, 0x4d, 0xb2,
++	 0xb2, 0x4d, 0x4b, 0xb4, 0xb4, 0x4b, 0x4b, 0xb4,
++	 0x54, 0xab, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
++	 0x33, 0xcc, 0xcc, 0x33, 0x33, 0xcc, 0x2c, 0xd3,
++	 0xcc, 0x33, 0x33, 0xcc, 0xcc, 0x33, 0x35, 0xca,
++	 0xcc, 0x33, 0x33, 0xcc, 0x2c, 0xd3, 0x32, 0xcd,
++	 0xcc, 0x33, 0x33, 0xcc, 0xaa, 0x55, 0x33, 0xcc,
++	 0xcc, 0x33, 0xd3, 0x2c, 0xd3, 0x2c, 0x33, 0xcc,
++	 0xcc, 0x33, 0x35, 0xca, 0xca, 0x35, 0x33, 0xcc,
++	 0x2c, 0xd3, 0xd2, 0x2d, 0xcd, 0x32, 0x33, 0xcc,
++	 0xaa, 0x55, 0x55, 0xaa, 0xcc, 0x33, 0xd3, 0x2c,
++	 0x33, 0xcc, 0x2c, 0xd3, 0xcc, 0x33, 0x35, 0xca,
++	 0xcc, 0x33, 0x35, 0xca, 0x2c, 0xd3, 0x32, 0xcd,
++	 0x2c, 0xd3, 0x32, 0xcd, 0xaa, 0x55, 0x33, 0xcc,
++	 0xaa, 0x55, 0xd3, 0x2c, 0xd3, 0x2c, 0xd3, 0x2c,
++	 0xd3, 0x2c, 0x35, 0xca, 0xca, 0x35, 0x35, 0xca,
++	 0x2a, 0xd5, 0xd2, 0x2d, 0x2d, 0xd2, 0xd2, 0x2d,
++	 0xab, 0x54, 0x55, 0xaa, 0xaa, 0x55, 0xb5, 0x4a,
++	 0x33, 0xcc, 0xcc, 0x33, 0x33, 0xcc, 0x2a, 0xd5,
++	 0xcc, 0x33, 0x33, 0xcc, 0x2c, 0xd3, 0x34, 0xcb,
++	 0xcc, 0x33, 0x33, 0xcc, 0x4a, 0xb5, 0x32, 0xcd,
++	 0xcc, 0x33, 0xd3, 0x2c, 0xb5, 0x4a, 0x33, 0xcc,
++	 0xcc, 0x33, 0xd5, 0x2a, 0xd5, 0x2a, 0x33, 0xcc,
++	 0x2c, 0xd3, 0xd4, 0x2b, 0xcb, 0x34, 0x33, 0xcc,
++	 0x4a, 0xb5, 0xb4, 0x4b, 0xcd, 0x32, 0xd3, 0x2c,
++	 0x55, 0xaa, 0x4a, 0xb5, 0xcc, 0x33, 0xd5, 0x2a,
++	 0x33, 0xcc, 0x2a, 0xd5, 0x2c, 0xd3, 0x34, 0xcb,
++	 0x2c, 0xd3, 0x34, 0xcb, 0x4a, 0xb5, 0x32, 0xcd,
++	 0x4a, 0xb5, 0xd2, 0x2d, 0xb5, 0x4a, 0xd3, 0x2c,
++	 0xb5, 0x4a, 0xd5, 0x2a, 0xd5, 0x2a, 0xd5, 0x2a,
++	 0x35, 0xca, 0xd4, 0x2b, 0x2b, 0xd4, 0xd4, 0x2b,
++	 0x4d, 0xb2, 0xb4, 0x4b, 0x4b, 0xb4, 0x54, 0xab,
++	 0x54, 0xab, 0xaa, 0x55, 0x55, 0xaa, 0xac, 0x53,
++	 0x33, 0xcc, 0xcc, 0x33, 0xd3, 0x2c, 0x2d, 0xd2,
++	 0xcc, 0x33, 0x33, 0xcc, 0xaa, 0x55, 0x35, 0xca,
++	 0xcc, 0x33, 0xd3, 0x2c, 0x33, 0xcc, 0x32, 0xcd,
++	 0xcc, 0x33, 0x35, 0xca, 0xac, 0x53, 0x33, 0xcc,
++	 0x2c, 0xd3, 0x32, 0xcd, 0xd2, 0x2d, 0x33, 0xcc,
++	 0xaa, 0x55, 0x53, 0xac, 0xca, 0x35, 0xd3, 0x2c,
++	 0xd3, 0x2c, 0xcd, 0x32, 0xcd, 0x32, 0x35, 0xca,
++	 0xaa, 0x55, 0x53, 0xac, 0x2c, 0xd3, 0xd2, 0x2d,
++	 0xd3, 0x2c, 0x2d, 0xd2, 0xaa, 0x55, 0x35, 0xca,
++	 0xaa, 0x55, 0xd5, 0x2a, 0x33, 0xcc, 0xd2, 0x2d,
++	 0x33, 0xcc, 0x34, 0xcb, 0xac, 0x53, 0x35, 0xca,
++	 0x4c, 0xb3, 0x32, 0xcd, 0x32, 0xcd, 0x32, 0xcd,
++	 0xb4, 0x4b, 0x53, 0xac, 0xac, 0x53, 0xb3, 0x4c,
++	 0xd5, 0x2a, 0x2d, 0xd2, 0xd2, 0x2d, 0xcb, 0x34,
++	 0xab, 0x54, 0x55, 0xaa, 0x4a, 0xb5, 0xb2, 0x4d,
++	 0x33, 0xcc, 0xcc, 0x33, 0xb5, 0x4a, 0x2b, 0xd4,
++	 0xcc, 0x33, 0xd3, 0x2c, 0x55, 0xaa, 0x34, 0xcb,
++	 0xcc, 0x33, 0xd5, 0x2a, 0x53, 0xac, 0x32, 0xcd,
++	 0x2c, 0xd3, 0x34, 0xcb, 0xb2, 0x4d, 0x33, 0xcc,
++	 0x4a, 0xb5, 0x52, 0xad, 0xd4, 0x2b, 0xd3, 0x2c,
++	 0xb5, 0x4a, 0xad, 0x52, 0xcb, 0x34, 0xd5, 0x2a,
++	 0xb5, 0x4a, 0xad, 0x52, 0x2d, 0xd2, 0xd4, 0x2b,
++	 0xb5, 0x4a, 0x4d, 0xb2, 0x4a, 0xb5, 0xd4, 0x2b,
++	 0xb5, 0x4a, 0xcb, 0x34, 0x55, 0xaa, 0xd4, 0x2b,
++	 0x55, 0xaa, 0xd2, 0x2d, 0x53, 0xac, 0xd4, 0x2b,
++	 0xb3, 0x4c, 0x35, 0xca, 0x52, 0xad, 0x34, 0xcb,
++	 0x34, 0xcb, 0x52, 0xad, 0x52, 0xad, 0xb2, 0x4d,
++	 0xad, 0x52, 0x4d, 0xb2, 0xb2, 0x4d, 0x4b, 0xb4,
++	 0xb2, 0x4d, 0x4b, 0xb4, 0x54, 0xab, 0x4a, 0xb5,
++	 0x54, 0xab, 0xaa, 0x55, 0x33, 0xcc, 0xaa, 0x55,
++	 0x33, 0xcc, 0x2c, 0xd3, 0x2c, 0xd3, 0x2c, 0xd3,
++	 0xcc, 0x33, 0x35, 0xca, 0xca, 0x35, 0x35, 0xca,
++	 0x2c, 0xd3, 0xd2, 0x2d, 0x2d, 0xd2, 0x32, 0xcd,
++	 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0xd3, 0x2c,
++	 0x33, 0xcc, 0xcc, 0x33, 0xd3, 0x2c, 0x35, 0xca,
++	 0xcc, 0x33, 0x33, 0xcc, 0x2a, 0xd5, 0x32, 0xcd,
++	 0xcc, 0x33, 0xd3, 0x2c, 0xab, 0x54, 0x33, 0xcc,
++	 0xcc, 0x33, 0xb5, 0x4a, 0xd3, 0x2c, 0x33, 0xcc,
++	 0x2c, 0xd3, 0x2a, 0xd5, 0xca, 0x35, 0x33, 0xcc,
++	 0x2a, 0xd5, 0xd4, 0x2b, 0xcd, 0x32, 0xd3, 0x2c,
++	 0x4b, 0xb4, 0x54, 0xab, 0xcc, 0x33, 0xb5, 0x4a,
++	 0x55, 0xaa, 0x2c, 0xd3, 0x2c, 0xd3, 0xca, 0x35,
++	 0xd3, 0x2c, 0x35, 0xca, 0x2a, 0xd5, 0x32, 0xcd,
++	 0x2a, 0xd5, 0xd2, 0x2d, 0xab, 0x54, 0xd3, 0x2c,
++	 0xab, 0x54, 0xb5, 0x4a, 0xd3, 0x2c, 0xb5, 0x4a,
++	 0x33, 0xcc, 0x2a, 0xd5, 0x2a, 0xd5, 0x2a, 0xd5,
++	 0x2c, 0xd3, 0xd4, 0x2b, 0x2b, 0xd4, 0x34, 0xcb,
++	 0x4a, 0xb5, 0xb4, 0x4b, 0x4b, 0xb4, 0xd2, 0x2d,
++	 0x55, 0xaa, 0xaa, 0x55, 0xb5, 0x4a, 0xd5, 0x2a,
++	 0x33, 0xcc, 0xcc, 0x33, 0x35, 0xca, 0x34, 0xcb,
++	 0xcc, 0x33, 0xd3, 0x2c, 0x4d, 0xb2, 0x32, 0xcd,
++	 0xcc, 0x33, 0x55, 0xaa, 0xb4, 0x4b, 0x33, 0xcc,
++	 0x2c, 0xd3, 0xac, 0x53, 0xd5, 0x2a, 0x33, 0xcc,
++	 0xca, 0x35, 0xcd, 0x32, 0xcb, 0x34, 0xd3, 0x2c,
++	 0xad, 0x52, 0xb3, 0x4c, 0xcd, 0x32, 0x55, 0xaa,
++	 0xd2, 0x2d, 0x4b, 0xb4, 0x2c, 0xd3, 0x4c, 0xb3,
++	 0x4a, 0xb5, 0x2a, 0xd5, 0xca, 0x35, 0xcb, 0x34,
++	 0x35, 0xca, 0xd4, 0x2b, 0x4d, 0xb2, 0xd2, 0x2d,
++	 0x4d, 0xb2, 0x54, 0xab, 0xb4, 0x4b, 0x55, 0xaa,
++	 0x54, 0xab, 0xac, 0x53, 0x35, 0xca, 0xac, 0x53,
++	 0xd3, 0x2c, 0xcd, 0x32, 0xcd, 0x32, 0x2d, 0xd2,
++	 0xaa, 0x55, 0x53, 0xac, 0xac, 0x53, 0xd5, 0x2a,
++	 0xd3, 0x2c, 0x2d, 0xd2, 0x32, 0xcd, 0x34, 0xcb,
++	 0xaa, 0x55, 0x55, 0xaa, 0x4c, 0xb3, 0xd2, 0x2d,
++	 0x33, 0xcc, 0x2c, 0xd3, 0xb4, 0x4b, 0x35, 0xca,
++	 0xcc, 0x33, 0xb5, 0x4a, 0x35, 0xca, 0x32, 0xcd,
++	 0x2c, 0xd3, 0xca, 0x35, 0xad, 0x52, 0x33, 0xcc,
++	 0x2a, 0xd5, 0x52, 0xad, 0xd2, 0x2d, 0xd3, 0x2c,
++	 0xab, 0x54, 0x4d, 0xb2, 0xca, 0x35, 0xb5, 0x4a,
++	 0xb3, 0x4c, 0xcb, 0x34, 0x2d, 0xd2, 0x2a, 0xd5,
++	 0x54, 0xab, 0x52, 0xad, 0x2a, 0xd5, 0xb4, 0x4b,
++	 0xb3, 0x4c, 0xcd, 0x32, 0x4b, 0xb4, 0x2a, 0xd5,
++	 0xb4, 0x4b, 0xb3, 0x4c, 0x35, 0xca, 0xb4, 0x4b,
++	 0xd5, 0x2a, 0xcb, 0x34, 0x4d, 0xb2, 0xca, 0x35,
++	 0x4b, 0xb4, 0x52, 0xad, 0x34, 0xcb, 0xb2, 0x4d,
++	 0xb5, 0x4a, 0xad, 0x52, 0xad, 0x52, 0xcb, 0x34,
++	 0xb5, 0x4a, 0x4d, 0xb2, 0x52, 0xad, 0xd2, 0x2d,
++	 0xb5, 0x4a, 0x4b, 0xb4, 0xb2, 0x4d, 0xd5, 0x2a,
++	 0x55, 0xaa, 0x4a, 0xb5, 0x34, 0xcb, 0xd4, 0x2b,
++	 0x33, 0xcc, 0xaa, 0x55, 0x4d, 0xb2, 0x34, 0xcb,
++	 0x2c, 0xd3, 0x4c, 0xb3, 0x54, 0xab, 0x32, 0xcd,
++	 0xca, 0x35, 0xab, 0x54, 0xb3, 0x4c, 0xd3, 0x2c,
++	 0x4d, 0xb2, 0x2c, 0xd3, 0xd4, 0x2b, 0x55, 0xaa,
++	 0xd4, 0x2b, 0xb5, 0x4a, 0x2b, 0xd4, 0xac, 0x53,
++	 0x2b, 0xd4, 0xaa, 0x55, 0xcb, 0x34, 0xad, 0x52,
++	 0x2b, 0xd4, 0xac, 0x53, 0xad, 0x52, 0xad, 0x52,
++	 0xcb, 0x34, 0x4d, 0xb2, 0xb2, 0x4d, 0xad, 0x52,
++	 0xad, 0x52, 0x4b, 0xb4, 0xb4, 0x4b, 0x4d, 0xb2,
++	 0x52, 0xad, 0xaa, 0x55, 0xb5, 0x4a, 0x4b, 0xb4,
++	 0x32, 0xcd, 0xcc, 0x33, 0x55, 0xaa, 0x4a, 0xb5,
++	 0xcc, 0x33, 0xd3, 0x2c, 0x33, 0xcc, 0x2a, 0xd5,
++	 0xcc, 0x33, 0x35, 0xca, 0x2c, 0xd3, 0x34, 0xcb,
++	 0x2c, 0xd3, 0x32, 0xcd, 0x4a, 0xb5, 0x32, 0xcd,
++	 0xaa, 0x55, 0xd3, 0x2c, 0xb5, 0x4a, 0xd3, 0x2c,
++	 0xd3, 0x2c, 0xd5, 0x2a, 0xd5, 0x2a, 0x35, 0xca,
++	 0x2a, 0xd5, 0xd4, 0x2b, 0x2b, 0xd4, 0xd2, 0x2d,
++	 0x4b, 0xb4, 0xb4, 0x4b, 0xab, 0x54, 0xb5, 0x4a,
++	 0x55, 0xaa, 0xaa, 0x55, 0x33, 0xcc, 0xca, 0x35,
++	 0x33, 0xcc, 0x2c, 0xd3, 0x2c, 0xd3, 0x32, 0xcd,
++	 0xcc, 0x33, 0x35, 0xca, 0xaa, 0x55, 0x33, 0xcc,
++	 0x2c, 0xd3, 0xd2, 0x2d, 0xd3, 0x2c, 0x33, 0xcc,
++	 0xaa, 0x55, 0x35, 0xca, 0xca, 0x35, 0xd3, 0x2c,
++	 0x33, 0xcc, 0xd2, 0x2d, 0xcd, 0x32, 0x35, 0xca,
++	 0xac, 0x53, 0x55, 0xaa, 0x2c, 0xd3, 0x32, 0xcd,
++	 0x32, 0xcd, 0x2c, 0xd3, 0xaa, 0x55, 0x53, 0xac,
++	 0xcc, 0x33, 0xd5, 0x2a, 0xd3, 0x2c, 0x2d, 0xd2,
++	 0x2c, 0xd3, 0x34, 0xcb, 0xaa, 0x55, 0x35, 0xca,
++	 0x4a, 0xb5, 0xd2, 0x2d, 0x33, 0xcc, 0xd2, 0x2d,
++	 0xb5, 0x4a, 0x35, 0xca, 0xac, 0x53, 0xd5, 0x2a,
++	 0x35, 0xca, 0x32, 0xcd, 0x32, 0xcd, 0xd4, 0x2b,
++	 0xad, 0x52, 0x53, 0xac, 0x4c, 0xb3, 0x54, 0xab,
++	 0xd2, 0x2d, 0x2d, 0xd2, 0x54, 0xab, 0x4c, 0xb3,
++	 0xaa, 0x55, 0xb5, 0x4a, 0xd3, 0x2c, 0xcb, 0x34,
++	 0x33, 0xcc, 0x2a, 0xd5, 0x4a, 0xb5, 0x32, 0xcd,
++	 0x2c, 0xd3, 0xd4, 0x2b, 0xb5, 0x4a, 0x33, 0xcc,
++	 0x4a, 0xb5, 0xd4, 0x2b, 0xd5, 0x2a, 0xd3, 0x2c,
++	 0x55, 0xaa, 0xd4, 0x2b, 0xcb, 0x34, 0xd5, 0x2a,
++	 0x53, 0xac, 0xb4, 0x4b, 0x2d, 0xd2, 0x34, 0xcb,
++	 0x52, 0xad, 0x4a, 0xb5, 0x4a, 0xb5, 0x52, 0xad,
++	 0x32, 0xcd, 0xca, 0x35, 0xb5, 0x4a, 0x4d, 0xb2,
++	 0x2c, 0xd3, 0xd2, 0x2d, 0xb5, 0x4a, 0x2b, 0xd4,
++	 0xaa, 0x55, 0xd5, 0x2a, 0x55, 0xaa, 0xd4, 0x2b,
++	 0x33, 0xcc, 0xd4, 0x2b, 0x53, 0xac, 0x34, 0xcb,
++	 0x4c, 0xb3, 0x34, 0xcb, 0x52, 0xad, 0x32, 0xcd,
++	 0x54, 0xab, 0x52, 0xad, 0xb2, 0x4d, 0xb3, 0x4c,
++	 0xb3, 0x4c, 0x4d, 0xb2, 0xd4, 0x2b, 0x2b, 0xd4,
++	 0xb4, 0x4b, 0xab, 0x54, 0x4b, 0xb4, 0xb4, 0x4b,
++	 0x55, 0xaa, 0xac, 0x53, 0x55, 0xaa, 0xca, 0x35,
++	 0xd3, 0x2c, 0xcd, 0x32, 0x33, 0xcc, 0x32, 0xcd,
++	 0xaa, 0x55, 0x33, 0xcc, 0xac, 0x53, 0xd3, 0x2c,
++	 0xd3, 0x2c, 0x33, 0xcc, 0xd2, 0x2d, 0x35, 0xca,
++	 0xca, 0x35, 0x53, 0xac, 0x2a, 0xd5, 0xd2, 0x2d,
++	 0xcd, 0x32, 0xcd, 0x32, 0xab, 0x54, 0x55, 0xaa,
++	 0xac, 0x53, 0xb3, 0x4c, 0x33, 0xcc, 0x2c, 0xd3,
++	 0xd2, 0x2d, 0x2b, 0xd4, 0xcc, 0x33, 0x55, 0xaa,
++	 0x4a, 0xb5, 0x34, 0xcb, 0x2c, 0xd3, 0xcc, 0x33,
++	 0x55, 0xaa, 0x32, 0xcd, 0xca, 0x35, 0xd3, 0x2c,
++	 0xb3, 0x4c, 0xd3, 0x2c, 0xcd, 0x32, 0x35, 0xca,
++	 0xd4, 0x2b, 0x55, 0xaa, 0x2c, 0xd3, 0xb2, 0x4d,
++	 0x2b, 0xd4, 0x2c, 0xd3, 0xaa, 0x55, 0xab, 0x54,
++	 0xcb, 0x34, 0xd5, 0x2a, 0x53, 0xac, 0xac, 0x53,
++	 0x2d, 0xd2, 0x34, 0xcb, 0xd2, 0x2d, 0x4d, 0xb2,
++	 0x4a, 0xb5, 0x52, 0xad, 0xaa, 0x55, 0xcb, 0x34,
++	 0xb5, 0x4a, 0xcd, 0x32, 0x53, 0xac, 0xd2, 0x2d,
++	 0xb5, 0x4a, 0x33, 0xcc, 0xb2, 0x4d, 0xd5, 0x2a,
++	 0xd5, 0x2a, 0x53, 0xac, 0x34, 0xcb, 0xd4, 0x2b,
++	 0xcb, 0x34, 0xad, 0x52, 0x4d, 0xb2, 0xb4, 0x4b,
++	 0xad, 0x52, 0x4d, 0xb2, 0x54, 0xab, 0x4a, 0xb5,
++	 0xb2, 0x4d, 0xab, 0x54, 0x33, 0xcc, 0x4a, 0xb5,
++	 0x54, 0xab, 0x2c, 0xd3, 0x2c, 0xd3, 0xaa, 0x55,
++	 0xd3, 0x2c, 0x35, 0xca, 0x2a, 0xd5, 0x2c, 0xd3,
++	 0x2a, 0xd5, 0xd2, 0x2d, 0xcb, 0x34, 0xd5, 0x2a,
++	 0xab, 0x54, 0xb5, 0x4a, 0x2d, 0xd2, 0xb4, 0x4b,
++	 0x33, 0xcc, 0x4a, 0xb5, 0x4a, 0xb5, 0x2a, 0xd5,
++	 0x2c, 0xd3, 0xca, 0x35, 0x35, 0xca, 0x34, 0xcb,
++	 0x2a, 0xd5, 0xd2, 0x2d, 0x4d, 0xb2, 0xd2, 0x2d,
++	 0xab, 0x54, 0x55, 0xaa, 0xb4, 0x4b, 0xb5, 0x4a,
++	 0x33, 0xcc, 0xac, 0x53, 0x35, 0xca, 0x2a, 0xd5,
++	 0xcc, 0x33, 0xcd, 0x32, 0x2d, 0xd2, 0x34, 0xcb,
++	 0xac, 0x53, 0x53, 0xac, 0x4a, 0xb5, 0x32, 0xcd,
++	 0xd2, 0x2d, 0xcd, 0x32, 0xb5, 0x4a, 0x53, 0xac,
++	 0xaa, 0x55, 0xd3, 0x2c, 0xd5, 0x2a, 0xcd, 0x32,
++	 0xd3, 0x2c, 0xd5, 0x2a, 0xab, 0x54, 0x33, 0xcc,
++	 0x2a, 0xd5, 0xb4, 0x4b, 0xd3, 0x2c, 0xd3, 0x2c,
++	 0x4b, 0xb4, 0x2a, 0xd5, 0xca, 0x35, 0xb5, 0x4a,
++	 0x35, 0xca, 0xd4, 0x2b, 0x2d, 0xd2, 0xca, 0x35,
++	 0x4d, 0xb2, 0x54, 0xab, 0x2a, 0xd5, 0x52, 0xad,
++	 0x54, 0xab, 0xcc, 0x33, 0xab, 0x54, 0xad, 0x52,
++	 0xd3, 0x2c, 0xb3, 0x4c, 0xb3, 0x4c, 0x2d, 0xd2,
++	 0xca, 0x35, 0x2b, 0xd4, 0xb4, 0x4b, 0xd5, 0x2a,
++	 0x4d, 0xb2, 0xb4, 0x4b, 0x35, 0xca, 0x54, 0xab,
++	 0x54, 0xab, 0xca, 0x35, 0x4d, 0xb2, 0xac, 0x53,
++	 0x33, 0xcc, 0x52, 0xad, 0xd4, 0x2b, 0x2d, 0xd2,
++	 0xac, 0x53, 0xad, 0x52, 0xab, 0x54, 0x35, 0xca,
++	 0xb2, 0x4d, 0xad, 0x52, 0x33, 0xcc, 0x52, 0xad,
++	 0xb4, 0x4b, 0x2d, 0xd2, 0xac, 0x53, 0xad, 0x52,
++	 0xb5, 0x4a, 0x35, 0xca, 0xb2, 0x4d, 0xcd, 0x32,
++	 0x35, 0xca, 0x52, 0xad, 0xb4, 0x4b, 0xd3, 0x2c,
++	 0xad, 0x52, 0xad, 0x52, 0xd5, 0x2a, 0x55, 0xaa,
++	 0xb2, 0x4d, 0xcd, 0x32, 0x2b, 0xd4, 0x4c, 0xb3,
++	 0xb4, 0x4b, 0xb3, 0x4c, 0xcb, 0x34, 0xab, 0x54,
++	 0xd5, 0x2a, 0xab, 0x54, 0x4d, 0xb2, 0xcc, 0x33,
++	 0x4b, 0xb4, 0x4c, 0xb3, 0xd4, 0x2b, 0xb3, 0x4c,
++	 0xd5, 0x2a, 0xab, 0x54, 0xcb, 0x34, 0xcb, 0x34,
++	 0x4b, 0xb4, 0xac, 0x53, 0x4d, 0xb2, 0xb2, 0x4d,
++	 0xd5, 0x2a, 0x4d, 0xb2, 0xb4, 0x4b, 0xcb, 0x34,
++	 0xab, 0x54, 0xab, 0x54, 0x55, 0xaa, 0xb2, 0x4d,
++	 0x53, 0xac, 0xcc, 0x33, 0xb3, 0x4c, 0x2b, 0xd4,
++	 0xd2, 0x2d, 0x33, 0xcc, 0x54, 0xab, 0x54, 0xab,
++	 0xca, 0x35, 0xb3, 0x4c, 0x53, 0xac, 0xcc, 0x33,
++	 0xcd, 0x32, 0x2b, 0xd4, 0xd2, 0x2d, 0x53, 0xac,
++	 0x4c, 0xb3, 0x54, 0xab, 0xca, 0x35, 0x2d, 0xd2,
++	 0x54, 0xab, 0xcc, 0x33, 0xad, 0x52, 0xb5, 0x4a,
++	 0xd3, 0x2c, 0x53, 0xac, 0x32, 0xcd, 0x2a, 0xd5,
++	 0xca, 0x35, 0x4d, 0xb2, 0x2c, 0xd3, 0xd4, 0x2b,
++	 0xad, 0x52, 0x2b, 0xd4, 0x4a, 0xb5, 0x54, 0xab,
++	 0x52, 0xad, 0xd4, 0x2b, 0x55, 0xaa, 0x4c, 0xb3,
++	 0x52, 0xad, 0xd4, 0x2b, 0xd3, 0x2c, 0x4b, 0xb4,
++	 0x52, 0xad, 0x34, 0xcb, 0x4a, 0xb5, 0x4a, 0xb5,
++	 0x52, 0xad, 0xd2, 0x2d, 0x35, 0xca, 0x4a, 0xb5,
++	 0xb2, 0x4d, 0xd5, 0x2a, 0x2d, 0xd2, 0x4a, 0xb5,
++	 0x34, 0xcb, 0x54, 0xab, 0x2a, 0xd5, 0xaa, 0x55,
++	 0x4d, 0xb2, 0xcc, 0x33, 0x2b, 0xd4, 0x4c, 0xb3,
++	 0xd4, 0x2b, 0xb3, 0x4c, 0xcb, 0x34, 0xab, 0x54,
++	 0xcb, 0x34, 0xab, 0x54, 0x4d, 0xb2, 0xac, 0x53,
++	 0x4d, 0xb2, 0x4c, 0xb3, 0xd4, 0x2b, 0x4d, 0xb2,
++	 0xd4, 0x2b, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54,
++	 0x4b, 0xb4, 0xac, 0x53, 0x53, 0xac, 0xac, 0x53,
++	 0xd5, 0x2a, 0x2d, 0xd2, 0xd2, 0x2d, 0xcd, 0x32,
++	 0xab, 0x54, 0x55, 0xaa, 0xaa, 0x55, 0xb3, 0x4c,
++	 0x33, 0xcc, 0xcc, 0x33, 0xd3, 0x2c, 0x2b, 0xd4,
++	 0xcc, 0x33, 0x33, 0xcc, 0x4a, 0xb5, 0x34, 0xcb,
++	 0xcc, 0x33, 0xd3, 0x2c, 0x55, 0xaa, 0x32, 0xcd,
++	 0xcc, 0x33, 0xd5, 0x2a, 0xb3, 0x4c, 0x33, 0xcc,
++	 0x2c, 0xd3, 0x34, 0xcb, 0xd4, 0x2b, 0x33, 0xcc,
++	 0x4a, 0xb5, 0xb2, 0x4d, 0xcb, 0x34, 0xd3, 0x2c,
++	 0xb5, 0x4a, 0xab, 0x54, 0xcd, 0x32, 0xd5, 0x2a,
++	 0x55, 0xaa, 0x4c, 0xb3, 0x2c, 0xd3, 0xd4, 0x2b,
++	 0xd3, 0x2c, 0x2b, 0xd4, 0x4a, 0xb5, 0x34, 0xcb,
++	 0x4a, 0xb5, 0xd4, 0x2b, 0x55, 0xaa, 0xd2, 0x2d,
++	 0x55, 0xaa, 0xd4, 0x2b, 0xb3, 0x4c, 0xd5, 0x2a,
++	 0x53, 0xac, 0x34, 0xcb, 0x34, 0xcb, 0x34, 0xcb,
++	 0x52, 0xad, 0xb2, 0x4d, 0x4d, 0xb2, 0x52, 0xad,
++	 0xb2, 0x4d, 0x4b, 0xb4, 0xb4, 0x4b, 0x4d, 0xb2,
++	 0x54, 0xab, 0xaa, 0x55, 0xb5, 0x4a, 0xab, 0x54,
++	 0x33, 0xcc, 0xcc, 0x33, 0x55, 0xaa, 0x2c, 0xd3,
++	 0xcc, 0x33, 0xd3, 0x2c, 0xd3, 0x2c, 0x35, 0xca,
++	 0xcc, 0x33, 0x35, 0xca, 0x2a, 0xd5, 0x32, 0xcd,
++	 0x2c, 0xd3, 0xd2, 0x2d, 0xab, 0x54, 0x33, 0xcc,
++	 0xaa, 0x55, 0xb5, 0x4a, 0xd3, 0x2c, 0xd3, 0x2c,
++	 0x33, 0xcc, 0x2a, 0xd5, 0xca, 0x35, 0x35, 0xca,
++	 0x2c, 0xd3, 0xd4, 0x2b, 0x2d, 0xd2, 0x32, 0xcd,
++	 0x4a, 0xb5, 0x54, 0xab, 0xaa, 0x55, 0xd3, 0x2c,
++	 0x55, 0xaa, 0xcc, 0x33, 0xd3, 0x2c, 0xd5, 0x2a,
++	 0xd3, 0x2c, 0x33, 0xcc, 0x2a, 0xd5, 0x34, 0xcb,
++	 0xca, 0x35, 0xd3, 0x2c, 0x4b, 0xb4, 0xd2, 0x2d,
++	 0xcd, 0x32, 0xb5, 0x4a, 0xb5, 0x4a, 0x55, 0xaa,
++	 0x2c, 0xd3, 0xca, 0x35, 0x35, 0xca, 0x2c, 0xd3,
++	 0x2a, 0xd5, 0xd2, 0x2d, 0xcd, 0x32, 0xd5, 0x2a,
++	 0xab, 0x54, 0x55, 0xaa, 0x2c, 0xd3, 0xb4, 0x4b,
++	 0x33, 0xcc, 0x2c, 0xd3, 0x4a, 0xb5, 0x2a, 0xd5,
++	 0xcc, 0x33, 0xd5, 0x2a, 0x35, 0xca, 0x34, 0xcb,
++	 0x2c, 0xd3, 0xd4, 0x2b, 0x4d, 0xb2, 0x32, 0xcd,
++	 0x4a, 0xb5, 0x54, 0xab, 0xb4, 0x4b, 0xd3, 0x2c,
++	 0x55, 0xaa, 0xac, 0x53, 0xd5, 0x2a, 0xd5, 0x2a,
++	 0xd3, 0x2c, 0xcd, 0x32, 0x2b, 0xd4, 0x34, 0xcb,
++	 0xaa, 0x55, 0xb3, 0x4c, 0x4b, 0xb4, 0xd2, 0x2d,
++	 0xd3, 0x2c, 0xab, 0x54, 0xb5, 0x4a, 0x35, 0xca,
++	 0x4a, 0xb5, 0xcc, 0x33, 0x35, 0xca, 0xd2, 0x2d,
++	 0xd5, 0x2a, 0xd3, 0x2c, 0xad, 0x52, 0xd5, 0x2a,
++	 0xcb, 0x34, 0x55, 0xaa, 0x32, 0xcd, 0xb4, 0x4b,
++	 0x2d, 0xd2, 0x4c, 0xb3, 0x4c, 0xb3, 0x4a, 0xb5,
++	 0xca, 0x35, 0x2b, 0xd4, 0x34, 0xcb, 0xca, 0x35,
++	 0x4d, 0xb2, 0xb4, 0x4b, 0x2d, 0xd2, 0x52, 0xad,
++	 0x54, 0xab, 0x4a, 0xb5, 0xaa, 0x55, 0xad, 0x52,
++	 0x33, 0xcc, 0xca, 0x35, 0xb3, 0x4c, 0x2d, 0xd2,
++	 0x2c, 0xd3, 0x32, 0xcd, 0xb4, 0x4b, 0x35, 0xca,
++	 0xaa, 0x55, 0xb3, 0x4c, 0x35, 0xca, 0xd2, 0x2d,
++	 0xd3, 0x2c, 0xcb, 0x34, 0xad, 0x52, 0x35, 0xca,
++	 0x4a, 0xb5, 0x52, 0xad, 0x32, 0xcd, 0xd2, 0x2d,
++	 0xb5, 0x4a, 0x4d, 0xb2, 0xac, 0x53, 0xd5, 0x2a,
++	 0xb5, 0x4a, 0x2b, 0xd4, 0x32, 0xcd, 0xd4, 0x2b,
++	 0x55, 0xaa, 0x54, 0xab, 0x4c, 0xb3, 0xd4, 0x2b,
++	 0x53, 0xac, 0x2c, 0xd3, 0x54, 0xab, 0x34, 0xcb,
++	 0xd2, 0x2d, 0xb5, 0x4a, 0x53, 0xac, 0x52, 0xad,
++	 0x2a, 0xd5, 0x2a, 0xd5, 0xb2, 0x4d, 0xcd, 0x32,
++	 0x2b, 0xd4, 0x54, 0xab, 0xb4, 0x4b, 0xb3, 0x4c,
++	 0x4b, 0xb4, 0xac, 0x53, 0xd5, 0x2a, 0xab, 0x54,
++	 0xd5, 0x2a, 0xcd, 0x32, 0x4b, 0xb4, 0xcc, 0x33,
++	 0xab, 0x54, 0xb3, 0x4c, 0xd5, 0x2a, 0xb3, 0x4c,
++	 0xd3, 0x2c, 0xcb, 0x34, 0xcb, 0x34, 0x2b, 0xd4,
++	 0x4a, 0xb5, 0xb2, 0x4d, 0x4d, 0xb2, 0xd4, 0x2b,
++	 0xb5, 0x4a, 0x4b, 0xb4, 0x54, 0xab, 0xd4, 0x2b,
++	 0x55, 0xaa, 0xaa, 0x55, 0x53, 0xac, 0xd4, 0x2b,
++	 0x33, 0xcc, 0x2c, 0xd3, 0x52, 0xad, 0x34, 0xcb,
++	 0xcc, 0x33, 0x55, 0xaa, 0x52, 0xad, 0x32, 0xcd,
++	 0x2c, 0xd3, 0x4c, 0xb3, 0xb2, 0x4d, 0x33, 0xcc,
++	 0xca, 0x35, 0x4b, 0xb4, 0xd4, 0x2b, 0xd3, 0x2c,
++	 0x4d, 0xb2, 0xaa, 0x55, 0xcb, 0x34, 0x55, 0xaa,
++	 0x34, 0xcb, 0xac, 0x53, 0x2d, 0xd2, 0xac, 0x53,
++	 0xcd, 0x32, 0x4d, 0xb2, 0xca, 0x35, 0x4d, 0xb2,
++	 0xac, 0x53, 0xcb, 0x34, 0xad, 0x52, 0x2b, 0xd4,
++	 0x52, 0xad, 0x52, 0xad, 0x52, 0xad, 0x54, 0xab,
++	 0xb2, 0x4d, 0x4d, 0xb2, 0x52, 0xad, 0x4c, 0xb3,
++	 0xb4, 0x4b, 0x4b, 0xb4, 0xd2, 0x2d, 0xab, 0x54,
++	 0x55, 0xaa, 0x4a, 0xb5, 0x4a, 0xb5, 0xcc, 0x33,
++	 0x33, 0xcc, 0xca, 0x35, 0xd5, 0x2a, 0x33, 0xcc,
++	 0x2c, 0xd3, 0xd2, 0x2d, 0xcb, 0x34, 0x33, 0xcc,
++	 0xaa, 0x55, 0xb5, 0x4a, 0xcd, 0x32, 0xd3, 0x2c,
++	 0x33, 0xcc, 0x4a, 0xb5, 0xcc, 0x33, 0x35, 0xca,
++	 0x2c, 0xd3, 0x2a, 0xd5, 0x2c, 0xd3, 0x32, 0xcd,
++	 0x2a, 0xd5, 0x34, 0xcb, 0xaa, 0x55, 0xd3, 0x2c,
++	 0x4b, 0xb4, 0xd2, 0x2d, 0xd3, 0x2c, 0xb5, 0x4a,
++	 0xb5, 0x4a, 0x35, 0xca, 0x2a, 0xd5, 0xca, 0x35,
++	 0x35, 0xca, 0xd2, 0x2d, 0x2b, 0xd4, 0xd2, 0x2d,
++	 0xad, 0x52, 0xb5, 0x4a, 0xab, 0x54, 0x55, 0xaa,
++};
++
++#endif	/*RAND_H_*/
++
++
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description
new file mode 100644
index 0000000..1777802
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description
@@ -0,0 +1 @@
+Updated to use a proper tmpfile. Otherwise, errors happen when run from a read-only partition.
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch
new file mode 100644
index 0000000..1a5176d
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch
@@ -0,0 +1,85 @@
+diff -Naur a/src/main.c b/src/main.c
+--- a/src/main.c	2014-12-03 16:53:29.724125643 -0800
++++ b/src/main.c	2014-12-03 17:47:29.835274590 -0800
+@@ -47,7 +47,6 @@
+ #include <sys/un.h>
+ #include <sys/mman.h>
+ #include <sys/wait.h>
+-#include <sys/sendfile.h>
+ 
+ #include "mtd.h"
+ #include "plat_boot_config.h"
+@@ -555,33 +554,29 @@
+ 	return 0;
+ }
+ 
+-static char *tmp_file = ".tmp_kobs_ng";
+-static char *padding_1k_in_head(char *file_name)
++static FILE *padding_1k_in_head(FILE *from)
+ {
+-	int to, from;
+-	int ret;
+-	int sz = getpagesize();
+-
+-	from = open(file_name, O_RDONLY, S_IRUSR | S_IWUSR);
+-	to = open(tmp_file, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
+-	if (from < 0 || to < 0) {
++	FILE *to;
++	char buf[BUFSIZ];
++	size_t size;
++
++	to = tmpfile();
++	if (from == NULL || to == NULL) {
+ 		fprintf(stderr, "unable to create a temporary file\n");
+ 		exit(5);
+ 	}
+ 
+ 	/* Padding 1k in the head. */
+-	lseek(to, 1024, SEEK_SET);
++	fseek(to, 1024, SEEK_SET);
+ 
+-	do {
+-		/* copy a page each time. */
+-		ret = sendfile(to, from, NULL, sz);
+-	} while (ret > 0);
++	while ((size = fread(buf, 1, BUFSIZ, from)) > 0) {
++		fwrite(buf, 1, size, to);
++	}
+ 
+-	close(to);
+-	close(from);
++	fclose(from);
+ 
+ 	/* change to the temporary file. */
+-	return tmp_file;
++	return to;
+ }
+ 
+ int init_main(int argc, char **argv)
+@@ -670,19 +665,19 @@
+ 	 * So we have to add the 1k-padding ourselves.
+ 	 * Note: We only burn the uboot to nand in the kernel 3.5.7.
+ 	 */
+-	if (padding) {
+-		infile = padding_1k_in_head(infile);
+-
+-		if (flags & F_VERBOSE)
+-			printf("\t -- We add the 1k-padding to the uboot.\n");
+-	}
+-
+ 	infp = fopen(infile, "rb");
+ 	if (infp == NULL) {
+ 		fprintf(stderr, "Unable to open input file '%s'\n", infile);
+ 		usage();
+ 	}
+ 
++	if (padding) {
++		infp = padding_1k_in_head(infp);
++
++		if (flags & F_VERBOSE)
++			printf("\t -- We add the 1k-padding to the uboot.\n");
++	}
++
+ 	keyp = !device_key ? key : NULL;
+ 
+ 	if (flags & F_VERBOSE)
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-03.description b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-03.description
new file mode 100644
index 0000000..3534f49
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-03.description
@@ -0,0 +1,2 @@
+change the i.mx6sx version check, all versions later than v1.1 should use the
+latest config.
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-03.patch b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-03.patch
new file mode 100644
index 0000000..72f834f
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-03.patch
@@ -0,0 +1,17 @@
+--- a/src/plat_boot_config.c	2016-01-28 13:26:28.134887434 -0800
++++ b/src/plat_boot_config.c	2016-02-03 14:20:52.645802502 -0800
+@@ -221,10 +221,12 @@
+ 					}
+ 					fgets(line_buffer, sizeof(line_buffer), revision);
+ 					if (!strncmp(line_buffer, "1.0", strlen("1.0")) ||
+-							!strncmp(line_buffer, "1.1", strlen("1.1")))
++							!strncmp(line_buffer, "1.1", strlen("1.1"))) {
+ 						plat_config_data = &mx6sx_boot_config;
+-					if (!strncmp(line_buffer, "1.2", strlen("1.2")))
++					/* all other versions should use the new boot config */
++					} else {
+ 						plat_config_data = &mx6sx_to_1_2_boot_config;
++					}
+ 				}
+ 				break;
+ 
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.url b/imx_3.10.53_1.1.0_ga/kobs-ng.url
new file mode 100644
index 0000000..67afc72
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.url
@@ -0,0 +1 @@
+http://www.freescale.com/livelink/livelink?func=ll&objId=232611736&objAction=browse&viewType=1
diff --git a/imx_3.10.53_1.1.0_ga/kobs-ng.version b/imx_3.10.53_1.1.0_ga/kobs-ng.version
new file mode 100644
index 0000000..7e32cd5
--- /dev/null
+++ b/imx_3.10.53_1.1.0_ga/kobs-ng.version
@@ -0,0 +1 @@
+1.3
diff --git a/imx_3.14.52_1.1.0_ga/kobs-ng-imx_3.14.52_1.1.0_ga.zip b/imx_3.14.52_1.1.0_ga/kobs-ng-imx_3.14.52_1.1.0_ga.zip
new file mode 100644
index 0000000..2161b8d
--- /dev/null
+++ b/imx_3.14.52_1.1.0_ga/kobs-ng-imx_3.14.52_1.1.0_ga.zip
Binary files differ
diff --git a/imx_3.14.52_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description b/imx_3.14.52_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description
new file mode 120000
index 0000000..5672afa
--- /dev/null
+++ b/imx_3.14.52_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description
@@ -0,0 +1 @@
+../../imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description
\ No newline at end of file
diff --git a/imx_3.14.52_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch b/imx_3.14.52_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch
new file mode 120000
index 0000000..2ab5ba9
--- /dev/null
+++ b/imx_3.14.52_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch
@@ -0,0 +1 @@
+../../imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch
\ No newline at end of file
diff --git a/imx_3.14.52_1.1.0_ga/kobs-ng.url b/imx_3.14.52_1.1.0_ga/kobs-ng.url
new file mode 100644
index 0000000..809b104
--- /dev/null
+++ b/imx_3.14.52_1.1.0_ga/kobs-ng.url
@@ -0,0 +1 @@
+http://www.nxp.com/livelink/livelink?func=ll&objId=232611736&objAction=browse&viewType=1
diff --git a/imx_3.14.52_1.1.0_ga/kobs-ng.version b/imx_3.14.52_1.1.0_ga/kobs-ng.version
new file mode 100644
index 0000000..d7c568e
--- /dev/null
+++ b/imx_3.14.52_1.1.0_ga/kobs-ng.version
@@ -0,0 +1 @@
+imx_3.14.52_1.1.0_ga
diff --git a/imx_4.1.15_1.1.0_ga/imx-kobs-5.4.tar.gz b/imx_4.1.15_1.1.0_ga/imx-kobs-5.4.tar.gz
new file mode 100644
index 0000000..075154e
--- /dev/null
+++ b/imx_4.1.15_1.1.0_ga/imx-kobs-5.4.tar.gz
Binary files differ
diff --git a/imx_4.1.15_1.1.0_ga/imx-kobs.patches/kobs-ng-02.description b/imx_4.1.15_1.1.0_ga/imx-kobs.patches/kobs-ng-02.description
new file mode 120000
index 0000000..5672afa
--- /dev/null
+++ b/imx_4.1.15_1.1.0_ga/imx-kobs.patches/kobs-ng-02.description
@@ -0,0 +1 @@
+../../imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.description
\ No newline at end of file
diff --git a/imx_4.1.15_1.1.0_ga/imx-kobs.patches/kobs-ng-02.patch b/imx_4.1.15_1.1.0_ga/imx-kobs.patches/kobs-ng-02.patch
new file mode 120000
index 0000000..2ab5ba9
--- /dev/null
+++ b/imx_4.1.15_1.1.0_ga/imx-kobs.patches/kobs-ng-02.patch
@@ -0,0 +1 @@
+../../imx_3.10.53_1.1.0_ga/kobs-ng.patches/kobs-ng-02.patch
\ No newline at end of file
diff --git a/imx_4.1.15_1.1.0_ga/imx-kobs.url b/imx_4.1.15_1.1.0_ga/imx-kobs.url
new file mode 100644
index 0000000..77f7472
--- /dev/null
+++ b/imx_4.1.15_1.1.0_ga/imx-kobs.url
@@ -0,0 +1 @@
+http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-kobs-5.4.tar.gz
diff --git a/imx_4.1.15_1.1.0_ga/imx-kobs.version b/imx_4.1.15_1.1.0_ga/imx-kobs.version
new file mode 100644
index 0000000..37c2d99
--- /dev/null
+++ b/imx_4.1.15_1.1.0_ga/imx-kobs.version
@@ -0,0 +1 @@
+5.4
